Para definir un mapeo de valores,
hay que ir a la opción Tool à
Value Mapping del Integration Builder (Integration Directory).
A continuación indicaremos de qué
manera deseamos insertar las relaciones. Existen 2 modos principales de definirlos
pero, al final, el resultado siempre es el mismo. En este caso, escogemos el
mapeo por agencias e introducimos el nombre de los agentes implicados y de los
esquemas que vamos a definir o, si ya están definidos y vamos a introducir más
relaciones, los seleccionamos mediante el match code.
En la siguiente pantalla es donde
se definen las distintas relaciones del mismo esquema. Cada relación tiene
asociado un ID de grupo que sirve para identificarla, se recomienda que el ID
sea único. Como se puede apreciar, por cada relación definida se crea un objeto
del tipo Value Mapping Gruop.
Una vez definidos los grupos
necesarios, podremos realizar mapeos de
valor en el ESB. Hay que tener en cuenta que en este caso los mapeos se
realizan en tiempo de ejecución (Integration Directory), es por este motivo por
el que se pide que se introduzca el contexto del mapeo que, para este caso, es http://sap.com/xi/XI.
Pero ¿qué pasa cuando los valores
a introducir son muchos? En este caso no es factible meterlos uno a uno a mano.
Es por ello que SAP pone a disposición unos servicios que permiten actualizar
los grupos de mapeo desde un sistema externo donde se encuentren las tablas.
Para ello basta registrar e implementar los proxies correspondientes (según se
desee realizar la actualización de manera síncrona o asíncrona) en el sistema
donde estén los datos almacenados. El registro de servicio se realiza mediante
el navegador, introduciendo la dirección que aplique:
- http://server
:port /ProxyServer/register?ns=http://sap.com/xi/XI/System&interface=ValueMappingReplication&bean=localejbs/sap.com/com.sap.xi.services/ValueMappingApplication&method=valueMappingReplication (escenario de réplica asíncrono) - http://
server:port /ProxyServer/register?ns=http://sap.com/xi/XI/System&interface=ValueMappingReplicationSynchronous&bean=localejbs/sap.com/com.sap.xi.services/ValueMappingApplicationSynchronous&method=valueMappingReplicationSynchronous (escenario de réplica síncrono)
Interface http://sap.com/xi/XI/System#ValueMappingReplication registered with value localejbs/sap.com/com.sap.xi.services/ValueMappingApplication:valueMappingReplication
Generamos el proxy en el sistema ECC e implementamos el programa que obtiene los valores de la tabla y llama al proxy con los valores correspondientes. En este blog se muestra un ejemplo: http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/1301
NOTA: hay que tener en cuenta que, para la recepción es necesario definir un proxy en PI con el prefijo /MessagingSystem/receive/JPR/XI. Para más información mirar el apartado de actividades de Value Mapping Replication for Mass Data
Problemas encontrados
Error de autorización
Al enviar la información puede aparecer un problema de autorización.
Esto se puede dar por no haber puesto la opción "Use Logon Data for Non-SAP Sytem" en el proxy receptor. En caso contrario, puede deberse a faltas de roles / perfiles:
NOTA: hay que tener en cuenta que, para la recepción es necesario definir un proxy en PI con el prefijo /MessagingSystem/receive/JPR/XI. Para más información mirar el apartado de actividades de Value Mapping Replication for Mass Data
Problemas encontrados
Error de autorización
Al enviar la información puede aparecer un problema de autorización.
Esto se puede dar por no haber puesto la opción "Use Logon Data for Non-SAP Sytem" en el proxy receptor. En caso contrario, puede deberse a faltas de roles / perfiles:
Error de aplicación (JAVA_PROXY.APPLICATION_FAULT)
Este error puede deberse a que se haya registrado mal el proxy Java de entrada. En mi caso este error se daba a que la dirección de registro que aparecía en la guía Value Mapping Replication for Mass Data in PI 7.0 or PI 7.1:
- http://server:port/ProxyServer/register?ns=http://sap.com/xi/XI/System&interface=ValueMappingReplicationOutSynchronous&bean=localejbs/sap.com/com.sap.xi.services/ValueMappingApplicationSynchronous&method=ValueMappingReplicationOutSynchronous
- http://server:port/ProxyServer/register?ns=http://sap.com/xi/XI/System&interface=ValueMappingReplicationSynchronous&bean=localejbs/sap.com/com.sap.xi.services/ValueMappingApplicationSynchronous&method=valueMappingReplicationSynchronous
Al registrar la URI correcta (la del portal de SAP), la intefaz funcionó como se esperaba.
Referencias
- XI/PI: Value Mapping Using Graphical Editor
- Value Mapping Table
- Value Mapping Replication for Mass Data
- SAP NetWeaver Process Integration Best Practices: Design
- Comparing Performance of Mapping Programs
- SAP PI Tutorials - Value Mapping Replication Scenario
- Ruslim Chang - Value Mapping Replication
- Value Mapping Replication for Mass Data in PI 7.0 or PI 7.1
- How to Perform Value Mapping – A Walkthrough
No hay comentarios:
Publicar un comentario