Árvore de páginas

Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome FísicoPrgfin/fas/fas737zb

 

Objetivo

Permitir a criação de movimentos para bens patrimoniais sem a obrigação de fazê-los diretamente pelo módulo Ativo Fixo. Os movimentos poderão ser por Valor, Percentual ou Quantidade. Quando o movimento for de transferência, o tipo de movimento deve ser percentual e o % deve ser zero. Cada registro da temp-table de movimentos (tt_movto_bem_pat_api_b), possui um status e uma mensagem de erro, quando ocorrer.

 

Funcionamento

Na forma padrão, realiza-se a chamada através de um comando RUN normal, passando-se os parâmetros com as informações necessárias.

A sintaxe para a chamada da API é:

 

def new shared var v_ind_message_output

    as character

    format "X(10)":U

    initial "Na Tela"

    view-as radio-set Horizontal

    radio-buttons "Na Tela", "Na Tela", "Em Arquivo", "Em Arquivo"

    bgcolor 8

    no-undo.

define variable v_hdl_api_bem_pat_bxa_transf as handle      no-undo.

define new shared stream s_1.

 

assign v_ind_message_output = "Em Arquivo".

 

if  v_ind_message_output = "Em Arquivo" then

    output stream s_1 to "c:\tmp\fas737zb.log".

 

run prgfin/fas/fas737zb.py persistent set v_hdl_api_bem_pat_bxa_transf (Input 01).

 

run pi_api_criacao_movto_bem_pat in v_hdl_api_bem_pat_bxa_transf

                                                     (input "",

                                                      input-output table tt_movto_bem_pat_api_b).

 

if  valid-handle( v_hdl_api_bem_pat_bxa_transf ) then do:

    delete procedure v_hdl_api_bem_pat_bxa_transf.

    assign v_hdl_api_bem_pat_bxa_transf = ?.

end.

 

output stream s_1 close.

 

 

    Observação: A inicialização da variável v_ind_message_output e a abertura da stream s_1 se faz necessário para que as inconsistências sejam aprensentadas em arquivo e não sejam apresentadas em tela.

Parâmetros

Parâmetro

Descrição

p_num_vers_integr_api

Será utilizado para determinar se o programa que está chamando está íntegro com as definições correntes da API;

 

Retorno

A API retornará na tabela temporária tt_movto_bem_pat_api_b através do atributo “ttv_des_erro_api_movto_bem_pat” a inconsistência encontrada durante o processo de validação do Bem Patrimonial.

A validação das inconsistências das informações da tabela temporária será feita por registro e caso seja encontrado alguma será verificado o próximo registro da tabela temporária (caso o mesmo exista).

 

 

Obs.: Quando a API for executado por um programa externo, logo após a chamada da API, deverá ser criado um tratamento para impressão dos erros conforme segue exemplo.

 

for each tt_movto_bem_pat_api_b

    where tt_movto_bem_pat_api_b.ttv_des_erro_api_movto_bem_pat <> "":

   

    disp tt_movto_bem_pat_api_b.tta_cod_empresa

         tt_movto_bem_pat_api_b.tta_cod_cta_pat

         tt_movto_bem_pat_api_b.tta_num_bem_pat

         tt_movto_bem_pat_api_b.tta_num_seq_bem_pat 

         tt_movto_bem_pat_api_b.ttv_des_erro_api_movto_bem_pat skip.

end.

 

Tabelas Temporárias

Nos atributos das tabelas temporárias de entrada e saída:

 

Tabela Temporária

Descrição

Entrada/Saída

tt_movto_bem_pat_api_b

Conterá as informações dos bens a serem movimentados.

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_cod_empresa

character

x(3)

Código da empresa

Sim

 

tta_cod_cta_pat

character

x(18)

Conta patrimonial

Sim

 

tta_num_bem_pat

integer

>>>>>>>>9

Número do bem patrimonial.

Sim

 

tta_num_seq_bem_pat

integer

>>>>9

Seqüência do bem patrimonial.

Sim

 

tta_dat_movto_bem_pat

date

99/99/9999

Data da movimentação bem patrimonial

Sim

 

tta_ind_trans_calc_bem_pat

character

X(18)

Indicador de Transação (“Baixa”)

Sim

 

tta_ind_orig_calc_bem_pat

character

X(20)

Indicador de Origem de Transação (“Devolução”, “Exaustão”, “Inutilização”, “Quebra”, “Transferência”, “Venda”)

Sim

 

ttv_ind_tip_movto_bem_pat

character

x(15)

Tipo de Movimento (“Por Valor”, “Por Percentual”, “Por Quantidade”)

Sim

 

tta_cod_motiv_desmob

character

x(3)

Código Motivo Desmobilização

Sim

 

tta_cod_cenar_ctbl

character

x(8)

Código Cenário Contábil

Não

 

tta_cod_indic_econ

character

x(8)

Código Moeda

Não

 

Tta_val_fatur_desmob

decimal

>>>>,>>>,>>>,>>9.99

Valor Faturado

Não

 

tta_val_origin_movto_bem_pat

decimal

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

Valor Original Movimento Bem Patrimonial (Quando Tipo de Movimento = “Por Valor”)

Sim

 

tta_val_perc_movto_bem_pat

decimal

->>>>,>>>,>>9.9999999

Valor Percentual Movimento Bem Patrimonial (Quando Tipo de Movimento = “Por Percentual”)

Sim

 

tta_qtd_movto_bem_pat

decimal

>>>>>>>>9

Quantidade Movimento (quando Tipo de Movimento = “Por Percentual”)

Sim

 

tta_cod_plano_ccusto

character

x(8)

Código Plano Centro Custo

Sim

 

tta_cod_ccusto_respons

character

x(11)

Código Centro Custo Responsabilidade

Sim

 

tta_cod_unid_negoc

character

x(3)

Código Unidade de Negócio

Sim

 

tta_cod_estab                  

character

x(3) / x(5)*

Código Estabelecimento

Sim

 

ttv_ind_sit_movto_bem_pat

character

X(08)

Indicação de erro

Não

 

ttv_des_erro_api_movto_bem_pat

character

X(60)

Mensagem de erro

Não

 

tta_num_pessoa_jurid

integer

>>>,>>>,>>9

Pessoa Jurídica

Sim

 

ttta_cod_ender_entreg

character

x(15)

Endereço de Entrega

Sim

 

tta_cod_localiz

character

x(12)

Localização

Sim

 

 

 

def temp-table tt_movto_bem_pat_api_b no-undo

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

    field tta_cod_cta_pat                  as character format "x(18)" label "Conta Patrimonial" column-label "Conta Patrimonial"

    field tta_num_bem_pat                  as integer format ">>>>>>>>9" initial 0 label "Bem Patrimonial" column-label "Bem"

    field tta_num_seq_bem_pat              as integer format ">>>>9" initial 0 label "Sequˆncia Bem" column-label "Sequˆncia"

    field tta_dat_movto_bem_pat            as date format "99/99/9999" initial today label "Data Movimento" column-label "Data Movimento"

    field tta_ind_trans_calc_bem_pat       as character format "X(18)" initial "Implanta‡Æo" label "Transacao C lculo" column-label "Transacao C lculo"

    field tta_ind_orig_calc_bem_pat        as character format "X(20)" initial "Aquisi‡Æo" label "Origem" column-label "Origem"

    field ttv_ind_tip_movto_bem_pat        as character format "x(15)" label "Tipo Movimento"

    field tta_cod_motiv_desmob             as character format "x(3)" label "Motivo Desmobiliza‡Æo" column-label "Mot Desmob"

    field tta_cod_cenar_ctbl               as character format "x(8)" label "Cen rio Cont bil" column-label "Cen rio Cont bil"

    field tta_cod_indic_econ               as character format "x(8)" label "Moeda" column-label "Moeda"

    field tta_val_fatur_desmob             as decimal format ">>>>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Faturado" column-label "Val Faturado"

    field tta_val_origin_movto_bem_pat     as decimal format "->>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Original Movto" column-label "Valor Original Movto"

    field tta_val_perc_movto_bem_pat       as decimal format "->>>>,>>>,>>9.9999999" decimals 7 initial 0 label "Percentual Movimento" column-label "Percentual Movimento"

    field tta_qtd_movto_bem_pat            as decimal format ">>>>>>>>9" initial 0 label "Quantidade Movto" column-label "Quantidade Movto"

    field tta_cod_plano_ccusto             as character format "x(8)" label "Plano Centros Custo" column-label "Plano Centros Custo"

    field tta_cod_ccusto_respons           as Character format "x(11)" label "CCusto Responsab" column-label "CCusto Responsab"

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

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

    field ttv_ind_sit_movto_bem_pat        as character format "X(08)"

    field ttv_des_erro_api_movto_bem_pat   as character format "x(60)"

    field tta_num_pessoa_jurid             as integer format ">>>,>>>,>>9" initial 0 label "Pessoa Jur¡dica" column-label "Pessoa Jur¡dica"

    field tta_cod_ender_entreg             as character format "x(15)" label "Endere‡o Entrega" column-label "Endere‡o Entrega"

    field tta_cod_localiz                  as character format "x(12)" label "Localiza‡Æo" column-label "Localiza‡Æo"

    index tt_id                            is primary unique

          tta_cod_empresa                  ascending

          tta_cod_cta_pat                  ascending

          tta_num_bem_pat                  ascending

          tta_num_seq_bem_pat              ascending

          tta_dat_movto_bem_pat            ascending.

 

Execução

 

Na execução da API ocorrem as seguintes validações:

 

  1. 1.     Versão de integração

Programa verificará se o programa chamado está integro com a API, e isto ocorre através da verificação da versão de integração passada como parâmetro;

 

  1. 2.     Empresa

Será verificado se a empresa é válida;

 

  1. 3.     Conta patrimonial

Valida se a conta patrimonial informada é válida

 

  1. 4.     Número do bem e seqüência do bem.

Verifica se existe um bem com o mesmo número no sistema. (levando em conta que a chave completa do bem é empresa, conta patrimonial, número do bem e seqüência);

 

  1. 5.     Motivo da Desmobilização

Valida o motivo da desmobilização informado;

 

  1. 6.     Cenário Contábil

Valida o cenário contábil informado;

  1. 7.     Indicador econômico

Se o indicador econômico informado existe;

 

  1. 8.     Plano Centro de custo

Valida o Plano Centro de Custo informado e se o plano de centro de custo está em data Valida;

 

  1. 9.     Centro de custo Responsabilidade

Valida o centro de custo informado e se o usuário possui permissão para acessá-lo;

 

  1. 10.  Estabelecimento

Será verificado se o estabelecimento é válido;

 

  1. 11.  Unidade de negócio

Valida se a unidade de negócio é válida e se a mesma está vinculada ao estabelecimento;

 

 

Leitura e Criação dos Registros

 

Exemplo de movimentação de Baixa/Transferência de bens:

 

def new shared var v_ind_message_output

    as character

    format "X(10)":U

    initial "Na Tela"

    view-as radio-set Horizontal

    radio-buttons "Na Tela", "Na Tela", "Em Arquivo", "Em Arquivo"

    bgcolor 8

    no-undo.

define variable v_hdl_api_bem_pat_bxa_transf as handle      no-undo.

define variable ind_tratam_erro as character format "x(26)" no-undo.

define new shared stream s_1.

 

Assign ind_tratam_erro     = "Parar ao Primeiro Erro"

        v_ind_message_output = "Em Arquivo".

 

IF  v_ind_message_output = "Em Arquivo" THEN

    OUTPUT STREAM s_1 TO "c:\tmp\fas737zb.log".  

 

 

create tt_movto_bem_pat_api_b.

Assign tt_movto_bem_pat_api_b.tta_cod_empresa                = “MOV”

tt_movto_bem_pat_api_b.tta_cod_cta_pat                = "moveis e equip"

tt_movto_bem_pat_api_b.tta_num_bem_pat                = 1

tt_movto_bem_pat_api_b.tta_num_seq_bem_pat            = 0

tt_movto_bem_pat_api_b.tta_dat_movto_bem_pat          =20/06/2003

tt_movto_bem_pat_api_b.tta_ind_trans_calc_bem_pat     = “Baixa”

tt_movto_bem_pat_api_b.tta_ind_orig_calc_bem_pat      = “Venda”

tt_movto_bem_pat_api_b.ttv_ind_tip_movto_bem_pat      = “Por Percentual”

tt_movto_bem_pat_api_b.tta_cod_motiv_desmob           = “Vda”

tt_movto_bem_pat_api_b.tta_cod_cenar_ctbl             = “Fiscal”

tt_movto_bem_pat_api_b.tta_cod_indic_econ             = “Real”

tt_movto_bem_pat_api_b.tta_val_fatur_desmob           = 0

tt_movto_bem_pat_api_b.tta_val_origin_movto_bem_pat   = 1000.00

tt_movto_bem_pat_api_b.tta_val_perc_movto_bem_pat     = 100

tt_movto_bem_pat_api_b.tta_qtd_movto_bem_pat          = 0

tt_movto_bem_pat_api_b.tta_cod_plano_ccusto           = “Moveis”

tt_movto_bem_pat_api_b.tta_cod_ccusto_respons         = “4000”

tt_movto_bem_pat_api_b.tta_cod_unid_negoc             = “Uni”

tt_movto_bem_pat_api_b.tta_cod_estab                  = “jle”

tt_movto_bem_pat_api_b.ttv_ind_sit_movto_bem_pat      = “”

tt_movto_bem_pat_api_b.ttv_des_erro_api_movto_bem_pat = “”

tt_movto_bem_pat_api_b.tta_num_pessoa_jurid           = 0

tt_movto_bem_pat_api_b.tta_cod_ender_entreg           = “”

tt_movto_bem_pat_api_b.tta_cod_localiz                = “”.

 

 

run prgfin/fas/fas737zb.py persistent set v_hdl_api_bem_pat_bxa_transf (Input 01).

 

run pi_api_criacao_movto_bem_pat in v_hdl_api_bem_pat_bxa_transf

                                                     (input "",

                                                      input-output table tt_movto_bem_pat_api_b).

 

if  valid-handle( v_hdl_api_bem_pat_bxa_transf ) then do:

    delete procedure v_hdl_api_bem_pat_bxa_transf.

    assign v_hdl_api_bem_pat_bxa_transf = ?.

end.

 

output stream s_1 close.

 

for each tt_movto_bem_pat_api_b

    where tt_movto_bem_pat_api_b.ttv_des_erro_api_movto_bem_pat <> "":

    disp tt_movto_bem_pat_api_b.tta_cod_empresa

         tt_movto_bem_pat_api_b.tta_cod_cta_pat

         tt_movto_bem_pat_api_b.tta_num_bem_pat

         tt_movto_bem_pat_api_b.tta_num_seq_bem_pat

         tt_movto_bem_pat_api_b.ttv_des_erro_api_movto_bem_pat skip.

end.