Financial Management Blogs by Members
Dive into a treasure trove of SAP financial management wisdom shared by a vibrant community of bloggers. Submit a blog post of your own to share knowledge.
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member193386
Active Contributor
653

Muitas vezes temos problemas para em tempo de execucao obter logs mais detalhados tipo DEBUG do que esta ocorrendo no nosso mapeamento da transformacao da mensagem, quando usamos o Java Mapping fica mais facil utilizando a classe Abstract Trace, mas navegando pela web descobri como utilizar o AbstractTrace também no Message Mapping visual, isso estava no artigo que encontrei de um profissional chamado Shaun Ossthuizen.

Para iniciar o precisamos criar uma Função para isso devemos já ter importado o nosso software component ou criado localmente ( o que é possivel nas versoes mais novas do PI ), e aconselho que seja criado um namespace especifico para agrupar suas funcoes. No nosso caso de exmplo cirei um software component  para os aplicativos de uma empresa ficticia chamada EASY ( SFWC_EMPRESA_EASY ) e um namespace chamado “urn:com.easy.functions”.

Dentro do nosso namespace criaremos clicando no botão direito um Mapping Objetc chamado Funtion Library, vamos chama-lo de TraceTools.

Na nossa Funtion Java Areas iremos criar um metodo chamado mappingTrace ( sempre comece com letras minusculas o nome de um metodo seguindo o praceito do desenvolvimento Java ).

Nas variaveis de assinutura de nosso metodo criaremos alguns valores adicionais a serem utilizados, na realidade dois parametros chamados traceMessage e traceContext ambos do tipo String.

No fonte do nosso metodo insira o seguinte código:

         AbstractTrace abstTrace;

         abstTrace = container.getTrace();

         abstTrace.addDebugMessage( traceMessage + " " + traceContext + inputValue + ";" );

         return inputValue;

Nos estamos instanciando a classe AbstractTrace e obtendo o do nosso contaiver do mapping a referencia ao objeto AbstractTrace já existente no nosso processo de mapeamento. Após obtido a referencia ao objeto em questão chamamos o metodo “addDebugMessage()” onde passamos o String formado pela mensagem de referencia que iremos passar no traceMessage , traceContext e o valor que estamos trabalhndo no mapping nesse momento ( fica ao gosto do fregues colocar mais detalhes no String a ser exibido no trace.

No final retornamos o proprio valor que estamos querendo exibir no trace log para prosseguir com o mapeamento normal

Agora só precisamos incluir em nosso mapping que desejamos incluir o “custom trace metod” que criamos via java function metod em nosso mapping.

Lembrando que para inserir os parametros basta clicar sobre o node referente a funcao que criamos e a tela popup sera exibida que vc deve preencher com os valores mais convenientes para que vc localize sua linah de debug no trace do processo. Outra coisa que nao podemos esquecer, já que estamos tratando com mensagens da classe do tipo DEBUG devemos estar com o lvl de logging trace no nosso integration server “3”.

Ocorrendo tudo bem a mensagem que deseja utilizar como debug do processo aparecera da seguinte maneira:

<Trace level="3" type="T">Add raw attribute [ xmlns:ns0="urn:com.easy.cli"]</Trace>

<Trace level="3" type="T">Start tag [row]</Trace>

<Trace level="3" type="T">Debugging |Mapping: Trans Nome e Sobrenome 2 NomeCompleto | Value : Carlos Pereira;</Trace>

<Trace level="3" type="T">Start tag [NomeCompleto]</Trace>

<Trace level="3" type="T">Put value [Carlos Pereira]</Trace>

<Trace level="3" type="T">Close tag [NomeCompleto]</Trace>