Histórico da Página
Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | prgfin/cfl/cfl724zb |
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 através de um comando RUN normal, passando-se os parâmetros com as informações necessárias.
A sintaxe para a chamada da API é:
run prgfin/cfl/cfl724zb.py (input 1,
input-output table tt_import_movto_fluxo_cx,
input-output table tt_import_movto_valid_cfl).
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 | Esta temp-table conterá todos os movimentos que devam ser importados para o Fluxo de Caixa. |
tt_import_movto_valid_cfl | 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 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 (cfl724zb.py) deverá conter e criar as seguintes tabelas temporárias:
Tabela Temporária | Descrição | Entrada/Saída |
tt_import_movto_fluxo_cx | 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, onde a leitura deverá ser feita pelo atributo ttv_rec_movto_fluxo_cx.
Exemplo: for each tt_import_movto_fluxo_cx no-lock where tt_import_movto_fluxo_cx.ttv_ind_erro_valid = “sim”: for each tt_import_movto_valid_cfl no-lock where tt_import_movto_valid_cfl.ttv_rec_movto_fluxo_cx = tt_import_movto_fluxo_cx. Ttv_rec_movto_fluxo_cx: disp tt_import_movto_valid_cfl. 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_rec_movto_fluxo_cx | recid | >>>>>>9 | Deverá conter o número do recid da temp-table tt_import_movto_fluxo_cx. Exemplo: assign Tt_import_movto_fluxo_cx.ttv_rec_movto_fluxo_cx = recid(tt_import_movto_fluxo_cx). | Sim |
|
def temp-table tt_import_movto_fluxo_cx 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_rec_movto_fluxo_cx as recid format ">>>>>>9" initial ?
.
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 | 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_movto_fluxo_cx | recid | >>>>>>9 | O recid do movimento da tt_import_movto_fluxo_cx 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 no-undo
field ttv_rec_movto_fluxo_cx as recid format ">>>>>>9" initial ?
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.
assign tt_import_movto_fluxo_cx.tta_num_fluxo_cx = 0
tt_import_movto_fluxo_cx.tta_dat_movto_fluxo_cx = 02/01/2001
tt_import_movto_fluxo_cx.tta_cod_estab = "xxx"
tt_import_movto_fluxo_cx.tta_cod_unid_negoc = "xxx"
tt_import_movto_fluxo_cx.tta_cod_tip_fluxo_financ = "11111"
tt_import_movto_fluxo_cx.tta_ind_fluxo_movto_cx = "ENT"
tt_import_movto_fluxo_cx.tta_ind_tip_movto_fluxo_cx = "RE"
tt_import_movto_fluxo_cx.tta_cod_modul_dtsul = "CFL"
tt_import_movto_fluxo_cx.tta_val_movto_fluxo_cx = 10000
tt_import_movto_fluxo_cx.tta_cod_histor_padr = "01"
tt_import_movto_fluxo_cx.tta_des_histor_movto_fluxo_cx = ""
tt_import_movto_fluxo_cx.ttv_ind_erro_valid = "não"
tt_import_movto_fluxo_cx.ttv_rec_movto_cta_corren = recid(tt_import_movto_fluxo_cx).
/** Movimento 2 **/
create tt_import_movto_fluxo_cx.
assign tt_import_movto_fluxo_cx.tta_num_fluxo_cx = 0
tt_import_movto_fluxo_cx.tta_dat_movto_fluxo_cx = 02/01/2001
tt_import_movto_fluxo_cx.tta_cod_estab = "xxx"
tt_import_movto_fluxo_cx.tta_cod_unid_negoc = "xxx"
tt_import_movto_fluxo_cx.tta_cod_tip_fluxo_financ = "11111"
tt_import_movto_fluxo_cx.tta_ind_fluxo_movto_cx = "ENT"
tt_import_movto_fluxo_cx.tta_ind_tip_movto_fluxo_cx = "RE"
tt_import_movto_fluxo_cx.tta_cod_modul_dtsul = "CFL"
tt_import_movto_fluxo_cx.tta_val_movto_fluxo_cx = 10000
tt_import_movto_fluxo_cx.tta_cod_histor_padr = ""
tt_import_movto_fluxo_cx.tta_des_histor_movto_fluxo_cx = "Movimento de entrada"
tt_import_movto_fluxo_cx.ttv_ind_erro_valid = "não"
tt_import_movto_fluxo_cx.ttv_rec_movto_cta_corren = recid(tt_import_movto_fluxo_cx).