Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome Físicoprgfin/cfl/
cfl724zb
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.

...

Observações: Quando a API for executado 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 (cfl724zbcfl724zd.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

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

conta corrente.

Sim

 


tta_dat_movto_fluxo_cx

date

99/99/9999

Data

Movimento

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

unidade de

Negócio

negócio.

Sim

 


tta_cod_tip_fluxo_financ

character

x(12)

Código do

Tipo de Fluxo Financeiro

tipo de fluxo financeiro.

Sim

 


tta_ind_fluxo_movto_cx

character

x(3)

Indicador do

Fluxo

fluxo do

Movimento

movimento

Valores permitidos:

ENT

ent e

SAI

sai.

Onde:

ENT

ent =

Entrada

entrada

          

SAI 

sai  =

Saída

saída.

Sim

 


tta_ind_tip_movto_fluxo_cx

character

x(2)

Indicador do

Tipo

tipo de

Movimento

movimento.

Valores permitidos:

RE

re e

NR

pr.

Onde:

RE

re =

Realizado

realizado

          

NR

pr =

Não Realizado

previsto.

Sim

 


tta_cod_modul_dtsul

character

x(3)

Código do

Módulo

módulo. Normalmente utilizado

“CMG”

“CFL” para movimentos do

Caixa e Bancos

fluxo de caixa.

Sim

 


tta_val_movto_fluxo_cx

decimal

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

Valor do

Movimento

movimento.

Sim

 


ttv_ind_erro_valid

character

x(8)

Caso ocorra algum erro, este campo terá o valor

“Sim”

“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_

rec

cod_id_movto_fluxo_cx.

 


Exemplo:

    

For

for each tt_import_movto_fluxo_cx_new no-lock

            Where

            where tt_import_movto_fluxo_cx_new.ttv_ind_erro_valid =

“Sim”

“sim”:

           

For

for each tt_import_movto_valid_cfl_new no-lock

                  

Where

where tt_import_movto_valid_cfl_new.ttv_cod_

rec

id_movto_fluxo_cx =

                               tt

                               tt_import_movto_fluxo_cx_new. ttv_cod_

rec

id_movto_fluxo_cx:

                   

Disp

disp tt_import_movto_valid_cfl_new.

           

End

end.

    

End

end.

Sim

 


tta_cod_histor_padr

character

x(8)

Código do

Histórico Padrão

histórico padrão.

Não

 


tta_des_histor_movto_fluxo_cx

character

x(2000)

Descrição do

Histórico Padrão

histórico padrão.

Não

 


ttv_

rec

cod_id_movto_fluxo_

cx

cx 

recid

>>>>>>9

character

x(80)

Deverá conter

o número

a string do

recid

rowid da temp-table tt_import_movto_fluxo_cx_new.

Exemplo:

 assign

tt_import_movto_fluxo_cx_new.ttv_cod_

rec

id_movto_fluxo_

cx

cx  =

recid

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 as date format "99/99/9999" initial ? label "Data Movimento" column-label "Data Movimento"

        field tta_cod_estab                            as character format "x(35)" 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 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 as decimal format ">>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Movto" column-label "Valor Movto"

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

        field tta_cod_histor_padr                   as  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_reccod_id_movto_fluxo_cx              as recid character format ">>>>>>9" initial ?    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_

rec

cod_id_movto_fluxo_cx

recid

>>>>>>9

character

x(80)

O

recid

registro correspondente do movimento da tt_import_movto_fluxo_

cx

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_recid_movto_fluxo_cx           as recid cx        as character format ">>>>>>9" initial ?x(80)"

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

        field ttv_des_mensagem                 as 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:

...

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;

...

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 so 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á alguma 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 existe^ncia 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       tt_import_movto_fluxo_cx_new.tta_dat_movto_fluxo_cx        = 02/01/2001

       tt       tt_import_movto_fluxo_cx_new.tta_cod_estab                 = "xxx"

       tt       tt_import_movto_fluxo_cx_new.tta_cod_unid_negoc            = "xxx"

             tt_import_movto_fluxo_cx_new.tta_cod_tip_fluxo_financ      = "11111"

       tt       tt_import_movto_fluxo_cx_new.tta_ind_fluxo_movto_cx        = "ENT"

       tt       tt_import_movto_fluxo_cx_new.tta_ind_tip_movto_fluxo_cx    = "RE"

       tt       tt_import_movto_fluxo_cx_new.tta_cod_modul_dtsul           = "CFL"

       tt       tt_import_movto_fluxo_cx_new.tta_val_movto_fluxo_cx        = 10000

       tt       tt_import_movto_fluxo_cx_new.tta_cod_histor_padr           = "01"

       tt       tt_import_movto_fluxo_cx_new.tta_des_histor_movto_fluxo_cx = ""

       tt       tt_import_movto_fluxo_cx_new.ttv_ind_erro_valid            = "não"

       tt       tt_import_movto_fluxo_cx_new.ttv_cod_recid_movto_cta_corren      = recidfluxo_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       tt_import_movto_fluxo_cxcx_new.tta_dat_movto_fluxo_cx        = 02/01/2001

       tt       tt_import_movto_fluxo_cx_new.tta_cod_estab                 estab                 = "xxx"

       tt       tt_import_movto_fluxo_cx_new.tta_cod_unid_negoc            = "xxx"

       tt       tt_import_movto_fluxo_cx_new.tta_cod_tip_fluxo_financ      = "11111"

       tt       tt_import_movto_fluxo_cx_new.tta_ind_fluxo_movto_cx        = "ENT"

       tt       tt_import_movto_fluxo_cx_new.tta_ind_tip_movto_fluxo_cx    = "RE"

       tt       tt_import_movto_fluxo_cx_new.tta_cod_modul_dtsul           = "CFL"

       tt       tt_import_movto_fluxo_cx_new.tta_val_movto_fluxo_cx        = 10000

       tt       tt_import_movto_fluxo_cx_new.tta_cod_histor_padr           = ""

       tt       tt_import_movto_fluxo_cx_new.tta_des_histor_movto_fluxo_cx = "Movimento de entrada"

       tt       tt_import_movto_fluxo_cx_new.ttv_ind_erro_valid            = "não"

       tt       tt_import_movto_fluxo_cx_new.ttv_cod_recid_movto_cta_corren      = recidfluxo_cx      = string(rowid(tt_import_movto_fluxo_cx_new)).