Debe establecer la propiedad Modalidad de transacción de forma adecuada en un nodo SAPRequest cuando esté realizando un proceso utilizando flujos de mensajes independientes.
Este caso de ejemplo es uno de los dos ejemplos que ilustran los conceptos que se describen en Confirmaciones de transacción BAPI de SAP; consulte también Caso de ejemplo 1: proceso de business partner y de relaciones en un solo flujo.
BAPI_SALESORDER_CREATEFROMDAT2
BAPI_SALESORDER_GETSTATUS
Por ejemplo, un usuario consulta un pedido tras realizar una adquisición utilizando una aplicación basada en la web.
El resultado de la consulta está estrechamente vinculado al comportamiento asíncrono o síncrono de los pasos de creación de pedidos que ha llevado a cabo el servidor SAP externo. En el ejemplo asíncrono siguiente (el comportamiento predeterminado), la consulta podría falla y el usuario recibiría un acuso de recibo negativo para el pedido que se ha creado.
Flujo de mensajes Crear pedido de BAPI | ||||
---|---|---|---|---|
A1. | Una aplicación desencadena el flujo de mensajes transaccional que crea un pedido. | |||
A2. | El nodo SAPRequest somete una creación de pedido y devuelve el número de registro del pedido. La confirmación se produce cuando el flujo de mensajes se completa porque el nodo participa en una transacción de nivel de flujo de mensajes. | |||
A3. | El nodo MQReply coloca un mensaje MQ en la cola de salida pendiente de la confirmación transaccional. | |||
A4. | El flujo de mensajes se completa y el intermediario comienza a confirmar todos los recursos implicados en ese flujo, incluido SAP y la llamada al nodo MQReply. El número de pedido está disponible en la aplicación del usuario. | |||
Los dos procesos siguientes tienen lugar simultáneamente y se retan en una carrera para ver cuál termina antes. | ||||
Proceso de confirmación de SAP de forma asíncrona | Flujo de mensajes Obtención de estado del pedido de BAPI | |||
B1. | Comienza la confirmación de SAP. | C1. | Se realiza una petición sobre la consulta de estado de un pedido. | |
B2. | Finaliza la confirmación de SAP. | C2. | El nodo SAPRequest solicita el pedido. |
En el ejemplo síncrono siguiente, la consulta resulta satisfactoria y el usuario recibe un acuse de recibo positivo para el pedido que se ha creado.
Flujo de mensajes Crear pedido de BAPI | |
---|---|
1. | Una aplicación desencadena el flujo de mensajes transaccional que crea el pedido. |
2. | El nodo SAPRequest somete una creación de pedido y devuelve el número de registro del pedido. La confirmación se produce cuando el flujo de mensajes se completa porque el nodo participa en una transacción de nivel de flujo de mensajes. |
3. | El nodo MQReply coloca un mensaje MQ en la cola de salida pendiente de la confirmación transaccional. |
4. | El flujo de mensajes se completa y el intermediario comienza a confirmar todos los recursos implicados en ese flujo, incluido SAP. |
Proceso de confirmación de SAP de forma síncrona | |
5. | Comienza la confirmación de SAP. |
6. | Finaliza la confirmación de SAP. |
7. | El adaptador toma de nuevo el control del intermediario. |
8. | Se confirma la llamada al nodo MQReply, por lo tanto, el número de pedido está disponible para la aplicación del usuario. |
Flujo de mensajes Obtención de estado del pedido de BAPI | |
9. | Se realiza una petición sobre la consulta de estado de un pedido. |
10. | El nodo SAPRequest solicita el pedido. |
SAP ha finalizado la confirmación del pedido; por lo tanto, la consulta del pedido es satisfactoria.