Pular para o conteúdo principal

TOTVS - Protheus - Como analisar rotinas que estão demorando.

Antes de iniciar uma analise dessa, tenha em mente que seu sistema precisa estar atualizado, com dbaccess,  appserver, smartclient, patchs e pacotes acumulados, sem isso é impossível fazer uma análise mais detalhada do caso. 


 1) Ativar o log profile, ele vai ser seu melhor amigo 

https://centraldeatendimento.totvs.com/hc/pt-br/articles/360019236251-Log%C3%ADstica-Linha-Protheus-TMS-Gerar-LogProfiler-atrav%C3%A9s-do-Shift-F6


2) Ativar o Rastro do DBACCESS 

https://centraldeatendimento.totvs.com/hc/pt-br/articles/360006726312-MP-BD-DBACESS-TRACE-Como-utilizar-o-DBACCESS-para-rastreamento-de-execu%C3%A7%C3%A3o-de-uma-rotina


3) Desativar customizações. 

https://centraldeatendimento.totvs.com/hc/pt-br/articles/360021114292--Cross-Segmentos-Linha-Protheus-Como-ativar-e-desativar-customiza%C3%A7%C3%B5es-no-Protheus


4) Abra um chamado enviando esses dados ou use a rotina LOGPROFILER (https://drive.google.com/file/d/1DQVxZcYMfUHFpw1kCoE2BSj3YgJO60S4/view?usp=sharing) 




Postagens mais visitadas deste blog

REST Protheus Converter charset CP1252 para UTF8 com Header Accept UTF-8

O Protheus possui um tag que pode ser utilizada para conversão para UTF8 de forma transparente, basta enviar no header da requisição a TAG ACCEPT com charset=UTF-8, também pode-se adicionar o appllication/json. Accept : application/json; charset=UTF-8 ou Accept : charset=UTF-8 Isso ajuda pois não precisa mais utilizar as funções DecodeUTF8 e EncodeUT8 pois o próprio rest já vai fazer isso.

Recursividade Minha Linda! Estrutura Produtos Protheus SG1

Fato! Depois que você conhece recursividade em sua vida tudo fica mais leve (rss... ) a recursividade pode ser infinita (pode não ta!) se for infinita vai dar problema, não pode. Mas a recursividade nos ajuda a deixar nosso sistema mais flexível e dinâmico para montar uma série de regras de negócio. Hoje vou falar exatamente da SG1, tabela TOTVS Microsiga Protheus que é utilizada para montar a estrutura de um produto dentro PCP (Planejamento e Controle de Produção). Isso séria algo que a recursividade iria ajudar. Na SG1 temos o campos G1_COD (Pai) e G1_COMP (Filho). G1_COD->G1_COMP->G1_COD->G1_COMP->G1_COD->G1_COMP Seria assim o fluxo da informação. Sem mais delongas, abaixo vou deixar o script para MSSQL para apresentar esses dados. Inté! WITH ESTRUT( CODIGO, COD_PAI, COD_COMP, QTD, PERDA, DT_INI, DT_FIM ,TRT ,RECNO, NIVEL ) AS ( SELECT G1_COD PAI, G1_COD, G1_COMP, G1_QUANT, G1_PERDA, G1_INI, G1_FIM,G1_TRT,SG1.R_E_C_N_O_, 1 AS NIVEL FR

Cadastro de funções ADVPL

FWDirRemove( cDir, nType, lComplete, lKillFiles ) Função para remover diretórios, com a vantagem de remover somente o ultimo nível ou todo o caminho. cDir                   Diretório a ser removido lComplete          Remove todo o caminho (.T.) ou apenas o ultimo nível (.F.) lKillFiles             Remove os arquivos antes de tentar remover o diretório FWMakeDir( cDir, lShowMsg ) Função para criar diretório com seus subdiretórios, com a vantagem de criar todo o caminho. cDir                    Diretório a ser criado lShowMsg          Exibe ou não mensagem caso não consiga criar o diretório FwNoAccent( cString ) Retira acentos de uma string cString                 String a ser retirado os acentos Exemplo: cString := 'O avião não pôde aterrissar de manhã' cString := FwNoAccent( cString ) // Retorna : 'O aviao nao pode aterrissar de manha' FWGetSX5( cTable, cKey ) Função de retorno dos campos de uma tabela no SX5 cTable                  Tabela para pesquisa no SX5. Par