Í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
O arquivo de importação deverá ser criado conforme as regras definidas no cadastro do Mile.IMPORTANTE!
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
#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