O ABM possibilita que sejam desenvolvidos objetos personalizados para utilização, de desenvolvidoe objetos personalizadosde 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 e ExecAction da interface, com a lógica desejada.
Exemplo:
Bloco de código | ||
---|---|---|
| ||
#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() ENDCLASS //------------------------------------------------------------------- /*/{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. |
...