Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | prgfin/fas/fas795za |
Observação: A partir da release 12.1.2503.
Objetivo
Excluir os movimentos gerados tanto pelo módulo do Ativo Fixo quanto pelas notas fiscais de venda de ativos/imobilizados.
Quando houver integração entre o Faturamento e o Ativo, os movimentos de baixa serão gerados após a atualização da nota fiscal de venda de ativos, onde os bens patrimoniais que estão relacionadas a nota fiscal sofreram a baixa por venda. Esse relacionamento entre nota fiscal e bem patrimonial será armazenado na tabela bem_docto_faturam, caso ocorra a desatualização da nota fiscal, a baixa de venda deverá ser excluída também no modulo de ativo fixo.
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 VAR v_hdl_program AS HANDLE NO-UNDO.
RUN prgfin\fas\fas795za.py PERSISTENT SET v_hdl_program.
RUN pi_main_code_exc_movto_pat IN v_hdl_program (INPUT TABLE tt_exc_movto_pat,
INPUT TABLE tt_nota_fisc_vda,
OUTPUT TABLE tt_log_erros).
DELETE PROCEDURE v_hdl_program.
Parâmetros
Parâmetro | Descrição |
tt_exc_movto_pat | Esta temp-table conterá os registros com as informações dos bens patrimoniais do módulo de ativo fixo, os quais foram gerados pelas vendas de ativos/imobilizados efetuada pelo módulo da faturamento. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias. |
tt_nota_fisc_vda | Esta temp-table conterá os registros com as informações dos itens da nota fiscal de venda de ativos/imobilizados efetuada pelo módulo da faturamento. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias. |
tt_log_erros | Esta temp-table conterá os erros ocorridos durante as validações feitas pela API no momento da exclusão dos movimentos de baixas gerados pelas notas fiscais de venda de ativos/imobilizados. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias. Não deverá ser alimentada ao chamar a API. |
Observações:
- Deve ser gerada a temp-table no programa que chamará a API. Esta temp-table conterá as informações sobre os documentos de entrada e os itens do documento que serão implantados no Ativo Fixo.
Retorno
A API retornará na tabela temporária tt_log_erros que conterá todos os erros encontrados ou mensagens de alerta gerados durante o processo de validação dos documentos.
Quando ocorrer algum erro antes da criação dos documentos e seus itens, os mesmos não serão criados.
Observações: Quando a API for executada por um programa externo, logo após a chamada da API, deverá ser criado um tratamento para impressão dos erros. E para a correta visualização dos erros, todos os campos desta tabela devem ser impressos.
Tabelas Temporárias
Nos atributos das tabelas temporárias de entrada e saída, o programa que irá executar a pi_main_code_exc_movto_pat deverá conter e criar as seguintes tabelas temporárias:
1) Tabela de informações dos bens patrimoniais do módulo de ativo fixo - Módulo FAS
Tabela Temporária | Descrição | Entrada/Saída |
tt_exc_movto_pat | Conterá as informações dos bens patrimoniais do módulo de ativo fixo, os quais foram gerados pelas vendas de ativos/imobilizados efetuada pelo módulo da faturamento. | Entrada |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
tta_cod_empresa | character | x(3) | Código da empresa externa a ser traduzida pela matriz de tradução de unidade organizacional. | Sim | |
tta_cod_cta_pat | character | x(18) | Código da conta patrimonial na qual o bem patrimonial está associado, conforme cadastro no FAS011AA/FAS214AA/FAS329AA - Conta Patrimonial. | Sim | |
tta_num_bem_pat | integer | >>>>>>>>9 | Número/código de identificação do bem patrimonial, conforme cadastro no FAS701AA/FAS211AA - Aquisição de Bens Patrimoniais. | Sim | |
tta_num_seq_bem_pat | integer | >>>>9 | Número de sequência de identificação do bem patrimonial. | Sim | |
tta_num_seq_movto_bem_pat | integer | >>>>>>,>>9 | Número de sequência do movimento de baixa do bem patrimonial. | Sim | |
tta_dat_movto_bem_pat | date | 99/99/9999 | Data da movimentação de baixa do bem patrimonial. | Sim | |
tta_ind_orig_movto | character | x(8) | Indicador de origem de movimento. As opções disponíveis são:
| Sim |
2) Tabela de itens da nota fiscal de venda de ativos/imobilizados - Módulo FT
Tabela Temporária | Descrição | Entrada/Saída |
tt_exc_movto_pat | Conterá as informações dos itens da nota fiscal de venda de ativos/imobilizados efetuada pelo módulo da faturamento. | Entrada |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
tta_cod_estab_nf | character | x(5) | Código do estabelecimento da nota fiscal do módulo de Faturamento, conforme cadastro no UTB071AA/UFN206AA/UTB317AA - Estabelecimento. | Sim | |
tta_cod_ser_nf | character | x(5) | Série da nota fiscal do módulo de Faturamento. | Sim | |
tta_cod_nota_fisc | character | x(10) | Número da nota fiscal do módulo de Faturamento. | Sim | |
tta_num_seq_item | integer | >>>>9 | Número de sequência do item da nota fiscal do módulo de Faturamento. | Sim | |
tta_cod_item_nf | character | x(16) | Código do item da nota fiscal do módulo de Faturamento. | Sim |
3) Tabela de erros
Tabela Temporária | Descrição | Entrada/Saída |
tt_log_erros | Conterá as informações das mensagem de erro ocorridas na criação do documento de entrada. | Saída |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
ttv_num_seq | integer | >>>,>>9 | Número sequencial. | ||
ttv_num_cod_erro | integer | >>>>,>>9 | Número do erro. | ||
ttv_des_erro | character | x(50) | Mensagem de erro. | ||
ttv_des_ajuda | character | x(50) | Mensagem de ajuda referente ao erro. |
Execução
Leitura e Criação dos Registros
Exemplo do programa para criação dos registros nas temp-tables com os documentos de entrada a serem implantados:
def temp-table tt_exc_movto_pat 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_num_seq_movto_bem_pat as integer format ">>>>>>,>>9" initial 0 label "Sequência Movto" column-label "Sequência Movto"
field tta_dat_movto_bem_pat as date format "99/99/9999" initial today label "Data Movimento" column-label "Data Movimento"
field tta_ind_orig_movto as character format "X(08)" label "Origem Movimento" column-label "Origem Movimento"
index tt_id_bem is primary unique
tta_cod_empresa ascending
tta_cod_cta_pat ascending
tta_num_bem_pat ascending
tta_num_seq_bem_pat ascending
tta_num_seq_movto_bem_pat ascending
.
def temp-table tt_log_erros no-undo
field ttv_num_seq as integer format ">>>,>>9" label "Sequência" column-label "Seq"
field ttv_num_cod_erro as integer format ">>>>,>>9" label "Número" column-label "Número"
field ttv_des_erro as character format "x(50)" label "Inconsistência" column-label "Inconsistência"
field ttv_des_ajuda as character format "x(50)" label "Ajuda" column-label "Ajuda"
index tt_id
ttv_num_seq ascending
ttv_num_cod_erro ascending
.
def temp-table tt_nota_fisc_vda no-undo
field tta_cod_estab_nf as character format "x(5)" label "Estabelecimento Nota" column-label "Estabelecimento Nota"
field tta_cod_ser_nf as character format "x(5)" label "Serie Nota fiscal" column-label "Serie Nota fiscal"
field tta_cod_nota_fisc as character format "x(10)" label "Nota Fiscal" column-label "Nota Fiscal"
field tta_num_seq_item as integer format ">>>>,>>9" initial 0 label "Nr Seq Item" column-label "Seq Item"
field tta_cod_item_nf as character format "x(16)" label "Item Nota fiscal" column-label "Item Nota fiscal"
index tt_nota_fisc is primary unique
tta_cod_estab_nf ascending
tta_cod_ser_nf ascending
tta_cod_nota_fisc ascending
tta_num_seq_item ascending
tta_cod_item_nf ascending
.
DEFINE VARIABLE v_hdl_program AS HANDLE NO-UNDO.
DO TRANSACTION:
FIND FIRST bem_pat WHERE bem_pat.cod_empresa = "10"
AND bem_pat.cod_cta_pat = "DEPREC"
AND bem_pat.num_bem_pat = 3
AND bem_pat.num_seq_bem_pat = 0
NO-LOCK NO-ERROR.
IF AVAIL bem_pat THEN DO:
//CHAMADA FAS726AA
FIND LAST movto_bem_pat WHERE movto_bem_pat.num_id_bem_pat = bem_pat.num_id_bem_pat
AND movto_bem_pat.num_seq_incorp_bem_pat = 0
AND movto_bem_pat.dat_movto_bem_pat = today NO-LOCK NO-ERROR.
IF AVAIL movto_bem_pat THEN DO:
CREATE tt_exc_movto_pat.
ASSIGN tt_exc_movto_pat.tta_cod_empresa = bem_pat.cod_empresa
tt_exc_movto_pat.tta_cod_cta_pat = bem_pat.cod_cta_pat
tt_exc_movto_pat.tta_num_bem_pat = bem_pat.num_bem_pat
tt_exc_movto_pat.tta_num_seq_bem_pat = bem_pat.num_seq_bem_pat
tt_exc_movto_pat.tta_num_seq_movto_bem_pat = movto_bem_pat.num_seq_movto_bem_pat
tt_exc_movto_pat.tta_dat_movto_bem_pat = movto_bem_pat.dat_movto_bem_pat
tt_exc_movto_pat.tta_ind_orig_movto = "".
END.
//CHAMADA FT2300
FIND FIRST bem_docto_faturam OF bem_pat NO-LOCK NO-ERROR.
IF AVAIL bem_docto_faturam THEN DO:
CREATE tt_nota_fisc_vda.
ASSIGN tt_nota_fisc_vda.tta_cod_estab_nf = bem_docto_faturam.cod_estab_nf
tt_nota_fisc_vda.tta_cod_ser_nf = bem_docto_faturam.cod_ser_nf
tt_nota_fisc_vda.tta_cod_nota_fisc = bem_docto_faturam.cod_nota_fisc
tt_nota_fisc_vda.tta_num_seq_item = bem_docto_faturam.num_seq_item
tt_nota_fisc_vda.tta_cod_item_nf = bem_docto_faturam.cod_item_nf.
END.
END.
current-language = current-language.
RUN prgfin\fas\fas795za.py PERSISTENT SET v_hdl_program (INPUT 1).
RUN pi_main_code_exc_movto_pat IN v_hdl_program (INPUT TABLE tt_exc_movto_pat,
INPUT TABLE tt_nota_fisc_vda,
OUTPUT TABLE tt_log_erros).
FOR EACH tt_log_erros NO-LOCK:
MESSAGE tt_log_erros.ttv_num_seq
SKIP tt_log_erros.ttv_num_cod_erro
SKIP tt_log_erros.ttv_des_erro
SKIP tt_log_erros.ttv_des_ajuda
VIEW-AS ALERT-BOX.
END.
IF VALID-HANDLE(v_hdl_program) THEN DO:
DELETE PROCEDURE v_hdl_program.
END.
assign v_hdl_program = ?
END.