cancel
Showing results for 
Search instead for 
Did you mean: 

Erro Interface B2B

Former Member
0 Kudos

Bom dia pessoal,

estou com um problema na interface B2B. É o seguinte, desenvolvi a interface segundo o material disponibilizado pelo Sr.Henrique Pinto no qual obtive sucesso no envio quando atribuido um email de destino fixo no canal de comunicação NTB2B_WebAS_Outbound_B2B_NFe.

Apos isso parti para a solução de buscar no ERP o email no cadastro do cliente onde desenvolvi no mapping uma função UDF para acessar o ERP atraves de uma RFC.

Testando o mapping verifiquei que está se conectando no ERP atraves de um DO infinito na RFC porem não está levando as informações preenchidas no mapping nem mesmo retornando informação alguma.

Está retornando apenas o erro de RFC Lookup:

RFC Lookup Failed: java.lang.NullPointerException

Runtime exception during processing target field mapping /ns0:procNFe/ns0:CNPJRec. The message is: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._MM_SEND_MAIL_ method retrieveMailAdress$[12234456000120, BS_GD9CLNT503, CC_RFCMAIL_RCV

Alguem ja desenvolveu essa interface e poderia dar uma sugestão do que pode estar acontecendo?

Obrigado.

Rodrigo

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Boa tarde

Rodrigo na depuração da RFC disparada pelo Mapping no seu ERP vc verificou se o parametro CNPJ esta conseguindo recuperar o valor informado pelo Mapping UDF ?

Caso não ...(o parametro cnpj esteja em branco dentro da RFC ) verifique se voce não esta tendo um conflito de tipo de dados...!!

possivelmente um dos erros pode ser causado por isso...!

henrique_pinto
Active Contributor
0 Kudos

Faça o seguinte.

Pegue um XML qualquer de saída (os salvos no GRC, vá no monitor de NFe de saída, pegue uma NFe autorizada e baixe o XML de autorização de emissão pela tela de detalhes) e salve localmente.

Abra pelo notepad, e faça um replace dos seguintes caracteres:

<  por  &lt_;
>  por  &gt_;

(sem os underlines!! tive q por pra aparecer)

Dê um ctrla ctrlc (pra copiar todo o conteúdo do notepad) e cole como conteúdo do campo dentro da aba de teste do seu interface mapping.

Abs,

Henrique.

Former Member
0 Kudos

Boa tarde,

entao, peguei o payload da interface B2B de um nota enviada cujo cliente configurei na SPRO e testei pelo IM.

Criei um loop infinito na RFC no R3 para pegar via SM50 onde pude notar que realmente o problema é que o CNPJ não está chegando ate ela.

O roteamento da interface está OK pois agora está retornando o preenchimento no TARGET corretamente.

O problema é que o valor do CNPJ preenchido no teste nao está chegando na RFC que tambem forçando um email no campo de retorno da RFC não está fazendo com que seja enviado o XML.

Alguem teria uma dica do que está acontecendo?

Obrigado.

Rodrigo

Former Member
0 Kudos

Boa tarde a todos,

O problema abaixo foi parcialmente resolvido pois havia uma parametro errado na função UDF.

Porem executando a interface no processo como um todo ela não está funcionando e retornando o seguinte erro na Monitor:

INTERFACE_REGISTRATION_ERROR

No implementing class registered for the interface (ABAP interface, request message NTB2B_procNFe_IB, request message, namespace http://sap.com/xi/NFE/005a).

Pelo que entendi ela está se referindo a uma classe que nao foi desenvolvida. Porventura seria algo como aplicação de uma nota?

Obrigado.

henrique_pinto
Active Contributor
0 Kudos

Esse erro em geral ocorre qdo a SPROXY nao consegue se conectar ao Integration Repository.

Verifique as conexoes/RFC Destinations.

Um refresh de cache tb ajudaria.

Abs,

Henrique.

Former Member
0 Kudos

Boa tarde Henrique,

a hipotese de nao se conectar ao Integration Repository podemos descartar pois todas as interfaces envolvidas no processo de envio de NF-e estao funcionando.

Esse erro que está na Monitor sobre a classe NTB2B_procNFe_IB, verificando na Sproxy, nao existe uma classe de implementação para esse abap proxy apenas tem a de outubound NTB2B_procNFe_OB.

Isso esta correto?

Abs.

Rodrigo

henrique_pinto
Active Contributor
0 Kudos

Ops, mas é claro.

Comi bola, nao prestei atencao 100%.

Para o contexto de XI, Inbound é o que sai e Outbound é que entra (pq a nomenclatura é application-centric e não middleware-centric).

Abs,

Henrique.

Former Member
0 Kudos

Ok Henrique,

bem, fiz testes no Interface Mapping; OK, testes de conexão com o R3; OK, revisei a documentação; OK.

Fiz o processo de envio de uma NF-e onde todas as interfaces funcionaram perfeitamente, sinal que o ambiente está OK tb, porem a B2B não funcionou nem a ponto de enviar para um administrador em caso de erros conforme sua documentação onde fixei o meu email.

Poderia ser algum problema de versão, atualizar algum patch, nota a ser aplicada?

Obrigado.

Former Member
0 Kudos

Ola,

esqueci de complementar; a msg de erro na Monitor:

java.io.IOException: no receiver address specified.

Abs.

henrique_pinto
Active Contributor
0 Kudos

Acho que o erro é devido ao fato de o campo dinamico nao ter sido preenchido (ou de o flag de ASMA nao ter sido usado no comm. channel).

Veja se usando um email estatico ele funciona. Se for, é erro de configuracao do processo dinamico, como falei.

Abs,

Henrique.

Former Member
0 Kudos

Ola Henrique,

entao, os flags foram marcados no ASMA conforme sua documentação. Acrescentei algumas mensagens na UDF para gerar no log o conteudo das variaveis instanciadas e estao sendo preenchidas; cnpj e email.

Qto ao envio com email estático está funcionando tambem.

Desculpe a insistencia mas essa nota nao teria algo a ver com esse problema pois trata-se do mesmo erro...

Obrigado.

henrique_pinto
Active Contributor
0 Kudos

Acredito que nao, pois o erro acontece sempre q vc nao tem email preenchido...

Henrique.

Former Member
0 Kudos

Rodrigo

Se no teste do interface Mapping funciona e na execução da Interface não funciona .:

isso indica que na execução da interface não esta sendo executado o mesmo Interface Mapping

A - Verifique se no seu Business service do Party NFE_B2B_Party, vc add o Message interface NTB2B_procNFe_IB a ele

B - Verifique o Interface determination... se está corretamente preenchido

caso queira visualizar ...se seu interface Mapping esta sendo realmente executado e qual valor esta pegando da RFC vai uma dica .: a carater de teste... imprima os valores dos parâmetros no Trace da UDF

EX

Você pode fazer isso add essas linha na UDF:

trace.addWarning("Valores de Parâmetros RFC" );

trace.addWarning(Key, email );

antes dessa linha "conf.put(key, email);"

Former Member
0 Kudos

Boa tarde Ronaldo,

Problema solucionado. Faltou mesmo informar o Message Interface IB ao Business Service e gerar novamente o Cenario.

Muito Obrigado pela sua ajuda.

Abraços

Answers (2)

Answers (2)

Former Member
0 Kudos

Bom dia,

encontrei uma nota; 895886 - XI 3.0 Mail adapter with property, onde menciona o erro no qual estou me deparando ao enviar emails dinamicos, a msg: "no receiver address specified", porem essa nota corresponde a versão 3.0 do XI e aqui estamos na versao 7.0

Haveria uma outra nota correspondente a esta versão pois não consegui encontrar.

Alguem teria uma dica?

Obrigado.

henrique_pinto
Active Contributor
0 Kudos

Vc esta testando o mapping na aba Test do Message Mapping?

Se sim, note que vc nao consegue testar Dynamic Configuration em Message Mappings na aba Test porque os objetos necessarios para o Dynamic Configuration e o RFC Lookup (o objeto container, em particular) só sao criados em runtime.

Tente ver se vc consegue testar pela aba Test do Interface Mapping, após associar o Message Mapping a ele.

Por lá ele já cria o container.

Ou simule a execucao da interface mesmo, através do Component Monitoring, no Runtime Workbench.

Abraços,

Henrique.

Former Member
0 Kudos

Boa tarde Henrique,

Estou testando pelo MM sim.

Testei pelo IM e agora nao ocorre esse erro porem outro:

Error during appliction Java mapping com/sap/xi/tf/_MM_SEND_MAIL_

com.sap.aii.utilxi.misc.api.BaseRuntimeException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XMLParser: No data allowed here: (hex) 54, 45, 53(:main:, row:1, col:3)

Esse erro XMLParser seria o fato de nao estar sendo preenchido em formato XML pois estou passando apenas o codigo do CNPJ; CNPJRec?

Obrigado.

Rodrigo

henrique_pinto
Active Contributor
0 Kudos

Provavelmente sim!

Vc tem q passar, no campo , o conteudo de um XML real de NFe, pois o que o codigo no artigo faz é buscar pelo valor do CNPJ de dentro do XML.

Se vc quiser testar sem a busca do valor do CNPJ, mude o codigo pra ler o valor direto e nao fazer parsing de XML.

Abs,

Henrique.

Former Member
0 Kudos

Então Henrique,

teste agora a interface NTB2B_procNFe_OB atraves da Sproxy passando um xml assinado.

Verifiquei na Monitor e aparece a msg como Scheduled.

Será que o problema seria no ambiente?

Abs.

henrique_pinto
Active Contributor
0 Kudos

Note que vc tem q usar um .

Mas q msg está scheduled? O teste da SPROXY q vc falou? Passou o receiver corretamente?

Verifique se as filas estao todas registradas.

Abs,

Henrique.

Former Member
0 Kudos

Bom dia Henrique,

desculpe mas nao estou entendo qto as informações que devo preencher no Source.

estou testando pelo MI NTB2B_procNFe_TO_procNFe onde preencho apenas o numero do CNPJ no campo CNPJRec e ao executar me retorna uma msg assim: "XML not well-formed".

Como devo preencher esse campo?

Obrigado.

henrique_pinto
Active Contributor
0 Kudos

Como falei, vc tem q por um conteudo XML válido no campo !

Só o CNPJRec nao resolve.

Henrique.