Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | Prgfin/fgl/fgl900zl |
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 É IHUAL A SIM*/
run prgfin/fgl/fgl900zo.py persistent set v_hdl_api.
run pi_main_api_lote_ctbl_recebto_1 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_1,
input-output table tt_integr_lancto_ctbl_1,
input-output table tt_integr_item_lancto_ctbl_1,
input-output table tt_integr_aprop_lancto_ctbl_1,
input-output table tt_integr_ctbl_valid_1,
input-output table tt_params_generic_api).
run pi_finalizar_fgl900zo in v_hdl_api.
delete procedure v_hdl_api.
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_1 | 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_rec_integr_lote_ctbl | recid | >>>>>>9 |
|
|
|
def temp-table tt_integr_lote_ctbl_1 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_rec_integr_lote_ctbl as recid format ">>>>>>9"
index tt_recid
ttv_rec_integr_lote_ctbl ascending.
2) Temp-table de Lançamentos Contábeis
Tabela Temporária | Descrição | Entrada/Saída |
tt_integr_lancto_ctbl_1 | 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 |
|
|
ttv_rec_integr_lote_ctbl | recid | >>>>>>9 |
|
|
|
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_rec_integr_lancto_ctbl | recid | >>>>>>9 |
|
|
|
def temp-table tt_integr_lancto_ctbl_1 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 ttv_rec_integr_lote_ctbl as recid format ">>>>>>9"
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_rec_integr_lancto_ctbl as recid format ">>>>>>9"
index tt_id is primary unique
ttv_rec_integr_lote_ctbl ascending
tta_num_lancto_ctbl ascending
index tt_recid
ttv_rec_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_1 | 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 |
ttv_rec_integr_lancto_ctbl | recid | >>>>>>9 |
|
|
|
tta_num_seq_lancto_ctbl | integer | >>>>9 | Sequência Lançto |
|
|
tta_ind_natur_lancto_ctbl | character | x(2) | Natureza |
|
|
tta_cod_plano_cta_ctbl | character | x(8) | PlanoContas |
|
|
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) | Unid 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 CPartida |
|
|
ttv_ind_erro_valid | character | X(8) |
|
|
|
tta_cod_ccusto | character | x(11) | Centro Custo |
|
|
tta_cod_proj_financ | character | x(20) | Projeto |
|
|
ttv_rec_integr_item_lancto_ctbl | recid |
| >>>>>>9 |
|
|
def temp-table tt_integr_item_lancto_ctbl_1 no-undo
field ttv_rec_integr_lancto_ctbl as recid format ">>>>>>9"
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"
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"
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(11)" label "Centro Custo" column-label "Centro Custo"
field tta_cod_proj_financ as character format "x(20)" label "Projeto" column-label "Projeto"
field ttv_rec_integr_item_lancto_ctbl as recid format ">>>>>>9"
index tt_id is primary unique
ttv_rec_integr_lancto_ctbl ascending
tta_num_seq_lancto_ctbl ascending
index tt_recid
ttv_rec_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_ctbl_1 | 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) | Unid 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 | Apropriacao Lançto |
|
|
ttv_rec_integr_item_lancto_ctbl | recid | >>>>>>9 |
|
|
|
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_rec_integr_aprop_lancto_ctbl | recid | >>>>>>9 |
|
|
|
def temp-table tt_integr_aprop_lancto_ctbl_1 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 "9999999999" initial 0 label "Apropriacao Lançto" column-label "Apropriacao Lançto"
field ttv_rec_integr_item_lancto_ctbl as recid format ">>>>>>9"
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(11)" label "Centro Custo" column-label "Centro Custo"
field ttv_rec_integr_aprop_lancto_ctbl as recid format ">>>>>>9"
index tt_id is primary unique
ttv_rec_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_recid
ttv_rec_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_1 | Tabela com erros | Entrada e Saída |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
ttv_rec_integr_ctbl | recid | >>>>>>9 |
|
|
|
ttv_num_mensagem | integer | >>>>,>>9 | Número Mensagem |
|
|
ttv_ind_pos_erro | character | X(8) | Posição |
|
|
def new shared temp-table tt_integr_ctbl_valid_1 no-undo
field ttv_rec_integr_ctbl as recid format ">>>>>>9"
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"
index tt_id is primary unique
ttv_rec_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_params_generic_api | Tabela genérica de campos | Entrada e Saída |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
ttv_rec_id | recid | >>>>>>9 | RecId de outro registro de temp-table que está relacionada |
|
|
ttv_cod_tabela | character | x(100) | Nome da tabela relacionada |
|
|
ttv_cod_campo | character | x(100) | Nome do campo a ser passado |
|
|
ttv_cod_valor | character | x(100) | Valor do campo, sempre deverá ser convertido para Character. |
|
|
def temp-table tt_params_generic_api no-undo
field ttv_rec_id as recid format ">>>>>>9" label "RecId Tabela Relacionada"
field ttv_cod_tabela as character format "x(100)" label "Tabela"
field ttv_cod_campo as character format "x(100)" label "Campo"
field ttv_cod_valor as character format "x(100)" label "Valor"
index tt_idx_param_generic is primary unique
ttv_cod_tabela ascending
ttv_rec_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_params_generic_api.
assign tt_params_generic_api.ttv_rec_id = tt_integr_item_lancto_ctbl_1.ttv_rec_integr_item_lancto_ctbl
tt_params_generic_api.ttv_cod_tabela = 'tt_integr_item_lancto_ctbl':U
tt_params_generic_api.ttv_cod_campo = 'Participante':U
tt_params_generic_api.ttv_cod_valor = [Valor do Código do Participante em formato caracter].
Relacionamento entre as tabelas temporárias:
- TT_INTEGR_LOTE_CTBL_1
1 Armazenar no atributo ttv_rec_integr_lote_ctbl o recid(TT_INTEGR_LOTE_CTBL_1)
- TT_INTEGR_LANCTO_CTBL_1
1 Armazenar no atributo ttv_rec_integr_lote_ctbl o recid(TT_INTEGR_LOTE_CTBL_1)
2 Armazenar no atributo ttv_rec_integr_lancto_ctbl o recid(TT_INTEGR_LANCTO_CTBL_1)
- TT_INTEGR_ITEM_LANCTO_CTBL_1
1 Armazenar no atributo ttv_rec_integr_lancto_ctbl o recid(TT_INTEGR_LANCTO_CTBL_1)
2 Armazenar no atributo ttv_rec_integr_item_lancto_ctbl o recid(TT_INTEGR_ITEM_LANCTO_CTBL_1)
- TT_INTEGR_APROP_LANCTO_CTBL_1
1 Armazenar no atributo ttv_rec_integr_item_lancto_ctbl o recid(TT_INTEGR_ITEM_LANCTO_CTBL_1)
2 Armazenar no atributo ttv_rec_integr_aprop_lancto_ctbl o recid(TT_INTEGR_APROP_LANCTO_CTBL_1)
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_1
- 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;