Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

O ABM possibilita que sejam desenvolvidos desenvolve objetos personalizados para utilização, de acordo com a necessidade específica de cada utilizador.Para  Para isto, foi disponibilizada a Classe classe FWABMACTOBJ, que serve como uma interface para utilização do utilizar o sistema.

Para desenvolver um objeto compatível com o ABM, deve se criar crie uma classe padrão em ADVPL AdvPL e herdar herde a classe FWABMACTOBJ. Em seguida, deve se implementar Após implemente os métodos New e ExecAction ExecAction da interface, com a lógica desejada.

Exemplo: 

Bloco de código
languagecpp
#include 'totvs.ch'
 
//-------------------------------------------------------------------
/*/{Protheus.doc} ABMCONSOLE
Classe customizada para o ABM, realiza a impressao de informações 
no console do Protheus.
 
@author Renan Fragoso
@since 04/04/2014
@version P12
/*/
//-------------------------------------------------------------------
CLASS ABMCONSOLE FROM FWABMACTOBJ 
	
	METHOD New() CONSTRUCTOR METHOD 
	ExecAction()
 
ENDCLASENDCLASS
 
//-------------------------------------------------------------------
/*/{Protheus.doc} New 
Construtor da Classe.
 
@author Renan Fragoso
@since 04/04/2014
@version P12
/*/
//-------------------------------------------------------------------
METHOD New( cCodObj ) CLASS ABMCONSOLE
_Super:New( cCodObj )
self:cClassName := "ABMCONSOLE"
 
Return
 
//-------------------------------------------------------------------
/*/{Protheus.doc} ExecAction
Implementação do método de interface para execução do objeto.
 
@author Renan Fragoso
@since 04/04/2014
@version P12
@obs
Este objeto utilizará os campos pré-definidos nos parâmetros 
para exibir uma mensagemno console do protheus:
MESSAGE1 - Caracter - Mensagem numero 1
MESSAGE2 - Caracter - Mensagem numero 2
 
/*/
//-------------------------------------------------------------------
METHOD ExecAction() CLASS ABMCONSOLE
 
Local oData := self:getParModel() //Busca o model de Parametros ABM
Local oAdtMdl := self:getAdtModel() //Busca o model de linhas filtradas da tabela de audit
 
Local cMsg1 := oData:getValue( "MESSAGE1" ) // Recupera o campo MESSAGE1 da estrutura de parametros na variável cMsg1
Local cMsg2 := oData:getValue( "MESSAGE2" )  // Recupera o campo MESSAGE2 da estrutura de parametros na variável cMsg2
 
ConOut( self:ReplaceTKNS( cMsg1 ) )  //faz a impressão da mensagem no console já resolvida pelo Parser
ConOut( self:ReplaceTKNS( cMsg2 ) )  //faz a impressão da mensagem no console já resolvida pelo Parser
 
Return .T.

 

Após a classe estar compilada no repositório, deve-se cadastrar um novo Objeto de Ação e toda sua estrutura (campos MESSAGE1 e MESSAGE2) para esta classe:

Image Added

 

...

Após a confirmação do cadastro, o objeto poderá ser utilizado para uma condição de verificação:

Image Added

E também seus parâmetros estarão disponíveis para preenchimento:

Image Added

Na próxima vez que a condição for disparada, será impressa a seguinte mensagem no console: 

Bloco de código
MENSAGEM NO CONSOLE PELO OBJETO ABMCONSOLE
CAMPO AUDITADO: A1_NOME