Árvore de páginas

Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome Físicoprgfin/cfl/cfl724zd


Objetivo

Importar movimentos de outros módulos referentes a Fluxo de Caixa para o módulo Fluxo de Caixa.


Funcionamento

Na forma padrão, realiza-se a chamada do programa em modo persistente, sem a passagem de parâmetros, e em seguida, através de um comando RUN normal, executa-se seu método padrão passando-se os parâmetros com as informações necessárias.

A sintaxe para a chamada da API é:

def var v_hdl_api as Handle format ">>>>>>9":U no-undo.

run prgfin\cfl\cfl724zd.py persistent set v_hdl_api.
run pi_main_code_movto_fluxo_cx_recebto in v_hdl_api (input 2,
                                                      input-output TABLE tt_import_movto_fluxo_cx_new,
                                                      input-output TABLE tt_import_movto_valid_cfl_new ). 

if valid-handle(v_hdl_api) then
    delete object v_hdl_api. 


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;

tt_import_movto_fluxo_cx_new

Esta temp-table conterá todos os movimentos que devam ser importados para o Fluxo de Caixa.

tt_import_movto_valid_cfl_new

Esta temp-table conterá os possíveis erros que poderão ocorrer na integração.


Retorno

A API retornará na tabela temporária tt_import_movto_valid_cfl_new todos os erros encontrados ou mensagens de alerta gerados durante o processo de validação dos movimentos.

O parâmetro de saída é através do comando return-value, sendo que o valor do seu retorno será 2782. Este código significa que a versão de integração incorreta.

 

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

O programa que irá executar a api_movto_fluxo_cx_recebto_2 (cfl724zd.py) deverá conter e criar as seguintes tabelas temporárias:


Tabela Temporária

Descrição

Entrada/Saída

tt_import_movto_fluxo_cx_new

Conterá as informações dos movimentos a serem importados.

Entrada e Saída


(*) A partir da 5.07A o estabelecimento passa a ter cinco dígitos.

Atributo

Tipo

Formato

Descrição

Obrig.

Evolução

tta_num_fluxo_cx

integer

>>>>>,>>9

Código da conta corrente.

Sim


tta_dat_movto_fluxo_cx

date

99/99/9999

Data do movimento.

Sim


tta_cod_estab

character

x(3) / x(5)*

Seqüência em que o movimento será gerado.

Sim


tta_cod_unid_negoc

character

x(3)

Código da unidade de negócio.

Sim


tta_cod_tip_fluxo_financ

character

x(12)

Código do tipo de fluxo financeiro.

Sim


tta_ind_fluxo_movto_cx

character

x(3)

Indicador do fluxo do movimento

Valores permitidos: ent e sai.

Onde: ent = entrada

           sai  = saída.

Sim


tta_ind_tip_movto_fluxo_cx

character

x(2)

Indicador do tipo de movimento.

Valores permitidos: re e pr.

Onde: re = realizado

           pr = previsto.

Sim


tta_cod_modul_dtsul

character

x(3)

Código do módulo. Normalmente utilizado “CFL” para movimentos do fluxo de caixa.

Sim


tta_val_movto_fluxo_cx

decimal

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

Valor do movimento.

Sim


ttv_ind_erro_valid

character

x(8)

Caso ocorra algum erro, este campo terá o valor “sim” e as respectivas mensagens de erro estarão na tt_import_movto_valid_cfl_new, onde a leitura deverá ser feita pelo atributo ttv_cod_id_movto_fluxo_cx.


Exemplo:

     for each tt_import_movto_fluxo_cx_new no-lock

            where tt_import_movto_fluxo_cx_new.ttv_ind_erro_valid = “sim”:

            for each tt_import_movto_valid_cfl_new no-lock

                   where tt_import_movto_valid_cfl_new.ttv_cod_id_movto_fluxo_cx =

                               tt_import_movto_fluxo_cx_new. ttv_cod_id_movto_fluxo_cx:

                    disp tt_import_movto_valid_cfl_new.

            end.

     end.

Sim


tta_cod_histor_padr

character

x(8)

Código do histórico padrão.

Não


tta_des_histor_movto_fluxo_cx

character

x(2000)

Descrição do histórico padrão.

Não


ttv_cod_id_movto_fluxo_cx 

character

x(80)

Deverá conter a string do rowid da temp-table tt_import_movto_fluxo_cx_new.

Exemplo:

 assign

tt_import_movto_fluxo_cx_new.ttv_cod_id_movto_fluxo_cx  = string(ROWID(tt_import_movto_fluxo_cx_new))

Sim



def temp-table tt_import_movto_fluxo_cx_new no-undo

    field tta_num_fluxo_cx                 as integer format ">>>>>,>>9" initial 0 label "Fluxo Caixa" column-label "Fluxo Caixa"

    field tta_dat_movto_fluxo_cx           as date format "99/99/9999" initial ? label "Data Movimento" column-label "Data Movimento"

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

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

    field tta_cod_tip_fluxo_financ         as character format "x(12)" label "Tipo Fluxo Financ" column-label "Tipo Fluxo Financ"

    field tta_ind_fluxo_movto_cx           as character format "X(3)" initial "ENT" label "Fluxo Movimento" column-label "Fluxo Movimento"

    field tta_ind_tip_movto_fluxo_cx       as character format "X(2)" initial "PR" label "Tipo Movimento" column-label "Tipo Movimento"

    field tta_cod_modul_dtsul              as character format "x(3)" label "Módulo" column-label "Módulo"

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

    field ttv_ind_erro_valid               as character format "X(08)" initial "Não"

    field tta_cod_histor_padr              as character format "x(8)" label "Histórico Padrão" column-label "Histórico Padrão"

    field tta_des_histor_movto_fluxo_cx    as character format "x(2000)" label "Histórico Movimento" column-label "Histórico Movimento"

    field ttv_cod_id_movto_fluxo_cx        as character format "x(80)"
    .
 


Observação: Os atributos “tta_cod_histor_padr e tta_des_histor_movto_fluxo_cx” estão informados como não obrigatório, pois um ou outro pode ser informado, é obrigatório que pelo menos um seja informado, podendo se necessário informar os dois.

 

Tabela Temporária

Descrição

Entrada/Saída

tt_import_movto_valid_cfl_new

Conterá as informações dos movimentos que não foram importados com a respectiva mensagem de erro.

Entrada e Saída

 

Atributo

Tipo

Formato

Descrição

Obrig.

Evolução

ttv_cod_id_movto_fluxo_cx

character

x(80)

O registro correspondente do movimento da tt_import_movto_fluxo_cx_new que apresentou o erro.

Sim


ttv_num_mensagem

integer

>>>>,>>9

Número da mensagem de erro.

Sim


ttv_des_mensagem

character

x(50)

Descrição da mensagem do erro.

Sim


ttv_des_ajuda

character

x(50)

Descrição da ajuda do erro.

Sim


 

def temp-table tt_import_movto_valid_cfl_new no-undo

    field ttv_cod_id_movto_fluxo_cx        as character format "x(80)"

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

    field ttv_des_mensagem                 as character format "x(50)" label "Mensagem" column-label "Mensagem"

    field ttv_des_ajuda                    as character format "x(50)" label "Ajuda" column-label "Ajuda"
    .

Execução


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

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

Programa verificará se o programa chamador 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.     Número Fluxo de Caixa

Será verificado se o número do fluxo de caixa informado é valido;


  1. 3.     Estabelecimento

Será verificado se o Estabelecimento informado é valido. Se o estabelecimento estiver implementado como Unidade Organizacional, será verificado, se o mesmo está habilitado na data de transação, caso contrário será verificado se o usuário possui permissão para acessá-lo;


  1. 4.     Unidade de Negócio

Será verificado se a Unidade de Negócio informada está dentro da faixa de validade especificada para a mesma; também será verificado se o usuário possui permissão para acessar a Unidade de Negócio e se esta Unidade está relacionada ao Estabelecimento informado;

 

  1. 5.     Tipo Fluxo Financeiro

Verifica se o Tipo de Fluxo Financeiro informado é válido;


  1. 6.     Fluxo do Movimento

Valida se o Fluxo do Movimento informado é ENT ou SAI;


  1. 7.     Tipo do Movimento

Valida se o Tipo do Movimento informado é RE(Realizado) ou PR(Previsto);


  1. 8.     Módulo

Valida se o módulo informado existe e se é diferente de Fluxo de Caixa;

 

  1. 9.     Valor do Movimento

Valida se há algum valor informado;

 

  1. 10.  Histórico Padrão

Se informado será verificado se o Histórico Padrão é válido para o módulo CFL, caso não esteja informado é obrigatório a existência da descrição do histórico;


  1. 11.  Descrição do Histórico

Será verificado se a descrição do histórico não está em branco, salvo se o código do histórico padrão estiver informado, caso a descrição do histórico não estiver informada será pego a descrição do histórico padrão.



Criação dos Registros


Exemplo de criação de movimentos de fluxo de caixa:


/** Movimento 1 **/

create tt_import_movto_fluxo_cx_new.

assign tt_import_movto_fluxo_cx_new.tta_num_fluxo_cx              = 0

       tt_import_movto_fluxo_cx_new.tta_dat_movto_fluxo_cx        = 02/01/2001

       tt_import_movto_fluxo_cx_new.tta_cod_estab                 = "xxx"

       tt_import_movto_fluxo_cx_new.tta_cod_unid_negoc            = "xxx"

       tt_import_movto_fluxo_cx_new.tta_cod_tip_fluxo_financ      = "11111"

       tt_import_movto_fluxo_cx_new.tta_ind_fluxo_movto_cx        = "ENT"

       tt_import_movto_fluxo_cx_new.tta_ind_tip_movto_fluxo_cx    = "RE"

       tt_import_movto_fluxo_cx_new.tta_cod_modul_dtsul           = "CFL"

       tt_import_movto_fluxo_cx_new.tta_val_movto_fluxo_cx        = 10000

       tt_import_movto_fluxo_cx_new.tta_cod_histor_padr           = "01"

       tt_import_movto_fluxo_cx_new.tta_des_histor_movto_fluxo_cx = ""

       tt_import_movto_fluxo_cx_new.ttv_ind_erro_valid            = "não"

       tt_import_movto_fluxo_cx_new.ttv_cod_id_movto_fluxo_cx      = string(rowid(tt_import_movto_fluxo_cx_new)).


/** Movimento 2 **/

create tt_import_movto_fluxo_cx_new.

assign tt_import_movto_fluxo_cx_new.tta_num_fluxo_cx              = 0

       tt_import_movto_fluxo_cx_new.tta_dat_movto_fluxo_cx        = 02/01/2001

       tt_import_movto_fluxo_cx_new.tta_cod_estab                 = "xxx"

       tt_import_movto_fluxo_cx_new.tta_cod_unid_negoc            = "xxx"

       tt_import_movto_fluxo_cx_new.tta_cod_tip_fluxo_financ      = "11111"

       tt_import_movto_fluxo_cx_new.tta_ind_fluxo_movto_cx        = "ENT"

       tt_import_movto_fluxo_cx_new.tta_ind_tip_movto_fluxo_cx    = "RE"

       tt_import_movto_fluxo_cx_new.tta_cod_modul_dtsul           = "CFL"

       tt_import_movto_fluxo_cx_new.tta_val_movto_fluxo_cx        = 10000

       tt_import_movto_fluxo_cx_new.tta_cod_histor_padr           = ""

       tt_import_movto_fluxo_cx_new.tta_des_histor_movto_fluxo_cx = "Movimento de entrada"

       tt_import_movto_fluxo_cx_new.ttv_ind_erro_valid            = "não"

       tt_import_movto_fluxo_cx_new.ttv_cod_id_movto_fluxo_cx      = string(rowid(tt_import_movto_fluxo_cx_new)).