cancel
Showing results for 
Search instead for 
Did you mean: 

Download do XML NFe por programa abap para envio por EDI

former_member550977
Participant
0 Kudos

Boa noite a todos,

Novamente venho a este espaço para solicitar ajuda dos colegas.

Temos clientes do setor automotivo que nos solicitam que enviemos os arquivo XML da NFe pelo sistema de EDI e para isso faziamos download automatico do arquivo utilizando a função /XNFE/CORE_KPRO_XML_READ.

Acontece que ela depende de um campo que vem da tabela /XNFE/XML chamado DOCID e agora que estamos utilizando o

GRC 10, esse campo esta em branco, fazendo com que a função não traga mais nenhum conteúdo.

Já me sugeriram utilizar o campo /XNFE/XML-XMLSTRING, mas para isso são necessárias conversões.

Alguém sabe me dizer quais funções utilizar para, utilizando o campo /XNFE/XML-XMLSTRING, eu conseguir gerar fisicamento o arquivo XML?

Agradeço antecipadamente pela ajuda.

Helio Camargo

ZF do Brasil

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Solucao é usar a funçao abaixo para notas criadas após migração:

CALL FUNCTION '/XNFE/XML_XSTRING2STRING'

EXPORTING

INXSTRING = CAMPO_XMLSTRING

IMPORTING

OUTSTRING = XML_GERA.

Coloca no codigo algo do tipo: se DOCID estiver preenchido, busca da KRPO, senao, busca pela função acima.

obs.: Se quiser pode acdicionar o seguinte codigo ao XML gerado pela função (pois nao vem via standard):

CONCATENATE '<?xml version="1.0" encoding="UTF-8"?>' XML_GERA INTO XML_GERA.

At.,

Bernardo Braga

former_member550977
Participant
0 Kudos

Obrigado Bruno,

vou testar e respondo neste espaço.

Helio

former_member550977
Participant
0 Kudos

Bruno,

Voce é genio.

Alterei meu programa colocando exatamente como voce menciona acima (incluindo o concatenate no final),  testei e já funcionou.

Inclusive validei a estrutura do arquivo no site da Sefaz RS e esta OK.

Muitissimo obrigado

Helio

former_member550977
Participant
0 Kudos

A Cesar o que é de Cesar,

Bernardo, voce é genio.

At.

Helio

Former Member
0 Kudos

kkk..nada....Gênio é quem resolver meu problema de B2B nessa thread...rsrsrs:

http://scn.sap.com/thread/3176961

At.,

Bernardo Braga

Former Member
0 Kudos

Bernardo, bom dia.

O que eu devo passar no campo CAMPO_XMLSTRING? A chave da nota de 44 caracteres?

Grato.

Answers (3)

Answers (3)

former_member182114
Active Contributor
0 Kudos

Bom dia Helio,

Dê uma olhada na função /XNFE/READ_XML, ela faz a lógica de tratar KPro ou tabela e te responde com o XML.

Atenciosamente, Fernando Da Ros

Former Member
0 Kudos

Vou testar essa tambem. Ainda estamos em fase de teste da migração. A função que testei acima aparentemente funcionou.

At.,

Bernardo Braga

former_member550977
Participant
0 Kudos

Bom dia Fernando,

OK, vou verificar essa função também.

Helio

Former Member
0 Kudos

Para informação... aqui configuramos o cenário de B2B para salvar o XML numa pasta ftp... o arquivo é então enviado para uma VAN que administra a comunicação com os parceiros. É tudo automático sem nenhum desenvolvimento.

abraço

Eduardo Chagas

Former Member
0 Kudos

Desculpem a minha ignorância em PI! Mas não é possivel fazer essa configuração no mesmo? Digo ter um receiver determination para cada parceiro e por sua vez um communication channel definindo o protocolo de comunicação? Entendo que seria uma manutenção complexa, digamos assim!

Mas não é possível fazer isso?

Abraço

Eduardo Chagas

former_member550977
Participant
0 Kudos

Eduardo,

sinceramente não sei te dizer.

Essa possbilidade nunca nos foi mencionada e eu nunca tive tempo para pesquisar com outras empresas se existe alguma alternativa ao que fazemos.

A maneira como voce faz é interessante, mas faria aumentar nossos custos com a nossa VAN, que nos cobra por nota transmitida.

Abraço

Helio

Former Member
0 Kudos

Curiosidade... por que não tratam diretamente no PI para salvar o arquivo XML em uma pasta na rede?

Grato

Eduardo Chagas

Former Member
0 Kudos

No meu caso é uma função que é chamada no SAP ECC para retornar o XML. Ainda estamos em fase de teste.

Former Member
0 Kudos

Oi Bernardo.

Neste caso o usuário baixa o XML e envia por email ou faz um upload para o parceiro?

Grato pela resposta!

abraço

Eduardo Chagas

former_member550977
Participant
0 Kudos

Olá Eduardo,

sua curiosidade procede.

Na realidade esses clientes que querem o arquivo fisicamente são minoria, 90% dos nossos arquivos são enviados automaticamente por e-mail.

Na época da implantação do GRC aqui fizemos esse questionamento à consultoria e nos foi dito que, pelo standard, não conseguiriamos segregar os clientes que iriam por e-mail e os que receberiam fisicamente, ou seja, no começo mandavamos e-mails e gravavamos fisicamente todos os arquivos, o que tornava a coisa meio complicada para separar somente os arquivos que nos interessavam.

A justificativa era que nosso cenario (4 SAPs ligados a um único GRC) não permitia essa segregação (quem recebe arquivo, quem recebe e-mail). Foi ai que decidimos que quem precisasse de arquivo por EDI faríamos o download por abap na impressão da nota e deixariamos o envio automatico somente para os que recebem por e-mail.

At.

Helio

Former Member
0 Kudos

Nós enviamos o XML por e-mail. Mas também disponibilizamos uma página para que os clientes cadastrados em um portal web da nossa empresa possam baixar também o XML.

At.,

Bernardo Braga

brunobex
Active Participant
0 Kudos

Olá Helio,

Pela informação que tenho as notas novas não são mais armazenadas no KPRO.

No GRC 10 existe a possibilidade de download em massa das NF-es.

Fiz um breve debug do standard, segue as informações para ajudá-lo:

1) Logue no servidor GRC.

2) Coloque um break-externo na função: /XNFE/OUTNFE_XML_MASS_DATA.

3) Clique no menu na primeira tela do SAP: User menu for SEU_USUARIO_SAP-->Administration-->Archiving-->Download Archived XML

4) Irá abrir o monitor Web (Download XML Files) no browser igual ao formato abaixo:

http://<servidor>:<porta>/sap/bc/webdynpro/xnfe/download_mass_xml?sap-language=EN

5) Nesse caso escolhi a opção: Outgoing NF-es.

6) Informe a data no filtro de seleção e clique no botão "Download XML Files".

7) Ao iniciar o debug, saia da função /XNFE/OUTNFE_XML_MASS_DATA que irá chamar o método PREPARE_OUTNFE_DOWNLOAD da classe /XNFE/CL_XML_MASS_DATA_ASSIST.

Analise o código standard, esse método adiciona vários XMLs encontrados em um .ZIP para download.

Att,

Bruno Xavier.

former_member550977
Participant
0 Kudos

Obrigado pela resposta Bruno,

Eu já conhecia esse esquema de download em massa.

O problema é que temos que gerar o arquivo individualmente no momento da impressão da Danfe e para isso tinhamos, dentro do programa de impressão, uma chamada para outro programa que fazia o download individual do arquivo para uma area share do servidor.

Essa automação não pode ser perdida pois são muitas notas diariamente e o arquivo não pode estar compactado.

Não sou especialista em abap mas, pelo que me disseram, essa string é o conteúdo do XML só que em formato hexadecimal e precisaria haver uma conversão.

Será que existe alguma função abap que faça esse conversão?

Já testei algumas funções como, por exemplo, a SCMS_STRING_TO_FTEXT e não funcionou.

Voce tem alguma dica?

Obrigado

Helio