Histórico da Página
Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | Prgfin/fgl/fgl900zo |
Objetivo
Atualizar o módulo de Contabilidade com Lotes de outros módulos, tanto através de arquivos ASCII quanto diretamente do módulo.
Funcionamento
Na forma padrão, a API é persistida em memória e posteriormente chamada através de uma PI, passando-se as temp-tables carregadas com as informações necessárias.
A sintaxe para a chamada da API é:
define variable v_hdl_api as handle no-undo.
def new shared stream s_1. /*USADO QUANDO EMITE RELATÓRIO É IGUAL A SIM*/
run prgfin/fgl/fgl900zo.py persistent set v_hdl_api.
run pi_main_api_lote_ctbl_recebto_2 in v_hdl_api
(input 3,
input "Aborta Tudo",
input yes,
input 66,
input "Apropriação",
input "Com Erro",
input yes,
input yes,
input-output table tt_integr_lote_ctbl_new,
input-output table tt_integr_lancto_ctbl_new,
input-output table tt_integr_item_lancto_ctbl_new,
input-output table tt_integr_aprop_lancto_ctbl_new,
input-output table tt_integr_ctbl_valid_new,
input-output table tt_api_params_generic).
run pi_finalizar_fgl900zo in v_hdl_api.
delete procedure v_hdl_api.
OBS: Caso tenha migrado para base utilizando rowid e esteja utilizado uma versão inferior a 2 da API, deve ser definido a include abaixo:
/*-- Filtro RECID x ROWID Aplicado --*/
{include/i_fncrowid.i}
E todas variáveis do tipo RECID, devem serem definidas conforme o modelo abaixo:
field ttv_rec_integr_lote_ctbl as &IF "{&ROWID_READY}" = "YES" &THEN rowid &ELSE recid format ">>>>>>9" &ENDIF
Os parâmetros de entrada são:
Parâmetros:
- Número da versão de Integração (atualmente = 3)
- Tratamento do Erro
2.1. Aborta Lotes Errados
2.2. Aborta Tudo
- Emite Relatório
3.1. Indica se deve listar os erros ou apenas gravar na temp-table tt_integr_ctbl_valid
3.2. Quando igual yes, o programa chamador deverá abrir a stream “s_1” (ver definição no item “Como usuar”) onde será emitido o relatório
- Número de Linhas do relatório
4.1. Apenas quando emite relatório, senão deve ser igual a “no”
- Nível de Impressão
5.1. Indica até que nível deve ser impresso o relatório
5.2. Apropriação, Item, Lançamento ou Lote
- Impressão de Lotes
6.1. Indica o que deve ser impresso
6.2. Com Erro, Sem Erro, Todos ou Nenhum
- Lógico de Primeiro Lote Contábil
7.1. Deve ser usado quando estiver sendo integrado vários lotes contábeis ao mesmo tempo. No primeiro lote enviado deve vir igual a “yes” e os demais igual a “no”
- Lógico de Último Lote Contábil.
8.1. Deve ser usado quando estiver sendo integrado vários lotes contábeis ao mesmo tempo. No último lote enviado deve vir igual a “yes” e os demais igual a “no”
- Tabela Temporária com os dados do(s) Lote(s) à ser(em) gerado(s);
- Tabela Temporária com os dados do(s) Lançamento(s) à ser(em) gerado(s);
- Tabela Temporária com os dados do(s) Iten(s) à ser(em) gerado(s);
- Tabela Temporária com os dados da(s) Apropriaçõ(es) à ser(em) gerada(s);
- Tabela Temporária que conterá os possíveis erros da integração;
- Tabela Genérica contendo campos de entradas ou saídas que poderão estar relacionadas a qualquer uma das temp-tables acima citadas.
Tabelas Temporárias
Nos atributos das tabelas temporárias de entrada e saída:
1) Temp-table de Lotes Contábeis
Tabela Temporária | Descrição | Entrada/Saída |
tt_integr_lote_ctbl_new | Conterá a capa do lote; Não é obrigatório o número do lote, pois o programa de recebimento atribuirá o número de lote correto. | Entrada e Saída |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
tta_cod_modul_dtsul | character | x(3) | Módulo |
| |
tta_num_lote_ctbl | Integer | >>>,>>>,>>9 | Lote Contábil | ||
tta_des_lote_ctbl | character | x(40) | Descrição Lote | ||
tta_cod_empresa | character | x(3) | Empresa | ||
tta_dat_lote_ctbl | date | 99/99/9999 | Data Lote Contábil | ||
ttv_ind_erro_valid | character | x(8) | |||
tta_log_integr_ctbl_online | logical | Sim/Não | Integração Online | ||
ttv_row_integr_lote_ctbl | rowid |
def temp-table tt_integr_lote_ctbl_new no-undo
field tta_cod_modul_dtsul as character format "x(3)" label "Módulo" column-label "Módulo"
field tta_num_lote_ctbl as integer format ">>>,>>>,>>9" initial 1 label "Lote Contábil" column-label "Lote Contábil"
field tta_des_lote_ctbl as character format "x(40)" label "Descrição Lote" column-label "Descrição Lote"
field tta_cod_empresa as character format "x(3)" label "Empresa" column-label "Empresa"
field tta_dat_lote_ctbl as date format "99/99/9999" initial today label "Data Lote Contábil" column-label "Data Lote Contábil"
field ttv_ind_erro_valid as character format "X(08)" initial "Não"
field tta_log_integr_ctbl_online as logical format "Sim/Não" initial no label "Integração Online" column-label "Integr Online"
field ttv_row_integr_lote_ctbl as rowid
index tt_rowid
ttv_row_integr_lote_ctbl ascending.
2) Temp-table de Lançamentos Contábeis
Tabela Temporária | Descrição | Entrada/Saída |
tt_integr_lancto_ctbl_new | Nível que agrupa os itens de lançamento (DB e CR) para um mesmo cenário e data. | Entrada e Saída |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
tta_cod_cenar_ctbl | character | x(8) | Cenário Contábil |
| |
tta_log_lancto_conver | logical | Sim/Não | Lançamento Conversão | ||
tta_log_lancto_apurac_restdo | logical | Sim/Não | Lançamento Apuração | ||
tta_cod_rat_ctbl | character | x(8) | Rateio Contábil | ||
tta_num_lancto_ctbl | integer | >>,>>>,>>9 | Lançamento Contábil | ||
ttv_ind_erro_valid | character | x(8) | |||
tta_dat_lancto_ctbl | date | 99/99/9999 | Data Lançamento | ||
ttv_row_integr_lote_ctbl | rowid | ||||
ttv_row_integr_lancto_ctbl | rowid |
def temp-table tt_integr_lancto_ctbl_new no-undo
field tta_cod_cenar_ctbl as character format "x(8)" label "Cen rio Cont bil" column-label "Cen rio Cont bil"
field tta_log_lancto_conver as logical format "Sim/N’o" initial no label "Lan?amento Convers’o" column-label "Lan?to Conv"
field tta_log_lancto_apurac_restdo as logical format "Sim/N’o" initial no label "Lan?amento Apura?’o" column-label "Lancto Apura?’o"
field tta_cod_rat_ctbl as character format "x(8)" label "Rateio Cont bil" column-label "Rateio"
field tta_num_lancto_ctbl as integer format ">>,>>>,>>9" initial 10 label "Lan?amento Cont bil" column-label "Lan?amento Cont bil"
field ttv_ind_erro_valid as character format "X(08)" initial "N’o"
field tta_dat_lancto_ctbl as date format "99/99/9999" initial ? label "Data Lan?amento" column-label "Data Lan?to"
field ttv_row_integr_lote_ctbl as Rowid
field ttv_row_integr_lancto_ctbl as Rowid
index tt_id is primary unique
ttv_row_integr_lote_ctbl ascending
tta_num_lancto_ctbl ascending
index tt_rowid
ttv_row_integr_lancto_ctbl ascending
.
3) Temp-table de Itens de Lançamento Contábeis
Tabela Temporária | Descrição | Entrada/Saída |
tt_integr_item_lancto_ctbl_new | Devem conter os débitos e os créditos nas diversas contas contábeis, estabelecimento, centro de custo, unidade de negócio. | Entrada e Saída |
(*) A partir da 5.07A o estabelecimento passa a ter cinco dígitos.
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
tta_num_seq_lancto_ctbl | integer | >>>>9 | Sequência Lançamento | ||
tta_ind_natur_lancto_ctbl | character | x(2) | Natureza | ||
tta_cod_plano_cta_ctbl | character | x(8) | Plano Contas | ||
tta_cod_cta_ctbl | character | x(20) | Conta Contábil | ||
tta_cod_plano_ccusto | character | x(8) | Plano Centros Custo | ||
tta_cod_estab | character | x(3) / x(5)* | Estabelecimento | ||
tta_cod_unid_negoc | character | x(3) | Unidade Negócio | ||
tta_cod_histor_padr | character | x(8) | Histórico Padrão | ||
tta_des_histor_lancto_ctbl | character | x(2000) | Histórico Contábil | ||
tta_cod_espec_docto | character | x(3) | Espécie Documento | ||
tta_dat_docto | date | 99/99/9999 | Data Documento | ||
tta_des_docto | character | x(25) | Número Documento | ||
tta_cod_imagem | character | x(30) | Imagem | ||
tta_cod_indic_econ | character | x(8) | Moeda | ||
tta_dat_lancto_ctbl | date | 99/99/9999 | Data Lançamento | ||
tta_qtd_unid_lancto_ctbl | decimal | >>,>>>,>>9.99 | Quantidade | ||
tta_val_lancto_ctbl | decimal | >>>>>,>>>,>>9.99 | Valor Lançamento | ||
tta_num_seq_lancto_ctbl_cpart | integer | >>>9 | Sequência Contra-Partida | ||
ttv_ind_erro_valid | character | X(8) | |||
tta_cod_ccusto | character | x(11) | Centro Custo | ||
tta_cod_proj_financ | character | x(20) | Projeto | ||
ttv_row_integr_lancto_ctbl | rowid | ||||
ttv_row_integr_item_lancto_ctbl | rowid |
def temp-table tt_integr_item_lancto_ctbl_new no-undo
field tta_num_seq_lancto_ctbl as integer format ">>>>9" initial 0 label "Sequ?ncia Lan?to" column-label "Sequ?ncia Lan?to"
field tta_ind_natur_lancto_ctbl as character format "X(02)" initial "DB" label "Natureza" column-label "Natureza"
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_cod_plano_ccusto as character format "x(8)" label "Plano Centros Custo" column-label "Plano Centros Custo"
field tta_cod_estab as character format "x(5)" label "Estabelecimento" column-label "Estab"
field tta_cod_unid_negoc as character format "x(3)" label "Unid Neg½cio" column-label "Un Neg"
field tta_cod_histor_padr as character format "x(8)" label "Hist½rico Padr’o" column-label "Hist½rico Padr’o"
field tta_des_histor_lancto_ctbl as character format "x(2000)" label "Hist½rico Cont bil" column-label "Hist½rico Cont bil"
field tta_cod_espec_docto as character format "x(3)" label "Esp?cie Documento" column-label "Esp?cie"
field tta_dat_docto as date format "99/99/9999" initial ? label "Data Documento" column-label "Data Documento"
field tta_des_docto as character format "x(25)" label "Nœmero Documento" column-label "Nœmero Documento"
field tta_cod_imagem as character format "x(30)" label "Imagem" column-label "Imagem"
field tta_cod_indic_econ as character format "x(8)" label "Moeda" column-label "Moeda"
field tta_dat_lancto_ctbl as date format "99/99/9999" initial ? label "Data Lan?amento" column-label "Data Lan?to"
field tta_qtd_unid_lancto_ctbl as decimal format ">>,>>>,>>9.99" decimals 2 initial 0 label "Quantidade" column-label "Quantidade"
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_num_seq_lancto_ctbl_cpart as integer format ">>>9" initial 0 label "Sequ?ncia CPartida" column-label "Sequ?ncia CP"
field ttv_ind_erro_valid as character format "X(08)" initial "N’o"
field tta_cod_ccusto as Character format "x(20)" label "Centro Custo" column-label "Centro Custo"
field tta_cod_proj_financ as character format "x(20)" label "Projeto" column-label "Projeto"
field ttv_row_integr_lancto_ctbl as Rowid
field ttv_row_integr_item_lancto_ctbl as Rowid
index tt_id is primary unique
ttv_row_integr_lancto_ctbl ascending
tta_num_seq_lancto_ctbl ascending
index tt_rowid
ttv_row_integr_item_lancto_ctbl ascending
.
4) Temp-table de Apropriações Contábeis
Tabela Temporária | Descrição | Entrada/Saída |
tt_integr_aprop_lancto_new | Devem conter as aberturas dos créditos ou débitos por finalidades econômicas. | Entrada e Saída |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
tta_cod_finalid_econ | character | x(10) | Finalidade | ||
tta_cod_unid_negoc | character | x(3) | Unidade Negócio | ||
tta_cod_plano_ccusto | character | x(8) | Plano Centros Custo | ||
tta_qtd_unid_lancto_ctbl | decimal | >>,>>>,>>9.99 | Quantidade | ||
tta_val_lancto_ctbl | decimal | >>>>>,>>>,>>9.99 | Valor Lançamento | ||
tta_num_id_aprop_lancto_ctbl | integer | 9999999999 | Apropriação Lançamento | ||
tta_dat_cotac_indic_econ | date | 99/99/9999 | Data Cotação | ||
tta_val_cotac_indic_econ | decimal | >>>>,>>9.9999999999 | Cotação | ||
ttv_ind_erro_valid | character | X(8) | |||
tta_ind_orig_val_lancto_ctbl | character | X(10) | Origem Valor | ||
tta_cod_ccusto | character | X(11) | Centro Custo | ||
ttv_row_integr_item_lancto_ctbl | rowid | ||||
ttv_row_integr_aprop_lancto_ctbl | rowid |
def temp-table tt_integr_aprop_lancto_new no-undo
field tta_cod_finalid_econ as character format "x(10)" label "Finalidade" column-label "Finalidade"
field tta_cod_unid_negoc as character format "x(3)" label "Unid Neg½cio" column-label "Un Neg"
field tta_cod_plano_ccusto as character format "x(8)" label "Plano Centros Custo" column-label "Plano Centros Custo"
field tta_qtd_unid_lancto_ctbl as decimal format ">>,>>>,>>9.99" decimals 2 initial 0 label "Quantidade" column-label "Quantidade"
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_num_id_aprop_lancto_ctbl as integer format "999999999" initial 0 label "Apropriacao Lan?to" column-label "Apropriacao Lan?to"
field tta_dat_cotac_indic_econ as date format "99/99/9999" initial ? label "Data Cota?’o" column-label "Data Cota?’o"
field tta_val_cotac_indic_econ as decimal format ">>>>,>>9.9999999999" decimals 10 initial 0 label "Cota?’o" column-label "Cota?’o"
field ttv_ind_erro_valid as character format "X(08)" initial "N’o"
field tta_ind_orig_val_lancto_ctbl as character format "X(10)" initial "Informado" label "Origem Valor" column-label "Origem Valor"
field tta_cod_ccusto as Character format "x(20)" label "Centro Custo" column-label "Centro Custo"
field ttv_row_integr_item_lancto_ctbl as Rowid
field ttv_row_integr_aprop_lancto_ctbl as Rowid
index tt_id is primary unique
ttv_row_integr_item_lancto_ctbl ascending
tta_cod_finalid_econ ascending
tta_cod_unid_negoc ascending
tta_cod_plano_ccusto ascending
tta_cod_ccusto ascending
index tt_rowid
ttv_row_integr_aprop_lancto_ctbl ascending
.
5) Temp-table com os Erros da Integração
Tabela Temporária | Descrição | Entrada/Saída |
tt_integr_ctbl_valid_new | Tabela com erros | Entrada e Saída |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
ttv_num_mensagem | integer | >>>>,>>9 | Número Mensagem | ||
ttv_ind_pos_erro | character | X(8) | Posição | ||
ttv_row_integr_ctbl | rowid |
def temp-table tt_integr_ctbl_valid_new no-undo
field ttv_num_mensagem as integer format ">>>>,>>9" label "Nœmero" column-label "Nœmero Mensagem"
field ttv_ind_pos_erro as character format "X(08)" label "Posi?’o"
field ttv_row_integr_ctbl as Rowid
index tt_id is primary unique
ttv_row_integr_ctbl ascending
ttv_num_mensagem ascending
.
6) Temp-table genérica para passagem de campos relacionadas a qualquer uma das temp-tables acima, utilizada para evitar que a API em questão tenha novas evoluções caso campos novos sejam necessários.
Tabela Temporária | Descrição | Entrada/Saída |
tt_api_params_generic | Tabela genérica de campos | Entrada e Saída |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
ttv_row_id | character | x(80) | RowId de outro registro de temp-table que está relacionada | ||
ttv_cod_tabela | character | x(28) | Nome da tabela relacionada | ||
ttv_cod_campo | character | x(35) | Nome do campo a ser passado | ||
ttv_cod_valor | character | x(8) | Valor do campo, sempre deverá ser convertido para Character. |
def temp-table tt_api_params_generic no-undo
field ttv_cod_row_id as character format "x(80)"
field ttv_cod_tabela as character format "x(28)" label "Tabela" column-label "Tabela"
field ttv_cod_campo as character format "x(35)" label "Campo" column-label "Campo"
field ttv_cod_valor as character format "x(8)" label "Valor" column-label "Valor"
index tt_idx_param_generic is primary unique
ttv_cod_tabela ascending
ttv_cod_row_id ascending
ttv_cod_campo ascending
.
Lista de Campo(s) que a API fgl900zo processa e que podem ser passados como parâmetro através da tamp-table tt_params_generic_api:
Código do Participante: Relacionado a tabela Item Lançamento Contábil (tt_integr_item_lancto_ctbl_1). Na criação de cada registro da tabela tt_integr_item_lancto_ctbl_1, será adicionado um campo correspondente na tt_params_generic_api, somente caso seja necessário passar esta informação.
Exemplo:
create tt_api_params_generic .
assign tt_api_params_generic.ttv_row_id = tt_integr_item_lancto_ctbl_new.ttv_row_integr_item_lancto_ctbl
tt_api_params_generic.ttv_cod_tabela = 'tt_integr_item_lancto_ctbl':U
tt_api_params_generic.ttv_cod_campo = 'Participante':U
tt_api_params_generic.ttv_cod_valor = [Valor do Código do Participante em formato caracter].
Relacionamento entre as tabelas temporárias:
- TT_INTEGR_LOTE_CTBL_NEW
1 Armazenar no atributo ttv_row_integr_lote_ctbl o rowid(TT_INTEGR_LOTE_CTBL_NEW)
- TT_INTEGR_LANCTO_CTBL_NEW
1 Armazenar no atributo ttv_row_integr_lote_ctbl o rowid(TT_INTEGR_LOTE_CTBL_NEW)
2 Armazenar no atributo ttv_row_integr_lancto_ctbl o rowid(TT_INTEGR_LANCTO_CTBL_NEW)
- TT_INTEGR_ITEM_LANCTO_CTBL_NEW
1 Armazenar no atributo ttv_row_integr_lancto_ctbl o rowid(TT_INTEGR_LANCTO_CTBL_NEW)
2 Armazenar no atributo ttv_row_integr_item_lancto_ctbl o rowid(TT_INTEGR_ITEM_LANCTO_CTBL_NEW)
- TT_INTEGR_APROP_LANCTO_NEW
1 Armazenar no atributo ttv_row_integr_item_lancto_ctbl o rowid(TT_INTEGR_ITEM_LANCTO_CTBL_NEW)
2 Armazenar no atributo ttv_row_integr_aprop_lancto_ctbl o rowid(TT_INTEGR_APROP_LANCTO_NEW)
Observações:
- Se o atributo tt_integr_lote_ctbl.ttv_ind_erro_valid = “Não”, o lote está na contabilidade do EMS 5.0;
- Senão o lote apresentou inconsistência, que podem ser vistas no relatório (se impresso) ou nos registros da tabela temporária tt_integr_ctbl_valid_new;
- Para que se tenha o rastreamento das apropriações geradas, a temp-table de apropriação retorna o atributo tta_num_id_aprop_lancto_ctbl com o valor do “token” da apropriação gerada na contabilidade.