Versões comparadas

Chave

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


ÍNDICE

Índice
minLevel2
excludeÍNDICE

01. 

...

VISIÓN GENERAL

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

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:

...

Cómo importar los movimientos bancarios para la rutina FINA100 - Movimientos Bancarios utilizando el Mile.


Informações
titleInformaciones

Para más detalles y reglas de uso del MILE vea la documentación: MILE - Model Integrator Layout Engine


02. CONFIGURACIÓN MILE


Para realizar la importación de los datos en la rutina FINA100 - Movimientos Bancarios utilizando el MILE, son necesarias algunas configuraciones adicionales según veremos a continuación, porque el orden de los parámetros recibidos por la rutina FINA100 es diferente de la llamada por la estructura del MILE, y no permite realizar la importación utilizando simplemente la configuración de canales.

Básicamente, el MILE funciona de la siguiente manera: para cada canal creado, se enviará en secuencia a la rutina en cuestión un array como parámetro, seguido del nOpc de 3 de inclusión.

Al realizar la llamada de la MsExecAuto de la rutina FINA100, se enviará de la siguiente manera:

Si tenemos 1 canal (1 Master):

...

Función100(

...

vector[1], 3)

...

Si tenemos 2

...

canales:

...

Función100(

...

vector[1],

...

vector[2], 3)

...

Y así por

...

delante.

...

Por lo tanto, tenemos una incompatibilidad de uso,

...

porque para incluir el movimiento bancario, en la rutina FINA100, los parámetros recibidos están en estas posiciones:

FINA100(nPosArotina,aRotAuto,nOpcAuto)

...

donde:

nPosArotina - Numérico-

...

 Opción deseada del menú sin ejecución de la mBrowse

aRotAuto - Array -

...

 Contiene los datos de los campos y sus contenidos para incluir por rutina automática.

nOpcAuto - Numérico -

...

Opción deseada del menú por medio de la rutina automática, donde 3 = Pagar, 4 =

...

Cobrar, 5 =

...

Borrar, 6 =

...

Anular, 7 =

...

Transferencia y 8 =

...

Reversión Transferencia

 

En este

...

caso,

...

necesitamos enviar el vector del canal Master como segundo

...

parámetro (aRotAuto)

...

y la opción del menú como tercer parámetro (nOpcAuto).

Vamos

...

a necesitar manejar el array de canales creado por el MILE a través del user function.

03. 

...

EJEMPLO DE

...

CONFIGURACIÓN MILE

...

Suponiendo la siguiente configuración del layout del MILE:

1) Informações Informaciones sobre a rotinala rutina:

Image RemovedImage Added

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 el formateo del archivo. Esté atento al campo Ejecución previa, donde utilizaremos una función para cambiar el vector creado por el MILE, antes de chamar llamar a MsExecAuto do del FINA100.

Image RemovedImage Added

3) Defina o el tipo de MsExecAuto. Neste En este caso podemos utilizar o Modelo el modelo 1, por porque se tratar somente de 1 tabela. Como a rotina não está em MVC, não necessita da configuração dos Adapters em MVC.trata solo de una tabla Como la rutina no está en MVC, no es necesario configurar los Adapters en MVC.

Image AddedImage Removed

4) Defina o el canal A como Master para receber os dados do movimento bancário para a tabela recibir los datos del movimiento bancario para la tabla SE5.

Image RemovedImage Added

5) Defina a ordem dos la orden de los campos que estarão estarán dentro do arquivo del archivo de importaçãoimportación.

Image RemovedImage Added

04. USER FUNCTION PARA

...

EL MANEJO DE LOS PARÁMETROS

Utilizaremos una User Function en la ejecución previa del Mile. La función debe devolver un nuevo vector con el orden correcto de los parámetros que se enviarán a la rutina FINA100.

En el siguiente ejemplo, estamos creando el array aRotAuto en la segunda posición y el nOpcAuto en la tercera posición.

 

User function UFINA100(lInterfaz

...

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, aSaidasaSalidas, aVetoresaVectores)

Local aNewVet := array(3)

aNewVet[1] := {3}//nPosRotina
aNewVet[2] := aClone(aVetores[1]) //aRotAuto
aNewVet[3] := {3} // nOpcAuto
onde donde 3 = Pagar, 4 = Receber, inclusive a opção pode ser conforme a posição de aVetoresCobrar, incluso la opción puede ser según la posición de aVectores

Return aClone(aNewVet)

05.

...

EJEMPLO DE

...

ARCHIVO DE

...

IMPORTACIÓN

02/01/2019;M1;3370,09;NAT1;237;1020;102030;

...

BAJA AUTOMÁTICA FONDOS;BRADESCO;P;BA;02/01/2019
02/01/2019;M1;11736,10;NAT1;237;1020;102030;

...

RESCATE INVERSFACIL;BRADESCO;P;BA;02/01/2019


Card documentos
InformacaoO arquivo de importação deverá ser criado conforme as regras definidas no cadastro do El archivo de importación se debe crear según las reglas definidas en el registro del Mile.
TituloIMPORTANTE!

06. TABELAS UTILIZADAS

¡IMPORTANTE!

06. EJEMPLO DE CONFIGURACIÓN PARA TRANSFERENCIA


Informações
titleImportante

La herramienta MILE tiene una limitación donde importaciones que no utilizan campos de SX3 tengan una limitación de importación de 10 caracteres.

De esta manera, como la rutina de transferencia necesita que el layout utilice las variables, si existiera la necesidad de importar un campo donde el contenido tenga más de 10 caracteres, en el campo de condición debe informarse la variable de devolución, de acuerdo con lo siguiente:

xContent  := aDataTXT[2], .T. 


Ejemplo:

Suponiendo que en el archivo de importación la posición de beneficiario tenga más de 10 carateres, el layout debe configurarse con la siguinte información:

Image Added




Para la opción de Tranferencia entre cuentas o cajas (opción 7 del execauto del FINA100) se puede definir un layout de acuerdo con el execauto del FINA100.

Haga clic aquí para más detalles sobre execauto de transferencia.

Vea el siguiente ejemplo de lauyout para transferencia con user function.

Image Added


Ejemplo de archivo de transferencia:

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


Image Added



Bloco de código
languagejava
themeMidnight
firstline1
titleUF100TR
linenumberstrue
#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. TABLAS UTILIZADAS

  • Movimientos bancarios Movimentos Bancários - SE5


HTML
<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>