on 12-16-2013 10:27 AM
Olá,
Estamos com o seguinte problema no envio de mensagem NFe para nosso sistema de EDI a partir do GRC. Usamos o cenário CS_NFE_NTB2B_WebAS_Outbound_B2B_NFe_v10 no nosso ambiente PI. Se baixamos o XML a partir do monitor do GRC manualmente a estrutura do XML está correta. Porém se as mensagens são enviadas pelo GRC para nosso sistema de EDI, a estrutura fica diferente, conforme
exemplo no arquivo em anexo. Segue também a configuração do mapeamento em anexo.
Temos alguns clientes que estão nos demeritando pelo envio do XML dessa maneira. Sendo assim, toda ajuda será bem vinda.
Muigo obrigada,
Lucimara
Bom dia Lucimara,
Tente usar o Operation Mapping NTB2B_procNFe_TO_procNFeNS.
Grato,
JN
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Lucimara,
Estou no SP15 do GRC e o resultado do Operation Mapping NTB2B_procNFe_TO_procNFeNS foi conforme esperado por você, ou seja, ele apenas remove o namespace xmlns:asx="http://www.sap.com/abapxml" e remove o prefixo do namespace http://www.portalfiscal.inf.br/nfe.
Meu exemplo:
Do lado esquerdo é o XML que vem do Proxy. Do lado direito, após o operation mapping NTB2B_procNFe_TO_procNFeNS.
Conforme imagem, ele gera as tags nfeProc e NFe conforme a sua solicitação. O que fica sem namespace é a tag protNFe. Teoricamente, as tags NFe e protNFe por estarem sob a tag nfeProc, elas assumem o namespace do pai, não tendo necessidade de repetir essa informação.
Caso você precise adicionar o namespace a tag protNFe, sugiro copiar a classe ProxyNamespaceCleanerNFE.java (que está dentro do Imported Archive usado no Operation Mapping NTB2B_procNFe_TO_procNFeNS) e após o trecho abaixo:
// check NFe tag declaration
String nfeTag = "<NFe>";
if (inStr.indexOf(nfeTag) > -1)
inStr = inStr.replaceAll(nfeTag, "<NFe xmlns=\"http://www.portalfiscal.inf.br/nfe\">");
Adicionar o seguinte trecho:
// JRSN - check protNFe tag declaration
String nfeProtTag = "<protNFe>";
if (inStr.indexOf(nfeProtTag) > -1)
inStr = inStr.replaceAll(nfeProtTag, "<protNFe xmlns=\"http://www.portalfiscal.inf.br/nfe\">");
[]'s
Jose Nunes,
Duvidas aqui, o fato de eu estar incluindo um namespace em uma tag não invalida a assinatura digital ?
Caso não invalide não seria mais facil fazer XSLT ? É so criar no notepad e tals, java mapping teria que fazer no eclipse .. bom tudo isso você sabe até mais do que eu rsrsr...
Uma vez eu fiz a mudança de valor de um atributo de uma tag de 2.00 paara 2.01 com xslt e não invalidou, postei nessa thread:
http://scn.sap.com/thread/3389018
Valeuuuu
Abra's
Bom dia Ricardo,
Só teria problema se alterassemos o XML a partir da tag infNFe, que foi assinada. A tag protNFe foi anexada ao XML e não faz parte da assinatura original (senão vc teria que assinar já sabendo exatamente o conteúdo da tag protNFe).
Quanto a fazer usando XSLT, vai do desenvolvedor. Eu confesso que prefiro desenvolver usando Java do que XSLT mas num caso onde não se tenha a IDE e tenha pressa, é mais fácil ir pelo XSLT mesmo.
[]'s
Ola Lucimara,
Na realidade eu acho q seu xml não deve estar com 'problema', se vc colocar no validador da sefaz creio eu que ele esteja OK, oq deve aconter foi oq aconteceu comigo, alguns clientes tinham algum sistema que validava essa tag, coisa que o validador da sefaz não valida.
No meu caso, eu fiz um Message mapping ajustando essa tag, fazendo um replace e jogando esse name space. nessa tag!
at
Felipe Martin
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Lucimara,
A minha solução aqui é um pouco diferente , pois no meu operation mapping vem do proxy como citado pelo jose, mas eu envio para NTB2B_Mail_IB que usa external message 'MAIL'.
Nele eu usei um MM gráfico, pois esse external message recebe um xml em uma string inteira.
O que você pode fazer no seu caso, é criar um javamapping , acho q usando como base esse que já esta configurado no seu operation, a única coisa nesse java seria fazer um replace da tag
<NFe>
para
<NFe xmlns: 'http://www.por........ >
Ai você subia esse javamapping e colocava abaixo do que já tem no se Operation mapping.
Creio que pode funcionar dessa forma! seria parecido com esse que eu fiz mas que foi em MM gráfico.
at
Felipe Martin
Maria,
Apenas complementando o que o Felipe Martin disse.
Existe um schema divulgado para SAP que basicamente é a estrutura do adaptador de e-mail, MAIL, desde a versão PI 7.0 sempre fiz mapeamento de B2B de NTB2B para XIMail30 e nunca ocorreu esse problema de namespace.
Olha abaixo uma wiki que fiz com o código totalmenta aberto para b2b:
http://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=315524420
Espero que ajuda.
Abraçs,
Ricardo Viana.
User | Count |
---|---|
14 | |
4 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.