API para geração e envio de XML dos comprovantes eletrônicos do Paraguai


Nome Físico: local/pry/pry1200.p

Versão de Integração: 001

Objetivo: 

Gerar o XML para autorização de comprovantes eletrônicos do Paraguai. 

Pré-requisitos: 

Não se aplica.


Considerações Gerais


  • São passados parâmetros de input e output para a API.
    • Input é enviado o rowid da tabela internac-autoriz-nfe.
    • Output: temp-table de erros RowErrors.
  • São geradas diversas temp-tables para a geração do XML, que serão demonstradas abaixo.

Tabelas temporárias para geração do XML


Descrição dos campos 

TEMP-TABLE tt-enviar

Atributo

Descrição

Tipo

Formato

Valor Inicial

Índice

arq-xml


Character




Id


Character




dDVId


Character




dFecFirma


Character




dSisFact 


Character




iTipEmi


Integer




 dDesTipEmi   


Character




 dCodSeg      


Character




 dInfoEmi     


Character




 dInfoFisc 


Character




 iTiDE      


Integer




 dDesTiDE  


Character




 dNumTim      


Character

999999999



 dEst         


Character

999



 dPunExp   


Character




 dNumDoc      


Character




 dSerieNum    


Character




 dFeIniT      


Character




 dFeFinT      


Character




 dFeEmiDE 


Character




 iTipTra      


Integer




 dDesTipTra   


Character




 iTImp        


Integer




 dDesTImp     


Character




 cMoneOpe    


Character




 dDesMoneOpe 


Character




 dCondTiCam   


Integer




 dTiCam       


Decimal




 iCondAnt   


Integer




 dDesCondAnt  


Character




iIndPres


Integer




dDesIndPres


Character




dFecEmNR


Character


























































































































































Atributo

Descrição


























































Execução


Sintaxe:

IF NOT VALID-HANDLE(v_hdl_api) THEN
    RUN prgfin/lpy/lpy724za.r PERSISTENT SET v_hdl_api.        

/* Busca linhas do livro */
RUN pi_retorna_dados_iva_compras IN v_hdl_api (INPUT v_cod_estab_ini,      /* Estabelecimento Inicial */
                                               INPUT v_cod_estab_fim,      /* Estabelecimento Final */
                                               INPUT v_dat_emis_inic,      /* Data Emissão Inicial */
                                               INPUT v_dat_emis_fim,       /* Data Emissão Final */
                                               INPUT v_cdn_fornecedor_ini, /* Fornecedor Inicial */
                                               INPUT v_cdn_fornecedor_fim, /* Fornecedor Final */
                                               INPUT v_cod_grp_fornec_ini, /* Grupo Fornecedores Inicial */
                                               INPUT v_cod_grp_fornec_fim, /* Grupo Fornecedores Final */
                                               INPUT v_log_smte_com_iva,   /* Somente Faturas com IVA */
                                               OUTPUT v_cod_ruc,           /* RUC da Empresa */
                                               OUTPUT TABLE tt_iva_cprs_pry,
                                               OUTPUT TABLE tt_erros_api).

Em caso de erro nas validações acima, o erro será retornado por meio da temp-table ttt_erros_api.

Se os dados forem aceitos, a API devolverá as informações para geração do livro IVA compras quando for chamada a procedure pi_retorna_dados_iva_compras.


def var v_hdl_api as Handle format ">>>>>>9":U no-undo.

run prgfin\lpy\lpy724za.r persistent set v_hdl_api.

if  valid-handle(v_hdl_api)
then do:
     /* Busca linhas do livro */
     run pi_retorna_dados_iva_compras in v_hdl_api (input "",           /* Estabelecimento Inicial */
                                                    input "ZZZZZ",      /* Estabelecimento Final */
                                                    input 01/01/2025,   /* Data EmissÆo Inicial */
                                                    input 06/30/2025,   /* Data EmissÆo Final */
                                                    input 0,            /* Fornecedor Inicial */
                                                    input 999999,       /* Fornecedor Final */
                                                    input "",           /* Grupo Fornecedores Inicial */
                                                    input "ZZZZ",       /* Grupo Fornecedores Final */
                                                    input no,           /* Somente Faturas com IVA */
                                                    output v_cod_ruc,   /* RUC da Empresa */
                                                    output table tt_iva_cprs_pry,
                                                    output table tt_erros_api). 
DELETE PROCEDURE v_hdl_api.




Parâmetros de Saída


No caso do retorno ser NOK, todos os erros encontrados serão retornados na tabela Temp-Table tt_erros_api:

A tt-erros é uma tabela de retorno de dados referentes aos erros encontrados na manipulação  dos dados das tabelas de entrada. A tt-erros retorna dados por meio de um registro contendo o código do erro e a sua descrição.

Obs.: Depois da chamada feita à API é imprescindível tratar os erros retornados caso existam.

TEMP-TABLE tt_erros_api

Atributo

Tipo

Formato

Valor Inicial

ttv_num_erro

Integer



ttv_des_mensagem

Character



ttv_des_ajuda

Character



ttv_row_id

Rowid



Atributo

Descrição

ttv_num_erro

Número do erro. Sequencial dentro da temp-table.

ttv_des_mensagem

Descrição do erro.

ttv_des_ajuda

Descrição ajuda.

ttv_row_id

Rowid.