Histórico da Página
...
- Ter os XMLs das notas fiscais armazenados nos diretórios padrão do produto, para as soluções padrão da TOTVS, que são TSS e Neogrid. Caso seja utilizado alguma outra solução para o envio das notas fiscais a SEFAZ ou caso utilize as soluções padrão com algum tipo de customização, ficará sob responsabilidade do cliente a construção de uma EPC para buscar os XMLs das notas fiscais. Para estes casos a TOTVS irá fornecer um modelo de EPC, caso o cliente queira desenvolver. Haverá ainda a possibilidade de contratação da nossa Fábrica de Software para construção da EPC.
Informações | ||
---|---|---|
| ||
Esta EPC deverá ser vinculada no programa "nota-fiscal_data" através da rotina "Manutenção de Programa - men\men012aa.r" do Foundation, campo "Programa UPC" conforme mostra a imagem abaixo: |
- Modelo EPC a ser utilizada de forma específica para busca de XML das Notas Fiscais Eletrônicas (clicar em "Expandir Origem")
Bloco de código | ||||
---|---|---|---|---|
| ||||
/*****************************************************************************************************
** OBJETIVO..: Retornar o conteúdo do arquivo XML de uma NF-e
**
** IMPORTANTE: o conteúdo deste programa não poderá ser alterado para manter
** seu correto funcionamento.
** O único ponto que deverá ser alterado pelo cliente é no que diz respeito à busca do
** arquivo XML da nota fiscal recebida através do buffer da temp-table tt-nota-fiscal
**
*****************************************************************************************************/
{include/i-epc200.i1 nota-fiscal_data}
DEFINE INPUT PARAMETER p-ind-event AS CHAR NO-UNDO.
DEFINE INPUT-OUTPUT PARAMETER TABLE FOR tt-epc.
DEFINE TEMP-TABLE tt-nota-fiscal NO-UNDO
FIELD nr-nota-fis AS CHARACTER
FIELD serie AS CHARACTER
FIELD cod-esp AS CHARACTER
FIELD nr-parcelas AS INTEGER
FIELD nr-fatura AS CHARACTER
FIELD dt-emis-nota AS DATE
FIELD cod-estabel AS CHARACTER
FIELD cod-empresa AS CHARACTER
FIELD ind-tip-nota AS CHARACTER
FIELD cod-chave-aces-nf-eletro AS CHARACTER
FIELD cod-emitente AS INTEGER
FIELD xml-nota-fiscal AS CLOB
FIELD dt-atualiza AS DATE
FIELD hr-atualiza AS CHARACTER
FIELD idi-sit-nf-eletro AS INTEGER.
DEFINE VARIABLE h-bf-tt-nota-fiscal AS HANDLE NO-UNDO.
DEFINE VARIABLE lXmlNfe AS LONGCHAR NO-UNDO.
DEFINE VARIABLE cArquivoXML AS CHARACTER NO-UNDO.
DEFINE VARIABLE c-cod-estabel LIKE nota-fiscal.cod-estabel NO-UNDO.
DEFINE VARIABLE c-serie LIKE nota-fiscal.serie NO-UNDO.
DEFINE VARIABLE c-nr-nota-fis LIKE nota-fiscal.nr-nota-fis NO-UNDO.
IF p-ind-event = "Retorna_Conteudo_XML" THEN DO:
FIND FIRST tt-epc
WHERE tt-epc.cod-event = p-ind-event
AND tt-epc.cod-parameter = "tt-nota-fiscal":U NO-LOCK NO-ERROR.
IF AVAIL tt-epc THEN DO:
ASSIGN h-bf-tt-nota-fiscal = WIDGET-HANDLE(tt-epc.val-parameter) NO-ERROR.
IF ERROR-STATUS:ERROR THEN
RETURN "OK":U.
IF VALID-HANDLE(h-bf-tt-nota-fiscal) THEN DO:
ASSIGN c-cod-estabel = h-bf-tt-nota-fiscal:BUFFER-FIELD("cod-estabel"):BUFFER-VALUE
c-serie = h-bf-tt-nota-fiscal:BUFFER-FIELD("serie"):BUFFER-VALUE
c-nr-nota-fis = h-bf-tt-nota-fiscal:BUFFER-FIELD("nr-nota-fis"):BUFFER-VALUE.
FOR FIRST nota-fiscal
WHERE nota-fiscal.cod-estabel = c-cod-estabel
AND nota-fiscal.serie = c-serie
AND nota-fiscal.nr-nota-fis = c-nr-nota-fis NO-LOCK:
/***************************************************************************************************************************
** BUSCA DO DIRETÓRIO + ARQUIVO XML REFERENTE À NOTA FISCAL
** ALTERAR SOMENTE NESTE BLOCO ENTRE OS COMENTÁRIOS
** Colocar aqui a lógica para localizar o XML da nota fiscal posicionada
** IMPORTANTE! A variável "cArquivoXML" deverá ser atualizada com o diretório + arquivo XML referente à nota fiscal
**
** Ex.: ASSIGN cArquivoXML = "\\servidor\diretorio\XML_NFe\311815320201214172138.xml".
**
**1) Exemplo de busca efetuada pelo TSS no produto padrão:
FOR FIRST param-nf-estab
WHERE param-nf-estab.cod-estabel = nota-fiscal.cod-estabel NO-LOCK:
ASSIGN c-cod-dir-histor-xml = param-nf-estab.cod-caminho-xml.
END.
ASSIGN c-nr-nota-xml = TRIM(nota-fiscal.cod-estabel) +
SUBSTR(nota-fiscal.cod-chave-aces-nf-eletro,23,3) +
TRIM(STRING(INTEGER(SUBSTR(nota-fiscal.cod-chave-aces-nf-eletro,26,9)),">>9999999")) + ".XML"
c-chave-xml = TRIM(nota-fiscal.cod-chave-aces-nf-eletro) + ".XML".
IF SEARCH(c-cod-dir-histor-xml + "/" + c-nr-nota-xml) <> ? THEN
ASSIGN cArquivoXML = c-cod-dir-histor-xml + "/" + c-nr-nota-xml.
IF SEARCH(c-cod-dir-histor-xml + "/" + c-chave-xml) <> ? THEN
ASSIGN cArquivoXML = c-cod-dir-histor-xml + "/" + c-chave-xml.
**
**
**2) Exemplo de busca efetuada pelo TC2 no produto padrão:
FOR FIRST param-gener NO-LOCK
WHERE param-gener.cod-chave-1 = "param-geral-tc":U
AND param-gener.cod-param = "dir-doctos-lidos":U /*Pasta Received*/ :
ASSIGN c-cod-dir-histor-xml = param-gener.cod-valor .
IF SUBSTRING(c-cod-dir-histor-xml, LENGTH(c-cod-dir-histor-xml), 1) <> "\" THEN
ASSIGN c-cod-dir-histor-xml = c-cod-dir-histor-xml + "\".
ASSIGN c-cod-dir-histor-xml = c-cod-dir-histor-xml + "RECEIVED\".
END.
bloco_leitura:
FOR EACH integr-totvs-colab
WHERE integr-totvs-colab.cod-edi = "170"
AND integr-totvs-colab.cod-docto = nota-fiscal.cod-chave-aces-nf-eletro
AND integr-totvs-colab.log-lido = yes NO-LOCK:
EMPTY TEMP-TABLE tt-comunica.
{cdp/cd0590.i2 "tt-comunica" "integr-totvs-colab"}
if tt-comunica.cStat = "100" then do:
assign cArquivoXML = c-cod-dir-histor-xml + "\" + trim(ENTRY(2, integr-totvs-colab.cod-msg, "|")).
leave bloco_leitura.
END.
end.
** NÃO ALTERAR A PARTIR DESTE PONTO PARA BAIXO!
****************************************************************************************************************************/
IF cArquivoXML <> ""
AND search(cArquivoXML) <> ? THEN DO:
COPY-LOB FROM FILE cArquivoXML TO lXmlNfe.
END.
IF lXmlNfe <> "" THEN
ASSIGN h-bf-tt-nota-fiscal:BUFFER-FIELD("xml-nota-fiscal"):BUFFER-VALUE = lXmlNfe.
END.
END.
END.
END.
|
CERTIFICADO NO PROGRESS
A conexão realizada com o Totvs Apps utiliza o protocolo seguro HTTPS, por este motivo, para que seja possível realizar a conexão, é necessário que o Progress possua instalado o certificado correspondente.
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas