Proceso saliente para la interfaz BAPI
En el proceso de salida de BAPI, un flujo de mensajes envía una solicitud al Servidor SAP. Para las unidades BAPI de trabajo y conjuntos de resultados BAPI, el proceso se maneja de forma síncrona (el flujo de mensajes espera una respuesta de Servidor SAP). Para BAPI simples, puede solicitar que el proceso se maneje de forma síncrona o asíncrona (el flujo de mensajes no espera una respuesta de Servidor SAP).
Para unidades BAPI de conjuntos de resultados de BAPI y trabajo, el proceso se maneja como se describe en RFC síncrono. Para las BAPI simples, debe efectuar una selección, durante la configuración, sobre el tipo de llamada RFC remota que desea realizar.
RFC síncronas
RFC transaccional asíncrona
- El adaptador recibe una solicitud de un flujo de mensajes en forma de objeto de negocio BAPI.
- El adaptador compruebe el objeto de negocio para ver si el atributo del ID de transacción SAP tiene un valor asignado. (El ID de transacción SAP (TID) es un campo del mensaje.)
- Si el atributo de ID de transacción SAP tiene un valor, el adaptador utiliza ese valor durante el proceso.
- Si el atributo no tiene un valor, el adaptador realiza una llamada al Servidor SAP y obtiene un ID de transacción del Servidor SAP.
- El adaptador convierte el objeto de negocio BAPI a una llamada a función SAP JCo.
- El adaptador utiliza el protocolo de llamada a función remota transaccional (tRFC) para realizar la llamada al Servidor SAP.
El adaptador no espera una respuesta del Servidor SAP.
- Después de pasar los datos de la función a la aplicación SAP, se devuelve el control al adaptador.
- Si la llamada a Servidor SAP falla, Servidor SAP genera una ABAPException.
- Si la llamada a Servidor SAP tiene éxito pero contiene datos no válidos, no se devuelve ninguna excepción al adaptador. Por ejemplo, si el adaptador envía una solicitud que contiene un número de cliente que no es válido, el adaptador no responde con una excepción indicando que no existe un cliente así.
- El nodo de solicitud crea un árbol de mensajes que contiene el ID de transacción como uno de los campos.
RFC en cola asíncrona
- El adaptador recibe una solicitud de un flujo de mensajes en forma de objeto de negocio BAPI.
- El adaptador compruebe el objeto de negocio para ver si el atributo del ID de transacción SAP tiene un valor asignado. (El ID de transacción SAP (TID) es un campo del mensaje.)
- Si el atributo de ID de transacción SAP tiene un valor, el adaptador utiliza ese valor durante el proceso.
- Si el atributo no tiene un valor, el adaptador realiza una llamada al Servidor SAP y obtiene un ID de transacción del Servidor SAP.
- El adaptador convierte el objeto de negocio BAPI a una llamada a función SAP JCo.
- El adaptador utiliza el protocolo tRFC para realizar la llamada a la cola especificada en Servidor SAP.
El adaptador no espera una respuesta del Servidor SAP.
- Después de pasar los datos de la función a la aplicación SAP, se devuelve el control al adaptador.
- Si la llamada a Servidor SAP falla, Servidor SAP genera una ABAPException.
- Si la llamada a Servidor SAP tiene éxito pero contiene datos no válidos, no se devuelve ninguna excepción al adaptador. Por ejemplo, si el adaptador envía una solicitud que contiene un número de cliente que no es válido, el adaptador no responde con una excepción indicando que no existe un cliente así.
- El nodo de solicitud crea un árbol de mensajes que contiene el ID de transacción como uno de los campos.