Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | prgfin/acr/acr545za |
Objetivo
Receber informações da distribuição e determinar o portador e a carteira bancária dos documentos (notas fiscais) de acordo com regras cadastradas nos Parâmetros de Destinação de Cobrança.
Parâmetros da API:
- pi_param_port_distrib_v1:
Input p_num_vers_integr_api: será utilizado para determinar se está utilizando a última versão do método, deve ser do tipo integer;
Input p_cod_estab_ext: será usado para buscar os parâmetros empresa ACR do estabelecimento no financeiro. Terá conteúdo opcional. Se ele não for informado, considerar a empresa corrente do usuário para a pesquisa, deve ser do tipo character;
output p_log_portad_distrib: deverá retornar se o estabelecimento Determina Portador Distribiuição ou não, deve ser do tipo logical;
output table tt_erro_integr_portad_distrib: temp-table de erros.
- pi_determ_port_distrib_v1:
Input p_num_vers_integr_api: será utilizado para determinar se está utilizando a ultima versão do método, deve ser do tipo integer;
Input p_cod_estab_ext: será usado para buscar a destinação de cobrança padrão do estabelecimento, deve ser do tipo character;
Input p_cod_finalid_econ_ext: será usado para buscar a destinação de cobrança padrão do estabelecimento, deve ser do tipo character;
Input p_dat_transacao: será usado para buscar a destinação de cobrança padrão do estabelecimento, deve ser do tipo date;
Input table tt_parc_docto_distrib: contém as parcelas dos documentos (notas fiscais);
Input table tt_sdo_distrib: contém o valor das notas fiscais não integradas com o Financeiro;
input-output table tt_docto_distrib: receberá as notas fiscais enviadas que deverão ter o portador e a carteira bancária determinados de acordo com os critérios do financeiro;
output table tt_erro_integr_portad_distrib: temp-table de erros.
Funcionamento
O programa API contém dois métodos principais:
- pi_param_port_distrib_v1: utilizado para saber se o o parâmetro Determina Portador Distribuição está ativo.
- pi_determ_port_distrib_v1: utilizado para determinar Portador e Carteira do Documento da Distribuição.
Em ambos os casos, executar o programa API(utilizar o nome externo), da seguinte forma:
def var v_hdl_program as Handle no-undo.
run prgfin/acr/acr545za.py persistent set v_hdl_program .
Então deve ser rodado o método desejado, sendo:
- pi_param_port_distrib_v1:
run pi_param_port_distrib_v1 in v_hdl_program (input 1,
input v_cod_estab_ext,
output v_log_portad_distrib,
output table tt_erro_integr_portad_distrib).
- pi_determ_port_distrib_v1:
run pi_determ_port_distrib_v1 in v_hdl_program (input 1,
input v_cod_estab_ext,
input v_cod_finalid_econ_ext,
input v_dat_transacao,
input-output table tt_docto_distrib,
input table tt_parc_docto_distrib,
input table tt_sdo_distrib,
output table tt_erro_integr_portad_distrib).
e no final, eliminar handle:
Delete procedure v_hdl_program.
Tabelas Temporárias
Nos atributos das tabelas temporárias de entrada e saída:
Tabela Temporária | Descrição | Entrada/Saída |
tt_sdo_distrib | (Metódo pi_determ_port_distrib_v1) Conterá o valor das notas fiscais não integradas com o Financeiro. Pode ser deixada em branco; | Entrada |
Atributo | Tipo | Formato | Descrição | Obrig. | Evol. |
tta_cod_portad_ext | character | x(8) | Portador Externo | sim | |
tta_cod_modalid_ext | character | x(8) | Modalidade Externa | sim | |
tta_cod_portador | character | x(5) | Portador | sim | |
tta_cod_cart_bcia | character | x(3) | Carteira | sim | |
ttv_val_nao_integr | decimal | ->>,>>>,>>>,>>9.99 | Valor Não Integrado | sim | |
def temp-table tt_sdo_distrib no-undo
field tta_cod_portad_ext as character format "x(8)" label "Portador Externo" column-label "Portador Externo"
field tta_cod_modalid_ext as character format "x(8)" label "Modalidade Externa" column-label "Modalidade Externa"
field tta_cod_portador as character format "x(5)" label "Portador" column-label "Portador"
field tta_cod_cart_bcia as character format "x(3)" label "Carteira" column-label "Carteira"
field ttv_val_nao_integr as decimal format "->>,>>>,>>>,>>9.99" decimals 2 label "Valor Não Integrado" column-label "Valor Não Integrado"
index tt_id is primary unique
tta_cod_portad_ext ascending
tta_cod_modalid_ext ascending.
Tabela Temporária | Descrição | Entrada/Saída |
tt_docto_distrib | (Metódo pi_determ_port_distrib_v1) Receberá as notas fiscais que deverão ter o portador e a carteira bancária determinados de acordo com os critérios do financeiro; | Entrada-Saída |
Atributo | Tipo | Formato | Descrição | Obrig. | Evol. |
ttv_cod_integr_portad_distrib | character | x(80) | Identificador Documento | sim | |
tta_cdn_cliente | Integer | >>>,>>>,>>9 | Cliente | sim | |
tta_dat_transacao | date | 99/99/9999 | Data Transação | sim | |
ttv_val_docto | decimal | ->>,>>>,>>>,>>9.99 | Valor Documento | sim | |
ttv_cod_portad_dest(*) | character | x(5) | Portador Destinado | | |
ttv_cod_cart_bcia_dest(*) | character | x(3) | Carteira Bancária Destino | | |
ttv_cod_portad_ext_dest(*) | character | x(5) | Portador Externo Destino | | |
ttv_cod_modalid_ext_dest(*) | character | x(3) | Modalidade Externa Destino | | |
ttv_ind_retorno(*) | character | x(3) | Retorno | | |
* campos devem ser deixados em branco, caso algum valor seja informado, será desconsiderado
def temp-table tt_docto_distrib no-undo
field ttv_cod_integr_portad_distrib as character format "x(80)" label "Doc Integ Portad Dis" column-label "Doc Integ Portad Dis"
field tta_cdn_cliente as Integer format ">>>,>>>,>>9" initial 0 label "Cliente" column-label "Cliente"
field tta_dat_transacao as date format "99/99/9999" initial today label "Data Transação" column-label "Dat Transac"
field ttv_val_docto as decimal format "->>,>>>,>>>,>>9.99" decimals 2 label "Valor Documento" column-label "Valor Documento"
field ttv_cod_portad_dest as character format "x(5)" label "Portador Destinado" column-label "Portador Destinado"
field ttv_cod_cart_bcia_dest as character format "x(3)" label "Carteira Bcia Dest" column-label "Carteira Bcia Dest"
field ttv_cod_portad_ext_dest as character format "x(5)" label "Portad Ext Dest" column-label "Portad Ext Dest"
field ttv_cod_modalid_ext_dest as character format "x(3)" label "Modalid Ext Dest" column-label "Modalid Ext Dest"
field ttv_ind_retorno as character format "X(03)" label "Retorno" column-label "Retorno"
index tt_dat_transacao
tta_dat_transacao ascending
index tt_id is primary unique
ttv_cod_integr_portad_distrib ascending.
Tabela Temporária | Descrição | Entrada/Saída |
tt_parc_docto_distrib | (Metódo pi_determ_port_distrib_v1) Contém as parcelas dos documentos (notas fiscais); | Entrada |
Atributo | Tipo | Formato | Descrição | Obrig. | Evol. |
ttv_cod_integr_portad_distrib | character | x(80) | Doc Integ Portad Dis | sim | |
tta_dat_vencto | date | 99/99/9999 | Vencimento | sim | |
tta_val_parcela | decimal | ->>>,>>>,>>9.99 | Parcela | sim | |
def temp-table tt_parc_docto_distrib no-undo
field ttv_cod_integr_portad_distrib as character format "x(80)" label "Doc Integ Portad Dis" column-label "Doc Integ Portad Dis"
field tta_dat_vencto as date format "99/99/9999" initial ? label "Vencimento" column-label "Vencimento"
field tta_val_parcela as decimal format "->>>,>>>,>>9.99" decimals 2 initial 0 label "Parcela" column-label "Parcela"
index tt_id is primary unique
ttv_cod_integr_portad_distrib ascending
tta_dat_vencto ascending.
.
Tabela Temporária | Descrição | Entrada/Saída |
tt_erro_integr_portad_distrib | (Metódo pi_determ_port_distrib_v1 e pi_param_port_distrib_v1) Tabela de possíveis erros | Saída |
Atributo | Tipo | Formato | Descrição | Obrig. | Evol. |
ttv_num_seq_erro | integer | >>>>,>>9 | Código Sequencial | | |
ttv_cod_integr_portad_distrib | character | x(80) | Código Documento | | |
ttv_num_erro | integer | >>>>,>>9 | Número Erro | | |
ttv_des_erro | character | x(50) | Descrição Erro | | |
ttv_des_help | character | x(40) | Help Erro | | |
ttv_des_param | character | x(50) | Parâmetros | | |
ttv_des_informa | character | x(40) | Informações Complementares | | |
ttv_des_type | character | x(10) | Tipo Erro | | |
def temp-table tt_erro_integr_portad_distrib no-undo
field ttv_num_seq_erro as integer format ">>>>,>>9" initial 0
field ttv_cod_integr_portad_distrib as character format "x(80)" label "Doc Integ Portad Dis" column-label "Doc Integ Portad Dis"
field ttv_num_erro as integer format ">>>>,>>9"
field ttv_des_erro as character format "x(50)" label "Inconsistência" column-label "Inconsistência"
field ttv_des_help as character format "x(40)" label "Ajuda" column-label "Ajuda"
field ttv_des_param as character format "x(50)" label "Param" column-label "Param"
field ttv_des_informa as character format "x(40)" label "Observações" column-label "Observações"
field ttv_des_type as character format "x(10)"
index tt_chave_document
ttv_cod_integr_portad_distrib ascending
index tt_id is primary unique
ttv_num_seq_erro ascending.