Envío de IDOC a SAP mediante BizTalk Server
Todas las llamadas IDOC a SAP se tratan internamente como llamadas tRFC en las que el adaptador actúa como un cliente tRFC y llama a un RFC en SAP para enviar un IDOC. En esta sección se proporciona información sobre cómo enviar IDOC a SAP mediante el adaptador de Microsoft BizTalk para mySAP Business Suite con BizTalk Server. El adaptador de SAP muestra dos operaciones diferentes para enviar IDC:
La operación de envío permite a los clientes adaptadores enviar IDOC con un esquema fuertemente tipado.
La operación SendIdoc permite a los clientes adaptadores enviar IOC que tengan un esquema con un tipo débil. Con esto, los clientes del adaptador pueden enviar IOC de archivo plano al sistema SAP. Todo el IDOC de archivo plano sería un valor de nodo en un mensaje XML SendIdoc.
Para obtener más información sobre cómo el adaptador de SAP admite el envío de IDOC a un sistema SAP, consulte Operaciones en IDOC en SAP. Para obtener más información sobre la estructura de los mensajes SOAP para enviar un IDOC, vea Esquemas de mensajes para operaciones de IDOC.
Escenarios de BizTalk para enviar IDOC con el adaptador de SAP
En la tabla siguiente se proporcionan escenarios clave de BizTalk para enviar IDOC a un sistema SAP:
Entrada en BizTalk | Procesamiento de BizTalk | Salida al adaptador |
---|---|---|
IDOC de archivo plano | Tiempo de diseño de metadatos 1. Establezca la propiedad de enlace GenerateFlatFileCompatibleIdocSchema en True. 2. Genere el esquema para la operación de envío para un IDOC específico mediante el complemento consumir servicio adaptador. Tiempo de diseño de orquestación 1. Recibir IDOC de archivo plano 2. Use desensamblador de archivos planos para convertir IDOC de archivo plano en IDOC XML mediante el esquema que acaba de generar. 3. Establezca la acción para enviar la operación. |
Enviar mensaje |
IDOC de archivo plano | Tiempo de diseño de metadatos 1. Establezca la propiedad de enlace GenerateFlatFileCompatibleIdocSchema en True. 2. Genere el esquema para la operación SendIdoc desde el nodo IDOC mediante el complemento consumir servicio adaptador. Tiempo de diseño de orquestación 1. Recibir IDOC de archivo plano 2. Use el desensamblador de archivos planos para convertir IDOC de archivo plano en XML (en este caso, el mensaje XML contiene un <nodo idocData> que contiene todo el mensaje de Idoc de archivo plano) utilizando el esquema recién generado. 3. Establezca la acción en la operación SendIdoc . |
Mensaje SendIdoc |
XML IDOC | Tiempo de diseño de metadatos - Genere el esquema para la operación De envío para un IDOC específico mediante el complemento consumir servicio adaptador. Tiempo de diseño de orquestación 1. Recibir IDOC XML. 2. Establezca la acción en enviar operación. |
Enviar mensaje |
IDOC de archivo plano en el mensaje XML | Tiempo de diseño de metadatos - Genere el esquema para la operación SendIdoc desde el nodo IDOC mediante el complemento consumir servicio adaptador. Tiempo de diseño de orquestación 1. Recibir mensaje XML. 2. Establezca la acción en la operación SendIdoc . |
Mensaje SendIdoc |
Cómo enviar un IDOC a un sistema SAP
La realización de una operación en un sistema SAP mediante BizTalk Server implica tareas de procedimientos descritas en Bloques de creación para crear aplicaciones SAP. Para enviar un IDOC a un sistema SAP, estas tareas son:
Cree un proyecto de BizTalk y genere el esquema para el IDOC que desea invocar en el sistema SAP. Al generar el esquema, asegúrese de establecer las propiedades de enlace necesarias, como se muestra en la tabla anterior. Para obtener instrucciones sobre cómo establecer las propiedades de enlace, consulte Configuración de las propiedades de enlace para el adaptador de SAP.
Cree mensajes en el proyecto de BizTalk para enviar y recibir mensajes desde el sistema SAP.
Cree una orquestación para enviar un IDOC a un 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.
Ejemplo basado en este tema
También se proporciona un ejemplo de IDOCSend, basado en este tema, con el paquete de adaptadores de BizTalk. Para obtener más información, consulte Ejemplos para el adaptador de SAP.
Generación de esquema
En este tema se muestra cómo enviar un IDOC a un sistema SAP mediante la generación de esquema para la operación de envío en \IDOC\ORDERS\ORDERS05\ORDERS05. IDOC V3(620). Consulte Examinar, buscar y obtener metadatos para las operaciones de IDOC en SAP para obtener más información sobre cómo generar esquema para un IDOC determinado.
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ó en el primer paso a los mensajes de la vista Orquestación del proyecto de BizTalk.
Para este tema, debe crear dos mensajes: uno para enviar un IDOC 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 IDOCSend. Tipo de mensaje En la lista desplegable, expanda Esquemas y seleccione IDOCSend.SAPBindingSchema3, donde IDOCSend es el nombre del proyecto de BizTalk. SAPBindingSchema3 es el esquema generado para la operación send. Repita el paso anterior para crear un nuevo mensaje. En el panel Propiedades del nuevo mensaje, haga lo siguiente:
Use Para hacer esto Identificador Escriba IDOCResponse. Tipo de mensaje En la lista desplegable, expanda Esquemas y seleccione IDOCSend.SAPBindingSchema4.
Configuración de la orquestación
Debe crear una orquestación de BizTalk para usar BizTalk Server para enviar IDOC a un sistema SAP. En esta orquestación, quitará un IDOC de archivo plano en una ubicación de recepción definida. Este archivo se convierte en un mensaje de solicitud XML mediante un desensamblador de archivos planos. El adaptador de SAP consume este mensaje y lo pasa al sistema SAP. La respuesta con un GUID se recibe de SAP y se guarda en otra ubicación. Debe incluir formas de envío y recepción para enviar IOC al sistema SAP y recibir respuestas. También debe incluir un desensamblador de archivos planos para convertir un archivo plano en un archivo XML. Una orquestación típica para enviar e IDOC a 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 IDOC de archivos planos que se van a enviar al sistema SAP.
Desensamblador de archivos planos para convertir el IDOC de archivo plano en un archivo XML.
Puerto de envío bidireccional para enviar el IDOC 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 tendría el siguiente aspecto:
Agregar formas de mensaje
Asegúrese de especificar las siguientes propiedades para cada una de las formas de mensaje. Los nombres enumerados 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 |
---|---|---|
ReceiveFile | Recepción | - Establecer nombre en ReceiveFile - Establecer Activar en True |
SendToLOB | Envío | - Establecer nombre en SendToLOB |
ReceiveResponse | Recepción | - Establecer nombre en ReceiveResponse - Establecer Activar en False |
SendResponse | Envío | - Establecer el nombre en SendResponse |
Adición de puertos
Asegúrese de especificar las siguientes propiedades para cada uno de los puertos lógicos. Los nombres enumerados en la columna Puerto son los nombres de los puertos como se muestra en la orquestación.
Port | Propiedades |
---|---|
FileIn | - Establecer identificadoren FileIn - Establecer tipo en FileInType - Establecer el patrón de comunicación en unidireccional - Establecer la dirección de comunicación para recibir |
LOBPort | - Establecer identificador en LOBPort - Establecer tipo en LOBPortType - Establecer el patrón de comunicación en Solicitud-respuesta - Establecer la dirección de comunicación en Enviar y recibir |
SaveResponse | - Establecer identificador en SaveResponse - Establecer tipo en SaveResponseType - Establecer el patrón de comunicación en unidireccional - Establecer la dirección de comunicación en enviar |
Agregar un desensamblador de archivos planos
Debe agregar un desensamblador de archivos planos a la orquestación para convertir el IDOC de archivo plano en un formato XML.
Para agregar un desensamblador de archivos planos
Haga clic con el botón derecho en el proyecto de BizTalk, seleccione Agregar y seleccione Nuevo elemento.
En el cuadro de diálogo, haga lo siguiente:
Use Para hacer esto Categorías Archivos de canalización Plantillas instaladas de Visual Studio Canalización de recepción Nombre IDOCReceive Se abrirá el Designer de canalización. En el cuadro de herramientas Componentes de canalización de BizTalk , arrastre el componente de canalización de desensamblador de archivos planos a la fase Desensamblado de la canalización de recepción.
En la vista Propiedades del componente de canalización , especifique un valor para la propiedad Esquema de documento . En la lista desplegable, asegúrese de seleccionar el esquema correspondiente a la operación de envío del IDOC.
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 |
---|---|
ReceiveFile | - Establecer mensaje en IDOCSend - Establecer operación en FileIn.SendIDOC.Request |
SendToLob | - Establecer mensaje en IDOCSend - Establecer operación en LOBPort.SendIDOC.Request |
ReceiveResponse | - Establecer mensaje en IDOCResponse - Establecer operación en LOBPort.SendIDOC.Response |
SendResponse | - Establecer mensaje en IDOCResponse - Establecer operación en SaveResponse.SendIDOC.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.
Importante
Para la canalización XMLReceive para este puerto, asegúrese de seleccionar IDOCReceive. Ha creado esta canalización como parte del proyecto de BizTalk.
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
También puede establecer la propiedad de enlace AutoConfirmSentIdocs para confirmar automáticamente los IDOC en el sistema SAP. Si lo hace, no es necesario llamar explícitamente a la operación RfcConfirmTransID para confirmar los IDOC. Para obtener más información sobre la propiedad de enlace, vea Leer sobre el adaptador de BizTalk para las propiedades de enlace de mySAP Business Suite. Para obtener más información sobre la operación RfcConfirmTransID, consulte Operaciones en TRFC en 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 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 enviar un IDOC al 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 este ejemplo, quitaremos un IDOC de archivo plano en la ubicación de recepción de ARCHIVO definida. Las siguientes acciones se realizan después de quitar el mensaje de solicitud:
La orquestación elige este IDOC de archivo plano y lo convierte en un mensaje de solicitud XML, el esquema para el que se ajusta al esquema que generó anteriormente.
Si el mensaje de solicitud proporcionado contiene un GUID, el adaptador genera un identificador de transacción (TID) y lo envía al sistema SAP.
Si el mensaje de solicitud proporcionado no contiene un GUID, el adaptador genera un GUID y usa ese GUID para generar un TID. A continuación, el TID se envía al sistema SAP.
En ambos casos, el mensaje de respuesta del sistema SAP contiene un GUID. Por ejemplo, un mensaje de respuesta para la operación Enviar en el IDOC de ORDERS05 es:
<?xml version="1.0" encoding="utf-8"?>
<SendResponse xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//620/Send">
<guid>a5afe162-d5cc-47b0-bf6f-3b0bfe06a97e</guid>
</SendResponse>
Después de recibir el GUID, debe invocar la operación RfConfirmTransID para confirmar el TID. Para obtener más información sobre la operación RfcConfirmTransID , consulte Operaciones en TRFC en SAP. Puede crear una nueva orquestación para llamar a esta operación o modificar la orquestación existente. Si desea crear una orquestación, será similar a cualquier otra orquestación en un sistema SAP. Si desea actualizar la orquestación existente, consulte Invocación de TRFC en SAP mediante BizTalk Server. La orquestación para invocar un tRFC, como se describe en el tema muestra cómo llamar a una operación RfcConfirmTransID desde la misma orquestación.
Nota
No es necesario invocar la operación RfcConfirmTransID si establece la propiedad de enlace AutoConfirmSentIdocs en True.
Posibles excepciones
Para obtener información sobre las excepciones que puede encontrar al enviar un IDOC a 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.