Histórico da Página
Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | Prgfin/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, armazenando o programa em uma variável através do comando PERSISTENT e em seguida executando uma PROCEDURE deste programa, 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
...
...
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) /* prg_api_criacao_movto_bem_pat*/.
...
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
if valid-handle( v_hdl_api_bem_pat_bxa_transf )
then do:
...
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
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 através do atributo ttv_des_erro_api_movto_bem_pat _api_b.tta_cod_cta_pat
tt_movto_bem_pat_api_b.tta_num_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.tta_num_seq_bem_pat
where tt_movto 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
<> "":
disp tt_movto_bem_pat_api_b
...
Conterá as informações dos bens a serem movimentados.
...
Entrada e Saída
...
Atributo
...
Tipo
...
Formato
...
Descrição
...
Obrigatório
...
Evolução
...
tta_cod_empresa
...
character
...
x(3)
...
Código da empresa
...
Sim
...
.tta_cod_empresa
tt_movto_bem_pat_api_b.tta_cod_cta_pat
...
character
...
x(18)
...
Conta patrimonial
...
Sim
...
tt_movto_bem_pat_api_b.tta_num_bem_pat
...
integer
...
>>>>>>>>9
...
Número do bem patrimonial.
...
Sim
...
tt_movto_bem_pat_api_b.tta_num_seq_bem_
...
integer
...
>>>>9
...
Seqüência do bem patrimonial.
...
Sim
...
pat
tt_
...
movto_bem_pat
...
date
...
99/99/9999
...
Data da movimentação bem patrimonial
...
Sim
...
...
_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(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 |
da empresa | Sim |
tta_cod_ |
cta_ |
pat | character | x( |
18) |
Código Cenário Contábil
Não
Conta patrimonial | Sim |
tta_ |
num_ |
bem_ |
pat |
character
x(8)
Código Moeda
Não
integer | >>>>>>>>9 | Número do bem patrimonial. | Sim | ||
tta_num_seq_bem_pat | integer | >>>>9 | Seqüência do bem patrimonial. | Sim | |
tta_dat |
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
date | 99/99/9999 | Data da movimentação bem patrimonial | Sim | |
tta_ind_trans_calc |
_bem_pat |
decimal
>>>>>>>>9
character | X(18) | Indicador de Transação (“Baixa” |
) | Sim |
tta_ind_ |
orig_calc_ |
bem_ |
pat | character |
X( |
Código Plano Centro Custo
Sim
20) | Indicador de Origem de Transação (“Devolução”, “Exaustão”, “Inutilização”, “Quebra”, “Transferência”, “Venda”, "Doação") | Sim | |
ttv_ind_tip_movto_bem_pat |
character | x( |
Código Centro Custo Responsabilidade
Sim
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_ |
character
X(60)
Mensagem de erro
Não
fatur_desmob | decimal | >>>>,>>>,>>>,>>9.99 | Valor Faturado | Não | |
tta_val_origin_movto_bem_pat | decimal | ->>, |
tta_num_pessoa_jurid
integer
>>>,>>>,>>9 |
.99 | Valor Original Movimento Bem Patrimonial (Quando Tipo de Movimento = “Por Valor”) | 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"
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 Quantidade”) | 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 ttv_ind_tip_movto_bem_pat as character format "x(15)" label "Tipo Movimento"
field tta_cod_motiv_desmob cta_pat as character format "x(318)" label "Motivo Desmobiliza‡ÆoConta Patrimonial" column-label "Mot DesmobConta Patrimonial"
field tta_codnum_cenar_ctbl as character format "x(8)" label "Cen rio Cont bilbem_pat as integer format ">>>>>>>>9" initial 0 label "Bem Patrimonial" column-label "Cen rio Cont bilBem"
field tta_num_codseq_indic_econ as character format "x(8)" label "Moedabem_pat as integer format ">>>>9" initial 0 label "Sequˆncia Bem" column-label "MoedaSequˆncia"
field tta_dat_valmovto_fatur_desmob as decimal format ">>>>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Faturadobem_pat as date format "99/99/9999" initial today label "Data Movimento" column-label "Val FaturadoData Movimento"
field tta_valind_origintrans_movtocalc_bem_pat as decimal format "->>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Original Movtopat as character format "X(18)" initial "Implanta‡Æo" label "Transacao C lculo" column-label "Valor Original MovtoTransacao C lculo"
field tta_valind_percorig_movtocalc_bem_pat as decimal format "->>>>,>>>,>>9.9999999" decimals 7 initial 0 label "Percentual Movimentopat as character format "X(20)" initial "Aquisi‡Æo" label "Origem" column-label "Percentual MovimentoOrigem"
field ttattv_ind_qtdtip_movto_bem_pat as decimal format ">>>>>>>>9" initial 0 label "Quantidade Movto" column-label "Quantidade Movtopat as character format "x(15)" label "Tipo Movimento"
field tta_cod_plano_ccusto motiv_desmob as character format "x(83)" label "Plano Centros CustoMotivo Desmobiliza‡Æo" column-label "Plano Centros CustoMot Desmob"
field tta_cod_ccusto_respons as Character cenar_ctbl as character format "x(118)" label "CCusto ResponsabCen rio Cont bil" column-label "CCusto ResponsabCen rio Cont bil"
field tta_cod_unid_negoc as indic_econ as character format "x(38)" label "Unid Neg¢cioMoeda" column-label "Un NegMoeda"
field tta_val_cod_estab as character format "x(3)" label "Estabelecimentofatur_desmob as decimal format ">>>>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Faturado" column-label "EstabVal Faturado"
field ttvtta_indval_sitorigin_movto_bem_pat as character format "X(08)" field ttv_des_erro_api_movto_bem_pat as character format "x(60)pat as decimal format "->>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Original Movto" column-label "Valor Original Movto"
field tta_num_pessoa_jurid as integer format ">>>val_perc_movto_bem_pat as decimal format "->>>>,>>>,>>9.9999999" decimals 7 initial 0 label "Pessoa Jur¡dicaPercentual Movimento" column-label "Pessoa Jur¡dicaPercentual Movimento"
field tta_codqtd_ender_entreg as character format "x(15)" label "Endere‡o Entregamovto_bem_pat as decimal format ">>>>>>>>9" initial 0 label "Quantidade Movto" column-label "Endere‡o EntregaQuantidade Movto"
field tta_cod_localiz _plano_ccusto as character format "x(128)" label "Localiza‡ÆoPlano Centros Custo" column-label "Localiza‡ÆoPlano Centros Custo"
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. 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;
- 2. Empresa
Será verificado se a empresa é válida;
- 3. Conta patrimonial
Valida se a conta patrimonial informada é válida
- 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);
- 5. Motivo da Desmobilização
Valida o motivo da desmobilização informado;
- 6. Cenário Contábil
Valida o cenário contábil informado;
- 7. Indicador econômico
Se o indicador econômico informado existe;
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. 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;
- 2. Empresa
Será verificado se a empresa é válida;
- 3. Conta patrimonial
Valida se a conta patrimonial informada é válida
- 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);
- 5. Motivo da Desmobilização
Valida o motivo da desmobilização informado;
- 6. Cenário Contábil
Valida o cenário contábil informado;
- 7. Indicador econômico
Se o indicador econômico informado existe;
- 8. Plano 8. Plano Centro de custo
Valida o Plano Centro de Custo informado e se o plano de centro de custo está em data Valida;
...
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:
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 Def var ind_tratam_erro as character format “x"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 empresa = “MOV”
tt_movto_bem_pat_api_b.tta_cod_cta_pat = "moveis e equip"
...
tt_movto_bem_pat_api_b.tta_cod_motiv_desmob desmob = “Vda”
tt_movto_bem_pat_api_b.tta_cod_cenar_ctbl = “Fiscal”
...
tt_movto_bem_pat_api_b.tta_val_origin_movto_bem_pat pat = 1000.00
tt_movto_bem_pat_api_b.tta_val_perc_movto_bem_pat = 100
...
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) /* prg_api_criacao_movto_bem_pat*/.
run pi_api_criacao_movto_bem_pat in v_hdl_api_bem_pat_bxa_transf
(input "",
ind_tratam_erro, input-output table tt_movto_bem_pat_api_b 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
...
tt_movto_bem_pat_api_b.tta_num_seq_bem_pat
tt tt_movto_bem_pat_api_b.ttv_des_erro_api_movto_bem_pat skip.
end.