Árvore de páginas

Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome Físicoprgfin/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_patdate99/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:

  • Devolução
  • Exaustão
  • Inutilização
  • Quebra
  • Transferência
  • Venda
  • Doaçã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

characterx(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 "Sequência Bem" column-label "Sequência"
    field tta_num_seq_movto_bem_pat        as integer format ">>>>>>,>>9" initial 0 label "Sequência Movto" column-label "Sequê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 "Sequê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.