Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | prgfin/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. 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;
- 2. Número Fluxo de Caixa
Será verificado se o número do fluxo de caixa informado é valido;
- 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;
- 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;
- 5. Tipo Fluxo Financeiro
Verifica se o Tipo de Fluxo Financeiro informado é válido;
- 6. Fluxo do Movimento
Valida se o Fluxo do Movimento informado é ENT ou SAI;
- 7. Tipo do Movimento
Valida se o Tipo do Movimento informado é RE(Realizado) ou PR(Previsto);
- 8. Módulo
Valida se o módulo informado existe e se é diferente de Fluxo de Caixa;
- 9. Valor do Movimento
Valida se há algum valor informado;
- 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;
- 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)).