Operaciones en TRFC en SAP
Las RFC transaccionales (TRFC) son RFC que se invocan como parte de una unidad lógica de trabajo (LUW). En un sistema SAP, un LUW contiene todos los pasos necesarios para completar una tarea empresarial o de programación. Un tRFC representa una forma de invocar una RFC; no es un artefacto de SAP único.
Puede usar el adaptador de Microsoft BizTalk para mySAP Business Suite tanto como un cliente tRFC como un servidor tRFC.
Como cliente tRFC, el adaptador permite que la aplicación invoque una única RFC en un LUW en el sistema SAP. Esto garantiza la ejecución única de la RFC. No implica un comportamiento transaccional.
Como servidor tRFC, el adaptador le permite recibir varias RFC dentro de un LUW. El adaptador admite llamadas tRFC entrantes en un contexto transaccional; se admite el comportamiento de confirmación y reversión.
Operaciones de tRFC
Un tRFC implica una forma de invocar una RFC; no es un artefacto de SAP independiente. Por lo tanto, cada RFC del sistema SAP (para el que el adaptador puede recuperar metadatos) también aparece como tRFC mediante el adaptador de SAP. Los tRFC aparecen por el nombre RFC como operaciones en el nodo de categoría de metadatos TRFC. (Puede examinar o buscar TRFC en el nodo TRFC cuando use el complemento Agregar referencia de servicio de adaptador o el complemento Consumir servicio de adaptador).
El adaptador de SAP admite lo siguiente en TRFC:
Parámetros import
Parámetros CHANGING (solo se admite el lado de entrada del parámetro CHANGING)
Nota
Los tRFC se ejecutan de forma asincrónica, por lo que no se devuelven valores de salida (parámetros EXPORT o CHANGING) para ellos.
El adaptador muestra un parámetro GUID para las operaciones de tRFC. El adaptador asigna este GUID al identificador de transacción (TID) de SAP asociado al tRFC. Puede usar este parámetro GUID para:
Confirme el tRFC en el sistema SAP en las llamadas de cliente tRFC. Para ello, invoque la operación RfcConfirmTransId. Se trata de una operación especial expuesta por el adaptador para confirmar un TID en el sistema SAP.
Obtenga el TID de SAP real que se usa para un tRFC del adaptador en escenarios de servidor tRFC y de cliente tRFC. Para ello, invoque el método de utilidad de SAP ConvertGuidToTid.
Para obtener más información sobre estas operaciones, consulte Operaciones especiales. Para obtener más información sobre las estructuras de mensajes y las acciones SOAP usadas para tRFC por el adaptador, vea Esquemas de mensajes para las operaciones tRFC.
Invocar RFC transaccionales en un sistema SAP
Normalmente, los TRFC se usan para ejecutar una o varias llamadas RFC dentro de una sola LUW; Sin embargo, debido a limitaciones en el SDK de RFC de SAP, el adaptador de SAP solo admite un único tRFC por LUW. Por este motivo, el adaptador crea un LUW (SAP TID) para cada tRFC. Para estos clientes, SAP define un LUW como un mecanismo para garantizar la ejecución "única" de la RFC y no implica transacciones basadas en confirmaciones y reversión.
En los pasos siguientes se resumen las tareas que se realizan en una llamada de cliente RFC mediante el adaptador de SAP. El cliente del adaptador realiza algunos de estos pasos y el adaptador realiza algunos.
El cliente del adaptador envía un mensaje de solicitud para la operación tRFC. El cliente del adaptador puede proporcionar opcionalmente un GUID en este mensaje.
El adaptador de SAP recibe el mensaje de solicitud y usa el SDK de RFC para obtener un identificador de transacción (TID) del sistema SAP. Si el mensaje de solicitud contiene un GUID, el adaptador asigna este GUID al TID de SAP; de lo contrario, el adaptador crea un nuevo GUID y lo asigna al TID de SAP.
El adaptador usa el TID para realizar la llamada tRFC al servidor SAP. El estado del TID se marca como FINISHED en el sistema SAP.
El adaptador devuelve el GUID (que se asigna al TID) al cliente del adaptador en el mensaje de respuesta.
El cliente del adaptador invoca la operación RfcConfirmTransID en el adaptador con el GUID devuelto en el paso anterior.
El adaptador usa el GUID en el mensaje de solicitud RfcConfirmTransID para identificar el TID de SAP y confirma la llamada tRFC en el sistema SAP. Esto hace que el servidor SAP elimine la entrada DE TID de su base de datos.
Nota
Las llamadas de cliente tRFC no devuelven parámetros EXPORT ni CHANGING.
Para más información acerca de:
Invocación de un tRFC mediante BizTalk Server, consulte Invocación de TRFC en SAP mediante BizTalk Server.
Invocación de un tRFC mediante el modelo de servicio WCF, consulte Invocación de TRFC en SAP mediante el modelo de servicio WCF.
Estructuras de mensajes y acción SOAP para invocar un tRFC, consulte Esquemas de mensajes para las operaciones de tRFC.
Recepción de llamadas RFC transaccionales entrantes desde un sistema SAP
Puede usar el adaptador como servidor tRFC para recibir TRFC de SAP. Como servidor tRFC, cuando el adaptador recibe un tRFC, invoca la operación tRFC correspondiente en la aplicación. El adaptador admite la siguiente funcionalidad cuando actúa como un servidor tRFC:
Una LUW (identificada por un TID de SAP) puede contener varios TRFC (llamadas RFC).
El adaptador crea una transacción confirmable para cada TID de SAP. El código de la aplicación puede inscribirse en esta transacción.
Se admiten la confirmación y reversión.
En el resto de esta sección se proporciona información general sobre el uso del adaptador como servidor tRFC. Para obtener información más específica sobre:
Recibir llamadas tRFC entrantes mediante BizTalk Server, consulte Recepción de llamadas tRFC entrantes desde SAP mediante BizTalk Server.
Recibir llamadas tRFC entrantes mediante el modelo de servicio WCF, consulte Recibir llamadas tRFC entrantes en SAP mediante el modelo de servicio WCF.
La base de datos DE TID
Cuando actúa como un servidor tRFC, el adaptador usa una base de datos de SQL Server (la base de datos TID) para administrar los identificadores de transacción que recibe del sistema SAP. Por ejemplo, usa la base de datos TID para ayudar a administrar las llamadas desde el sistema SAP para confirmar, revertir y confirmar el TID. El adaptador también almacena el GUID que crea y asocia a cada TID de SAP en la base de datos DE TID.
Requisitos previos
Para que el adaptador funcione como un servidor tRFC, debe asegurarse de que se cumple lo siguiente:
La RFC debe declararse en el sistema SAP. Esto es para que el adaptador pueda recuperar metadatos que describen la RFC del sistema SAP. La RFC se implementa realmente en la aplicación.
El adaptador debe registrarse con un destino RFC en una puerta de enlace de SAP. El registro se basa en un nombre lógico denominado identificador de programa. Proporcione parámetros en el URI de conexión para especificar el identificador de programa, la puerta de enlace de SAP y el servidor sap para este registro.
La base de datos DE TID debe crearse en SQL Server. Para ello, debe ejecutar un script SQL instalado por el programa de instalación. El script SQL se instala normalmente en la <unidad> de instalación:\Archivos de programa\Microsoft BizTalk Adapter Pack. Para obtener más información, consulte Instalación del paquete de adaptadores de BizTalk.
La propiedad de enlace TidDatabaseConnectionString debe establecerse en la base de datos SQL cadena de conexión para la base de datos DE TID. Para obtener más información sobre la propiedad de enlace TidDatabaseConnectionString , vea Leer sobre el adaptador de BizTalk para las propiedades de enlace de mySAP Business Suite.
Nota
Establecer la propiedad de enlace TidDatabaseConnectionString configura el adaptador para que actúe como un servidor tRFC en lugar de como un servidor RFC. Si se establece la propiedad de enlace TidDatabaseConnectionString y se especifica un destino RFC en el URI de conexión, el adaptador actúa como un servidor tRFC para las llamadas entrantes desde el destino RFC. Si no se establece esta propiedad de enlace, el adaptador actúa como un servidor RFC.
Cómo procesa los TRF de entrada del adaptador
En los pasos siguientes se resumen las tareas que realiza la llamada de cliente RFC mediante el adaptador de SAP. El cliente del adaptador realiza algunos de estos pasos y el adaptador realiza algunos.
El sistema SAP llama al adaptador para consultar si ya se ha usado un TID. El adaptador devuelve la respuesta adecuada al sistema SAP. Si el TID es nuevo, el adaptador crea una transacción confirmable. Esta transacción se usa para conservar el TID en la base de datos DE TID de forma transaccional cuando el programa SAP realiza una confirmación (COMMIT WORK). También se expone al código de aplicación que controla los TRFC entrantes. Además, el adaptador crea un GUID que asocia con el TID de SAP.
El sistema SAP envía una o varias RFC transaccionales al adaptador. Para cada tRFC, el adaptador invoca la operación tRFC adecuada en la aplicación. El adaptador fluye la transacción creada en el paso 1 a la aplicación para cada operación. El adaptador pasa el GUID creado en el paso 1 del mensaje de solicitud para la operación.
El sistema SAP confirma la LUW (COMMIT WORK). El adaptador intenta confirmar la transacción asociada con el TID de SAP (creado en el paso 1).
Si la transacción se anuló (por la aplicación) durante cualquiera de las llamadas del paso 2, se produce un error cuando el adaptador intenta confirmar la transacción. El error se devuelve a SAP. Vaya al paso 4.
Si la confirmación se realiza correctamente, el TID se encuentra ahora en la base de datos DE TID. Vaya al paso 5.
Si se produjo un error en el paso 3 o si SAP revierte el LUW (RESTART_OF_BACKGROUNDTASK) en lugar de confirmarlo, el adaptador revierte la transacción. En este caso, el TID nunca se conserva en la base de datos de TID.
El sistema SAP confirma el TID. El adaptador quita el TID de la base de datos DE TID (suponiendo que el paso 3 se completó correctamente y el TID existe en la base de datos de TID.
Nota
Si se produce un error al intentar conectarse a la base de datos DE TID durante una operación del servidor tRFC, se devuelve un código de error que indica que el adaptador de SAP no procesó la llamada entrante desde SAP.
Recepción de IDOC como un servidor tRFC
El adaptador de SAP se usa como un servidor RFC o un servidor tRFC para recibir IDOC del sistema SAP. En cualquier caso, debe establecer la propiedad de enlace ReceiveIdocFormat para especificar el formato en el que el adaptador debe emitir los datos de IDOC a la aplicación. Para obtener más información sobre cómo recibir IDOC con el adaptador, consulte Operaciones en IDOC en SAP. Para obtener más información sobre las propiedades de enlace del adaptador de SAP, vea Leer sobre el adaptador de BizTalk para las propiedades de enlace de mySAP Business Suite.
Operaciones tRFC especiales
El adaptador de SAP también puede realizar ciertas operaciones tRFC especiales en el sistema SAP. Una de estas operaciones es RfcConfirmTransID.
RfcConfirmTransID. Invoque esta operación en el adaptador de SAP para confirmar las llamadas tRFC realizadas al servidor SAP. RfcConfirmTransID puede ser necesario en escenarios en los que el adaptador se usa para enviar IDOC al servidor SAP como tRFC. La operación está disponible en el nodo TRFC cuando se usa el complemento Agregar referencia del servicio adaptador y consumir el complemento de servicio adaptador.
Para obtener más información sobre la estructura del mensaje y la acción SOAP para la operación RfcConfirmTransID, vea Esquemas de mensaje para las operaciones tRFC.