on 07-02-2013 3:01 PM
Olá!
Estamos tentando fazer o envio de NFes para as transportadoras via e-mail.
Os cenários B2B estão configurados e funcionando para o recebedor/comprador conforme o wiki:
SAP GRC NFE 10.0 - Outbound B2B ( XML + Corpo de texto) dinâmico
Porém, esse wiki não cobre o envio para as transportadoras.
Vimos algumas soluções aqui no SCN, tais como:
Two proxy messages (Interface NTB2B_procNFe_OB) for single NFE
Dynamic E-mail Determination Using New Features from SAP GRC NFE 10.0 and PI 7.1 Onwards
Mas são para o PI 7.1 pra cima, que já possuem a nova API de Mapping. A nossa versão é a 7.0.
A nossa dúvida é: se seguirmos a linha da implementação da BAdI, como recuperar o Communication Parameter (EV_COMMPARAM) no PI 7.0 e enviá-lo de alguma maneira para o Java Mapping?
Caso a implementação da BAdI não seja possível ou a melhor solução, alguma outra sugestão?!
Lembrando que estamos usando o Java Mapping para customização (assunto e texto) do e-mail.
Seguimos também uma sugestão de ler, na RFC chamada pelo Java Mapping, a tabela de histórico do B2B para saber se o envio do e-mail é para o recebedor/comprador (tipo 1) ou transportadora (tipo 3), porém depois de vários testes, percebemos que nem sempre o registro na tabela é inserido antes da execução do Java Mapping.
Podem nos ajudar?!
Nossa solução foi utilizar a determinação do receptor para determinar se a mensagem está sendo encaminhada para 'portador' ou 'Receiver ". Você vai notar que NFE 10.0 colocar o CNPJ de roteamento como parte de sua mensagem proxy de saída.
Se você olhar na mensagem "cabeçalho SOAP procuração NTB2B_procNFe_OB 'de saída, você vai ver o seguinte,
- <SAP:Receiver>
<SAP:Party Agency="" scheme="" />
<SAP:Service> CNPJzzzz </ SAP: Serviço>
<SAP:Interface Namespace="" />
</ SAP: Receiver>
<SAP: namespace interface = "*" </ SAP: interface>
</ SAP: Principal>
Onde CNPJzzzz poderia ser o transportador ou comprador. Uma vez que você conhece o id CNPJ para que as mensagens são enviadas, é muito simples de obter os ids e-mail para a transportadora.
Usamos determinação receptor para escrever o serviço do receptor para o parâmetro de configuração dinâmica. Em nosso mapeamento ABAP, fomos capazes de recuperar o parâmetro de configuração dinâmica e foi capaz de determinar se a mensagem é para o comprador ou transportador / expedidor.
Como resultado, nós podemos encaminhar corretamente as mensagens.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Oi Rodrigo
Favor encerrar a thread!
Grato
Eduardo Chagas
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Oi Rodrigo, tudo bem?
Estou em um cliente com o mesmo "problema" o PI está na versão 7.0, e os e-mails estão sendo duplicados, poderia compartilhar a solução mais detalhada que você utilizou? Obrigado.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Boa tarde pessoal!
Conseguimos resolver o problema com a ajuda do Krish Gopalan!
Utilizamos Enhanced Receiver Determination + UDF para determinar o e-mail do destinatário, seja ele recebedor/comprador ou transportadora...
No UDF, setamos a variável THeaderTO através de Dynamic Configuration com o e-mail que é retornado por uma RFC...
Obrigado pela ajuda a todos!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Olá Rodrigo,
É possível você compartilhar a sua solução?
Estou com a mesma dúvida de como utilizar o parâmetro EV_COMMPARAM na BADI para enviar o e-mail ao destinatário ou transportador.
Hoje mandamos o e-mail para os 2 juntos, mas como ele é processado 2 vezes, eles estão recebendo o email duplicado.
Muito obrigado.
Rodrigão,
O que você precisa fazer meu brother ?
Você querr apenas mandar o XML da nota para as transportadoras ou o CTE ?
Se for apenas o XML a minha solução atende mais você iria precisar fazer ajustes simples...
Att,
Ricardo Viana
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Oi Rodrigo
Veja o wiki abaixo para mapear para transportadoras.
http://wiki.sdn.sap.com/wiki/x/rIC6Cw
Abraço
Eduardo Chagas
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Oi Eduardo!
Já tinhamos visto esse wiki... Acontece que na nova versão, o cenário B2B é chamado duas vezes, uma para o comprador e outra para a transportadora, essa segunda chamada só ocorre de houver transportadora realmente.
Pelo que puder ver nesse wiki, o e-mail para o comprador e para transportadora é enviado ao mesmo tempo, no mesmo e-mail... E como o cenário é chamado duas vezes, o e-mail irá duplicado... Certo?
Dê uma olhada na nota...
https://service.sap.com/sap/support/notes/1525562
Aproveite e veja também as recentes notas liberadas no SP13 e 14:
https://service.sap.com/sap/support/notes/1784095
https://service.sap.com/sap/support/notes/1830672
Abraço
Eduardo Chagas
Não não... A transportadora está sim definida como um parceiro na NFe, não é o mesmo CNPJ do comprador e está com B2B cadastrado e ativo...
Já estamos no SP13... Quanto a primeira nota que você indicou, essa solução é para NFe 1.0, li que o B2B sofreu algumas alterações na 10.0. Essa nota referencia esse wiki que já tínhamos visto também:
NFE Outbound B2B - Sending the XML to Buyer and Carrier using Enhanced Receiver Determination
Mesmo sendo outra versão, esse wiki ainda atende?
Outro ponto, no monitor Web Dynpro do GRC, é possível enviar o XML tanto para o comprador/recebedor quanto para a transportadora, porém um de cada vez. O cenário utilizado é mesmo independente de quem seja o destinatário, só muda o parâmetro (IV_SCENARIO) passado para a BAdI /XNFE/EMAIL_B2B_OUT.
A dúvida é como recuperar o parâmetro de saída (EV_COMMPARAM) dessa BAdI e recuperá-lo no Java Mapping...
Determinação receptor estendida está disponível a partir de Apoio pack 7 para PI7.0.
Se você tiver o pacote de suporte mais recente, em seguida, usando a determinação Receiver estendida é a melhor opção.
Outra alternativa é escrever para tabelas de banco de dados (o que você estava tendo com falha). Tente usar bloqueios exclusivos feitos sob encomenda no id NFE (para ver se ele iria resolver o problema do banco de dados que você estava tendo com a RFC lookup).
User | Count |
---|---|
15 | |
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.