23 Replies Latest reply: Mar 1, 2012 11:01 AM by Henrique Pinto RSS

B2B Entrada

Rafael Da Silva
Currently Being Moderated

Bom dia.

 

Tomei como base o post do Henrique para configuração do Incoming B2B dinâmico.

Estou usando PI 7.1 e ainda na configuração da NFe versão 1.10.

A dúvida é, como não foi mencionado nada sobre o tratamento de XML em anexo, suponho que a solução descrita naquele material lida com o cenário mais comum, que é a NFe chegando como anexo.

 

Sendo assim, naquela configuração não precisamos fazer um switch entre os payloads (uma vez que o principal - MailMessage, se trata do corpo do email e o secundário - MailAttachment -1, trata-se do XML em si)?

 

Meu problema é que fiz a configuração de B2B de entrada de acordo com o material do Henrique, mas recebo o erro:

<SAP:Code area="IF_DETERMINATION">NO_IIF_CASE_ASYNC</SAP:Code>

<SAP:Stack>Unable to find an inbound interface</SAP:Stack>

 

Imagino que as regras definidas no Interface Determination estejam em conflito porque não foi feito o switch entre os payloads.

Sabem se é isso mesmo ou se pode ser outro problema?

 

Obrigado,

Rafael Vieira.

 

  • Re: B2B Entrada
    Henrique Pinto
    Currently Being Moderated

    Rafael,

     

    ele está dizendo que nao há interface assincrona configurada.

    Revise sua interface configuradas, pode ser q vc tenha posto como sincrona sem querer?

     

    Abs,

    Henrique.

     

    • Re: B2B Entrada
      Rafael Da Silva
      Currently Being Moderated

      Henrique,

       

      obrigado pela ajuda.

       

      Voce diz, ter configurado sem querer no CC?

      Pois o cenário é o standard do SLL-NFe, só as alterações descritas no documentos foram feitas, no ESR.

      No CC, está definido QoS Exactly Once.

       

      Another shot ?

       

      • Re: B2B Entrada
        Henrique Pinto
        Currently Being Moderated

        Oi Rafael,

         

        sim, se ele pede uma interface async, eh pq no CC estava configurado como async (i.e. EO).

        O que eu questionei é se na config (interface determination, receiver agreement etc) vc está apontando pra interface assincrona correta (NFB2B_enhProcNFe_IB e/ou CFB2B_enhProcCancNFe_IB)?

         

        Mas se vc rodou o wizard, provavelmente o que está acontecendo é que ele nao está encontrando nenhuma condicao que satisfaça, e daí nao acha nenhuma interface destino. Dê uma revisada nas conditions, pode ser isso.

        E o XML de input, vc testou com uma NFe valida? Tem que ser o .

         

        Abs,

        Henrique.

         

        • Re: B2B Entrada
          Cristian Garske
          Currently Being Moderated

          Rafael,

           

          Você pode fazer um teste no Interface Determination, retirando as condições inseridas para a Inbound Interface NFB2B_enhProcNFe_IB e enviar uma Nota Normal como anexo. (deixando as condições para a Inbound Interface CFB2B_enhProcCancNFe_IB).

           

          Caso esse teste funcione, você precisa rever as Conditions, e também verificar se o arquivo em anexo está realmente sendo lido, pois se ele não for aberto e lido, as conditions vão sempre falhar. Isso acontece para caso ao invés de abrir o arquivo em anexo, o Interface Determination está olhando para o Corpo do Email (para este caso, olhe as configurações do CC).

           

          Abs.,

           

          Cristian.

           

          • Re: B2B Entrada
            Rafael Da Silva
            Currently Being Moderated

            Henrique,

             

            entendi o que quis dizer.

            As configurações de Int.Determ. e os 2 Rec. Agreement estão certinhas.

            Foi feito pelo Wizard mesmo. As conditions estão exatamente como no documento:

             

            Para Op. Mapping NFB2B_procNFe_TO_enhProcNFe (SWCV standard SLL-NFE)

            Left Operand - XPath /p1:nfeProc

            Op. - EX

             

            Para Op. Mapping CFB2B_enhProcCancNFe_TO_enhProcCancNFe (SWCV Não standard ZSLL-NFE)

            Left operand - XPath /p1:procCancNFe

            Op. - EX

             

            O xml de input é valido sim. Pelo menos é o que consigo identificar visualmente.

            ...

             

            Só não entendi porque disse que deve ser o nfeProc.

            Também pode ser o procCancNFe, certo?

             

             

            Cristian,

            O teste não deveria ser o contrário?

            Retirar a condition da interface de cancelamento e manter a NFB2B, uma vez que o xml que está sendo enviado é o procNfe?

             

            O que estou imaginando é esta segunda hipótese que voce comentou, de estar sendo considerado o payload referente ao corpo do email (MailMessage) ao invés do segundo payload que é o XML da NFe (MailAttachment-1).

            Neste caso eu teria que adaptar o CC com um modulo de PayloadSwapBean rodando antes do modulo default de email, correto?

             

            É isso que estou questionando, pois parece que na solução que o Henrique postou, foi configurada a interface sem nenhum ajuste no adapter. Porque no meu caso deveria ter?

            E (já abusando) como eu consigo garantir qual é o payload que está sendo levado em consideração na execução?

             

            Obrigado pessoal.

            Rafael.

             

            Edited by: rvsilvax on Oct 8, 2010 7:50 PM

             

            • Re: B2B Entrada
              Jose Nunes
              Currently Being Moderated

              Rafael,

               

              o que aparece na SXI_MONITOR?

               

              Deveria aparecer, por exemplo, o Main Message (Corpo do e-mail) e o Attachment-1 (NF-e). No caso, ao utilizar o PayloadSwapBean, isso deveria aparecer invertido.

               

              []'s

              • Re: B2B Entrada
                Rafael Da Silva
                Currently Being Moderated

                José,

                 

                na SXMB_MONI aparece exatamente isso, e nesta ordem.

                MailMessage (que inclusive não abre no monitor, por se tratar do corpo do email. Mas pode-se salvar local e abrir, e de fato é o corpo do email).

                MailAttachment-1 (text/xml;name="Texte.xml").

                 

                Isso quer dizer que o payload considerado é sempre o primeiro (o de cima)?

                 

                Tentei de várias formas configurar o cc com PayloadSwapBean, mas não vejo a ordem destes 2 payloads se alterando.

                E o erro, para todas as tentativas com o PayloadSwapBean foi o mesmo

                <SAP:Code area="IF_DETERMINATION">NO_IIF_CASE_ASYNC</SAP:Code>

                <SAP:Stack>Unable to find an inbound interface</SAP:Stack>

                 

                Configuracao do CC

                localejb/AF_Modules/PayloadSwapBean

                Module Key - TRANSFORM

                 

                Module Configuration

                TRANSFORM    swap.keyName     Content-Description

                TRANSFORM    swap.keyName     Content-Disposition

                TRANSFORM    swap.keyValue     MailAttachment-1

                TRANSFORM    swap.keyValue     attachment;filename="MailAttachment-1.xml" OU com filename="Teste.xml"

                 

                Tentei também apenas com

                TRANSFORM    swap.keyName     payload-name     cid:payload-73a15d64d30011dfbb91000b5de00622ATsap.com (payload referente ao attachment).

                 

                Alguma dica?

                 

                • Re: B2B Entrada
                  Cristian Garske
                  Currently Being Moderated

                  Rafael,

                   

                  A minha sugestão para você testar é retirando as conditions da NFB2B é para justamente testar se ela vai funcionar independente da situação.

                   

                  Em relação a configuração do CC, você manteve o módulo "localejbs/sap.com/com.sap.aii.adapter.mail.app/XIMailAdapterBean" após o módulo AF_Modules/PayloadSwapBean ?

                   

                  Outra coisa, não sei se pode ser isso, mas a ordem no Module Configuration está um pouco diferente, segue como está aqui no meu CC:

                   

                  TRANSFORM swap.keyName Content-Disposition

                  TRANSFORM swap.keyName Content-Description

                  TRANSFORM swap.keyValue attachment;filename='MailAttachment-1.xml"

                  TRANSFORM swap.keyValue MailAttachment-1

                   

                  Outro pequeno detalhe, no seu caso, você está usando o símbolo " após filename=  , tente usar o símbolo '  ou apenas copie e cole do que digitei a cima.

                   

                  Abraços,

                  Cristian.

                   

                  • Re: B2B Entrada
                    Rafael Da Silva
                    Currently Being Moderated

                    Pessoal, obrigado pela ajuda.

                     

                    Jose, já tinha visto estas threads que vc sugeriu.

                    Esta thread me ajudou bastante

                     

                    e segui a HowTo do XI 3, usando swap.keyName payload-name e swap.keyValue MailAttachment-1.

                     

                    Cristian, tinha tentado usar como vc sugeriu (copiando e colando). Vc colocou aspas simples no começo e aspas duplas no final. É isso mesmo?

                    Ainda assim, tentei das 2 formas e não rolou, sempre o mesmo erro.

                     

                    Confesso que tentei tudo que está sendo sugerido nestes posts, e hoje fiz um teste com sucesso (gravou um registro no B2B Incoming no monitor do GRC) mas rodando o swap e tirando as conditions.

                    Deixei apenas a interface NFB2B (assim como na configuração default, pelo wizard), sem nenhuma condition. Executando pelo CC, pra buscar o email no servidor de emails e processar, funcionou direitinho.

                    Com isso, concluo ao menos que o xml é válido. Criei as conditions denovo, e voltou a dar pau:

                     

                      <SAP:Code area="IF_DETERMINATION">NO_IIF_CASE_ASYNC</SAP:Code>

                      <SAP:AdditionalText />

                      <SAP:Stack>Unable to find an inbound interface</SAP:Stack>

                     

                    Tentei executar através do Test Message, jogando o xml da nota no campo de payload, e recebo o mesmo erro de volta.

                    Alguém sabe o que pode ser ?

                     

                    Obrigado novamente.

                     

                    • Re: B2B Entrada
                      Henrique Pinto
                      Currently Being Moderated

                      Rafael,

                       

                      entao logo se conclui que as conditions que estão sendo setadas erradas, correto?

                      Descreva o procedimento que vc está usando pra definir as condicoes, e cole aqui como fica ele mostra a condition no condition editor.

                       

                      Abs,

                      Henrique.

                       

                      • Re: B2B Entrada
                        Rafael Da Silva
                        Currently Being Moderated

                        As conditions estão sendo criadas rigorosamente de acordo com o documento.

                        Interface Determination:

                         

                        Linha default - Oper. Mapping NFB2B_procNFe_TO_enhProcNFe

                        Click no match code da coluna Condition (que está inicialmente em branco)

                        Left Operand, marco XPath e coloco o /p1:nfeProc (type xsd string e Multiline marcados por default) e OK.

                        Coluna Op. escolho EX

                         

                        Segunda linha - Oper. Mapping CFB2B_enhProcCancNFe_TO_enhProcCancNFe (do SWCV custom)

                        A mesma coisa, porém com a XPath /p1:procCancNFe.

                         

                        Criado um Receiver Agreement com base no default criado durante o wizard, para interface receiver CFB2B_enhProcCancNFe_IB.

                         

                        Porém (PI 7.1), tentando cria-la como cópia da default, na tela Copy Receiver Agreement, ao clicar no match code do campo Interface (para escolher a CFB2B_enhProcCancNFe_IB) não me traz nenhuma interface para escolher.

                        Insiro os valores manualmente

                        CFB2B_enhProcCancNFe_IB

                        Comm. Componnet (Business System do GRC)

                        Namespace.

                        Depois de criado, a única diferença entre os 2 Rec. Agreements é, alem do nome das interfaces, o campo Software Component Version of Receiver Interface, que na default vem o próprio SAP-SLL NFE 1.0, e na cópia fica em branco.

                         

                        Edited by: rvsilvax on Oct 13, 2010 9:05 PM

                         

                        • Re: B2B Entrada
                          Cristian Garske
                          Currently Being Moderated

                          Rafael,

                           

                          Mais uma coisa, verifica na primeira tela "Condition Editor", onde você entra para inserir as Conditions, se na tabela que existe quase no rodapé, existe o Prefix p1 inserido com o Namespace = http://www.portalfiscal.inf.br/nfe

                           

                          Abs.,

                          Cristian.

                           

                          • Re: B2B Entrada
                            Rafael Da Silva
                            Currently Being Moderated

                            Cristian,

                             

                            pras duas conditions, estas tabelas que vc comentou estão vazias.

                            Nenhum prefixo.

                             

                            • Re: B2B Entrada
                              Cristian Garske
                              Currently Being Moderated

                              Rafael, tente adicionar e testar novamente.

                               

                              Acredito que quando adicionar para uma, já vai automaticamente para a outra.

                               

                              Abs.,

                              Cristian.

                               

                              • Re: B2B Entrada
                                Rafael Da Silva
                                Currently Being Moderated

                                Xeque-mate!

                                Após esta alteração (de incluir o prefixo na tabela de prefixos, durante a criação da condition) o prefixo foi replicado para a segunda condition.

                                Após isso, executei um teste e funcionou tudo, routing, etc.

                                 

                                Só pra registrar, fiz uns testes a mais aqui alterando as configurações de swap do adapter, e volta a dar o mesmo erro:

                                *<SAP:Code area="IF_DETERMINATION">NO_IIF_CASE_ASYNC</SAP:Code>

                                <SAP:Stack>Unable to find an inbound interface</SAP:Stack> *

                                 

                                Então acredito que seja um par de configurações necessárias.

                                Não tenho certeza sobre a alteração do PayloadSwapBean sobre visualizar a alteração na SXI_MONITOR.

                                 

                                Configurando o módulo para fazer o swap do payload ou não configurando, no monitor (em Inbound Message (CENTRAL) > Payloads) a ordem de exibição dos payloads continua a mesma:

                                MailMessage

                                MailAttachment-1

                                MailAttachment-X.

                                Não sei onde verificar para garantir que o swap foi efetivamente feito ou não.

                                Só posso dizer que com a configuração feita, funciona. Sem ela, torna a dar erro.

                                 

                                Valeu Cristian.

                                Obrigado a todos.

                                 

                                • Re: B2B Entrada
                                  Henrique Pinto
                                  Currently Being Moderated

                                  Rafael,

                                   

                                  o problema é tratar em um unico comm channel emails com e sem corpo de email (i.e. onde o XML seja ou nao seja o main payload).

                                   

                                  Faça mais alguns testes pra garantir.

                                   

                                  Abs,

                                  Henrique.

                                   

                                  • Re: B2B Entrada
                                    Rafael Da Silva
                                    Currently Being Moderated

                                    Henrique,

                                     

                                    acontece que no caso deste cliente o xml está sendo enviado sempre como anexo.

                                    Mas, no caso de o xml vir no corpo do email, deve ser considerado o payload principal (até porque não vai ter um secundário). Neste caso, vc está tratando de alguma forma específica?

                                     

                                    Obrigado,

                                    Rafael.

                                     

                                    • Re: B2B Entrada
                                      Henrique Pinto
                                      Currently Being Moderated

                                      Mesmo que venha como anexo, ele pode ser o main payload, se o corpo estiver completamente vazio (depende de como está o content disposition da mensagem MIME).

                                       

                                      Eu nao trato de nenhuma maneira.

                                      Só acho estranho vc precisar do PayloadSwapBean para 100% dos casos.

                                      Pode ser algo específico do seu servidor de emails.

                                       

                                      Vamos esperar o pessoal se pronunciar.

                                       

                                      Abs,

                                      Henrique.

                                       

                                      • Re: B2B Entrada
                                        Rafael Da Silva
                                        Currently Being Moderated

                                        Entendi.

                                        Eu perguntei como você trata, no sentido de saber como você está mais habituado em ver nos cenários inbound de NFe.

                                        Como nunca configurei esta interface, não sei como o pessoal costuma fazer, ou se tem alguma configuração mais utilizada já pra cobrir estes eventuais problemas, 2 comm. channels, 2 contas de email distintas pra NFe e Canc.

                                         

                                        Como você tinha comentado sobre o caso de o corpo do email vindo em branco e o PI assumir o anexo como main payload, fiz um teste e mesmo assim não funcionou, ou seja, assumiu o corpo do email como o payload MailMessage e o anexo como MailAttachment -1.

                                        O MailMessage não abre no monitor, tem que salvar num diretório local e abrir com algo pra visualizar (abri no IE). Ele grava um pequeno HTML de uma página em branco. Talvez seja esta particularidade que vc comentou sobre a conta de email utilizada.

                                         

                                        Aparentemente vou ter que usar o PayloadSwapBean pra todos os casos, só vou ter que refinar agora para buscar pelos atributos de MIME, pois pelo payload-name fatalmente vai dar erro (basta os anexos estarem em ordem invertida).

                                        =/

                                         

                                        • Re: B2B Entrada
                                          Henrique Pinto
                                          Currently Being Moderated

                                          Na maioria dos casos que vi, o PayloadSwapBean nao foi necessário.

                                           

                                          Com relacao ao tratament, De fato, sempre vao haver casos em que vc nao conseguirá tratar só com os modules standard.

                                          Vc pode tb desenvolver seu proprio module, que buscaria pelo .xml, poderia até validar se é uma NFe valida, e daí jogaria esse .xml como main payload.

                                           

                                          Abs,

                                          Henrique.

                                           

                            • Re: B2B Entrada
                              Henrique Pinto
                              Currently Being Moderated

                              Rafael,

                               

                              o problema está aí.

                              Em printscreen nao dá pra mostrar procedimento, só resultado.

                              A sugestao é, quando vc fizer isso, selecionar a tag na estrutura e nao digiar o XPath manualmente.

                              Selecionando, ele adiciona automaticamente os prefixos e namespaces corretos.

                               

                              Pra poder selecionar, o Product "SAP NOTA FISCAL ELECTRONICA" e o Software Component "SLL-NFE" tem que estar adicionados ao seu Business System do GRC, no SLD.

                               

                              Abs,

                              Henrique.

                               

                • Re: B2B Entrada
                  Jose Nunes
                  Currently Being Moderated

                  Rafael,

                   

                  Só pra complementar mais um pouco:

                   

                   

                  http://help.sap.com/saphelp_nwpi71/helpdata/en/2e/bf37423cf7ab04e10000000a1550b0/frameset.htm

                   

                  Outro ponto:

                   

                  Se não me engano, no RWB -> Component Monitoring -> Adapter Engine -> Communication Channel Monitoring, você consegue ver o trace do Adapter Module. Depois dá uma olhada nele.

                   

                  PS: Não lembro exatamente se o caminho é esse no 7.1

                   

                  []'s

                   

                  Edited by: Jose Nunes on Oct 8, 2010 3:49 PM

                   

            • Re: B2B Entrada
              Henrique Pinto
              Currently Being Moderated

              Rafael,

               

              eu tinha falado que tinha que ser o  tb, claro.

               

              O teste que o Cristian sugeriu faz sentido. Se for problema da condicao, ao tirar a condicao da interface NFB2B, vc garante que ela será executada independente da situacao.

               

              E pra vc ver se o XML está de fato indo no payload, basta olhar qual o main payload da msg na SXMB_MONI.

              Se tiver realmente indo errado, vc precisa usar o PayloadSwapBean para trocar.

              Isso varia muito de acordo com o client de email usado, dependendo do content type que ele seta, vc pode ter um ou outro payload.

               

              Ainda, o corpo do texto veio com algo escrito? No meu caso, vinha vazio, por isso o anexo era considerado o main payload automaticamente. No seu caso, se vier texto no corpo do email, pode ser necessário o uso do PayloadSwapBean para forçar isso.

               

              Outra coisa, só por desencargo de consciencia, sete o parametro IMail.AssumeXMLContent no sender Mail adapter.

              Detalhes: http://help.sap.com/saphelp_nw70/helpdata/en/23/c093409c663228e10000000a1550b0/frameset.htm

               

              Abs,

              Henrique.

               

Actions