Uno de los procesos más importantes en el desarrollo de escenarios es la transformación de mensajes de una estructura hacia otra. Es aquí donde se aplica algunas reglas de negocio dependiendo del contexto , muchas de las reglas son implementadas a través de funciones predefinidas que tiene la herramientas Message Mapping.(PI)
A continuación en este punto se verá el funcionamiento de un Message Mapping.
Primeramente todo escenario de mapeo tiene una interface de entrada y una interfaz de salida y a través del uso funciones de PI o propias se realiza el mapeo propiamente dicho entre elementos o segmentos.
Por ejemplo se tiene este interfaz de entrada , algo sencillo como datos contacto ,tales como nombres, Apellidos y dirección. (etc)
Se necesitará mapear dicha interfaz a esta otra , de una estructura similar.
En este gráfico verán las estructuras tanto la de origeng(Temp_Contact) como la de destino (Temp_Destino)
Caracteristicas Principales
Ahora te presentare las reglas de negocio que se deban de tener en cuenta para el proceso de mapeo.
Nro | Elemento Destino | Elemento Origen | Regla de negocio | |||
1 | Cliente | Datos | Se creara un cliente por cada elemento origen (nombre) ademas solo para persona mayor o igual de 23 años | |||
2 | Client Id | RefID | Extraer los 5 primeros digitos. | |||
3 | Correlativo | Generar un numero correlativo con el formato “ | ||||
4 | Fecha Proceso | Se pondra la fecha del dia | ||||
5 | Hora Proceso | Se pondra la hora del dia. | ||||
6 | Genero | Titulo | De acuerdo al titulo (Sr , Srta,Sra) se generara el codigo M,F | |||
7 | Nombre Completo | Apellido Paterno Apellido Materno Primer Nombre Segundo Nombre | Se concatenara los nombres con una separacion de una “,” entre los nombres y apellidos tener en consideraicon que no todos tienen segundo nombre. | |||
8 | FechaNacimiento | Edad | En base a la edad calcular la fecha de nacimiento | |||
9 | Direccion | Direccion | De acuerdo al segmento dirrecion | |||
10 | Direccion1 | Direccion Nro | Se concatenara a la direccion 1 de acuerdo al numero | |||
11 | Ciudad1 | Ciudad | Se concatenara a la ciudad 1 de acuerdo al numero | |||
12 | Direccion1 | Direccion Nro | Igual (7) | |||
13 | Ciudad1 | Ciudad | Igual (8) | |||
14 | Direccion3 | Direccion Nro | Igual (7) | |||
15 | Ciudad3 | Ciudad | Igual (8) |
Estas son las funciones propias de la herramienta
Primeramente una ves que se tiene las interfaces, simplemente se debe de identificar el elemento de destino, luego el elemento de origen y bastaría simplemente con arrastrar y soltar sobre el elemento indicado, otra manera es realizar doble click sobre el elemento de destino y doble click sobre el elemento de origen y enlazar ambos elementos. El mismo procedimiento es para las funciones y demas.
Caso resuelto
1 | Datos | Nombre | Se creara un cliente por cada elemento origen (nombre) ademas solo para persona mayor o igual de 23 años. |
De acuerdo a la primera regla se creará tantos clientes como segmentos (Datos) venieran y que tengan una edad mayor o igual a 23 años. Se van a utilizar dos funciones , greater (Categoría Aritmethics) de la cual recibirá dos parámetros en el cual se evaluará si el primer elemento es mayor que el segundo elemento , el resultado que emita sera de tipo bolean(trae or false) , el segundo parámetro es una constante (Categoria constant ) asi mismo se usará la función ifwithoutelse( el cual se recibirá parámetros boolean y procederá de acuerdo se indique en la parámetro de salida (el nodo Datos).
2 | Client Id | RefID | Extraer los 5 primeros digitos. |
La segunda regla de negocio solicta extraer los 5 primeros digitos del elemento de origen pues bien para esto se utilizar una funcion substring de la categoria(Text), para esto se tiene que configurar cuantos valores se van a extraer para esto das doble click sobre la funcion indicando la posicion de inicio y la cantidad de caracteres a extraer.
3 | Correlativo | Generar un numero correlativo con el formato “ |
Para esta regla se necesita un contador por cada elemento generado pues bien se puede utilizar uno propio (UDF) o utilizar la funcion counter , a este resultado tendremos que formatear con otra funcion el formatnumber (ambas de la categoria Arithmetic) y al igual que la funcion anterior se decide el formato que se va a tener , el contador se va a generar por cada instancia creada.
4 | Fecha Proceso | Se pondra la fecha del dia | |
5 | Hora Proceso | Se pondra la hora del dia. |
Para estos casos se necesita una funcion currendate (Categoria Date) de la cual se puede escoger el formato de destino sea fecha (yyyy/MM/dd) como hora (HH:mm:ss)
6 | Genero | Titulo | De acuerdo al titulo (Sr , Srta,Sra) se generara el codigo M,F |
Para este caso podriamos utlizar funciones booleanas y comparar caso x caso sin embargo podemos utilizar el Fix Value ( Categoria - Conversions) en el cual se agregan a la derecha los valores de entrada y a la derecha los valores de salida.
7 | Nombre Completo | Apellido Paterno Apellido Materno Primer Nombre Segundo Nombre | Se concatenara los nombres con una separacion de una “,” entre los nombres y apellidos tener en consideraicon que no todos tienen segundo nombre. |
Para esta regla vamos a utilizar la función contenate (Categoria Tex) ( primeramento vamos a concatenar tanto el Apellido paterno como Apellido Materno ) al usar dicha función debemos indicarle el valor de concatenacion en este caso sera un espacio en blanco , lo mismo seria para el caso del nombre con la salvedad que no en todos los registros vendrá el segundo elemento por lo cual eviara un valor valor nulo al mapear con la funcion concat simplemente saldra error , para evitar esto se puede usar otra funcion que envie un valor por defecto este seria el MapWithDefault (Categoria Node function), al finalizar ambos resultado debemos concatenar una vez más agregando para este caso un coma (“,”) como valor de concatenación.
8 | AnnioNacimiento | Edad | En base a la edad calcular la fecha de nacimiento |
Para esto simplemente se restara la fecha actual con la edad para hallar la fecha de nacimiento.e utilizaran dos funciomes currentdate(formato YYYY) y sub (Substract categoria Arithmetic) del cual restara un valor de otro
9 | Direccion | Direccion | De acuerdo al segmento dirrecion |
10 | Direccion1 | Direccion Nro | Se concatenara a la direccion 1 de acuerdo al numero |
11 | Ciudad1 | Ciudad | Se concatenara a la ciudad 1 de acuerdo al numero |
12 | Direccion1 | Direccion Nro | Igual (7) |
13 | Ciudad1 | Ciudad | Igual (8) |
14 | Direccion3 | Direccion Nro | Igual (7) |
15 | Ciudad3 | Ciudad | Igual (8) |
Testing
En el cual se puede crear ejemplos de prueba para realizar el resultado final de todos los segmentos
thanks for sharing from Sankar
ResponderEliminarYa no esta disponible el archivo XML lo podrían volver a compartir por favor
ResponderEliminar