Árvore de páginas

Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome físico:

prgfin/bgc/bgc705za

Objetivo

Possibilitar através da passagem de informações que retorne o valor orçado, empenhado e realizado.

Funcionamento

A execução na forma persistente padrão para essa API é a execução persistente.

A sintaxe para executar a API/BO em modo persistente é:

A variável denominada h-handle irá receber o “handle” do programa, permitindo o acesso aos “métodos” internos da API.

Tabela Temporária

Aqui iremos dividir a tabela temporária em Entrada, Entrada/Saída e Saída para organizar e categorizar os dados conforme o seu papel e fluxo na execução da API.

O programa que irá executar a API deverá conter e criar a seguinte tabela temporária:

1. Entrada

Esses atributos são usados para fornecer informações à API. Eles são necessários para definir o contexto e os parâmetros de execução da API.

Tabela TemporáriaDescriçãoEntrada/Saída

tt_integr_retorna_sdo_orcto


Entrada
AtributoTipoFormatoDescriçãoObrigatórioEvolução
ttv_cod_produt_dtsulchar"x(8)"

Produto (EMS2 / EMS5)


Observação: Quando o produto origem for EMS2, deverão ser informados somente os atributos externos (ttv_cod_matriz_trad_org_ext, ttv_cod_empresa_ext, ttv_cod_estab_ext, ttv_cod_cta_ctbl_ext, ttv_cod_sub_cta_ctbl_ext, ttv_cod_matriz_trad_finalid_ext, ttv_num_finalid_ext).

A API fará as traduções necessárias para os atributos correspondentes do EMS5.

Sim
tta_cod_empresachar"(3)"Código da EmpresaSim
tta_cod_estabchar"x(5)EstabelecimentoNão
tta_cod_plano_cta_ctblchar"x(8)"Plano de ContasNão

tta_cod_cta_ctbl

char

"x(20)"

Conta Contábil

Não


tta_cod_plano_ccusto

char

"x(8)"

Plano de Centro de Custo

Não


tta_cod_ccusto

char

"x(11)"

Centro de Custo

Não


ttv_cod_matriz_trad_org_ext

char

"x(8)"

Matriz de Tradução


Observação: Quando não for informada, será  buscado primeiro a matriz de tradução informada nos Parâmetros Gerais do BGC, caso não tenha matriz informada nos parâmetros, será buscada então  a matriz de tradução dos parâmetros de integração do EMS (Contabilizações 2.00).

Não


ttv_cod_empresa_ext

char

"x(3)"

Empresa Externa

Não


ttv_cod_estab_ext

char

"x(3)"

Estabelecimento Externo

Não


ttv_cod_cta_ctbl_ext

char

"x(20)"

Conta Contábil Externa

Não


ttv_cod_sub_cta_ctbl_ext

char

"x(8)”

Sub-Conta Externa

Não


ttv_cod_matriz_trad_finalid_ext  

char

"x(8)"

Matriz de Tradução Finalidade Externa

Não


ttv_num_finalid_ext

int

“>9”

Moeda Externa

Não


tta_cod_unid_negoc

char

"x(3)"

Unidade de Negócio


Observação: Será obrigatório informar a Unidade de Negócio somente quando o produto for EMS5.

Sim (EMS5)


tta_cod_proj_financ

char

"x(20)"

Projeto

Não


tta_cod_finalid_econ

char

"x(10)"

Finalidade Econômica

Não


tta_cod_cenar_ctbl

char

"x(8)"

Cenário Contábil


Observação: Quando não for informado o Cenário Contábil, será utilizado o cenário parametrizado como “Fiscal” no cadastro de Utilização do Cenário Contábil.

Não


tta_cod_exerc_ctbl       

char

"9999"

Exercício

Sim


tta_num_period_ctbl

int

">99"

Período

Sim


ttv_dat_movto

date

"99/99/9999"

Data Movimento

Observação: Quando não for informada a Data do Movimento, esse atributo será atualizado com a data final do Período/Exercício Contábil informados.

Não



2. Entrada/Saída

Esses atributos podem atuar tanto como entrada quanto como saída. Isso significa que, além de fornecer informações iniciais para a API, eles podem ser atualizados pela API com novos valores baseados no processamento realizado.

Tabela TemporáriaDescriçãoEntrada/Saída

tt_integr_retorna_sdo_orcto


Entrada/Saída
AtributoTipoFormatoDescriçãoObrigatórioEvolução

tta_cod_cenar_orctario

char

"x(8)"

Cenário Orçamentário

Não


tta_cod_unid_orctaria

char

"x(8)"

Unidade Orçamentária

Não


tta_num_seq_orcto_ctbl

int

">>>>>>>>9"

Sequencia do Orçamento

Não


tta_cod_vers_orcto_ctbl

char

"x(10)"

Versão do Orçamento

Não



3. Saída

Esses atributos são utilizados para retornar os resultados do processamento da API. Eles contêm os valores calculados, informações de status e quaisquer mensagens de erro ou ajuda.

Tabela TemporáriaDescriçãoEntrada/Saída

tt_integr_retorna_sdo_orcto


Saída
AtributoTipoFormatoDescriçãoObrigatórioEvolução

ttv_val_tot_orcado

dec

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

Valor Orçado

---


ttv_val_movto_empenh

dec

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

Valor Empenhado

---


ttv_val_realiz

dec

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

Valor Realizado            

---


ttv_log_utiliz_exec_orctaria

logical

Sim/Não

Indica se foi Utilizada a Execução Orçamentária

---


ttv_cod_exerc_ctbl_ini

char

"9999"

Exercício Contábil Inicial

---


ttv_cod_exerc_ctbl_fim

char

"9999"

Exercício Contábil Final

---


ttv_num_period_ctbl_ini

int

">99"

Período Inicial

---


ttv_num_period_ctbl_fim

int

">99"

Período Final

---


tta_log_bloq_empres

logical

Sim/Não

Bloqueio por Empresa

---


tta_log_bloq_estab

logical

Sim/Não

Bloqueio por Estabelecimento

---


tta_log_bloq_unid_negoc

logical

Sim/Não

Bloqueio por Unidade de Negócio

---


ttv_log_plano_cta_ctbl_bloq

logical

Sim/Não

Bloqueio por Plano de Contas

---


tta_log_bloq_cta_ctbl

logical

Sim/Não

Bloqueio por Conta Contábil

---


ttv_log_plano_ccusto_bloq

logical

Sim/Não

Bloqueio por Plano Centro de Custo

---


tta_log_bloq_ccusto

logical

Sim/Não

Bloqueio por Centro de Custo

---


tta_log_bloq_proj_financ

logical

Sim/Não

Bloqueio por Projeto

---


ttv_num_cod_erro

int

">>>>,>>9"

Número do Erro

---


ttv_des_msg_erro

char

"x(60)"

Mensagem de Erro

---


ttv_des_msg_ajuda

char

"x(40)"

Texto de Ajuda

---



def temp-table tt_integr_retorna_sdo_orcto no-undo
    field ttv_cod_produt_dtsul             as character format "x(8)" label "Produto" column-label "Produto"
    field tta_cod_empresa                  as character format "x(3)" label "Empresa" column-label "Empresa"
    field tta_cod_estab                    as Character format "x(5)" label "Estabelecimento" column-label "Estab"
    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_ccusto                   as Character format "x(11)" label "Centro Custo" column-label "Centro Custo"
    field ttv_cod_matriz_trad_org_ext      as character format "x(8)" label "Matriz UO" column-label "Matriz UO"
  field ttv_cod_empresa_ext              as character format "x(3)" label "Código Empresa Ext" column-label "Cód Emp Ext"
    field ttv_cod_estab_ext                as character format "x(3)" label "Estabelecimento" column-label "Estabelecimento"
    field ttv_cod_cta_ctbl_ext             as character format "x(20)" column-label "Conta Cont bil"
    field ttv_cod_sub_cta_ctbl_ext_2       as character format "x(8)"
    field ttv_cod_matriz_trad_finalid_ext  as character format "x(8)" label "Matriz Trad Finalid" column-label "Matriz Trad Finalid"
    field ttv_num_finalid_ext              as integer format ">9" label "Finalid Econ Externa" column-label "Finalid Econ Externa"
  field tta_cod_unid_negoc               as character format "x(3)" label "Unid Negócio" column-label "Un Neg"
    field tta_cod_proj_financ              as character format "x(20)" label "Projeto" column-label "Projeto"
    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_exerc_ctbl               as character format "9999" label "Exerc¡cio Cont bil" column-label "Exercício Contábil"
  field tta_num_period_ctbl              as integer format ">99" initial 0 label "Período Contábil" column-label "Período"
    field ttv_dat_movto                    as date format "99/99/9999" label "Data Movimento" column-label "Data Movimento"
  field tta_cod_cenar_orctario           as character format "x(8)" label "Cenário Orçament rio" column-label "Cen rio Orçamen"
  field tta_cod_unid_orctaria            as character format "x(8)" label "Unid Orçamentária" column-label "Unid Orçamentária"
  field tta_num_seq_orcto_ctbl           as integer format ">>>>>>>>9" initial 0 label "Seq Orcto Contábil" column-label "Seq Orcto Contábil"
  field tta_cod_vers_orcto_ctbl          as character format "x(10)" label "Versão Orçamento" column-label "Versão Orçamento"
    field ttv_val_tot_orcado               as decimal format "->>,>>>,>>>,>>9.99" decimals 2
    field ttv_val_movto_empenh             as decimal format "->>,>>>,>>>,>>9.99" decimals 9 initial 0 label "Movto Empenhado" column-label "Movto Empenhado"
    field ttv_val_realiz                   as decimal format "->>,>>>,>>>,>>9.99" decimals 2
  field ttv_log_utiliz_exec_orctaria     as logical format "Sim/Não" initial no label "Utiliz Exec Orctaria" column-label "Utiliz Exec Orctaria"
    field ttv_cod_exerc_ctbl_ini           as character format "9999" label "Inicial" column-label "Inicial"
    field ttv_cod_exerc_ctbl_fim           as character format "9999" label "Final" column-label "Final"
  field ttv_num_period_ctbl_ini          as integer format ">99" initial 0 label "Período Inicial" column-label "Inicial"
  field ttv_num_period_ctbl_fim          as integer format ">99" initial 0 label "Período Final" column-label "Final"
  field tta_log_bloq_empres              as logical format "Sim/Não" initial no label "Bloqueio por Empresa" column-label "Bloqueio por Empresa"
  field tta_log_bloq_estab               as logical format "Sim/Não" initial no label "Bloq por Estabel" column-label "Bloq por Estabel"
  field tta_log_bloq_cta_ctbl            as logical format "Sim/Não" initial no label "Bloq por Cta Ctbl" column-label " Bloq por Cta Ctbl"
  field ttv_log_plano_ccusto_bloq        as logical format "Sim/Não" initial no
  field tta_log_bloq_ccusto              as logical format "Sim/Não" initial no label "Bloq por C.Custo" column-label "Bloq por C.Custo"
  field tta_log_bloq_unid_negoc          as logical format "Sim/Não" initial no label "Bloq por Un.Negócio" column-label "Bloq por Un.Negócio"
  field ttv_log_plano_cta_ctbl_bloq      as logical format "Sim/Não" initial no
  field tta_log_bloq_proj_financ         as logical format "Sim/Não" initial no label "Bloqueio por Projeto" column-label "Bloqueio por Projeto"
  field ttv_num_cod_erro                 as integer format ">>>>,>>9" label "Número" column-label "Número"
  field ttv_des_msg_erro                 as character format "x(60)" label "Mensagem Erro" column-label "Inconsistência"
    field ttv_des_msg_ajuda                as character format "x(40)" label "Mensagem Ajuda" column-label "Mensagem Ajuda"
    .

Observações gerais:

a) Se a base estiver parametrizada para efetuar a execução orçamentária, a API irá retornar os valores de saldo utilizando as informações de Ordem de Busca e Parâmetros de Bloqueio cadastrados para a empresa. Nesse caso, além de retornar os valores Orçado, Empenhado e Realizado, serão retornados nesses campos também os dados do orçamento encontrado através dos parâmetros da execução orçamentária. Caso contrário, se a base NÃO estiver parametrizada para efetuar a execução orçamentária, a API tentará retornar os valores buscando diretamente no Saldo do Orçamento informado, e no Saldo da Conta Contábil informada, sem utilizar a execução orçamentária. Nesse caso será retornado somente o Valor Orçado e o Valor Realizado, sendo que o valor realizado poderá ser negativo, quando o valor dos movimentos a crédito for maior do que o valor dos movimentos a débito.

b) Além dos valores orçado, empenhado e realizado, serão retornados também a faixa de Exercício/Período e as informações do Parâmetro de Bloqueio utilizados para retornar os valores. Esses atributos serão atualizados somente quando for utilizada a execução orçamentária;

c) Ao primeiro erro ocorrido, a API irá interromper o processo de busca dos valores de saldo. As informações desse erro serão retornadas nos três últimos atributos da temp-table (ttv_num_cod_erro, ttv_des_msg_erro, ttv_des_msg_ajuda);

d) Se no momento da execução da API o extrato de versão estiver ativo, serão gerados dois arquivos no diretório temporário do sistema. Um contendo os dados de entrada recebidos pela API, e outro contendo as informações retornadas pela mesma.

Exemplo de utilização da API

Para a utilização da api é necessário realizar os seguintes passos:

1. Definição do Handle

Definição da variável h-handle para armazenar a referência ao programa externo.

def var h-handle as widget-handle no-undo.

2. Definição da Tabela Temporária

Definição da  tabela temporária tt_integr_retorna_sdo_orcto com seus respectivos campos.

def temp-table tt_integr_retorna_sdo_orcto no-undo

    field ttv_cod_produt_dtsul             as character format "x(8)" label "Produto" column-label "Produto"

    field tta_cod_empresa                  as character format "x(3)" label "Empresa" column-label "Empresa"

    field tta_cod_estab                    as Character format "x(5)" label "Estabelecimento" column-label "Estab"

    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_ccusto                   as Character format "x(11)" label "Centro Custo" column-label "Centro Custo"

    field ttv_cod_matriz_trad_org_ext      as character format "x(8)" label "Matriz UO" column-label "Matriz UO"

  field ttv_cod_empresa_ext              as character format "x(3)" label "Código Empresa Ext" column-label "Cód Emp Ext"

    field ttv_cod_estab_ext                as character format "x(3)" label "Estabelecimento" column-label "Estabelecimento"

  field ttv_cod_cta_ctbl_ext             as character format "x(20)" column-label "Conta Contábil"

    field ttv_cod_sub_cta_ctbl_ext         as character format ">>>>9"

    field ttv_cod_matriz_trad_finalid_ext  as character format "x(8)" label "Matriz Trad Finalid" column-label "Matriz Trad Finalid"

    field ttv_num_finalid_ext              as integer format ">9" label "Finalid Econ Externa" column-label "Finalid Econ Externa"

  field tta_cod_unid_negoc               as character format "x(3)" label "Unid Negócio" column-label "Un Neg"

    field tta_cod_proj_financ              as character format "x(20)" label "Projeto" column-label "Projeto"

    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_exerc_ctbl               as character format "9999" label "Exercício Contábil" column-label "Exercício Contábil"

  field tta_num_period_ctbl              as integer format ">99" initial 0 label "Período Contábil" column-label "Período"

    field ttv_dat_movto                    as date format "99/99/9999" label "Data Movimento" column-label "Data Movimento"

  field tta_cod_cenar_orctario           as character format "x(8)" label "Cenário Orçamentário" column-label "Cenário Orçamen"

  field tta_cod_unid_orctaria            as character format "x(8)" label "Unid Orçament ria" column-label "Unid Orçamentária"

  field tta_num_seq_orcto_ctbl           as integer format ">>>>>>>>9" initial 0 label "Seq Orcto Contábil" column-label "Seq Orcto Contábil"

  field tta_cod_vers_orcto_ctbl          as character format "x(10)" label "Versão Orçamento" column-label "Versão Orçamento"

    field ttv_val_tot_orcado               as decimal format "->>,>>>,>>>,>>9.99" decimals 2

    field ttv_val_movto_empenh             as decimal format "->>,>>>,>>>,>>9.99" decimals 9 initial 0 label "Movto Empenhado" column-label "Movto Empenhado"

    field ttv_val_realiz                   as decimal format "->>,>>>,>>>,>>9.99" decimals 2

  field ttv_log_utiliz_exec_orctaria     as logical format "Sim/Não" initial no label "Utiliz Exec Orctaria" column-label "Utiliz Exec Orctaria"

    field ttv_cod_exerc_ctbl_ini           as character format "9999" label "Inicial" column-label "Inicial"

    field ttv_cod_exerc_ctbl_fim           as character format "9999" label "Final" column-label "Final"

    field ttv_num_period_ctbl_ini          as integer format ">99" initial 0 label "Per¡odo Inicial" column-label "Inicial"

    field ttv_num_period_ctbl_fim          as integer format ">99" initial 0 label "Per¡odo Final" column-label "Final"

  field tta_log_bloq_empres              as logical format "Sim/Não" initial no label "Bloqueio por Empresa" column-label "Bloqueio por Empresa"

  field tta_log_bloq_estab               as logical format "Sim/Não" initial no label "Bloq por Estabel" column-label "Bloq por Estabel"

  field tta_log_bloq_cta_ctbl            as logical format "Sim/Não" initial no label "Bloq por Cta Ctbl" column-label " Bloq por Cta Ctbl"

  field ttv_log_plano_ccusto_bloq        as logical format "Sim/Não" initial no

  field tta_log_bloq_ccusto              as logical format "Sim/Não" initial no label "Bloq por C.Custo" column-label "Bloq por C.Custo"

  field tta_log_bloq_unid_negoc          as logical format "Sim/Não" initial no label "Bloq por Un.Negócio" column-label "Bloq por Un.Neg¢cio"

  field ttv_log_plano_cta_ctbl_bloq      as logical format "Sim/Não" initial no

  field tta_log_bloq_proj_financ         as logical format "Sim/Não" initial no label "Bloqueio por Projeto" column-label "Bloqueio por Projeto"

  field ttv_num_cod_erro                 as integer format ">>>>,>>9" label "Número" column-label "Número"

  field ttv_des_msg_erro                 as character format "x(60)" label "Mensagem Erro" column-label "Inconsistência"

    field ttv_des_msg_ajuda                as character format "x(40)" label "Mensagem Ajuda" column-label "Mensagem Ajuda"

    . 


3.Limpeza da Tabela Temporária
Após definirmos a tabela, no terceiro passo removemos todos os registros existentes na tabela temporária.

FOR EACH tt_integr_retorna_sdo_orcto:

    DELETE tt_integr_retorna_sdo_orcto.

END.  


4. Criação de um Registro na Tabela Temporária

Com a limpeza da tabela temporária, criamos um novo registro na tabela tt_integr_retorna_sdo_orcto e atribui valores aos campos desse registro.

create tt_integr_retorna_sdo_orcto.

assign tt_integr_retorna_sdo_orcto.ttv_cod_produt_dtsul            = "EMS5"

       tt_integr_retorna_sdo_orcto.tta_cod_empresa                 = '10'

       tt_integr_retorna_sdo_orcto.tta_cod_estab                   = '1'

       tt_integr_retorna_sdo_orcto.tta_cod_plano_cta_ctbl          = 'alfa'

       tt_integr_retorna_sdo_orcto.tta_cod_cta_ctbl                = '030303030303030'

       tt_integr_retorna_sdo_orcto.tta_cod_plano_ccusto            = ''

       tt_integr_retorna_sdo_orcto.tta_cod_ccusto                  = ''

       tt_integr_retorna_sdo_orcto.tta_cod_unid_negoc              = "01"

     tt_integr_retorna_sdo_orcto.tta_cod_exerc_ctbl              = "2024"

     tt_integr_retorna_sdo_orcto.tta_num_period_ctbl             = 01

     tt_integr_retorna_sdo_orcto.tta_cod_finalid_econ            = 'corrente'

     tt_integr_retorna_sdo_orcto.tta_cod_cenar_ctbl              = 'fiscal'

    tt_integr_retorna_sdo_orcto.tta_cod_cenar_orctario = 'geral'

    tt_integr_retorna_sdo_orcto.tta_cod_unid_orctaria = 'geral'

    tt_integr_retorna_sdo_orcto.tta_num_seq_orcto_ctbl = 14

    tt_integr_retorna_sdo_orcto.tta_cod_vers_orcto_ctbl = '1.00'      

    .


5. Execução do Programa Externo

Aqui chamamos o programa externo bgc705za.r e define que ele será executado de forma persistente, armazenando a referência em h-handle. Em seguida, executamos a pi_main_retorna_dados_ctbl_01, passando a tabela temporária tt_integr_retorna_sdo_orcto como parâmetro de entrada e saída.

run prgfin/bgc/bgc705za.r persistent set h-handle. 

run pi_main_retorna_dados_ctbl_01 in h-handle(input-output table tt_integr_retorna_sdo_orcto).



  • Sem rótulos