Producto: | Microsiga Protheus® |
Entorno: | Todos |
Ocurrencia: | ¿Cómo configurar el layout del MILE para importar Reglas de negocio? |
Paso a paso: | Para realizar la importación de Reglas de negocio utilizando el MILE, son necesarias algunas configuraciones adicionales, pues la estructura del MILE no permite realizar la importación utilizando simplemente la configuración de canales. La rutina Reglas de negocio (FATA100) recibe los siguientes parámetros vía rutina automática:
uAutoCab - Array - Datos del encabezado de la Regla de negocio (ACS) uItensACT - Array - Datos de los ítems de la negociación (ACT) uItensACX - Array - Datos de los ítems de la comercialización (ACX) uItensACN - Array - Datos de los ítems de descuentos (ACN) nOpcAuto - Numérico - Opción de la rutina que se ejecutará
En el importador MILE cuando utilizamos el tipo de adapter "1- MSExecAuto", este envía los datos a la rutina automática de la siguiente manera: FUNCAOXXX( uAutoCab, uAutoItens, nOpcAuto )
El MILE puede adaptarse y personalizarse de acuerdo con las necesidades de los clientes. Para más detalles vea la documentación: MILE - Model Integrator Layout Engine Ejemplo de la función Ejecución previa: #INCLUDE "PROTHEUS.CH" User Function FT100TST(lInterface,aInfos,aLayOut,aSaidas) /* lInterface - Lógico - .T. si se está ejecutando con interfaz / .F. si está ejecutándose sin interfaz aInfos - Array - Vector con información adicional como línea inicial y final leída, nombre del archivo, etc. aLayOut - Array - Información de la definición del layout. aSaidas - Array - Estructura del vector sobre datos de salida */ Local aNewVet := Array(4) //Crea un array para separar los datos de los canales. Local nX := 0 Local nY := 0 Local aACT := {} Local aACX := {} Local aACN := {} //Separa los datos de los canales (DETAIL) para que se envíen a la execauto del FATA100 For nX := 1 To Len(aSaidas[2][4]) For nY := 1 to len(aSaidas[2][4][nX]) If "ACT_" $ aSaidas[2][4][nX][nY][1] If "_ITEM" $ aSaidas[2][4][nX][nY][1] Aadd(aACT,{}) EndIf Aadd(aACT[Len(aACT)],{ Alltrim(aSaidas[2][4][nX][nY][1]), aSaidas[2][4][nX][nY][2], aSaidas[2][4][nX][nY][3] }) ElseIf "ACX_" $ aSaidas[2][4][nX][nY][1] If "_ITEM" $ aSaidas[2][4][nX][nY][1] Aadd(aACX,{}) EndIf Aadd(aACX[Len(aACX)],{ Alltrim(aSaidas[2][4][nX][nY][1]), aSaidas[2][4][nX][nY][2], aSaidas[2][4][nX][nY][3] }) ElseIf "ACN_" $ aSaidas[2][4][nX][nY][1] If "_ITEM" $ aSaidas[2][4][nX][nY][1] Aadd(aACN,{}) EndIf Aadd(aACN[Len(aACN)],{ Alltrim(aSaidas[2][4][nX][nY][1]), aSaidas[2][4][nX][nY][2], aSaidas[2][4][nX][nY][3] }) EndIf Next nY Next nX //Cargamos los arrays de los datos en las posiciones correctas de la execauto aNewVet[1] := aSaidas[1][4][1] //uAutoCab (MASTER) aNewVet[2] := aACT //uItensACT aNewVet[3] := aACX //uItensACX aNewVet[4] := aACN //uItensACN //El parámetro nOpcAuto se enviará de forma automática por el importador MILE Return aNewVet La función anterior debe compilarse en el repositorio antes de la configuración del layout. Configuración del ayout: 1) Informaciones generales 2) Formateo del archivo 3) Tratamientos y validaciones 4) Adapters de Rutina automática 5) Definición de los canales Crear el canal B (DETAIL) para recibir los ítems de la Negociación (ACT), de la Comercialización (ACX) y de los ítems de Descuentos (ACN). Crear el canal C (DETAIL) para recibir los ítems de la comercialización (ACX). Ejemplo del archivo de importación: En este ejemplo importaremos una Regla de negociación, de acuerdo con la personalización del rdmake de ejemplo. |A|TST MILE IMPORT| Download del ejemplo del layout (XML) y del archivo de importación: |
Puede ser de su interés: | Para más detalles sobre el MILE, vea la documentación: MILE - Model Integrator Layout Engine |