You are on page 1of 74

MILE Model Integrator Layout Engine

(Capacitacin Interna)

Matriz Av. Braz Leme, 1.717 02511-000 So Paulo SP Brasil.


Tel.: 55 (11) 3981-7001 www.totvs.com.br

Resumen

1.

Qu es MILE? ....................................................................................................................... 5
1.1.

Concepto bsico de la herramienta .............................................................................. 5

1.2.

Qu es un Canal............................................................................................................. 5

1.3.

Qu es una Unidad de Informacin .............................................................................. 6

1.4.

Qu es un Adapter ........................................................................................................ 6

1.5.

Qu es un Layout........................................................................................................... 6

1.6.

Composicin del layout ................................................................................................. 6

1.6.1.

General ...................................................................................................................... 7

1.6.2.

Formateo del Archivo ................................................................................................ 8

1.6.3.

Tratamientos y validaciones .................................................................................... 10

1.6.4.

Adapters de Rutina Automtica .............................................................................. 10

1.6.5.

Adapters en MVC .................................................................................................... 11

1.6.6.

Canales .................................................................................................................... 12

1.6.7.

Detalles del Canal .................................................................................................... 12

1.6.8.

Salidas ...................................................................................................................... 13

1.6.9.

Campos .................................................................................................................... 14

1.6.10.

Variables .................................................................................................................. 16

1.6.11.

Acciones relacionadas ............................................................................................. 17

1.6.12.

Campo Prejecucin.................................................................................................. 18

1.6.13.

Campo Posejecucin ............................................................................................... 20

1.6.14.

Campo Trat. Datos................................................................................................... 21

1.6.15.

Campo Valid. Operacin.......................................................................................... 23

1.7.
2.

Lmites de la herramienta ........................................................................................... 24

Funcionalidades especiales archivo de layouts................................................................... 25


2.1.

Layouts Exportar ......................................................................................................... 25

2.2.

Layouts Importar ......................................................................................................... 25

2.3.

Procesar TXT ................................................................................................................ 25

2.4.

LOG .............................................................................................................................. 25

2.5.

Activar/Desactivar ....................................................................................................... 26

2.6.

Documentacin ........................................................................................................... 26

3.

LOG de Procesamiento ........................................................................................................ 27

4.

Integracin con el Browse ................................................................................................... 29

5.

Caractersticas de las exportaciones ................................................................................... 34

6.

Utilizacin de la herramienta directamente en aplicaciones AdvPL ................................... 35

7.

6.1.

Ejemplo de uso de la herramienta directamente en aplicaciones AdvPL ................... 36

6.2.

Mtodos de la Clase FWMILE ...................................................................................... 37

6.2.1.

Mtodo New() ......................................................................................................... 37

6.2.2.

Mtodo Activate() ................................................................................................... 37

6.2.3.

Mtodo Deactivate() ............................................................................................... 37

6.2.4.

Mtodo HasInterface() ............................................................................................ 38

6.2.5.

Mtodo IsActive() .................................................................................................... 38

6.2.6.

Mtodo IsSimulation()............................................................................................. 38

6.2.7.

Mtodo ClassName() ............................................................................................... 39

6.2.8.

Mtodo SetLayout() ................................................................................................ 39

6.2.9.

Mtodo SetLogGeneration() ................................................................................... 39

6.2.10.

Mtodo SetLogApplication() ................................................................................... 40

6.2.11.

Mtodo SetSimulation() .......................................................................................... 40

6.2.12.

Mtodo SetTXTFile() ................................................................................................ 41

6.2.13.

Mtodo SetInterface() ............................................................................................. 41

6.2.14.

Mtodo SetInitLine() ............................................................................................... 42

6.2.15.

Mtodo SetOperation() ........................................................................................... 42

6.2.16.

Mtodo SetAlias() .................................................................................................... 43

6.2.17.

Mtodo Error() ........................................................................................................ 43

6.2.18.

Mtodo GetError() .................................................................................................. 43

6.2.19.

Mtodo GetLayout() ................................................................................................ 44

6.2.20.

Mtodo GetOperation() .......................................................................................... 44

6.2.21.

Mtodo GetTXTFile() ............................................................................................... 44

6.2.22.

Mtodo CanActivate() ............................................................................................. 45

6.2.23.

Mtodo Import() ..................................................................................................... 45

6.2.24.

Mtodo Export() ...................................................................................................... 45

6.2.25.

Mtodo Dialog() ...................................................................................................... 45

6.2.26.

Mtodo MakeLog() .................................................................................................. 46

6.2.27.

Mtodo GetIDOperation() ....................................................................................... 46

Agendando importaciones .................................................................................................. 48

8.

9.

Ejemplificando algunos de los Layouts ............................................................................... 50


8.1.

Layout de importacin simple sin canal ...................................................................... 50

8.2.

Layout de importacin con 2 canales MASTER - DETAIL ............................................. 51

8.3.

Layout de importacin 2 canales para 1 salida ........................................................... 54

8.4.

Layout de importacin con ocurrencia nica-nica .................................................... 57

8.5.

Layout de importacin con uso de variables .............................................................. 62

Trabajando con una funcin especfica............................................................................... 66

Apndice A Estructura del vector sobre datos adicionales ...................................................... 69


Apndice B Estructura del vector sobre datos del layout ........................................................ 70
Apndice C Estructura del vector sobre datos de salida .......................................................... 72
Apndice D Estructura del Vector de datos para Rutina Automtica (MSExecAuto) .............. 73

1. Qu es MILE ?
MILE es el acrnimo de Model Integrator Layout Engine. El objetivo de esta herramienta es
facilitar la importacin / exportacin de datos hacia el sistema por medio de rutinas
automticas (MSExecAuto) y/o rutinas desarrolladas en MVC utilizando archivos en formato
texto (TXT);

1.1. Concepto bsico de la herramienta


La idea bsica es mapear la informacin que se importar o exportar en un layout (vea el tem
1.5 Qu es un Layout). Este layout trabaja con el concepto de canales (vea el tem 1.2 Qu
es un Canal), se realiza la lectura del archivo texto y a travs del layout enva los datos para
que sean procesados por el adapter ( vea el tem 1.4 Qu es un Adapter )

1.2. Qu es un Canal
El canal puede utilizarse para definir qu informacin se est usando, por ejemplo, en una
importacin de pedido de ventas hay informacin de encabezado e tems y la informacin que
compone el encabezado puede estar en un canal y la de los tems en otro canal.
Ejemplo:
|01|000001|20121005|000001|01|20|
|02|P0000002|10.00|502|
|02|P0000002|3.00|502|
|02|P0000002|120.00|502|
En este ejemplo el canal 01, (al comienzo de la lnea) podra ser el encabezado y el 02 los
tems.
El canal es una informacin que debe constar en el archivo texto y que define una separacin o
tipo para los datos que se estn trabajando.
Un layout puede poseer uno, varios o ningn canal.

Manual MILE Model Integrator Layout Engine Pgina 5/74

1.3. Qu es una Unidad de Informacin


Dentro de un archivo texto importaremos/exportaremos varias informaciones, pero cada
layout se refiere a un contexto (facturas, pedidos, clientes, etc.). Dentro de cada contexto,
cada conjunto de informacin es una unidad de informacin.
Por ejemplo, en un archivo de pedidos de venta pueden existir varios pedidos con varios
canales, pero vamos a importar/exportar 1 pedido cada vez. La idea es que cada pedido es una
unidad de informacin. Si vamos a importar clientes, cada uno de los clientes que se importar
(independiente de cuntos canales tengan el layout) ser una unidad de informacin y as
sucesivamente.

1.4. Qu es un Adapter
El adapter es la aplicacin responsable de procesar la informacin que se obtuvo a partir del
archivo texto.

1.5. Qu es un Layout
El layout es la configuracin que permite, al leer un archivo texto, identificar los datos
contenidos en ese archivo y relacionarlo con la informacin de los adapters.

1.6. Composicin del layout


Un layout puede configurarse a travs de la aplicacin de mantenimiento de layouts
(CFGA600) que se encuentra en el mdulo del Configurador (SIGACFG) en las opciones Entorno
/ Aceleradores / MILE / Layouts

Detallamos a continuacin la composicin de un layout.

Manual MILE Model Integrator Layout Engine Pgina 6/74

1.6.1. General
Contiene datos generales del layout.

Posee los campos:


Layout: Cdigo del Layout
Descripcin: Descripcin del layout
Tipo de Adapter: Tipo de Adapter. Vea el tem 1.4 Qu es un Adapter
1=MSExecAuto - Tratamiento por rutina automtica (MSExecAuto) (la rutina debe
poseer esta caracterstica)
Manual MILE Model Integrator Layout Engine Pgina 7/74

2=MVC - Tratamiento por rutina en MVC


3=Funcin - Tratamiento por funcin especfica. En este caso los datos se leen
mediante la herramienta y se pasan a la funcin. Para ms detalles, vea el tem 9 Trabajando con una funcin especfica.
Adapter: Nombre del Adapter.
Cuando el tipo de adapter es:
MSExecAuto: Se informa el nombre de la funcin de rutina automtica (MSExecAuto).
MVC: Se informa el nombre del FUENTE (.pr?) que contiene el modelo de datos
(MODELDEF).
Funcin: Se informa el nombre de la funcin que recibir los datos ledos
Tabla principal: Alias de la tabla principal utilizada en la importacin. El rea corriente se
apunta para este alias antes de que se efecte la importacin.
Orden: Orden de la tabla principal utilizada en la importacin. El orden de la tabla principal se
apunta para este orden antes de que se efecte la importacin.
Versin del Layout: Versin del layout. Campo libre para informar la versin del layout.
ATENCIN: No hay control de nuevas versiones, este es solo un campo libre para el
control manual de la versin.

1.6.2. Formateo del Archivo


Contiene datos sobre el formato del archivo texto.

Posee los campos:


Archivo TXT: Formato del archivo texto
1=Fijo: Datos con ancho fijo
2=Separador:- Los datos usan algn separador entre s

Manual MILE Model Integrator Layout Engine Pgina 8/74

Separador: Si el formato del archivo texto es por separador, informar el carcter separador
utilizado. Los caracteres que se aceptan son:
| Barra vertical
; Punto y coma
, Coma
/ Barra
- Guin
Tab Tabulacin ( Chr(9) )
ATENCIN: Si los datos contienen alguno de los smbolos de los separadores, estos no
se importarn correctamente.
Separador Inicial: Cuando el layout posee separadores, define si el layout posee un separador
inicial en sus lneas.
Separador Final: Cuando el layout posee separadores, define si el layout posee un separador
final en sus lneas.
Origen del Canal: Posicin desde donde se encuentra la informacin de canal del layout.
Cuando el formato de TXT es de ancho fijo se informa la posicin inicial y final
separada por un guin. Ej. 0001-0005.
Cuando el formato del TXT es por separador se informa la posicin de la informacin.
Ej. 0001, esto significa que el canal es el 1 campo de la lnea.
Cuando no hay canales, informar 0000-0000 o 0000 de acuerdo con el formato.
Formato Fecha: Formato de los campos de fecha.
1=dd/mm/aa Dia, mes y ao.

Ej. 01/05/12 o 01/05/2012

2=aaaammdd Ao, mes y da

Ej. 20120501

Separador Decimal: Tipo de separador de cifras decimales de los datos numricos.


1=Punto

Ej. 12345.67

2=Coma

Ej. 12345,67

Manual MILE Model Integrator Layout Engine Pgina 9/74

ATENCIN: Si el tipo de separador de cifras decimales no est correcto, los datos no


se importarn correctamente. Si los datos poseen separadores de unidad de mil, se
debe tratar en el mismo layout usando el campo Ejecucin.
Entrada MultiCanal: Informa si el archivo texto posee varios canales.

1.6.3. Tratamientos y validaciones


Contiene los nombres de funciones especficas que pueden definirse para tratamientos
puntuales de los datos ledos.

Posee los campos:


Preejecucin: Nombre de la funcin que se ejecutar antes de la ejecucin del adapter. Para
ms informacin vea el tem 1.6.12 - Campo Prejecucin
Posejecucin: Nombre de la funcin que se ejecutar luego de la ejecucin del adapter. Para
ms informacin vea el tem 1.6.13 - Campo Posejecucin
Trat. Datos: Nombre de la funcin que se ejecutar para el tratamiento de los datos. Para ms
informacin vea el tem 1.6.14 - Campo Trat. Datos
Valid. Operacin: Nombre de la funcin para validacin de la operacin. Para ms informacin
vea el tem 1.6.15 - Campo Valid. Operacin

1.6.4. Adapters de Rutina Automtica


Contienen definiciones de caractersticas especficas para adapters que son una rutina
automtica (MSExecAuto).

Posee los campos:

Manual MILE Model Integrator Layout Engine Pgina 10/74

Tipo MSExecAuto: Si el tipo de adapter es una rutina automtica (MSExecAuto), informar el


modelo de la rutina automtica. Son compatibles 3 modelos:
1=Modelo 1 (Tabla simple)
2=Modelo 2 (1 Tabla con encabezado/tems)
3=Modelo 3 (2 Tablas diferentes encabezado/tems)
Otros modelos no son compatibles.
Detalles Opcional: Cuando el adapter es una rutina automtica (MSExecAuto), define si los
detalles de esta rutina automtica son opcionales. Este campo debe completarse de
acuerdo con cada rutina automtica, pues algunas aceptan esta caracterstica y otras
no.
IMPORTANTE: La operacin ejecutada para adapters de rutina automtica (MSExecAuto)
siempre ser solamente INCLUSIN.

1.6.5. Adapters en MVC


Contienen definiciones de caractersticas especficas para adapters en MVC.

Posee los campos:


Operaciones Importacin: Para adapters en MVC, define qu operaciones se considerarn en
la importacin.
Solamente Inclusin: Todos los datos se tratarn siempre como una nueva inclusin.
Inclusin/Modificacin: Se verificar la clave nica del modelo y se determinar si el
dato es una inclusin o modificacin, si la clave no se encuentra ser una inclusin, si
se encuentra, ser una modificacin.
Mtodo de Modificacin: Define el mtodo para efectuar las modificaciones.
Modificacin Directa: Los datos se modificarn directamente en el modelo.
Borrar/Incluir: Se realiza el borrado de los datos por el adapter en MVC y luego una
nueva inclusin.
Manual MILE Model Integrator Layout Engine Pgina 11/74

1.6.6. Canales
Realiza el mantenimiento de los canales. Aunque el archivo texto (TXT) no posea canales, se
deber crear una canal ficticio con cualquier cdigo.

Botn Incluir: Incluye un nuevo canal.


Botn Modificar: Modificar el cdigo de un canal
Botn Borrar: Borra un canal y todos los otros que se encuentren por debajo de l.

1.6.7. Detalles del Canal


Contienen datos sobre el canal.

Posee los campos:


Canal: Cdigo del canal
Descripcin: Descriptivo del canal

Manual MILE Model Integrator Layout Engine Pgina 12/74

ID Salida: Identifica el destino de los datos.


Si el tipo de adapter es rutina automtica (MSExecAuto), debe ser MASTER o DETAIL de
acuerdo con el modelo de rutina automtica (Modelo 1 solo MASTER, el resto
MASTER/DETAIL).
Si el tipo de adapter es MVC, debe ser uno de los ID de los componentes del modelo de
datos.
Si el tipo de adapter es Funcin debe ser MASTER o DETAIL de modo similar a la rutina
automtica (MSExecAuto)
Ocurrencia: Ocurrencia del canal en el layout. Para una unidad de informacin (1 archivo, 1
pedido, 1 nota, etc.) informa la ocurrencia del canal.
1=nica: El canal ocurre solo 1 vez para cada unidad de informacin ( vea el tem 1.3
Qu es una Unidad de Informacin ).
N=Varias: El canal ocurre varias veces para cada unidad de informacin ( vea el tem
1.3 Qu es una Unidad de Informacin ).
Ej.: En un pedido de ventas, el canal de encabezado ocurre 1 vez y el canal de tems
ocurre varias veces, eso para cada pedido.
Obs.: Siempre pensar en las ocurrencias en una unidad de informacin (1 pedido, 1
nota, etc.)
Posejecucin: Funcin ejecutada luego de la lectura de los datos del canal.

1.6.8. Salidas
Componente visual que exhibe la relacin entre el canal con el destino. Las carpetas azules son
los niveles en el destino y las amarillas los canales vinculados a ellos.

Manual MILE Model Integrator Layout Engine Pgina 13/74

1.6.9. Campos
Contienen datos sobre los campos del layout.

Posee los campos:


Sec.: Secuencia de los campos.
Obs. En la importacin a una rutina automtica (MSExecAuto) los campos se ordenan
de acuerdo con el diccionario de campos (SX3).
Campo: Nombre del campo.
Descripcin: Descripcin del campo.
Tipo: Tipo de campo, solo informar si el campo no consta de diccionario, como por ejemplo,
campos adicionales de rutina automtica (MSExecAuto) (AUTBANCO, AUTBAIXA, etc.)
Origen Dato: Posicin donde se encuentra el dato en la lnea del archivo texto.
Cuando el formato del archivo texto es de ancho fijo se informa la posicin inicial y
final separadas por un guin. Ej. 0001-0005.

Manual MILE Model Integrator Layout Engine Pgina 14/74

Cuando el formato del archivo texto es por separador, se informa la posicin de la


informacin. Ej. 0001, esto significa que el dato es el 1 campo de la lnea y as
sucesivamente.
Cuando el dato no viene directamente del archivo texto (viene de una variable o es
valor fijo) usar 0000-0000 o 0000 de acuerdo con el formato.
Obs: Si el dado proviene de ms de un lugar de la lnea del archivo texto, se puede
informar los diversos orgenes separados por un punto y coma (;), por ejemplo, 00010005;0008-0010 significa que el contenido de las posiciones 1 a 5 y de 8 a 10 de la
lnea del archivo texto realizarn la composicin del dato. Lo mismo se aplica si el
formato es por separadores, por ejemplo, 0001;0005 eso significa que el contenido del
1 y del 5 campo de la lnea del archivo texto realizarn la composicin del dato.
Ejecucin: Funcin ejecutada para el tratamiento del dato ledo. Recibe como parmetros las
variables xA hasta xZ de acuerdo con la cantidad de orgenes. Por ejemplo, si el origen
est definido como 0001-0005, el dato ledo se pasa en la variable xA, si est como
0001-0005;0008-0010 el dato ledo de 0001-0005 se pasa en la variable xA y el ledo de
0008-0010 en la variable xB y as sucesivamente. El retorno de esta ejecucin se
enviar al campo en vez de directamente al dato ledo.
Un ejemplo:
Upper( xA )
Al completar el campo de esta forma, indica que el dato ledo (xA) ser usado en la
funcin UPPER() y el resultado se enviar al campo correspondiente.
Condicin: Condicin para importacin/exportacin de un campo. Es posible definir una
expresin AdvPL o funcin que retornando verdadero (.T.) el dato se enviar al campo
y retornando falso (.F.) el dato no se enviar. Recibe como parmetro el dato ledo y ya
tratado por lo que est definido en EJECUCIN, en caso de que haya.
Observacin: Observaciones que se desean hacer.
Botn Arriba: Mueve un campo una secuencia arriba.
Botn Abajo: Mueve un campo una secuencia abajo.
Botn Campos: Si el tipo del adapter es una rutina automtica (MSExecAuto), complete el
layout con los campos de la tabla principal informada. Si el tipo del adapter es MVC

Manual MILE Model Integrator Layout Engine Pgina 15/74

complete con los campos de la estructura del componente del modelo de datos
definido en el ID de Salida.
Botn Inicio: Mueve un campo hacia la primera secuencia.
Botn Final: Mueve un campo hacia la ltima secuencia.

1.6.10. Variables
Contienen datos sobre las variables que pueden crearse para usar en el layout. Estas variables
se crearn en la memoria en el transcurso de la importacin/exportacin. Estas se crearn en
el momento en que se realiza la lectura del canal donde esta fue definida. Las variables se
completan en la secuencia en las que fueron definidas.
Por ejemplo, la variable cXPTO se cre en el canal X, y deber completarse con una
informacin del canal, cuando el canal X se lea, la variable cXPTO se completar con el
contenido determinado.
Estas variables se crean con el alcance PRIVATE.

Posee los campos:


Sec.: Secuencia de los variables.
Variable: Nombre del variable.
Tipo: Tipo de variable.
Origen Dato: Posicin donde se encuentra el dato en la lnea del archivo texto.
Cuando el formato del archivo texto es de ancho fijo se informa la posicin inicial y
final separadas por un guin. Ej. 0001-0005.
Cuando el formato del archivo texto es por separador, se informa la posicin de la
informacin. Ej. 0001, esto significa que el dato es el 1 campo de la lnea y as
sucesivamente.
Manual MILE Model Integrator Layout Engine Pgina 16/74

Cuando el dato no viene directamente del archivo texto (es valor fijo) usar 0000-0000
o 0000 de acuerdo con el formato.
Obs.: Si el dato proviene de ms de un lugar de la lnea del archivo texto, se puede
informar los diversos orgenes separados por un punto y coma (;), por ejemplo, 00010005;0008-0010 significa que el contenido de las posiciones 1 a 5 y de 8 a 10 de la
lnea del archivo texto realizarn la composicin del dato. Lo mismo se aplica si el
formato es por separadores, por ejemplo, 0001;0005 eso significa que el contenido del
1 y del 5 campo de la lnea del archivo texto realizarn la composicin del dato.
Ejecucin: Funcin ejecutada para el tratamiento del dato ledo. Recibe como parmetros las
variables xA hasta xZ de acuerdo con la cantidad de orgenes. Por ejemplo, si el origen
est definido como 0001-0005, el dato ledo se pasa en la variable xA, si est como
0001-0005;0008-0010 el dato ledo de 0001-0005 se pasa en la variable xA y lo ledo de
0008-0010 en la variable xB y as sucesivamente. El retorno de esta ejecucin se
enviar a la variable en vez de directamente hacia el dato ledo.
Condicin: Condicin para el llenado de una variable. Es posible definir una expresin AdvPL o
funcin que, al retornar verdadera (.T.) el dato se enviar a la variable y al retornar
falsa (.F.) el dato no se enviar. Recibe como parmetro el dato ledo y ya tratado por
lo que est definido en EJECUCIN, en caso de que haya.
Observacin: Observaciones que se desean hacer.
Botn Arriba: Mueve una variable una secuencia arriba.
Botn Abajo: Mueve una variable una secuencia abajo.
Botn Inicio: Mueve una variable hacia la primera secuencia.
Botn Final: Mueve una variable hacia la ltima secuencia.

1.6.11. Acciones relacionadas


En la opcin Acciones Relacionadas existen las siguientes funcionalidades:

Crear de MVC: Cuando se va a crear un nuevo layout para importacin o exportacin


utilizando un adapter en MVC esta funcionalidad sirve para completar el layout con la
estructura del modelo de datos con sus componentes y campos. Donde:

Manual MILE Model Integrator Layout Engine Pgina 17/74

Fuente MVC: Nombre del FUENTE (.pr?) que contiene el modelo de datos
(MODELDEF)
Superponer los datos: Indica que los datos del layout se descartarn y
recrearn con los del modelo de datos del adapter en MVC.
Incluir en el canal atual: Indica que los datos creados a partir del MVC se
colocarn a partir del canal posicionado.

1.6.12. Campo Prejecucin


En este campo es posible informar una funcin que se ejecutar antes de la ejecucin del
adapter (FUNCTION o USER FUNCTION) y puede ser usada para manejar los datos que se
enviarn al adapter. Para la funcin informada se pasan algunos parmetros y se espera un
retorno especfico.
Si es una USER FUNCTION, los parmetros se pasan va PARAMIXB. Ejemplificando:
USER FUNCTION XPTO()
Local aParam := PARAMIXB
Si es una FUNCTION los parmetros se pasan directamente como parmetros de la propia
funcin, por lo tanto, la funcin debe estar en el siguiente formato para que logre recibir los
parmetros.
FUNCTION XPTO( param1, param2, param3, param4, param5 )
La funcin recibir como parmetros:
[1] .T. se est ejecutando con interfaz / .F. se est ejecutando sin interfaz
[2]

Vector con informacin adicional. Vea Apndice A Estructura del vector sobre
datos adicionales.

[3] Informacin de las definiciones del layout. Vea Apndice B Estructura del vector
sobre datos del layout
Para adapters de rutina automtica (MSExecAuto)
[4] Datos de Salida. Vea Apndice C Estructura del vector sobre datos de salida
[5] Vectores de rutina automtica (MSExecAuto). Vea Apndice D Estructura del
Vector de datos para Rutina Automtica (MSExecAuto)

Manual MILE Model Integrator Layout Engine Pgina 18/74

Para adapters en MVC


[4] Modelo de datos completado.

El retorno esperado de la funcin deber ser:


Si el adapter es rutina automtica (MSExecAuto), el retorno debe ser un array en el formato:
Adapters de rutina automtica (MSExecAuto) Modelo 1:
[1] Datos de los campos
[1][x][1]

Campo

[1][x][2]

Contenido

[1][x][3]

NIL

Donde:
[x] Vara para cada campo
[2] Vaco

Adapters de rutina automtica (MSExecAuto) Modelo 2 y Modelo 3


[1] Datos de los campos de encabezado
[1][x][1]

Campo

[1][x][2]

Contenido

[1][x][3]

NIL

Donde:
[x] Vara para cada campo
[2] Datos de los campos de tems
[2][x][1][y][1]

Campo

[2][x][1][y][2]

Contenido

[2][x][1][y][3]

NIL

Donde:
[x] Vara para cada lnea
Manual MILE Model Integrator Layout Engine Pgina 19/74

[y] Vara para cada campo

Si el adapter es en MVC:
El retorno debe ser un objeto del modelo de datos del adapter (oModel )

El retorno de esta funcin se usar en la ejecucin del adapter.

1.6.13. Campo Posejecucin


En este campo se puede informar una funcin que se ejecutar luego de la ejecucin del
adapter (FUNCTION o USER FUNCTION) y puede usarse para algn tratamiento adicional. Para
funcin informada se pasan algunos parmetros y no se espera un retorno especfico.
Si es una USER FUNCTION, los parmetros se pasan va PARAMIXB. Ejemplificando:
USER FUNCTION XPTO()
Local aParam := PARAMIXB
Si es una FUNCTION los parmetros se pasan directamente como parmetros de la propia
funcin, por lo tanto, la funcin debe estar en el siguiente formato para que logre recibir los
parmetros.
FUNCTION XPTO( param1, param2, param3, param4, param5 )
La funcin recibir como parmetros:
[1] .T. se est ejecutando con interfaz / .F. se est ejecutando sin interfaz
[2]

Vector con informacin adicional. Vea Apndice A Estructura del vector sobre
datos adicionales

[3] Informacin de las definiciones del layout. Vea Apndice B Estructura del vector
sobre datos del layout
Para adapters de rutina automtica (MSExecAuto)c
[4] Datos de Salida. Vea Apndice C Estructura del vector sobre datos de salida
[5] Error en la rutina automtica (MSExecAuto), Si .T. hubo un error que impide la
importacin / .F. la importacin se realiz

Manual MILE Model Integrator Layout Engine Pgina 20/74

Para adapters MVC


[4]

Modelo de datos completado.

[5]

Si .T. hubo un error que impide la importacin / .F. la importacin se realiz

No hay retorno esperado.

1.6.14. Campo Trat. Datos


En este campo es posible informar una funcin para tratamiento de los datos (FUNCTION o
USER FUNCTION). Para la funcin informada se pasan algunos parmetros y se espera un
retorno especfico.
Si es una USER FUNCTION, los parmetros se pasan va PARAMIXB. Ejemplificando:
USER FUNCTION XPTO()
Local aParam := PARAMIXB
Si es una FUNCTION los parmetros se pasan directamente como parmetros de la propia
funcin, por lo tanto, la funcin debe estar en el siguiente formato para que logre recibir los
parmetros.
FUNCTION XPTO( param1, param2, param3, param4 )
La funcin recibir como parmetros:
[1] .T. se est ejecutando con interfaz / .F. se est ejecutando sin interfaz
[2]

Vector con informacin adicional. Vea Apndice A Estructura del vector sobre
datos adicionales

[3] Vector con informacin de las definiciones del layout. Vea Apndice B Estructura
del vector sobre datos del layout
Si el adapter rutina automtica (MSExecAuto):
[4] Vector con datos de salida. Vea Apndice C Estructura del vector sobre datos de
salida
Si el adapter es en MVC:

Manual MILE Model Integrator Layout Engine Pgina 21/74

[4] Modelo de datos completado.

El Retorno esperado de la funcin deber ser:


Si el adapter es rutina automtica (MSExecAuto), el retorno debe ser un array en el formato:
Adapters de rutina automtica (MSExecAuto) Modelo 1:
[1] Datos de los campos
[1][x][1]

Campo

[1][x][2]

Contenido

[1][x][3]

NIL

Donde:
[x] Vara para cada campo
[2] Vaco

Adapters de rutina automtica (MSExecAuto) Modelo 2 y Modelo 3:


[1] Datos de los campos de encabezado
[1][x][1]

Campo

[1][x][2]

Contenido

[1][x][3]

NIL

Donde:
[x] Vara para cada campo
[2] Datos de los campos de tems
[2][x][1][y][1] Campo
[2][x][1][y][2] Contenido
[2][x][1][y][3] NIL
Donde:
[x] Vara para cada lnea
[y] Vara para cada campo
Manual MILE Model Integrator Layout Engine Pgina 22/74

Si el adapter es en MVC:
El retorno debe ser un objeto del modelo de datos del adapter (Model)

1.6.15. Campo Valid. Operacin


En este campo es posible informar una funcin para validacin de la operacin (FUNCTION o
USER FUNCTION). Para la funcin informada se pasan algunos parmetros y se espera un
retorno especfico. Si el retorno es verdadero (.T.) se ejecuta la importacin de aquella unidad
de informacin, si el retorno es falso (.F.) no se ejecuta la importacin.
Si es una USER FUNCTION, los parmetros se pasan va PARAMIXB. Ejemplificando:
USER FUNCTION XPTO()
Local aParam := PARAMIXB
Si es una FUNCTION los parmetros se pasan directamente como parmetros de la propia
funcin, por lo tanto, la funcin debe estar en el siguiente formato para que logre recibir los
parmetros.
FUNCTION XPTO( param1, param2, param3, param4, param5 )
La funcin recibir como parmetros:
[1] .T. se est ejecutando con interfaz / .F. se est ejecutando sin interfaz
[2]

Vector con informacin adicional. Vea Apndice A Estructura del vector sobre
datos adicionales

[3] Informacin de las definiciones del layout. Vea Apndice B Estructura del vector
sobre datos del layout
Para adapters de rutina automtica (MSExecAuto)
[4] Datos de Salida. Vea Apndice C Estructura del vector sobre datos de salida
[5] Vectores de rutina automtica (MSExecAuto). Vea Apndice D Estructura del
Vector de datos para Rutina Automtica (MSExecAuto)
Para adapters en MVC
[4] Modelo de datos completado.

Manual MILE Model Integrator Layout Engine Pgina 23/74

El retorno de esta funcin deber ser .T. Contina con la importacin de la unidad de
informacin / .F. no ejecuta la importacin de la unidad de informacin

1.7. Lmites de la herramienta

Para los adapters que son una rutina automtica (MSExecAuto), son compatibles
solamente los que poseen la estructuracin de Modelo1, Modelo2 y Modelo3.

Para los adapters que son rutina automtica (MSExecAuto) se realizan solo operaciones de
INCLUSIN.

Para los adapters que son una funcin especfica solo es compatible en la salida una
estructura de encabezado (MASTER) / tem (DETAIL).

Las exportaciones se realizan solo para adapters en MVC y se basan en el modelo de datos
del mismo.

Para importaciones, el tamao mximo de una lnea del archivo texto es de 1022
caracteres.

El final de lnea se determina por los caracteres CR y LF ( Chr(13) / Chr(10) o en


hexadecimal 0D / 0A )

La herramienta no tiene control de actualizacin de versiones para los layouts. A pesar de


tener un campo versin, este es solo un campo libre para control manual de la versin.

Disponible para la lnea de productos Microsiga Protheus 2011 a partir del release 11.80

Manual MILE Model Integrator Layout Engine Pgina 24/74

2. Funcionalidades especiales archivo de layouts


La aplicacin de mantenimiento de layouts (CFGA600) que se encuentra en el mdulo del
Configurador (SIGACFG) en las opciones Entorno / Aceleradores / MILE / Layouts, posee
algunas funcionalidades especiales.

2.1. Layouts Exportar


Esta funcionalidad permite exportar un layout creado dentro de la herramienta. Se genera un
archivo XML que contiene el layout. Esta funcionalidad es til para realizar copias de seguridad
de un layout o transportarlo de un entorno/servidor hacia otro.

2.2. Layouts Importar


Esta funcionalidad permite importar un layout que anteriormente se export por la
funcionalidad Exportar En caso de que el layout a importar ya exista, este no ser superpuesto.

2.3. Procesar TXT


Esta funcionalidad permite procesar un archivo texto utilizando el layout que est posicionado
en el Browse.

2.4. LOG
Esta funcionalidad es un facilitador para la visualizacin de la rutina de log de la herramienta.
Se muestran las ocurrencias de log del layout posicionado en el Browse. Vea el tem 3 - LOG de
Procesamiento.
Al seleccionarse, esta opcin presentar una pantalla con las opciones de visualizacin, donde:
Solamente la ltima operacin: Presenta los LOG de la ltima operacin, en caso de que no
haya, presentar una pantalla vaca.
Solamente la ltima operacin con LOG: Presenta los LOG de la ltima operacin que gener
algn LOG.

Manual MILE Model Integrator Layout Engine Pgina 25/74

Todos los LOG del layout: Presenta todos los LOG de ese layout.

2.5. Activar/Desactivar
Esta funcionalidad activa o desactiva un layout. Un layout desactivado no podr ser usado en
una importacin o exportacin.

2.6. Documentacin
Esta funcionalidad genera un informe que documento el layout posicionado en el Browse.

Manual MILE Model Integrator Layout Engine Pgina 26/74

3. LOG de Procesamiento
Al ejecutarse una importacin o exportacin pueden ocurrir errores o advertencias tanto
relacionados con la regla de negocio del contexto que se est trabajando (clientes, pedidos,
etc.) como una posible mala construccin del adapter que ocasione errores fatales.
Estas ocurrencias se registran en una tabla de LOG. Para cada error se registra una ocurrencia
individualmente.
Estas pueden visualizarse en la aplicacin Log de Procesamiento (CFGA650) que se encuentra
en el mdulo del Configurador (SIGACFG) en las opciones Entorno / Aceleradores / MILE / Log
de Procesamiento

La ocurrencia de LOG posee:


ID: ID nico de la ocurrencia
Adapter: Adapter que se estaba utilizando en el procesamiento.
Archivo: Nombre del archivo texto que se estaba procesando
Layout: Layout que se estaba utilizando en el procesamiento.
Manual MILE Model Integrator Layout Engine Pgina 27/74

Descripcin: Descripcin del layout usado en el procesamiento


Fecha: Fecha de la ocurrencia
Hora: Hora de la ocurrencia
Tipo: Tipo de ocurrencia
0 = Mensaje
1 = Aviso
2 = Error
Ocurrencia: Mensaje de error generado.
Usuario: Usuario inici sesin en el momento de la ocurrencia
Nombre del Usuario: Nombre del usuario
Complemento: Mensaje complementario, si existe.
Origen: Indica las lneas inicial y final ledas del archivo texto que se estaban procesando.
ID Operacin: ID de la Operacin importacin o exportacin. Por ejemplo, si estamos
importando un archivo texto con 10 clientes y 4 de ellos generan un problema, cada
ocurrencia tendr un ID, pero todos ellos tendrn el mismo ID de Operacin. El ID de la
Operacin solo cambiar cuando haya un nuevo procesamiento, ya sea de importacin
o exportacin.
XML Asociado al LOG: XML que contienen los datos enviados al adapter.

Es importante destacar que la herramienta solo registra las ocurrencias, los mensajes y sus
contenidos vienen directamente de los adapters. De esta manera, cuanto ms claro y preciso
el mensaje se haya creado en el adapter, de esta forma quedar registrada.

Manual MILE Model Integrator Layout Engine Pgina 28/74

4. Integracin con el Browse


Existe una integracin de la herramienta con el Browse de las rutinas del sistema que permite
que, al ser registrado un layout para una determinada rutina del sistema (adapter)
automticamente el Browse presente una opcin ms en su men que permita realizar la
importacin o exportacin utilizando este layout.
Por ejemplo, imaginemos la creacin de un layout para la importacin de productos en el
sistema la aplicacin que realiza, ello es MATA010 que posee el tratamiento para rutina
automtica (MSExecAuto).
Realizamos la creacin del layout:

Luego de la creacin del layout al ingresar en la pantalla de la aplicacin de Archivo de


Productos, ya estar disponible una opcin para importacin en OPCIONES / IMPORTAR.

Manual MILE Model Integrator Layout Engine Pgina 29/74

Al hacer clic en IMPORTAR se presenta una pantalla con los layouts disponibles para aquella
rutina (adapter)

Manual MILE Model Integrator Layout Engine Pgina 30/74

En esta pantalla el usuario que posee acceso a la aplicacin de Archivo de Productos podr
realizar la importacin de un archivo texto utilizando el layout creado.

Manual MILE Model Integrator Layout Engine Pgina 31/74

En esta pantalla tambin podr visualizarse el layout, imprimir la documentacin o visualizar


los LOG generados.
Si la aplicacin es en MVC aparecern algunas opciones ms:

Manual MILE Model Integrator Layout Engine Pgina 32/74

Se presentarn las opciones de Visualizar, Incluir, Modificar, Borrar, Copiar, Documentacin y


LOG.
Eventualmente el administrador del sistema podr modificar esos permisos a travs del
Archivo de Privilegios del sistema.
IMPORTANTE: Como no es posible identificar si una rutina est o no preparada para trabajar
como rutina automtica (MSExecAuto), si se registra un layout para una rutina que no posea
esta caracterstica, se presentar la opcin de IMPORTAR. Sin embargo, esta opcin generar
un error al ejecutarse.

Manual MILE Model Integrator Layout Engine Pgina 33/74

5. Caractersticas de las exportaciones


Las exportaciones se realizan solo para adapters en MVC y se basan en el modelo de datos del
mismo.
Si el componente del modelo es un formulario (FORMFIELD) se generar una lnea en el
archivo de texto de exportacin.
Si el componente del modelo es un grid (FORMGRID) se generar una lnea para cada lnea del
grid en el archivo de texto de exportacin.
El layout de exportacin hace referencia al alias de la tabla que se exportar, si hay un filtro
aplicado a esta tabla, este filtro se respetar.

Manual MILE Model Integrator Layout Engine Pgina 34/74

6. Utilizacin de la herramienta directamente en aplicaciones AdvPL


Una de las caractersticas de la herramienta es que se la pueda utilizar directamente en otras
aplicaciones AdvPL. Esto permite su uso en procesos ms complejos donde la importacin o
exportacin de un archivo texto sea una de las etapas.
La configuracin del layout aun se dar por la aplicacin de mantenimiento de layout (vea tem
1.6 Composicin del layout), pero los procesos de importacin o exportacin ser realizarn
por cdigo AdvPL.
Los log generados en el proceso se grabarn en la pantalla log y podrn visualizarse en la
aplicacin de Log de Procesamiento (vea tem 3 - LOG de Procesamiento).

Debemos proceder de la siguiente manera:


Estanciamos la clase de FWMILE, a travs del mtodo New()
Ej. oFWMILE := FWMILE():New()

Definimos el layout que se utilizar a travs del mtodo SetLayout(). El mismo ya debe haber
sido creado anteriormente para que pueda utilizarse.
Ej. oFWMILE:SetLayout( TESTE )

Definimos cul ser el archivo texto que se procesar a travs del mtodo SetTXTFile().
oFWMILE:SetTXTFile( arquivo.txt )

Activamos la clase, a partir de este momento podremos ejecutar las operaciones de


importacin.
oFWMILE:Activate()

Si el layout es de importacin para ejecutar el proceso utilizamos el mtodo Import() si es una


exportacin el mtodo Export()
oFWMILE:Import()

Manual MILE Model Integrator Layout Engine Pgina 35/74

Para identificar si hubo algn error en el proceso utilizado el mtodo Error()


oFWMILE:Error()

Al final debemos desactivar la clase.


oFWMILE:DeActivate()

6.1. Ejemplo de uso de la herramienta directamente en aplicaciones AdvPL


Function MILETest()
Local aArquivos := { "arquivo1.txt", "arquivo2.txt", "arquivo3.txt" }
Local cLayout

:= "TESTE"

Local nX

:= 0

Local oFWMILE

oFWMILE := FWMILE():New()

For nX := 1 To Len( aArquivos )


oFWMILE:SetLayout( cLayout )
oFWMILE:SetTXTFile( aArquivos[nX] )

If oFWMILE:Activate()
oFWMILE:Import()

If oFWMILE:Error()
ApMsgInfo( I18N( "Processamento terminado. Arquivo #1.", ;
{ aArquivos[nX] } ) )
Else
ApMsgStop( I18N( "Processamento terminado. Arquivo #1." ;
"Houve erros no processamento. Verifique as ocorrncias no LOG.", ;
{ aArquivos[nX] } ) )
EndIf

oFWMILE:Deactivate()

Else
ApMsgStop( I18N( "Problemas para importar. " + oFWMILE:GetError(), {} ) )
EndIf
Next

Manual MILE Model Integrator Layout Engine Pgina 36/74

Return NIL

6.2. Mtodos de la Clase FWMILE


A continuamos mostramos los principales mtodos de la clase FWMILE. Consulte siempre el
TDN sobre actualizaciones.

6.2.1. Mtodo New()


Constructor de la clase
Sintaxis:
New( lOpenTable )

Parmetros:
lOpenTable Efecta o no la apertura de tablas de la clase

Retorno:
No hay retorno esperado (NIL)

6.2.2. Mtodo Activate()


Activacin de la clase
Sintaxis
Activate()

Retorno:
.T. Si la clase se activ y .F. en caso contrario

6.2.3. Mtodo Deactivate()


Desactiva la clase
Sintaxis:
Manual MILE Model Integrator Layout Engine Pgina 37/74

Deactivate()

Retorno:
No hay retorno esperado (NIL)

6.2.4. Mtodo HasInterface()


Informa si a est usando interfaz
Sintaxis:
HasInterface()

Retorno:
.T. Si hay interfaz y .F. en caso contrario

6.2.5. Mtodo IsActive()


Informa si la clase est activa
Sintaxis:
IsActive()

Retorno:
.T. Si la clase est activa y .F. en caso contrario

6.2.6. Mtodo IsSimulation()


Informa si est configurado para simular el procesamiento. Solo para adapters en MVC
Sintaxis:
IsSimulation()

Manual MILE Model Integrator Layout Engine Pgina 38/74

Retorno:
.T. Si la clase est configurada como simulacin y .F. en caso contrario

6.2.7. Mtodo ClassName()


Nombre de la clase
Sintaxis:
ClassName()

Retorno:
Nombre de la Clase

6.2.8. Mtodo SetLayout()


Define el layout que se utilizar
Sintaxis:
SetLayout( cLayout )

Parmetros:
cLayout Nombre del layout que se usar en el procesamiento

Retorno:
.T. Si la definicin se ejecut con xito y .F. en caso contrario

6.2.9. Mtodo SetLogGeneration()


Define la generacin de LOG
Sintaxis:
SetLogGeneration( lLogAuto )

Manual MILE Model Integrator Layout Engine Pgina 39/74

Parmetros:
lLogAuto .T. Generar el LOG y .F. no generar

Retorno:
.T. Si la definicin se ejecut con xito y .F. en caso contrario

6.2.10. Mtodo SetLogApplication()


Define la rutina generacin de LOG
Sintaxis:
SetLogApplication( bLogApplication )

Parmetros:
bLogApplication

Bloque de cdigo con la funcin responsable de la generacin de LOG

Ejemplo:
oFWMILE:SetLogApplication( { |oObj, xParam| SuaFuncao( oObj, xParam ) } )

Retorno:
.T. Si la definicin se ejecut con xito y .F. en caso contrario

6.2.11. Mtodo SetSimulation()


Define si es para apenas simular el procesamiento. Solo para adapters en MVC.
Sintaxis:
SetSimulation( lSimulation )

Manual MILE Model Integrator Layout Engine Pgina 40/74

Parmetros:
lSimulation Define si ser una simulacin o no

Retorno:
.T. Si la definicin se ejecut con xito y .F. en caso contrario

6.2.12. Mtodo SetTXTFile()


Define qu archivo texto se procesar
Sintaxis:
SetTXTFile( cTXTFile )

Parmetros:
cTXTFile Nombre del archivo texto que se procesar

Retorno:
.T. Si la definicin se ejecut con xito y .F. en caso contrario

6.2.13. Mtodo SetInterface()


Define si habr interfaz
Sintaxis:
SetInterface( lHasInterface )

Parmetros:
lHasInterface

.T. Define el proceso posee interfaz y .F. en caso contrario

Retorno:

Manual MILE Model Integrator Layout Engine Pgina 41/74

.T. Si la definicin se ejecut con xito y .F. en caso contrario

6.2.14. Mtodo SetInitLine()


Define cul es la lnea inicial del archivo texto para procesamiento
Sintaxis:
SetInitLine( nInitialLine )

Parmetros:
nInitialLine Nmero de la lnea

Retorno:
.T. Si la definicin se ejecut con xito y .F. en caso contrario

6.2.15. Mtodo SetOperation()


Define cul es la operacin (Importacin/Exportacin)
Sintaxis:
SetOperation( cOperation )

Parmetros:
cOperation Operacin. Que puede ser:
1=Importacin #DEFINE MILE_IMPORT
2=Exportacin #DEFINE MILE_EXPORT

Retorno:
.T. Si la definicin se ejecut con xito y .F. en caso contrario

Manual MILE Model Integrator Layout Engine Pgina 42/74

6.2.16. Mtodo SetAlias()


Define el alias para exportacin
Sintaxis:
Mtodo SetAlias( cAlias )

Parmetros:
cAlias Nombre del Alias para exportacin

Retorno:
.T. Si la definicin se ejecut con xito y .F. en caso contrario

6.2.17. Mtodo Error()


Informa si hubo error
Sintaxis:
Error()

Retorno:
.T. Si hubo error y .F. en caso contrario

6.2.18. Mtodo GetError()


Obtiene el ltimo mensaje de error
Sintaxis:
GetError()

Retorno: ltimo mensaje de error

Manual MILE Model Integrator Layout Engine Pgina 43/74

6.2.19. Mtodo GetLayout()


Obtiene el cdigo del layout definido
Sintaxis:
GetLayout()

Retorno:
Cdigo del Layout

6.2.20. Mtodo GetOperation()


Obtiene la operacin
Sintaxis:
GetOperation()

Retorno:
Cdigo de la operacin
1=Importacin #DEFINE MILE_IMPORT
2=Exportacin #DEFINE MILE_EXPORT

6.2.21. Mtodo GetTXTFile()


Obtiene el nombre del archivo texto definido
Sintaxis:
GetTXTFile()

Retorno:
Nombre del archivo texto definido

Manual MILE Model Integrator Layout Engine Pgina 44/74

6.2.22. Mtodo CanActivate()


Verifica si la clase puede ser activada
Sintaxis:
CanActivate()

Retorno:
.T. Si la clase puede activarse y .F. en caso contrario

6.2.23. Mtodo Import()


Ejecuta el bloque de importacin definido
Sintaxis:
Import()

Retorno:
No hay retorno esperado (NIL)

6.2.24. Mtodo Export()


Ejecuta el bloque de exportacin definido
Sintaxis:
Export()

Retorno:
No hay retorno esperado (NIL)

6.2.25. Mtodo Dialog()


Ejecuta el bloque de DIALOG definido

Manual MILE Model Integrator Layout Engine Pgina 45/74

Sintaxis:
Dialog( cAdapter )

Parmetros:
cAdapter

Cdigo del Adapter

Retorno:
No hay retorno esperado (NIL)

6.2.26. Mtodo MakeLog()


Ejecuta rutina de LOG
Sintaxis:
MakeLog( xParam1, xParam2, xParam3, xParam4, xParam5 )

Parmetros:
xParam1 Parmetro transferido a la rutina de LOG
xParam2 Parmetro transferido a la rutina de LOG
xParam3 Parmetro transferido a la rutina de LOG
xParam4 Parmetro transferido a la rutina de LOG
xParam5 Parmetro transferido a la rutina de LOG

Retorno:
No hay retorno esperado (NIL)

6.2.27. Mtodo GetIDOperation()


Obtiene el ID de la Operacin

Manual MILE Model Integrator Layout Engine Pgina 46/74

Sintaxis:
GetIDOperation()

Retorno:
ID de la Operacin

Manual MILE Model Integrator Layout Engine Pgina 47/74

7. Agendando importaciones
La herramienta permite la ejecucin de importaciones de forma agendada a travs de la
herramienta Scheduler del sistema (para ms informacin vea la documentacin del
Scheduler). Para ello se registra en el Scheduler la aplicacin MILESCHIMP para la
empresa/sucursal que se desea ejecutar las importaciones.
La idea bsica es procesar los archivos texto de una carpeta utilizando un determinado layout.

La aplicacin MILESCHIMP recibe como parmetros:


Layout de Importacin: Cdigo del layout de importacin que se utilizar en el procesamiento
de los archivos texto.
Carpeta de los Archivos: Carpeta donde se encuentran los archivos que se procesarn. Se
procesarn todos los archivos de la carpeta de acuerdo con la mscara informada.

Manual MILE Model Integrator Layout Engine Pgina 48/74

Mscara de los Archivos: Mscara del nombre de los archivos texto que se procesarn. Se
puede usar el carcter comodn * (asterisco), por ejemplo: *.TXT, solo los archivos
que respondan a la mscara se procesarn.

Se crear en la carpeta donde se encuentran los archivos texto una subcarpeta con el nombre
\processed. Los archivos que se procesen se movern hacia esta subcarpeta.
Los log generados en el proceso se grabarn en la pantalla log y podrn visualizarse en la
aplicacin de Log de Procesamiento (vea tem 3 - LOG de Procesamiento).

Manual MILE Model Integrator Layout Engine Pgina 49/74

8. Ejemplificando algunos layouts


A continuacin mostraremos ejemplos de layout

8.1. Layout de importacin simple sin canal


Imaginemos la importacin del archivo de productos de un archivo texto por separadores sin
canales. Cada lnea ser un producto a importar.
|000001|PRODUTO TESTE 1|PA|UN|01|
|000002|PRODUTO TESTE 2|PA|UN|01|
|000003|PRODUTO TESTE 3|PA|UN|01|

En este layout:
1 Posicin es el Cdigo del Producto
2 Posicin es la Descripcin
3 Posicin es el Tipo
4 Posicin es la Unidad de Medida
5 Posicin es el Local Estndar

Para crear el layout, como puntos importantes tenemos:

Registramos 0000 en el campo Origen del Canal, pues no hay canales:

Colocamos NO en el campo Entrada MultiCanal

A pesar de que no haya canales creamos un canal ficticio con cualquier cdigo:

Manual MILE Model Integrator Layout Engine Pgina 50/74

Colocamos el campo Ocurrencia como nica

Como no hay canales, registramos los campos a partir de la 1 posicin.

Y proceder con el resto del registro del layout

8.2. Layout de importacin con 2 canales MASTER - DETAIL


Imaginemos la importacin de pedidos de ventas. Cada pedido posee informacin que es
pertinente al encabezado (MASTER) del pedido y otras pertinentes a los items (DETAIL)
En el archivo texto, para separar la informacin de encabezado (MASTER) e tems (DETAIL) es
necesario que cada una est en un canal diferente. Por ejemplo:
|A|000001|000001|00|F|001|
|B|000001|10.00|502|
Manual MILE Model Integrator Layout Engine Pgina 51/74

|B|000002|20.00|502|
|A|000001|000002|00|F|001|
|B|000003|10.00|502|
|A|000001|000003|00|F|001|
|B|000001|12.00|502|
|B|000003|50.00|502|

En este archivo tenemos los datos del encabezado en el canal A (1 posicin) y los tems en el
canal B.
En este layout:
Canal A encabezado (MASTER)
1 Posicin es el Canal
2 Posicin es el Nmero del Pedido
3 Posicin es el Cliente
4 Posicin es la Tienda
5 Posicin es el Tipo
6 Posicin es la Condicin de Pago

Canal B tems (DETAIL)


1 Posicin es el Canal
2 Posicin es el Cdigo del Producto
3 Posicin es la Cantidad
4 Posicin es el Tipo Entrada/Salida

Para crear el layout, como puntos importantes tenemos:

Registramos 0001 en el campo Origen del Canal, pues los canales estn en la 1 posicin:

Colocamos S en el campo Entrada MultiCanal

Manual MILE Model Integrator Layout Engine Pgina 52/74

Definimos el modelo del MSExecAuto, en este caso, modelo 3

Registramos los 2 canales

El Canal A es el encabezado, entonces como ID Salida definimos MASTER

Colocamos el campo Ocurrencia como nica

Como hay canales, registramos los campos a partir de la 2 posicin

Manual MILE Model Integrator Layout Engine Pgina 53/74

El Canal B son los tems, entonces como ID Salida definimos DETAIL

Colocamos el campo Ocurrencia como Varias, pues para cada pedido existen varias lneas
del canal B ( una para cada tem)

Como hay canales, registramos los campos a partir de la 2 posicin

Y proceder con el resto del registro del layout

8.3. Layout de importacin 2 canales para 1 salida


Imaginemos la importacin del archivo de productos de un archivo texto por separadores
donde existen 2 canales (A y B), donde A tiene algunos datos del producto y B otros. De esta

Manual MILE Model Integrator Layout Engine Pgina 54/74

manera, la combinacin de datos del canal A con el canal B generar 1 producto, por lo que
tendremos 2 canales en la entrada que convergirn en una sola salida (MASTER)
|A|000001|PRODUTO TESTE 1|
|B|PA|UN|01|
|A|000002|PRODUTO TESTE 2|
|B|PA|UN|01|
|A|000003|PRODUTO TESTE 3|
|B|PA|UN|01|

En este layout:
Para el canal A:
1 Posicin es el Canal
2 Posicin es el Cdigo del Producto
3 Posicin es la Descripcin

Para el canal B:
1 Posicin es el Canal
2 Posicin es el Tipo
3 Posicin es la Unidad de Medida
4 Posicin es el Local Estndar

Para crear el layout, como puntos importantes tenemos:

Registramos 0001 en el campo Origen del Canal, pues los canales estn en la 1 posicin:

Colocamos S en el campo Entrada MultiCanal

Registramos los 2 canales

Manual MILE Model Integrator Layout Engine Pgina 55/74

Para el Canal A definimos como ID Salida definimos MASTER

Colocamos el campo Ocurrencia como nica, pues ocurre 1 vez para cada unidad de
informacin (producto)

Como hay canales, registramos los campos a partir de la 2 posicin

Para el Canal B definimos como ID Salidaa definimos MASTER tambin, pues sus datos
irn hacia la misma salida

Manual MILE Model Integrator Layout Engine Pgina 56/74

Colocamos el campo Ocurrencia como nica, pues ocurre 1 vez para cada unidad de
informacin (producto)

Como hay canales, registramos los campos a partir de la 2 posicin

Y proceder con el resto del registro del layout

8.4. Layout de importacin con ocurrencia nica-nica


Imaginemos un archivo texto para la importacin de archivo de bancos, donde hay un canal
para definir los datos del banco, un canal para definir los datos de la agencia y otro para definir
los de la cuenta corriente, con el agravante de que el canal del banco puede tener varios
canales de agencia y este, a su vez, puede tener varios canales de cuenta corriente. Por
ejemplo:
|BC|341|ITAU|
|AG|0001|AGNCIA
|CC|111111|CONTA
|CC|222111|CONTA
|AG|0002|AGNCIA
|CC|222112|CONTA
|AG|0003|AGNCIA
|CC|333111|CONTA

001|
1|
2|
002|
3|
003|
4|

Manual MILE Model Integrator Layout Engine Pgina 57/74

|CC|333113|CONTA 5|

La 1 posicin es el canal, por lo tanto, tenemos BC como el canal del banco, AG como el canal
de agencia y CC como el canal de cuenta corriente. Observen que el canal BC sucedi una vez y
tenemos canales AG con uno o dos canales CC.
El archivo de bancos es una rutina automtica (MSExecAuto) de modelo1, o sea, toda la
informacin tendr que converger en una nica salida.
El agravante en este layout es que estructuralmente se asemeja a un modelo3, pues
podramos, hipotticamente, decir que el canal de banco sera el encabezado (MASTER) y los
tens (DETAIL),
Para procesar este archivo texto, definiremos en el layout la ocurrencia de cada canal como
NICA, de esta forma la herramienta proceder de la siguiente manera:

Leer la 1 lnea, que es un canal BC

Leer la prxima lnea del archivo texto, como la ocurrencia de BC es la nica, si el


canal de la lnea leda es BC, esta entender que es la nueva informacin e intentar
importar la informacin ya leda antes de continuar.

Pero el prximo canal es AG, y este contina la lectura.

Leer la prxima lnea del archivo texto, como la ocurrencia de AG tambin es la nica,
si el canal de la lnea leda es BC o AG, esta entender que es nueva informacin e
intentar importar la informacin ya leda antes de continuar.

Pero el prximo canal es CC, y este contina la lectura.

Leer la prxima lnea del archivo texto, como la ocurrencia de CC tambin es nica, si
el canal de la lnea leda es BC o AG o CC, esta entender que es nueva informacin e
intentar importar la informacin ya leda antes de continuar.

El prximo canal es CC, la herramienta entender que es nueva informacin e


intentar importar la informacin ya leda antes de continuar y comenzar el ciclo
nuevamente.

En este tenemos layout:


Para el canal BC:
1 Posicin es el Canal

Manual MILE Model Integrator Layout Engine Pgina 58/74

2 Posicin es el Cdigo del Banco


3 Posicin es el Nombre del Banco

Para el canal AG:


1 Posicin es el Canal
2 Posicin es el Cdigo de la Agencia
3 Posicin es el Nombre de la Agencia

Para el canal CC:


1 Posicin es el Canal
2 Posicin es el Nmero de Cuenta
3 Posicin es el Nombre de la Cuenta

Para crear el layout, como puntos importantes tenemos:

Registramos 0001 en el campo Origen del Canal, pues los canales estn en la 1 posicin:

Colocamos S en el campo Entrada MultiCanal

Registramos los 3 Canales

Manual MILE Model Integrator Layout Engine Pgina 59/74

Para el canal BC definimos como ID Salida definimos MASTER

Colocamos el campo Ocurrencia como nica, pueste este ocurre 1 vez para cada unidad
de informacin (banco)

Como hay canales, registramos los campos a partir de la 2 posicin

Para el canal AG definimos como ID Salida definimos MASTER tambin, pues los datos de
este irn a la misma salida.

Manual MILE Model Integrator Layout Engine Pgina 60/74

Colocamos el campo Ocurrencia como nica, pues este ocurre 1 vez para cada unidad de
informacin (banco)

Como hay canales, registramos los campos a partir de la 2 posicin

Para el Canal CC definimos como ID Salida definimos MASTER tambin, pues los datos de
este irn a la misma salida.

Colocamos el campo Ocurrencia como nica, pues este ocurre 1 vez para cada unidad de
informacin (banco)

Como hay canales, registramos los campos a partir de la 2 posicin

Manual MILE Model Integrator Layout Engine Pgina 61/74

Y proceder con el resto del registro del layout

8.5. Layout de importacin con uso de variables


Imaginemos la importacin de pedidos de ventas. Cada pedido posee informacin que es
pertinente al encabezado (MASTER) del pedido y otras pertinentes a los tems (DETAIL)
En el archivo texto, para separar la informacin de encabezado (MASTER) e tems (DETAIL) es
necesario que cada uno est en un canal diferente, sin embargo, la informacin con relacin al
Tipo de Entrada/Salida en vez de venir al canal de los tems viene en el canal del encabezado.
El problema de esta situacin es que esa informacin no tiene un correspondiente en el
encabezado, es una informacin pertinente al tem, al leer el canal de encabezado tendramos
que almacenar este dato en algn lugar para que pudiramos usarlo en los tems.
Este es un caso en el que se recomienda el uso de variables. La idea es que al leer el canal del
encabezado la informacin de Tipo de Entrada/Salida se almacene en una variable en vez de
en algn campo y que posteriormente, esa variable se use en los tems.
Por ejemplo, el archivo texto sera:
|A|000001|000001|00|F|001|502|
|B|000001|10.00|
|B|000002|20.00|
|A|000001|000002|00|F|001|502|
|B|000003|10.00|
|A|000001|000003|00|F|001|502|
|B|000001|12.00|
|B|000003|50.00|

En este archivo tenemos los datos del encabezado en el canal A (1 posicin) y los tems en el
canal B.
En este layout:
Manual MILE Model Integrator Layout Engine Pgina 62/74

Canal A encabezado (MASTER)


1 Posicin es el Canal
2 Posicin es el Nmero del Pedido
3 Posicin es el Cliente
4 Posicin es la Tienda
5 Posicin es el Tipo
6 Posicin es la Condicin de Pago
7 Posicin es el Tipo Entrada/Salida

Canal B tems (DETAIL)


1 Posicin es el Canal
2 Posicin es el Cdigo del Producto
3 Posicin es la Cantidad

Para crear el layout, como puntos importantes tenemos:

Registramos 0001 en el campo Origen del Canal, pues los canales estn en la 1 posicin:

Colocamos S en el campo Entrada MultiCanal

Definimos el modelo del MSExecAuto, en este caso, modelo 3

Registramos los 2 Canales

Manual MILE Model Integrator Layout Engine Pgina 63/74

El Canal A es el encabezado, entonces como ID Salida definimos MASTER

Colocamos el campo Ocurrencia como nica

Como hay canales, registramos los campos a partir de la 2 posicin

Registramos la variable que almacenar el Tipo de Entrada/Salida. Por ejemplo,


crearemos la variable MEMTES, que recibir el campo ledo del archivo texto. As cuando
se lea el canal A, se crear esa variable.

Manual MILE Model Integrator Layout Engine Pgina 64/74

El Canal B son los tems, entonces como ID Salida definimos DETAIL

Colocamos el campo Ocurrencia como Varias, pues para cada pedido existen varias lneas
del canal B (una para cada tem)

Como hay canales, registramos los campos a partir de la 2 posicin y el campo de Tipo de
Entrada/Salida en vez de venir del texto de la variable MEMTES. Para ello usamos el
campo EJECUCIN (vea el tem 1.6.9 - Campos)

Y proceder con el resto del registro del layout

Manual MILE Model Integrator Layout Engine Pgina 65/74

9. Trabajando con una funcin especfica


En la herramienta aun hay posibilidad de adems de trabajar con adapters en rutina
automtica (MSExecAuto) o en MVC, se utilice una funcin especfica para tratar los datos.
Esta podr ser una FUNCTION o USER FUNCTION .
Esta funcin ser la responsable de realizar todos los tratamientos y persistencias que los
datos necesiten, as como generar ocurrencias en el LOG, si es necesario.
La herramienta realizar lecturas de los datos y los pasar a travs de parmetros para la
funcin. Se pasar una unidad de informacin por cada vez (vea el tem 1.3 Qu es una
Unidad de Informacin)
Solo es compatible en la salida de una estructura de MASTER/DETAIL. El archivo texto puede
tener hasta ms de un canal, sin embargo, estos deben converger hacia esa estructura.
Si es una USER FUNCTION, los parmetros se pasan va PARAMIXB. Ejemplificando:
USER FUNCTION XPTO()
Local aParam := PARAMIXB
Si es una FUNCTION los parmetros se pasan directamente como parmetros de la propia
funcin, por lo tanto, la funcin debe estar en el siguiente formato para que logre recibir los
parmetros.
FUNCTION XPTO( param1, param2, param3, param4 )
La funcin recibir como parmetros:
[1] .T. se est ejecutando con interfaz / .F. se est ejecutando sin interfaz
[2]

Vector con informacin adicional. Vea

Manual MILE Model Integrator Layout Engine Pgina 66/74

Apndice A Estructura del vector sobre datos adicionales

Manual MILE Model Integrator Layout Engine Pgina 67/74

Apndice A Estructura del vector sobre datos adicionales


[3] Informacin de las definiciones del layout. Vea Apndice B Estructura del vector
sobre datos del layout
[4] Datos de Salida. Vea Apndice C Estructura del vector sobre datos de salida

Manual MILE Model Integrator Layout Engine Pgina 68/74

Apndice A Estructura del vector sobre datos adicionales

[2]

Vector con informacin adicional.


[2][1] Lnea inicial leda en el archivo texto
[2][2] Lnea final leda en el archivo texto
[2][3] nombre del archivo texto que se est procesando

Manual MILE Model Integrator Layout Engine Pgina 69/74

Apndice B Estructura del vector sobre datos del layout

[3]

Informacin de las definiciones del layout


[3][1] Datos Generales
[3][1][1]

Cdigo

DEFINE XZ1LAYOUT

[3][1][2]

Tipo de adapter

DEFINE XZ1TYPE

[3][1][3]

Adapter

DEFINE XZ1ADAPT

[3][1][4]

Formato del archivo texto

DEFINE XZ1STRUCT

[3][1][5]

Separador

DEFINE XZ1SEPARA

[3][1][6]

Tipo MSExecAuto

DEFINE XZ1TYPEXA

[3][1][7]

Separador Inicial

DEFINE XZ1SEPINI

[3][1][8]

Separador Final

DEFINE XZ1SEPFIN

[3][1][8]

Tabla Principal

DEFINE XZ1TABLE

[3][1][10]

Orden Tab. Principal

DEFINE XZ1ORDER

[3][1][11]

Descripcin

DEFINE XZ1DESC

[3][1][12]

Origen del Canal

DEFINE XZ1SOURCE

[3][1][13]

Funcin prejecucin

[3][1][14]

Funcin posejecucin

[3][1][15]

Funcin de Tratamiento de datosDEFINE XZ1TDATA

[3][1][16]

Tipo Fecha

DEFINE XZ1TIPDAT

[3][1][17]

Entrada Multicanal

DEFINE XZ1EMULTC

[3][1][18]

Detalles Opcional

DEFINE XZ1DETOPC

[3][1][19]

Importacin/Exportacin

DEFINE XZ1IMPEXP

[3][1][20]

Separador Decimal

DEFINE XZ1DECSEP

[3][1][21]

Operaciones Importacin

DEFINE XZ1MVCOPT

[3][1][22]

Mtodo de Modificacin

DEFINE XZ1MVCMET

DEFINE XZ1PRE
DEFINE XZ1POS

Manual MILE Model Integrator Layout Engine Pgina 70/74

[3][1][23]

Funcin de Validacin de la Operacin

DEFINE XZ1CANDO

[3][2] Datos de los Canales


[3][2][x][1] Canal

DEFINE XZ2CHANEL

[3][2][x][2] Canal Superior


[3][2][x][3] Descripcin

DEFINE XZ2SUPER
DEFINE XZ2DESC

[3][2][x][4] ID Salida

DEFINE XZ2IDOUT

[3][2][x][5] Ocurrencias

DEFINE XZ2OCCURS

[3][2][x][6] Funcin de posejecucin

DEFINE XZ2POS

[3][2][x][7] Campos

DEFINE XZ2XZ4

[3][2][x][7][y][1]

Campo

DEFINE XZ4FIELD

[3][2][x][7][y][2]

Tipo

DEFINE XZ4TYPFLD

[3][2][x][7][y][3]

Tamao

DEFINE XZ4SIZFLD

[3][2][x][7][y][4]

Decimal

DEFINE XZ4DECFLD

[3][2][x][7][y][5]

Origen

DEFINE XZ4SOURCE

[3][2][x][7][y][6]

Ejecucin

DEFINE XZ4EXEC

[3][2][x][7][y][7]

Condicin

DEFINE XZ4COND

[3][2][x][8]

Variables

DEFINE XZ2XZ5

[3][2][x][8][z][1]

Variables

DEFINE XZ5FIELD

[3][2][x][8][z][2]

Tipo

DEFINE XZ5TYPFLD

[3][2][x][8][z][3]

Tamao

DEFINE XZ5SIZFLD

[3][2][x][8][z][4]

Decimal

DEFINE XZ5DECFLD

[3][2][x][8][z][5]

Origen

DEFINE XZ5SOURCE

[3][2][x][8][z][6]

Ejecucin

DEFINE XZ5EXEC

[3][2][x][8][z][7]

Condicin

DEFINE XZ5COND

Donde:
[x] Vara para cada Canal
[y] Vara para cada Campo definido de cada Canal
Manual MILE Model Integrator Layout Engine Pgina 71/74

[z] Vara para cada Variable definida de cada Canal

Apndice C Estructura del vector sobre datos de salida

[4]

Datos de Salida. Apndice C


[4][x][1] Id de Salida
[4][x][2] Control interno. No manejar.
[4][x][3] Control interno. No manejar.
[4][x][4] Datos de Salida
[4][x][4][y][1] Campo
[4][x][4][y][2] Contenido
[4][x][4][y][3] NIL
Donde:
[x] Vara para cada ID de Salida
[y] Vara para cada Campo
[4][x][5] Control interno. No manejar

Manual MILE Model Integrator Layout Engine Pgina 72/74

Apndice D Estructura del Vector de datos para Rutina Automtica


(MSExecAuto)

Para rutina automtica (MSExecAuto) Modelo 1

[5][1] Datos de los campos


[5][1][x][1]

Campo

[5][1][x][2]

Contenido

[5][1][x][3]

NIL

Donde:
[x] Vara para cada campo
[5][2] Vaco

Para rutina automtica (MSExecAuto) Modelo 2 y 3


[5][1] Datos de los campos de encabezado
[5][1][x][1]

Campo

[5][1][x][2]

Contenido

[5][x][3]

NIL

Donde:
[x] Vara para cada campo
[5][2] Datos de los campos de tems
[5][2][x][1][y][1]

Campo

[5][2][x][1][y][2]

Contenido

[5][2][x][1][y][3]

NIL

Donde:
[x] Vara para cada lnea

Manual MILE Model Integrator Layout Engine Pgina 73/74

[y] Vara para cada campo

Manual MILE Model Integrator Layout Engine Pgina 74/74