Á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 Realizar a conciliação automática , dos saldos contábeis distribuídos por terceiros , com os saldos
contábeis gerados sem essa distribuição 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
    Flag 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

x(10)


X

tta_cod_cenar_ctbl

Character

x(8)


X

tta_cod_plano_cta_ctbl

Character

x(8)


X

tta_cod_cta_ctbl

Character

x(20)


X

tta_des_tit_ctbl

Character

x(40)



ttv_val_sdo_terc_inic

Decimal

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

0


ttv_val_mov_terc_db

Decimal

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

0


ttv_val_mov_terc_cr

Decimal

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

0


ttv_val_sdo_terc_fim

Decimal

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

0


ttv_val_sdo_ctbl_inic

Decimal

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

0


ttv_val_mov_ctbl_db

Decimal

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

0


ttv_val_mov_ctbl_cr

Decimal

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

0


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

X

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 IniciaInicial

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 "

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.990
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>>>,>>90X
tta_cod_empresaCharacterx(3)
X
tta_cod_finalid_econCharacterx(10)
X
tta_cod_plano_cta_ctblCharacterx(8)
X
tta_cod_cta_ctblCharacterx(20)
X
tta_cod_plano_ccustoCharacterx(8)
X
tta_cod_ccustoCharacterx(20)
X
tta_cod_proj_financCharacterx(20)
X
tta_cod_cenar_ctblCharacterx(8)
X
tta_cod_estab Characterx(5)
X
tta_cod_unid_negocCharacterx(3)
X
tta_dat_sdo_ctblDate99/99/9999?X
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.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 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 */
0
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.990
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_ctblMovimento Contábil
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 in v_hdl_api (input v_cod_empres_usuar,
                           				input p_cod_estab_ini,
                          				input p_cod_estab_fim,
                           				input p_cod_finalid_econ,
                 
input
 
"Fiscal",
        
/* Cen rio Cont bil */
 				input colext_cta_ctbl.cod_plano_cta_ctbl,
                           
input "PESO COL",
				input colext_cta_ctbl.cod_cta_ctbl,
       
/*
 
Finalidade
 
Econ“mica
 
*/
                 				input colext_cta_ctbl.cod_cta_ctbl,
         
input
 
v_cod_exercicio,
 
/*
 
Exerc¡cio
 
*/
              				input "",
            
input
 
v_num_periodo,
   
/*
 
Per¡odo
 
*/
         				input "",
                 
input
 
"IGN",
         				input "ZZZZZZZZZZZ" /*
Estab Inicial
l_zzzzzzzzzzz*/ ,
                           				input 
"IGV",
p_cod_un_inicial,
           
/*
 
Estab
 
Final
 
*/
             				input p_cod_un_final,
             
input
 
"008",
           
/*
 
UN
 
Inicial */
				input p_cod_cenar_ctbl,
                           				input "
VEN
",
           
/*
 
UN
 
Final
 
*/
            				input 
"ZZZZZZZZZZZZZZZZZZZZ" /*l_zzzzzzzzzzzzzzzzzzzz*/ ,
         
input
 
no,
              
/*
 
Retorna
 
Somente
 
NÆo Conciliados */
				input v_dat_sdo_inic,
                           
output table tt_concilia_sdos_terceiros
				input v_dat_sdo_inic,
                           
output table tt_lanctos_ctbl_concil,
				input no,
                           				input "Maior ou Igual e Menor ou 
output table tt_erros_api).
Igual" /*l_maior_igual_menor_igual*/ ,
                           
				input "for each" 
tt
/*l_
concilia_sdos_terceiros:
for_each*/ ,
    
put
 
stream
 
s1
 
unformatted
     
string(tt_concilia_sdos_terceiros.tta_cod_finalid_econ)
      
+
 
";"
 
+
       				output table tt_retorna_sdo_ctbl).

Em caso de erro nas validações acima, o erro será retornado por meio da temp-table tt_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: string(tt_concilia_sdos_terceiros.tta_cod_cenar_ctbl)     + ";" +
        string(tt_concilia_sdos_terceiros.tta_cod_plano_cta_ctbl) + ";" +
        string(tt_concilia_sdos_terceiros.tta_cod_cta_ctbl)       + ";" +
     /* Busca  string(tt_concilia_sdos_terceiros.tta_des_tit_ctbl)       + ";" +
plano de contas */
		run prgfin\lco\lco728za.r (input "GRIFFE1",         string(tt_concilia_sdos_terceiros.ttv_val_sdo_terc_inic)  + ";" +/* Plano de Contas */
        string(tt_concilia_sdos_terceiros.ttv_val_mov_terc_db)            	    + ";" +
 	   input "Fiscal",   string(tt_concilia_sdos_terceiros.ttv_val_mov_terc_cr)     /* +Cen rio ";" +
Cont bil */
         string(tt_concilia_sdos_terceiros.ttv_val_sdo_terc_fim)   + ";" +
        string(tt_concilia_sdos_terceiros.ttv_val_sdo_ctbl_inic)  +		 ";" +
 input "PESO COL",     string(tt_concilia_sdos_terceiros.ttv_val_mov_ctbl_db)    + ";" +
 /* Finalidade Econ“mica */
		          string(tt_concilia_sdos_terceiros.ttv_val_mov_ctbl_cr)    + ";" +
        string(tt_concilia_sdos_terceiros.ttv_val_sdo_ctbl_fim)   + ";" +
   input v_cod_exercicio, /* Exerc¡cio */
		          string(tt_concilia_sdos_terceiros.ttv_log_dif_sdo)        + ";" +
       input string(ttv_concilia_sdos_terceiros.ttv_log_dif_mov)  num_periodo,   /* Per¡odo */
		      skip.
end.

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

for each tt_erros_api:
    put stream s3 unformatted
 /* UN Final */
		           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 closetable tt_lanctos_ctbl_concil,
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

>>>,>>9

0

ttv_des_mensagem

Character

x(50)


ttv_des_ajuda

Character

x(50)


ttv_row_id

Rowid

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.