Entre las herramientas que nos ofrece el editor gráfico de SAP PI se encuentra la conversión de unos valores a otros, que se puede realizar de diferentes formas, dependiendo de dónde interesa hacer el mantenimiento de las tablas de mapeo.
A todas ellas se accede a través de la opción Conversions, que nos propone las siguientes funciones para trabajar.
Fix Values | Value Mapping | Lookups |
El mantenimiento de las tablas se realiza desde el ES Repository | El mantenimiento de las tablas de mapeo se realiza en el Integration Directory | El mantenimiento de las tablas de mapeo se realiza en el sistema back-end |
1. FixValues
Se trata de una función estándar dentro de grupo de funciones de Conversion. Cuando usamos la función FixValues en el mapeo gráfico de un mensaje, se definen parejas de valores para mapear claves origen a claves destino.
Pros:
- Se define y se mantiene dentro del propio Repository (ESR).
- Es sencilla.
- Tiene buen rendimiento.
Contras:
- No sirve para importar grandes cantidades de valores.
- Las parejas de valores definidas solo pueden ser usadas dentro del mapeo de mensaje en el que se han definido.
Es importante definir una clave o valor por defecto en caso de que no se encuentre el valor recibido entre los que se tratan o, en su defecto, generar una excepción.
2. Value Mapping
En cambio, se puede usar la función Value Mapping (Conversions -> Value Mapping) para definir y mantener, de forma externa, múltiples valores de claves. Se especifican valores clave para acceder a los valores de conversión, que se mantienen en el Integration Directory, donde pertenecen al contexto http://sap.com/xi/XI.
- Integration Directory
Primero, se definen los valores Agency and Scheme para los valores origen y destino a mapear. En este caso, varios conceptos se mapearán al mismo número de cuenta.
Dentro del escenario de comunicación de nuestra interfaz, crearemos tantos Value Mapping Groups como claves de salida tengamos.
Para el ejemplo, vamos a mapear los conceptos de entrada a dos cuentas diferentes.
Los conceptos del 1 al 3 se mapearán a la cuenta 00000001, los del 4 al 6 a la cuenta 00000002. Una vez grabado y activado, volvemos al Repository para finalizar el mapeo.
Elegimos la función de conversión Value Mapping y le indicamos los valores de origen y destino que hemos definido anteriormente en el Directory.
También nos da la opción de usar un valor por defecto si no se encuentra entre los valores mapeados o lanzar una excepción. Hemos elegido la opción de mapear a una nueva cuenta, la 0000003, los conceptos no incluidos en el mapeo.
3. Lookups
RFC Lookup o JDBCLookup contienen métodos de acceso a los sistemas de aplicación utilizando los adaptadores correspondientes.
- Ejemplo para RFC
Primero, hay que definir un canal de comunicación síncrono con el tipo de adaptador que queremos usar. Pueden ser RFC y JDBC para las funciones predefinidas en el mapeo gráfico o usar otros adaptadores de SAP, pero no hay funciones específicas para estos y se requieren UDFs para realizar las lookups.
Después, hay que crear un mapeo de mensaje con los datos que se pasarán como input a la RFC. Para esto, es necesario haber creado la RFC y haberla importado previamente, de manera que la tengamos dentro de la categoría Imported Objects.
Después de definir los parámentros import y export de la RFC, especificamos el canal de comunicación definido en el Integration Directory en la sección Parameters.
Ventajas:
- Mantenimiento en el sistema backend.
- Permite usar valores de diferentes mapeos.
- Da soporte gráfico a RFCs y JDBC.
Contras:
- Tienen peor rendimiento.
- Son complicadas de programar cuando no se limita a las funciones estándar (RFC y JDBC) proporcionadas por el entorno de mapeo gráfico.
Por último, recordar que, para otro tipo de adaptadores, será necesario crear funciones definidas por el usuario (UDFs) para hacer llamadas que permitan la conversión de valores, pero este tema queda fuera del ámbito del artículo.
Esperamos que te este artículo te haya sido de ayuda. Si tienes cualquier duda, puedes ponerte en contacto con nuestro área de user experiece & integración, o puedes dejarnos tu pregunta en comentarios.