Quantcast
Channel: SAP archivos - Blog de SAP: Actualidad SAP, Business Intelligence, SAP HCM, Abap...
Viewing all articles
Browse latest Browse all 598

Escenario de integración de SAP PI: Proxy a JDBC

$
0
0

En este artículo vamos a hablar de un tipo de interfaces que se pueden construir en PI para grabar información directamente en una base de datos externa y de cómo usarlas para enviar expresiones complejas y parametrizables a través del adaptador.

Características

Para la integración de datos desde SAP a una base de datos (Oracle o SQL Server), se puede implementar una llamada a una clase proxy que invocará a un escenario síncrono de proxy a JDBC. Se mapearán en SAP PI los parámetros obtenidos de SAP en un mensaje válido para la base de datos de destino.

Las diferentes operaciones que vamos a aplicar en las tablas de destino se deben especificar en el mapeo de mensaje en SAP PI.

Los mensajes de este escenario síncrono deben tener unos campos concretos para poder especificar los datos y el tipo de operación a realizar sobre la base de datos.

Estructura de los mensajes

La interfaz consta de cuatro tipos de dato y sus correspondientes tipos de mensaje, con las estructuras que vemos a continuación, para gestionar la solicitud y respuesta.

El Trigger debe tener los campos que se van a recibir vía proxy para enviar información a la base de datos.

Es importante que el mensaje de la query tenga la siguiente estructura con los niveles TABLENAME, ACTION, TABLE, ACCESS y KEY (para los valores que se quieran pasar a la query)

Los mensajes de respuesta llevarán el campo sql_dml_count para contar el número de líneas de base de datos que se han seleccionado o tratado.

MT_QueryRequest_response | MT_Target

  • STATEMENT
    • Sql_dml_count

Mapeo de los mensajes

El atributo action permite usar los valores INSERT, UPDATE, UPDATE_INSERT, DELETE o SELECT para interactuar con la base de datos. Sin embargo, si queremos construir sentencias parametrizables o complejas, se deberán usar las expresiones SQL_QUERY o SQL_DML para transferir las expresiones directamente mediante el adaptador. Esto permite generar consultas complejas y parametrizables

Los campos con los valores para la consulta, se pasan mediante el campo access en forma de pseudo columnas, usando $.

Ejemplo de mapeo del mensaje:

  • action = SQL_QUERY | SQL_DML permite construir sentencias SQL más complejas y parametrizables
    • SQL_QUERY permite hacer SELECT
    • SQL_DML permite hacer queries más complicadas (UPDATE, INSERT, DELETE)
  • access:
    • SELECT * FROM table WHERE field3 = ‘$field3$’
    • UPDATE tabla SET field1 = ‘$field1$’, field2 = ‘$field2$’ WHERE field3 = ‘$field3$’
    • INSERT INTO tabla VALUES (‘$field1$’, ‘$field2$’, ‘$field3$’)
    • DELETE FROM table WHERE field3 = ‘$field3$’

Para un escenario de este tipo, harán falta dos interfaces síncronas.

Interfaces

  • Una interfaz, outbound, que tiene el mensaje MT_Trigger con los elementos de datos de entrada y el MT_Target para mapear la respuesta obtenida de la base de datos.
  • La segunda interfaz, inbound, es la que pasa los datos a la base de datos mediante una query y devuelve la respuesta de esta para mapearla en la vuelta.

Una vez definidos todos los objetos en el ESR, habrá que implementar la configuración de los canales y las interfaces en el Integration Directory y usar la SPROXY para generar el proxy que llamaremos desde SAP y pasarle la información deseada a la base de datos.

Puedes dejarnos tus preguntas en comentarios o ponerte en contacto con nuestro equipo de User Experience & Integración.

La entrada Escenario de integración de SAP PI: Proxy a JDBC se publicó primero en Blog de SAP: Actualidad SAP, Business Intelligence, SAP HCM, Abap....


Viewing all articles
Browse latest Browse all 598

Trending Articles