Para el proceso de entrada y de salida BAPI, puede especificar que el proceso se maneje de forma síncrona (en que el flujo de mensajes y el adaptador deben estar disponibles durante el proceso) o de forma asíncrona (en que el adaptador no tiene que estar disponible cuando el flujo de mensajes realiza la llamada de la función). En el proceso síncrono, el flujo de mensajes espera una respuesta del adaptador. En el proceso asíncrono, la aplicación SAP no espera una respuesta y el adaptador o tiene que estar disponible cuando la aplicación SAP realiza la llamada a la función.
Para los diagramas que ilustran RFC síncrona y asíncrona, consulte Escenarios de entrada BAPI.
La interfaz BAPI tiene dos conjuntos de propiedades de especificación de activación (uno para la RFC asíncrona y uno para la RFC asíncrona), que se utilizan para configurar el proceso de entrada. Debe especificar valores para las propiedades con el Asistente de conexión de adaptador.
La secuencia de acciones de proceso resultantes de una solicitud de entrada son diferentes, en función de la selección que realice durante la configuración de la lista Tipo de llamada a función remota (RFC).
RFC síncronas
Si selecciona
RFC síncronas (el valor predeterminado) durante la configuración, se producen los pasos de proceso siguiente:
- El adaptador inicia escuchas de sucesos nuevos, que escuchan un suceso de función habilitado para RFC (que se especificó con la propiedad RFCProgramID) servidor SAP.
- El suceso de función habilitado para RFC se inserta en el adaptador mediante los escuchas de sucesos.
- El adaptador resuelve la operación y el nombre de objeto de negocio mediante el nombre de función habilitado para la RFC recibida.
- El adaptador envía el objeto de negocio a un punto final de un modo asíncrono.
- El adaptador recibe el objeto de negocio de respuesta del punto final.
- El adaptador correlaciona el objeto de negocio de respuesta con una función habilitada para RFC y lo devuelve en el servidor SAP.
El adaptador no escucha sucesos hasta que el punto final esté activo y disponible.
RFC transaccional asíncrona
Si selecciona RFC transaccional asíncrona/en cola durante la configuración, se producen los pasos de proceso siguientes:- Un cliente en el servidor SAP invoca una llamada a la función habilitada para RFC en el adaptador.
Nota: Para enviar las funciones habilitadas para RFC desde una cola en el servidor SAP, el programa cliente en el servidor SAP suministra los sucesos a una cola de salida definida por un usuario.
Un ID de transacción está asociado a la llamada.
El programa de llamada en el servidor SAP no espera para ver si la llamada al adaptador se ha realizado satisfactoriamente y no se devuelve ningún dato al programa de llamada.
- La llamada a la función RFC está situada en una lista de funciones que se van a suministrar.
Puede ver la lista de sucesos especificando el código de transacción SM58 en el servidor SAP
- La llamada a la función RFC se invoca en el adaptador. Si el adaptador no está disponible, la llamada permanece en la lista del servidor SAP y la llamada se repita a intervalos regulares hasta que el adaptador se pueda procesar.
Cuando el servidor servidor SAP suministra el suceso de la llamada, elimina la función de la lista.
- Si ha seleccionado Entrega de sucesos asegurada una sola vez, el adaptador establece el ID de transacción en la tabla persistente de sucesos.
De este modo se garantiza que el suceso no es procese más de una vez.
- El adaptador resuelve la operación y el nombre de objeto de negocio mediante el nombre de función habilitado para la RFC recibida.
- El adaptador envía el objeto de negocio a un punto final.
Si envía funciones desde una cola definida por el usuario en el servidor SAP, las funciones se suministran en el orden en el que existen en la cola. Puede ver el contenido de la cola especificando el código de transacción SMQ1 en el servidor SAP.
- Si la entrega es satisfactoria y si ha seleccionado Entrega de sucesos asegurada una sola vez, el adaptador elimina el ID de transacción de la tabla persistente de sucesos.
Si se produce un error cuando el adaptador intenta suministrar el objeto de negocio el ID de transacción permanece en la tabla de sucesos. Cuando se recibe otro suceso desde el
servidor SAP, se produce el siguiente proceso:
- El adaptador comprueba el ID de transacción.
- En el caso que un suceso coincida con un ID de la tabla, el adaptador procesa una vez el que ha fallado; no envía el suceso con el ID duplicado, garantizando así que el suceso se procese una sola vez.