Skip to Content

Download do XML NFe por programa abap para envio por EDI

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

Add a comment
10|10000 characters needed characters exceeded

Related questions

4 Answers

  • Best Answer
    author's profile photo Former Member
    Former Member
    Posted on May 17, 2012 at 01:56 PM

    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

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on May 17, 2012 at 03:10 AM

    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.

    Add a comment
    10|10000 characters needed characters exceeded

    • 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

  • author's profile photo Former Member
    Former Member
    Posted on May 17, 2012 at 02:05 PM

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

    Grato

    Eduardo Chagas

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on May 17, 2012 at 02:15 PM

    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

    Add a comment
    10|10000 characters needed characters exceeded

    • 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

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.