Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Button
TextoVoltar
Linkhttps://tdn.totvs.com/pages/viewpage.action?pageId=929926296


API para Geração de Gráficos


Nome Físico: prgfin/lco/lco728za.py

Versão de Integração: 001

Objetivo: 

Criar o objeto de negócio que será utilizado para gerar visão de dados na qual disponibilizará uma conciliação automática, dos saldos contábeis distribuídos por terceiros, com os saldos
contábeis gerados para as mesmas contas, sem a distribuição por terceiros.

Pré-requisitos: 

Não se aplica.


Considerações Gerais


  • São passados como parâmetros de input e output para a API,  como Input são: Plano de Contas, Cenário Contábil, Finalidade Econômica, Exercício, Período, Faixa de Estabelecimentos, Faixa de Unidades de Negócio e 
    Flag para indicar se deve retornar somente os saldos não conciliados, como Output são: tt_concilia_sdos_terceiros, tt_lanctos_ctbl_concil e tt_erros_api.
  • A exibição das informações da API é feita através da execução da API prgfin/lco/lco728za.py.
    .

Parâmetros de Entrada 


Temp-table tt_concilia_sdos_terceiros: Na Temp-Table tt_concilia_sdos_terceiros, são definidas as características gerais e dados a serem devolvidos.

Descrição dos campos 

TEMP-TABLE tt_concilia_sdos_terceiros

Atributo

Tipo

Formato

Valor Inicial

Índice

tta_cod_finalid_econ

Character




tta_cod_cenar_ctbl

Character




tta_cod_plano_cta_ctbl

Character




tta_cod_cta_ctbl

Character




tta_des_tit_ctbl

Character




ttv_val_sdo_terc_inic

Decimal

->>,>>>,>>>,>>9.99



ttv_val_mov_terc_db

Decimal

->>,>>>,>>>,>>9.99



ttv_val_mov_terc_cr

Decimal

->>,>>>,>>>,>>9.99



ttv_val_sdo_terc_fim

Decimal

->>,>>>,>>>,>>9.99



ttv_val_sdo_ctbl_inic

Decimal

->>>,>>>,>>>,>>>,>>9.99



ttv_val_mov_ctbl_db

Decimal

->>,>>>,>>>,>>9.99



ttv_val_mov_ctbl_cr

Decimal

->>,>>>,>>>,>>9.99



ttv_val_sdo_ctbl_fim

Decimal

->>,>>>,>>>,>>9.99

0


ttv_log_dif_sdo

Logical

Sim/Não

No


ttv_log_dif_mov

Logical

Sim/Não

No


Atributo

Descrição

tta_cod_finalid_econ

Finalidade

tta_cod_cenar_ctbl

Cenário Contábil

tta_cod_plano_cta_ctbl

Plano Contas

tta_cod_cta_ctbl

Conta Contábil

tta_des_tit_ctbl

Título Contábil

ttv_val_sdo_ctbl_inic

Saldo Inicia

ttv_val_sdo_ctbl_fim

Saldo Final

Execução

Sintaxe:

Bloco de código
languageruby
IF NOT VALID-HANDLE(v_hdl_api) THEN
    RUN prgfin/lco/lco728za.r PERSISTENT SET v_hdl_api.

/* Busca Saldo Inicial */
    run pi_busca_sdo_ctbl (input v_cod_empres_usuar,
                           input p_cod_estab_ini,
                           input p_cod_estab_fim,
                           input p_cod_finalid_econ,
                           input colext_cta_ctbl.cod_plano_cta_ctbl,
                           input colext_cta_ctbl.cod_cta_ctbl,
                           input colext_cta_ctbl.cod_cta_ctbl,
                           input "",
                           input "",
                           input "ZZZZZZZZZZZ" /*l_zzzzzzzzzzz*/ ,
                           input p_cod_un_inicial,
                           input p_cod_un_final,
                           input p_cod_cenar_ctbl,
                           input "",
                           input "ZZZZZZZZZZZZZZZZZZZZ" /*l_zzzzzzzzzzzzzzzzzzzz*/ ,
                           input v_dat_sdo_inic,
                           input v_dat_sdo_inic,
                           input no,
                           input "Maior ou Igual e Menor ou Igual" /*l_maior_igual_menor_igual*/ ,
                           input "for each" /*l_for_each*/ ,
                           output table tt_retorna_sdo_ctbl).

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 da conciliação de saldos por terceiros compras quando for chamada a procedure pi_busca_sdo_ctbl.

Expandir
titleClique aqui para visualizar...
Bloco de código
languageruby
def var v_hdl_api as Handle format ">>>>>>9":U no-undo.

run prgfin\lco\lco728za.r persistent set v_hdl_api.

if  valid-handle(v_hdl_api)
then do:
     /* Busca plano de contas */
		run prgfin\lco\lco728za.r (input "GRIFFE1",       /* Plano de Contas */
                    	       	   input "Fiscal",        /* Cen rio Cont bil */
                        		   input "PESO COL",      /* Finalidade Econ“mica */
		                           input v_cod_exercicio, /* Exerc¡cio */
		                           input v_num_periodo,   /* Per¡odo */
		                           input "IGN",           /* Estab Inicial */
		                           input "IGV",           /* Estab Final */
		                           input "008",           /* UN Inicial */
		                           input "VEN",           /* UN Final */
		                           input no,              /* Retorna Somente NÆo Conciliados */
		                           output table tt_concilia_sdos_terceiros,
		                           output table tt_lanctos_ctbl_concil,
DELETE PROCEDURE v_hdl_api.
Bloco de código
languageruby
def temp-table tt_concilia_sdos_terceiros no-undo field tta_cod_finalid_econ as character format "x(10)" label "Finalidade" column-label "Finalidade" field tta_cod_cenar_ctbl as character format "x(8)" label "Cen rio Cont bil" column-label "Cen rio Cont bil" field tta_cod_plano_cta_ctbl as character format "x(8)" label "Plano Contas" column-label "Plano Contas" field tta_cod_cta_ctbl as character format "x(20)" label "Conta Cont bil" column-label "Conta Cont bil" field tta_des_tit_ctbl as character format "x(40)" label "T¡tulo Cont bil" column-label "T¡tulo Cont bil" field ttv_val_sdo_terc_inic as decimal format "->>,>>>,>>>,>>9.99" decimals 2 field ttv_val_mov_terc_db as decimal format "->>,>>>,>>>,>>9.99" decimals 2 field ttv_val_mov_terc_cr as decimal format "->>,>>>,>>>,>>9.99" decimals 2 field ttv_val_sdo_terc_fim as decimal format "->>,>>>,>>>,>>9.99" decimals 2 field ttv_val_sdo_ctbl_inic as decimal format "->>>,>>>,>>>,>>>,>>9.99" decimals 2 label "Saldo Inicial" column-label "Saldo Inicial" field ttv_val_mov_ctbl_db as decimal format "->>,>>>,>>>,>>9.99" decimals 2 field ttv_val_mov_ctbl_cr as decimal format "->>,>>>,>>>,>>9.99" decimals 2 field ttv_val_sdo_ctbl_fim as decimal format "->>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Saldo Final" column-label "Saldo Final" field ttv_log_dif_sdo as logical format "Sim/NÆo" initial no field ttv_log_dif_mov as logical format "Sim/NÆo" initial no index tt_dfmvt ttv_log_dif_mov ascending index tt_id is primary unique tta_cod_finalid_econ ascending tta_cod_cenar_ctbl ascending tta_cod_plano_cta_ctbl ascending tta_cod_cta_ctbl ascending . def temp-table tt_lanctos_ctbl_concil no-undo field tta_cod_cta_ctbl as character format "x(20)" label "Conta Cont bil" column-label "Conta Cont bil" field tta_des_tit_ctbl as character format "x(40)" label "T¡tulo Cont bil" column-label "T¡tulo Cont bil" field tta_val_lancto_ctbl as decimal format ">>>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Lan‡amento" column-label "Valor Lan‡amento" field tta_ind_natur_lancto as character format "X(5)" initial "Ambos" label "Natureza Lan‡amento" column-label "Natureza Lan‡amento" field tta_dat_lancto_ctbl as date format "99/99/9999" initial ? label "Data Lan‡amento" column-label "Data Lan‡to" field tta_num_lote_ctbl as integer format ">>>,>>>,>>9" initial 1 label "Lote Cont bil" column-label "Lote Cont bil" field tta_num_lancto_ctbl as integer format ">>,>>>,>>9" initial 10 label "Lan‡amento Cont bil" column-label "Lan‡amento Cont bil" field tta_num_seq_lancto_ctbl as integer format ">>>>9" initial 0 label "Sequˆncia Lan‡to" column-label "Sequˆncia Lan‡to" . def temp-table tt_erros_api no-undo field ttv_num_erro as integer format ">>>>,>>9" field ttv_des_mensagem as character format "x(50)" label "Mensagem" column-label "Mensagem" field ttv_des_ajuda as character format "x(50)" label "Ajuda" column-label "Ajuda" field ttv_row_id as Rowid . def stream s1. def stream s2. def stream s3. def var v_cod_exercicio as char no-undo. def var v_num_periodo as inte no-undo. def var v_nom_arq_saldos as char no-undo. def var v_nom_arq_lanctos as char no-undo. def var v_nom_arq_erros as char no-undo. /* Per¡odo Conciliado */ assign v_cod_exercicio = "2024" v_num_periodo = 1. assign v_nom_arq_saldos = "C:\tmp\saldos_" + v_cod_exercicio + "-" + string(v_num_periodo,"99") + ".csv". v_nom_arq_lanctos = "C:\tmp\lanctos_" + v_cod_exercicio + "-" + string(v_num_periodo,"99") + ".csv". v_nom_arq_erros = "C:\tmp\erros_" + v_cod_exercicio + "-" + string(v_num_periodo,"99") + ".csv". output stream

Temp-table tt_lanctos_ctbl_concil: Na Temp-Table tt_lanctos_ctbl_concil, são definidas as características gerais e dados a serem devolvidos.

Descrição dos campos 

TEMP-TABLE tt_lanctos_ctbl_concil
AtributoTipoFormatoValor Inicial Índice
tta_cod_cta_ctblCharacterx(20)

tta_des_tit_ctblCharacterx(40)

tta_val_lancto_ctblDecimal>>>,>>>,>>>,>>9.99

tta_ind_natur_lanctoCharacterX(5)

tta_dat_lancto_ctblDate99/99/9999?
tta_num_lote_ctblInteger>>>,>>>,>>91
tta_num_lancto_ctblInteger>>,>>>,>>910
tta_num_seq_lancto_ctblInteger>>>>90
AtributoDescrição
tta_cod_cta_ctblConta Contábil
tta_des_tit_ctblTítulo Contábil
tta_val_lancto_ctblValor Lançamento
tta_ind_natur_lanctoNatureza Lançamento
tta_dat_lancto_ctblData Lançto
tta_num_lote_ctblLote Contábil
tta_num_lancto_ctblLançamento Contábil
tta_num_seq_lancto_ctblSequência Lançto

Temp-table tt_retorna_sdo_ctbl: Na Temp-Table tt_retorna_sdo_ctbl, são definidas as características gerais e dados a serem devolvidos.

Descrição dos campos 

TEMP-TABLE tt_retorna_sdo_ctbl
AtributoTipoFormatoValor InicialÍndice
tta_num_seqInteger>>>,>>90
tta_cod_empresaCharacterx(3)

tta_cod_finalid_econCharacterx(10)

tta_cod_plano_cta_ctblCharacterx(8)

tta_cod_cta_ctblCharacterx(20)

tta_cod_plano_ccustoCharacterx(8)

tta_cod_ccustoCharacterx(20)

tta_cod_proj_financCharacterx(20)

tta_cod_cenar_ctblCharacterx(8)

tta_cod_estab Characterx(5)

tta_cod_unid_negocCharacterx(3)

tta_dat_sdo_ctblDate99/99/9999?
tta_val_sdo_ctbl_dbDecimal->>>,>>>,>>>,>>9.990
tta_val_sdo_ctbl_crDecimal->>>,>>>,>>>,>>9.990
tta_val_sdo_ctbl_fimDecimal->>,>>>,>>>,>>9.990
tta_val_apurac_restdoDecimal->>,>>>,>>>,>>9.990
tta_val_apurac_restdo_dbDecimal->>,>>>,>>>,>>9.990
tta_val_apurac_restdo_crDecimal->>,>>>,>>>,>>9.990
tta_val_apurac_restdo_acum Decimal->>>>,>>>,>>>,>>9.990
tta_val_sdo_ctbl_db_sintDecimal->>,>>>,>>>,>>9.990
tta_val_sdo_ctbl_cr_sintDecimal->>,>>>,>>>,>>9.990
tta_val_sdo_ctbl_fim_sintDecimal->>>>,>>>,>>>,>>9.990
tta_val_apurac_restdo_sintDecimal->>,>>>,>>>,>>9.990
tta_val_apurac_restdo_sint_dbDecimal->>,>>>,>>>,>>9.990
tta_val_apurac_restdo_sint_crDecimal->>,>>>,>>>,>>9.990
tta_val_apurac_restdo_sint_acumDecimal->>>>,>>>,>>>,>>9.990
tta_val_movto_empenhDecimal->>,>>>,>>>,>>9.990
tta_qtd_sdo_ctbl_dbDecimal>>>,>>>,>>9.990
tta_qtd_sdo_ctbl_crDecimal>>>,>>>,>>9.990
tta_qtd_sdo_ctbl_fimDecimal->>>,>>>,>>9.990
ttv_val_movto_ctblDecimal>>>,>>>,>>>,>>9.99

tta_qtd_movto_empenhDecimal->>>>,>>9.99990



AtributoDescrição
tta_num_seqNum Seq
tta_cod_empresaEmpresa
tta_cod_finalid_econFinalidade
tta_cod_plano_cta_ctblPlano Contas
tta_cod_cta_ctblConta Contábil
tta_cod_plano_ccustoPlano Centros Custo
tta_cod_ccustoCentro Custo
tta_cod_proj_financProjeto
tta_cod_cenar_ctblCenário Contábil
tta_cod_estab Estab
tta_cod_unid_negocUn Neg
tta_dat_sdo_ctblData Saldo Cont bil
tta_val_sdo_ctbl_dbMovto Débito
tta_val_sdo_ctbl_crMovto Crédito
tta_val_sdo_ctbl_fimSaldo Contábil Final
tta_val_apurac_restdoApuração Resultado
tta_val_apurac_restdo_dbApuração Restdo DB
tta_val_apurac_restdo_crApuração Restdo CR
tta_val_apurac_restdo_acum Apuracao Final
tta_val_sdo_ctbl_db_sintMovto Débito Sint
tta_val_sdo_ctbl_cr_sintMovto Crédito Sint
tta_val_sdo_ctbl_fim_sintSaldo Sintético
tta_val_apurac_restdo_sintApuracao Resultado
tta_val_apurac_restdo_sint_dbApur Restdo Sint DB
tta_val_apurac_restdo_sint_crApur Restdo Sint CR
tta_val_apurac_restdo_sint_acumApur Result Sint
tta_val_movto_empenhMovto Empenhado
tta_qtd_sdo_ctbl_dbQuantidade DB
tta_qtd_sdo_ctbl_crQuantidade CR
tta_qtd_sdo_ctbl_fimQuantidade Final
ttv_val_movto_ctbl
tta_qtd_movto_empenhQtde Movto Empenhado




Execução


Sintaxe:

Bloco de código
languageruby
IF NOT VALID-HANDLE(v_hdl_api) THEN
    RUN prgfin/lco/lco728za.r PERSISTENT SET v_hdl_api.

/* Busca Saldo Inicial */
    run pi_busca_sdo_ctbl (input v_cod_empres_usuar,
                           input p_cod_estab_ini,
s1 to value(v_nom_arq_saldos) convert target "ISO8859-1". output stream s2 to value(v_nom_arq_lanctos) convert target "ISO8859-1". output stream s3 to value(v_nom_arq_erros) convert target "ISO8859-1". put stream s1 unformatted "Fianlidade Econ“mica;Cen rio;Plano Contas;Conta Cont bil;Descri‡Æo;Sdo Inicial 3§;Movto DB 3§;Movto CR 3§; Sdo Final 3§;Sdo Inicial Ctbl;Movto DB Ctbl;Movto CR Ctbl;Sdo Final Ctbl;Dif Sld;Dif Movto" skip. put stream s2 unformatted "Conta Cont bil;Descri‡Æo;Valor Lancto;DB/CR;Data Lancto;Lote;Lancto;Seq" skip. put stream s3 unformatted "Erro;Descri‡Æo;Ajuda" skip. run prgfin\lco\lco728za.r (input "GRIFFE1", /* Plano de Contas */

                           input 
"Fiscal",
p_cod_estab_fim,
        
/* Cen rio Cont bil */
                   input p_cod_finalid_econ,
                   
input
 
"PESO
 
COL",
      
/* Finalidade Econ“mica */
input colext_cta_ctbl.cod_plano_cta_ctbl,
                           input 
v
colext_cta_ctbl.cod_
exercicio, /* Exerc¡cio */
cta_ctbl,
                           input 
v_num_periodo, /* Per¡odo */
colext_cta_ctbl.cod_cta_ctbl,
                           input "
IGN", /* Estab Inicial */
",
                           input "
IGV
",
           
/*
 
Estab
 
Final
 
*/
             input "ZZZZZZZZZZZ" /*l_zzzzzzzzzzz*/ ,
           
input "008",
              
/*
 
UN
 
Inicial */
input p_cod_un_inicial,
                           input 
"VEN",
p_cod_un_final,
           
/*
 
UN Final */
               input p_cod_cenar_ctbl,
           
input
 
no,
              
/*
 
Retorna Somente NÆo Conciliados */
input "",
                           
output
input 
table tt_concilia_sdos_terceiros
"ZZZZZZZZZZZZZZZZZZZZ" /*l_zzzzzzzzzzzzzzzzzzzz*/ ,
                           
output
input 
table tt
v_
lanctos
dat_
ctbl
sdo_
concil
inic,
                           
output table tt_erros_api).
input v_dat_sdo_inic,
                           input no,
       
for
 
each
 
tt_concilia_sdos_terceiros:
    
put
 
stream
 
s1
 
unformatted
        
string(tt_concilia_sdos_terceiros.tta_cod_finalid_econ)
   
+
input "
;" + string(tt_concilia_sdos_terceiros.tta_cod_cenar_ctbl)
Maior ou Igual e Menor ou Igual" /*l_maior_igual_menor_igual*/ ,
         
+
 
";"
 
+
        
string(tt_concilia_sdos_terceiros.tta_cod_plano_cta_ctbl)
 
+
 
";"
 
+
     input "for 
string(tt_concilia_sdos_terceiros.tta_cod_cta_ctbl)
each" /*l_for_each*/ ,
      
+
 
";"
 
+
        
string(tt_concilia_sdos_terceiros.tta_des_tit_ctbl)
       
+
 
";"
 
+
  output table tt_retorna_sdo_ctbl).

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 da conciliação de saldos por terceiros compras quando for chamada a procedure pi_busca_sdo_ctbl.


Expandir
titleClique aqui para visualizar...
Bloco de código
languageruby
def var v_hdl_api as Handle format ">>>>>>9":U no-undo.

run prgfin\lco\lco728za.r persistent set v_hdl_api.

if  valid-handle(v_hdl_api)
then do:
     /* Busca plano de contas */
		run prgfin\lco\lco728za.r (input "GRIFFE1",       /* Plano de Contas */     string(tt_concilia_sdos_terceiros.ttv_val_sdo_terc_inic)  + ";" +
        string(tt_concilia_sdos_terceiros.ttv_val_mov_terc_db)    + ";" +
        string(tt_concilia_sdos_terceiros.ttv_val_mov_terc_cr)    + ";" +
        string(tt_concilia_sdos_terceiros.ttv_val_sdo_terc_fim)         + ";" +
 	       string(tt_concilia_sdos_terceiros.ttv_val_sdo_ctbl_inic)  + ";" +
	   input "Fiscal",        /* Cen rio Cont bil   string(tt_concilia_sdos_terceiros.ttv_val_mov_ctbl_db)*/
          + ";" +
        string(tt_concilia_sdos_terceiros.ttv_val_mov_ctbl_cr)    + ";" +
  		   input "PESO COL",      string(tt_concilia_sdos_terceiros.ttv_val_sdo_ctbl_fim)   + ";" +
/* Finalidade Econ“mica */
		          string(tt_concilia_sdos_terceiros.ttv_log_dif_sdo)        + ";" +
       input string(ttv_concilia_sdos_terceiros.ttv_log_dif_mov)cod_exercicio, /* Exerc¡cio */
		        skip.
end.

for each tt_lanctos_ctbl_concil:
         put stream s2 unformatted
       input string(ttv_lanctos_ctbl_concil.tta_cod_cta_ctbl)num_periodo,   /* Per¡odo */
		      + ";" +
        string(tt_lanctos_ctbl_concil.tta_des_tit_ctbl)            +input ";IGN" +
,           /* Estab Inicial */
		        string(tt_lanctos_ctbl_concil.tta_val_lancto_ctbl)          + ";" +
        string(tt_lanctos_ctbl_concil.tta_ind_natur_lancto)input "IGV",           /* +Estab ";" +
Final */
		        string(tt_lanctos_ctbl_concil.tta_dat_lancto_ctbl)           + ";" +
      input  string(tt_lanctos_ctbl_concil.tta_num_lote_ctbl)"008",           + ";" +
/* UN Inicial */
		        string(tt_lanctos_ctbl_concil.tta_num_lancto_ctbl)          + ";" +
        string(tt_lanctos_ctbl_concil.tta_num_seq_lancto_ctbl)input "VEN",    skip.
end.

for each tt_erros_api:
       put/* streamUN s3Final unformatted*/
		        string(tt_erros_api.ttv_num_erro)                   input no,        + ";" +
    /* Retorna Somente  string(tt_erros_api.ttv_des_mensagem)  NÆo Conciliados */
		                   + ";" +
      output table string(tt_errosconcilia_api.ttv_des_ajuda)sdos_terceiros,
		                        skip.
end.

output stream s1 close.
output stream s2 close.
output stream s3 close.table tt_lanctos_ctbl_concil,
DELETE PROCEDURE v_hdl_api.
Bloco de código
languageruby
xxxxx




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.

Documento Traduzido

  • Xxxxxx