Pular para o conteúdo principal

Conout com mensagem padrão e retorno da string formatada - ADVPL



/*/{Protheus.doc}
xMPad

@author TSC679 - CHARLES REITZ
@since 26/09/2013
@version 1.0

@return cMsg, Mensagem padrão formatada

@description

Funcao que monta uma mensagem padrao para ser apresentanda em error log
e no conout. Automaticamente ira ser apresentada em console.
O retorno dela sera a mensagem apresentada no conout.

O Parametro _cMsg1 e _cMFunc possui cache, ou seja se você deseja continuar
com a mensagem 1 sempre igual, apenas envie na primeira chamada
após isso ele irá continuar a levar a mensagem que você informou pela
primeira vez. Para trocar a mensagem pasta enviar o parametro.

@example
xMPad("Funcao teste",1,"Mensagem 1","Mensagem 2")
xMPad(nil,2,nil,"Mensagem 2")
xMPad(nil,3,nil,"Mensagem 2")
xMPad(nil,4,nil,"Mensagem 2")

Visualizaçao:
(09/26/13 20:20:23)[Funcao teste] Ini - Mensagem 1 - Mensagem 2
(09/26/13 20:20:23)[Funcao teste] Info - Mensagem 1 - Mensagem 2
(09/26/13 20:20:23)[Funcao teste] Err - Mensagem 1 - Mensagem 2
(09/26/13 20:20:23)[Funcao teste] Fim - Mensagem 1 - Mensagem 2

@param _cMFunc, Primeira mensagem. Determina o nome da funcao
@param _nTipM, Determina a mensagem padrao interna
@param _cMsg1, Determina a primeira mensagem da linha.
@param _cMsg2, Determina a Segunda mensagem da linha

/*/

Static FUnction xMPad(_cMFunc,_nTipM,_cMsg1,_cMsg2)
Local aMsg := { "Ini ",;//tipo 1
"Info",; //tipo 2
"Erro",; //tipo 3
"Fim ";//tipo 4
}
Local cMsg := ""
//Private _cCachMSG1
Default _nTipM := 2
Default _cMsg1 := ""
Default _cMsg2 := ""
Default _cMFunc := ""
Public _cCachMSGLog1
Public _cMFuncCache

/*
Armazena cache a mensagem01 na variavel
para nao precisar passar sempre dessa forma
pode utilizar a mensagem1 padrao
*/

If _cCachMSGLog1 = Nil
If Empty(_cMsg1)
_cCachMSGLog1 := ""
Else
_cCachMSGLog1 := _cMsg1
EndIf
ElseIf !Empty(_cMsg1)
_cCachMSGLog1 := _cMsg1
EndIf

//Trata o paraemtro _cMFunc - para colocar em cache
If _cMFuncCache = Nil
If Empty(_cMFunc)
_cMFuncCache := ""
Else
_cMFuncCache := _cMFunc
EndIf
ElseIf !Empty(_cMFunc)
_cMFuncCache := _cMFunc
EndIf

//Monta a Data na Linha
cMsg := "("+DTOC(DATE())+" "+TIME()+")"
//Funcao que esta sendo rodada
cMsg += "["+_cMFuncCache+"] "
//Mensagem - Inicial - Final - Informativa ou Erro
cMsg += aMsg[_nTipM]+If(Empty(_cCachMSGLog1),""," - ")
//Mensagem 1
cMsg += _cCachMSGLog1+If(Empty(_cMsg2),""," - ")
//Mensagem 2
cMsg += _cMsg2
//Apresenta a mensagem no console
conout(cMsg)

Return cMsg


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...

Appserver Protheus Rest - TLS 1.2

A partir da release 17.3.0.20 vai estar disponível no rest as tags: TLS1=3 que ativa o TLS 1.2 State=1 Bugs=1 O rest do Protheus somente funcionava até o TLS 1.0, ao qual muitos navegadores já estão descontinuando suporte. [HTTPREST] Port=56650 URIs=HTTPURI SECURITY=1 VERBOSE=0 SSL2=1 SSL3=1 TLS1=3 Bugs=1 State=1