cancel
Showing results for 
Search instead for 
Did you mean: 

Envio de XML para cliente sem CNPJ

cristiano_santos
Participant
0 Kudos

Bom dia,

No GRC NFE 10.0, durante a implementação do cenário B2B de saída, o cliente aproveitou o cenário NTB2B para enviar o XML para um transportador próprio, que foi cadastrado como Business Partner e incluído no cenário.

Nosso problema agora é que o xml não é enviado para clientes do exterior, que não possuem CNPJ em seu cadastro. Para o cenário NTB2B ser executado o cnpj precisa estar cadastrado no customizing do GRC. Eu pensei em forçar um cnpj generico na BADI ENRICH_XML_DATA, mas isso seria POG porque no ambiente produtivo o cnpj vai ser validado, e acredito que comparado com a tag de UF é enviada como EX quando é nota de exportação.

Minha pergunta é a seguinte: como o cenário ntb2b é iniciado? Estou pensando em criar uma copia dele e alterar a parte que verifica se o cnpj existe na tabela /xnfe/tb2b, quando descobrir o ponto onde isso é verificado.

Obrigado.

Accepted Solutions (1)

Accepted Solutions (1)

henrique_pinto
Active Contributor
0 Kudos

Por que vc deveria enviar a NFe a um cliente de fora? Eles nao tem resposabilidade legal de ter que armazenar XMLs de NFe, nem mesmo de escriturar. Isso só se aplica a clientes brasileiros.

Em teoria, se o CNPJ do transportador está na tag <transporta> e está também cadastrado na /XNFE/TB2B, o GRC deveria enviar o XML. No NFE 10.0, ele faz o envio de cliente e transportador separado.

cristiano_santos
Participant
0 Kudos

Oi Henrique,

o processo funciona assim: o transportador é próprio e não está no SAP, logo seu cnpj nunca está no xml na tag <transporta>. A interface NTB2B foi "reaproveitada" para enviar o xml para essa transportadora via AS2. O problema com clientes do exterior é que como eles não tem cnpj/cpf a interface NTB2B não é executada, e esse transportador não recebe o xml.

Pensei em adicionar o cnpj da transportadora via badi do grc, porém este ficaria sujeito à validação da sefaz. O que estou tentando no momento é alterar no grc os programas que fazem b2b no momento da seleção na tabela /XNFE/TB2B.

Obrigado!

henrique_pinto
Active Contributor
0 Kudos

Outra alternativa é rodar um job Z para enviar o XML especificamente para essa transportadora.

Basta vc definir o receiver no codigo do ABAP Proxy, daí ele já chega determinado no PI.

bruno_renzo
Employee
Employee
0 Kudos

Olá,

Só pra vocês ficarem sabendo, no próximo SP da NF-e 10.0 (o SP11), vamos possibilitar disparar o B2B mesmo se o CNPJ não estiver configurado na tabela, através de um registro em branco.

Mais informações quando a solução estiver pronta.

Abs

cristiano_santos
Participant
0 Kudos

Obrigado Henrique e Bruno, vamos testar alterar o ABAP Proxy.

cristiano_santos
Participant
0 Kudos

Henrique, tem algum wiki para essa alteração de abap proxy e chama-lo em um job z? Ainda estou tentando dominar o uso de abap proxy.

Como será um job que será chamado com uma frequencia definida, vou ter que preencher o payload com os dados do xml. O abap proxy consegue resgatar o xml gerado para envio à sefaz ou terei que refazer o mapeamento?

Se terei que chamar a interface com o receiver determinado, no lado do PI vou ter que criar outro cenário para atender a execução da interface ja com o receiver preenchido?

Obrigado.

henrique_pinto
Active Contributor
0 Kudos

Cristiano,

a idéia é que o job substitua a função standard, certo?
Então o código de chamada do Proxy seria similar ao que vc encontra na função standard /XNFE/SEND_NFE_B2B (chamando a FM /XNFE/006_OUTBOUND_B2B_NFE) ou /XNFE/006_OUTBOUND_B2B_CANCEL).

Veja a maneira que codigo standard determina o serviço destino.

*     specify receiver

       CONCATENATE gc_cnpj iv_cnpj INTO receiver-service.   "fill service with 'CNPJ' + CNPJ No.

       APPEND receiver TO receivers.

       routing->set_receivers( receivers = receivers ).

cristiano_santos
Participant
0 Kudos

Oi Henrique,

chamar essa função funcionou! Mas alterar este trecho não. O XML está sendo enviado para os dois receivers, mas por hora está resolvido.

Obrigado.

henrique_pinto
Active Contributor
0 Kudos

Se vc tem um receiver determination criado no Integration Configuration (Directory), então ele "sobreescreve" o que vem determinado do código abap do proxy.

Answers (0)