Árvore de páginas


ÍNDICE


01. VISÃO GERAL

Como importar os movimentos bancários para a rotina FINA100 - Movimentos Bancários utilizando o Mile.


Informações

Para mais detalhes e regras de uso do MILE verificar documentação: MILE - Model Integrator Layout Engine


02. CONFIGURAÇÃO MILE


Para realizar a importação dos dados na rotina FINA100 - Movimentos Bancários utilizando o MILE, são necessárias algumas configurações adicionais conforme veremos a seguir, pois a ordem dos parâmetros recebidos pela rotina FINA100 é diferente da chamada pela estrutura do MILE, não permitindo realizar a importação utilizando simplesmente a configuração de canais.

Basicamente, o MILE funciona da seguinte forma: para cada canal criado, será enviado sequencialmente para a rotina em questão um array como parâmetro, seguido do nOpc de 3 de inclusão.

Ao realizar a chamada da MsExecAuto da rotina FINA100, será enviado da seguinte forma:

Se tivermos 1 canal (1 Master):

Funcao100(vetor[1], 3)

Se tivermos 2 canais:

Funcao100(vetor[1], vetor[2], 3)

E assim por diante.

Portanto, temos uma incompatibilidade de uso, pois para a inclusão do movimento bancário, na rotina FINA100, os parâmetros recebidos estão nestas posições:

FINA100(nPosArotina,aRotAuto,nOpcAuto)

onde:

nPosArotina - Numérico- Opção desejada do menu sem execução da mBrowse

aRotAuto - Array - Contém os dados dos campos e seus conteúdos para inclusão via rotina automática.

nOpcAuto - Numérico - Opção desejada do menu via rotina automática, onde 3 = Pagar, 4 = Receber, 5 = Excluir, 6 = Cancelar, 7 = Transferência e 8 = Estorno Transferência


Neste caso, precisamos enviar o vetor do canal Master como segundo parâmetro (aRotAuto) e a opção do menu como terceiro parâmetro (nOpcAuto).

Vamos precisar manipular o array de canais criado pelo MILE através de user function.

03. EXEMPLO DE CONFIGURAÇÃO MILE

Supondo a seguinte configuração de layout do MILE:

1) Informações sobre a rotina:

2) Defina a formatação do arquivo. Atente-se para o campo Pré-Execução, onde iremos utilizar uma função para mudar o vetor criado pelo MILE, antes de chamar a MsExecAuto do FINA100.

3) Defina o tipo de MsExecAuto. Neste caso podemos utilizar o Modelo 1, por se tratar somente de 1 tabela. Como a rotina não está em MVC, não necessita da configuração dos Adapters em MVC.

4) Defina o canal A como Master para receber os dados do movimento bancário para a tabela SE5.

5) Defina a ordem dos campos que estarão dentro do arquivo de importação.

04. USER FUNCTION PARA MANIPULAÇÃO DOS PARÂMETROS

Iremos utilizar uma user function na pré-execução do Mile. A função deverá retornar um novo vetor com a ordem correta dos parâmetros a serem enviados para a rotina FINA100.

No exemplo abaixo, estamos criando o array aRotAuto na segunda posição e o nOpcAuto na terceira posição.


User function UFINA100(lInterface, aInfos, aLayOut, aSaidas, aVetores)

Local aNewVet := array(3)

aNewVet[1] := {3}//nPosRotina
aNewVet[2] := aClone(aVetores[1]) //aRotAuto
aNewVet[3] := {3} // nOpcAuto onde 3 = Pagar, 4 = Receber, inclusive a opção pode ser conforme a posição de aVetores

Return aClone(aNewVet)

05. EXEMPLO DE ARQUIVO DE IMPORTAÇÃO

02/01/2019;M1;3370,09;NAT1;237;1020;102030;BAIXA AUTOMATICA FUNDOS;BRADESCO;P;BA;02/01/2019
02/01/2019;M1;11736,10;NAT1;237;1020;102030;RESGATE INVEST FACIL;BRADESCO;P;BA;02/01/2019


IMPORTANTE!

O arquivo de importação deverá ser criado conforme as regras definidas no cadastro do Mile.


06. EXEMPLO DE CONFIGURAÇÃO PARA TRANSFERÊNCIA


Importante

A ferramenta MILE possui uma limitação onde importações que não utilizam campos da SX3 tenham uma limitação de importação 10 caracteres.

Desta forma, como a rotina de transferencia necessita que o layout utilize as variáveis, caso exista a necessidade de importar um campo onde o conteúdo tenha mais que 10 caracteres, deverá ser informado no campo de condição a variável de retorno conforme abaixo:

xContent  := aDataTXT[2], .T. 


Exemplo:

Supondo que no arquivo de importação a posição de beneficiario tenha mais de 10 carateres, o layout deverá ser configurado com a seguinte informação:




Para opção de Tranferência entre contas ou caixas(opção 7 do execauto do FINA100) é possível definir um layout conforme execauto do FINA100.

Clique aqui para mais detalhes sobre execauto de transferência.

Segue abaixo exemplo de lauyout para transferência com user function.


Exemplo de arquivo de transferência:

BC1;BC101;BC101;001;BC2;BC202;BC202;001;CH;DOC400;400;HISTORICO DE TR;ITAU; 2;2;30/01/24



UF100TR
#INCLUDE "TOTVS.ch"
/*/{Protheus.doc} User Function UF100TR
    Realiza tratamentos para processar MILE da rotina FINA100 opção 7 - Transferência
    @type  Function
    @author Totvs
    @since 29/01/2024
    @version 1.0
/*/
User function UF100TR(lInterface, aInfos, aLayOut, aSaidas, aVetores)

Local aNewVet   := array(3)
Local nI        := 0

// retirar espaços dos identificadores e do conteúdo dos campos do Execauto FINA100 (Exemplo: "CBCOORIG " alterar para "CBCOORIG" // , "341       " alterar para "341")
For nI := 1 To Len(aVetores[1])
    aVetores[1][nI][1] := AllTrim(aVetores[1][nI][1])
    If ValType(aVetores[1][nI][2]) == 'C'
        aVetores[1][nI][2] := AllTrim(aVetores[1][nI][2])
    EndIf
Next nI
aNewVet[1] := {0} //nPosRotina
aNewVet[2] := aClone(aVetores[1]) //aRotAuto
aNewVet[3] := {7} // Transferencia

Return aClone(aNewVet)


07. TABELAS UTILIZADAS

  • Movimentos Bancários - SE5