Invocación de RFC en SAP mediante BizTalk Server
El adaptador de SAP muestra las RFC expuestas por un sistema SAP como operaciones que un cliente de adaptador puede invocar. En esta sección se proporcionan instrucciones sobre cómo invocar una RFC en un sistema SAP mediante el adaptador de SAP con Microsoft BizTalk Server. Para obtener más información sobre cómo el adaptador de SAP admite la invocación de una RFC en un sistema SAP, consulte Operaciones en RFC en SAP. Para obtener más información sobre la estructura del mensaje SOAP para invocar una RFC, vea Esquemas de mensajes para operaciones RFC.
¿Cómo invocar una RFC en un sistema SAP?
La realización de una operación en un sistema SAP mediante el adaptador de SAP con BizTalk Server implica tareas de procedimientos descritas en Bloques de creación para crear aplicaciones SAP. Para invocar un RFC en un sistema SAP, estas tareas son:
Cree un proyecto de BizTalk y genere el esquema para la RFC que desea invocar en el sistema SAP.
Cree mensajes en el proyecto de BizTalk para enviar y recibir mensajes desde el sistema SAP.
Cree una orquestación para invocar una RFC en el sistema SAP.
Compile e implemente el proyecto de BizTalk.
Configure la aplicación de BizTalk mediante la creación de puertos físicos de envío y recepción.
Inicie la aplicación de BizTalk.
En este tema se proporcionan instrucciones para realizar estas tareas.
Generar esquema
En este tema, para demostrar cómo invocar una RFC en un sistema SAP, se genera el esquema para RFC_CUSTOMER_GET. Consulte Examinar, buscar y obtener metadatos para operaciones RFC en SAP para obtener más información sobre cómo generar el esquema.
Definición de mensajes y tipos de mensajes
El esquema que generó anteriormente describe los "tipos" necesarios para los mensajes de la orquestación. Normalmente, un mensaje es una variable, el tipo para el que se define mediante el esquema correspondiente. Debe vincular el esquema que generó a los mensajes desde la vista orquestación del proyecto de BizTalk.
Para este tema, debe crear dos mensajes: uno para enviar una solicitud al sistema SAP y al otro para recibir una respuesta.
Realice los pasos siguientes para crear mensajes y vincularlos al esquema.
Para crear mensajes y vincular al esquema
Abra la vista de orquestación del proyecto de BizTalk, si aún no está abierto. Haga clic en Ver, seleccione Otras ventanas y haga clic en Vista de orquestación.
En la vista Orquestación, haga clic con el botón derecho en Mensajes y, a continuación, haga clic en Nuevo mensaje.
Haga clic con el botón derecho en el mensaje recién creado y seleccione Ventana Propiedades.
En el panel Propiedades de Message_1, haga lo siguiente.
Use Para hacer esto Identificador Escriba Solicitud. Tipo de mensaje En la lista desplegable, expanda Esquemas y seleccione InvokeRFC.SAPBindingSchema.RFC_CUSTOMER_GET, donde InvokeRFC es el nombre del proyecto de BizTalk. SAPBindingSchema es el esquema generado para RFC_CUSTOMER_GET. Repita el paso anterior para crear un nuevo mensaje. En el panel Propiedades del nuevo mensaje, haga lo siguiente.
Use Para hacer esto Identificador Respuesta de tipo. Tipo de mensaje En la lista desplegable, expanda Esquemas y seleccione InvokeRFC.SAPBindingSchema.RFC_CUSTOMER_GETResponse.
Configuración de la orquestación
Debe crear una orquestación de BizTalk para usar BizTalk Server para invocar RFC en el sistema SAP. En esta orquestación, se quita un mensaje de solicitud en una ubicación de recepción definida. El adaptador de SAP consume el mensaje y lo pasa al sistema SAP. La respuesta del sistema SAP se guarda en otra ubicación. Una orquestación típica para invocar RFC en un sistema SAP contendrá:
Enviar y recibir formas para enviar mensajes al sistema SAP y recibir respuestas.
Un puerto de recepción unidireccional para recibir mensajes de solicitud para enviarlos al sistema SAP.
Puerto de envío bidireccional para enviar mensajes de solicitud al sistema SAP y recibir respuestas.
Un puerto de envío unidireccional para enviar las respuestas del sistema SAP a una carpeta.
Una orquestación de ejemplo es similar a la siguiente:
Agregar formas de mensaje
Asegúrese de especificar las siguientes propiedades para cada una de las formas de mensaje. Los nombres que aparecen en la columna Shape son los nombres de las formas de mensaje que se muestran en la orquestación anterior.
Forma | Tipo de forma | Propiedades |
---|---|---|
Receive_Request | Recepción | - Establecer nombreen Receive_Request - Establecer Activar enTrue |
Send_LOB | Envío | - Establecer nombreen Send_LOB |
Receive_LOB | Recepción | - Establecer nombreen Receive_LOB - Establecer Activar en False |
Send_Response | Envío | - Establecer nombreen Send_Response |
Adición de puertos
Especifique las siguientes propiedades para cada uno de los puertos lógicos. Los nombres enumerados en la columna Puerto son los nombres de los puertos que se muestran en la orquestación.
Port | Propiedades |
---|---|
ReceiveMsgPort | - Establecer identificador en ReceiveMsgPort - Establecer tipo en ReceiveMsgPortType - Establecer el patrón de comunicación en unidireccional - Establecer la dirección de comunicación para recibir |
SendToLOBPort | - Establecer identificador en SendToLOBPort - Establecer tipo en SendToLOBPortType - Establecer el patrón de comunicación en Solicitud-respuesta - Establecer la dirección de comunicación en enviar y recibir |
SendMsgPort | - Establecer identificador en SendMsgPort - Establecer tipo en SendMsgPortType - Establecer el patrón de comunicación en unidireccional - Establecer la dirección de comunicación en Enviar |
Especificar mensajes para formas de acción y conectarse a puertos
En la tabla siguiente se especifican las propiedades y sus valores que se van a establecer para especificar mensajes para las formas de acción y vincularlos a los puertos. Los nombres enumerados en la columna Shape son los nombres de las formas de mensaje que se muestran en la orquestación anterior.
Forma | Propiedades |
---|---|
Receive_Request | - Establecer mensaje en solicitud - Establecer operaciónen ReceiveMsgPort.Operation_1.Request |
Send_LOB | - Establecer mensaje en solicitud - Establecer operación en SendToLOBPort.Operation_1.Request |
Receive_LOB | - Establecer mensaje en respuesta - Establecer la operaciónen SendToLOBPort.Operation_1.Response |
Send_Response | - Establecer mensaje en respuesta - Establecer operaciónen SendMsgPort.Operation_1.Request |
Después de especificar estas propiedades, se conectan las formas y los puertos del mensaje y se completa la orquestación.
Ahora debe compilar la solución de BizTalk e implementarla en un BizTalk Server. Para obtener más información, vea Compilar y ejecutar orquestaciones.
Configuración de la aplicación de BizTalk
Después de implementar el proyecto de BizTalk, la orquestación que creó anteriormente aparece en el panel Orquestaciones de la consola de administración de BizTalk Server. Debe usar la consola de administración de BizTalk Server para configurar la aplicación. Para obtener más información sobre cómo configurar una aplicación, consulte How to Configure an Application.
La configuración de una aplicación implica:
Selección de un host para la aplicación.
Asignación de los puertos que creó en la orquestación a puertos físicos en la consola de administración de BizTalk Server. Para esta orquestación debe:
Defina una ubicación en el disco duro y un puerto de archivo correspondiente donde quitará un mensaje de solicitud. La orquestación de BizTalk consumirá el mensaje de solicitud y lo enviará al sistema SAP.
Defina una ubicación en el disco duro y un puerto de archivo correspondiente donde la orquestación de BizTalk quitará el mensaje de respuesta que contiene la respuesta del sistema SAP.
Defina un puerto de envío físico WCF-Custom o WCF-SAP para enviar mensajes al sistema SAP. También debe especificar la acción en el puerto de envío. Para obtener información sobre cómo crear puertos, consulte Configuración manual de un enlace de puerto físico al adaptador de SAP.
Nota
La generación del esquema mediante el complemento de proyecto de BizTalk del servicio consumir adaptador también crea un archivo de enlace que contiene información sobre los puertos y las acciones que se van a establecer para esos puertos. Puede importar este archivo de enlace desde la consola de administración de BizTalk Server para crear puertos de envío (para llamadas salientes) o puertos de recepción (para llamadas entrantes). Para obtener más información, consulte Configuración de un enlace de puerto físico mediante un archivo de enlace de puertos a SAP.
Iniciar la aplicación
Debe iniciar la aplicación de BizTalk para invocar una RFC en el sistema SAP. Para obtener instrucciones sobre cómo iniciar una aplicación de BizTalk, vea Cómo iniciar una orquestación o cómo iniciar una aplicación.
En esta fase, asegúrese de:
El puerto de recepción FILE para recibir mensajes de solicitud para la orquestación se está ejecutando.
El puerto de envío FILE para recibir los mensajes de respuesta de la orquestación se está ejecutando.
El puerto de envío de WCF-Custom o WCF-SAP para enviar mensajes al sistema SAP se está ejecutando.
La orquestación de BizTalk para la operación se está ejecutando.
Ejecución de la operación
Después de ejecutar la aplicación, debe quitar un mensaje de solicitud para la orquestación en una ubicación predefinida. Consulte Esquemas de mensajes para operaciones RFC para conocer el esquema del mensaje de solicitud para invocar una RFC en un sistema SAP. Por ejemplo, el mensaje de solicitud para invocar RFC_CUSTOMER_GET es:
<RFC_CUSTOMER_GET xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
<KUNNR>0000001390</KUNNR>
<NAME1>*</NAME1>
<CUSTOMER_T/>
</RFC_CUSTOMER_GET>
La orquestación consume el mensaje y lo envía al sistema SAP. La respuesta del sistema SAP se guarda en otra ubicación de archivo definida como parte de la orquestación. Por ejemplo, la respuesta del sistema SAP para el mensaje de solicitud anterior es:
<?xml version="1.0" encoding="utf-8" ?>
<RFC_CUSTOMER_GETResponse xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
<CUSTOMER_T>
<RFCCUST xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
<KUNNR>0000001390</KUNNR>
<ANRED>Firma</ANRED>
<NAME1>Contoso, Ltd.</NAME1>
<PFACH />
<STRAS>4567 Main Street</STRAS>
<PSTLZ>98052</PSTLZ>
<ORT01>USA</ORT01>
<TELF1>555-0101</TELF1>
<TELFX>555-0102</TELFX>
</RFCCUST>
</CUSTOMER_T>
</RFC_CUSTOMER_GETResponse>
Posibles excepciones
Para obtener información sobre las excepciones que puede encontrar al invocar una RFC en un sistema SAP mediante BizTalk Server, consulte Excepciones y control de errores con el adaptador de SAP.
Prácticas recomendadas
Después de haber implementado y configurado el proyecto de BizTalk, puede exportar las opciones de configuración a un archivo XML denominado archivo de enlaces. Una vez que genere un archivo de enlaces, puede importar los valores de configuración del archivo para que no necesite crear los puertos de envío, los puertos de recepción, etc. para la misma orquestación. Para obtener más información sobre los archivos de enlace, consulte Reutilización de enlaces de adaptador de SAP.