Compartir vía


Información general sobre el modelo de canal WCF con el adaptador de Oracle E-Business Suite

Para invocar operaciones en el adaptador de Microsoft BizTalk para Oracle E-Business Suite, el código actúa como cliente WCF y envía operaciones salientes al adaptador. En el modelo de canal WCF, el código invoca operaciones en el adaptador mediante el envío de un mensaje de solicitud a través de un canal.

Para invocar operaciones entrantes, como recibir mensajes modificados por datos basados en sondeo mediante la operación de sondeo proporcionada por el adaptador, el código actúa como un servicio WCF y recibe la operación de entrada del adaptador. En otras palabras, el código recibe un mensaje de solicitud del adaptador a través de un canal.

Los temas de esta sección proporcionan información general sobre el uso del adaptador de Oracle E-Business con el modelo de canal WCF.

Introducción al modelo de canal WCF

Los clientes y servicios se comunican intercambiando mensajes SOAP. El modelo de canal WCF es una abstracción de bajo nivel de este intercambio de mensajes. Proporciona interfaces y tipos que permiten enviar y recibir mensajes mediante una pila de protocolos superpuestas denominada pila de canales. Cada capa de la pila se compone de un canal y cada canal se crea a partir de un enlace WCF. En la capa más baja se encuentra el canal de transporte. El canal de transporte implementa el mecanismo de transporte subyacente entre un servicio y un cliente y presenta cada mensaje a las capas superiores (y, en última instancia, la aplicación que consume) como System.ServiceModel.Message. La clase Message de WCF es una abstracción de un mensaje SOAP. WCF proporciona varias interfaces de canal, denominadas formas de canal, que modelan los patrones básicos de intercambio de mensajes SOAP, como solicitud-respuesta o unidireccional. Un enlace de transporte WCF proporciona una implementación de una o varias formas de canal que las capas superiores pueden usar para enviar y recibir mensajes. Para obtener más información sobre el modelo de canal WCF, vea "Información general del modelo de canal" en https://go.microsoft.com/fwlink/?LinkId=82614.

El adaptador de Oracle E-Business es un enlace de transporte personalizado de WCF que expone un artefacto de Oracle E-Business Suite como un servicio WCF.

Formas de canal admitidas para el adaptador de Oracle E-Business Suite

El adaptador implementa las siguientes formas de canal WCF:

  • IRequestChannel (System.ServiceModel.Channels.IRequestChannel). La interfaz IRequestChannel implementa el lado cliente de un intercambio de mensajes de solicitud-respuesta. Puede usar un IRequestChannel para realizar operaciones para las que desea consumir una respuesta, por ejemplo, para realizar una consulta SELECT en una tabla de interfaz.

  • IOutputChannel (System.ServiceModel.Channels.IOutputChannel). Esta forma implementa el lado cliente de un intercambio de mensajes unidireccional. Puede usar un IOutputChannel para invocar una operación para la que no es necesario consumir una respuesta, por ejemplo, para llamar a un procedimiento que no tenga parámetros OUT.

    Importante

    Todas las llamadas subyacentes del adaptador al cliente de Oracle son sincrónicas. Esto incluye llamadas al cliente de Oracle que son el resultado de las operaciones invocadas a través de un IOutputChannel. Cuando se usa un IOutputChannel, el adaptador descarta la respuesta recibida del cliente de Oracle.

  • IInputChannel (System.ServiceModel.Channels.IInputChannel). Esta forma implementa el lado del servicio de un intercambio de mensajes unidireccional. Usa un IInputChannel para recibir mensajes entrantes del adaptador.

    Al igual que cualquier enlace WCF, el adaptador de Oracle E-Business usa un patrón de fábrica para proporcionar canales al código de la aplicación. Use un objeto Microsoft.Adapters.OracleEBSBinding para crear instancias de:

  • System.ServiceModel.ChannelFactory<IRequestChannel> para proporcionar canales IRequestChannel que puede usar para invocar operaciones de solicitud-respuesta en el adaptador.

  • System.ServiceModel.ChannelFactory<IOutputChannel> para proporcionar canales IOutputChannel que puede usar para invocar operaciones unidireccionales en el adaptador.

  • System.ServiceModel.IChannelListener<IInputChannel> para proporcionar canales IInputChannel que puede usar para recibir mensajes entrantes del adaptador.

Creación de mensajes para la solución de negocios de Oracle Enterprise en el modelo de canal WCF

En WCF, la clase System.ServiceModel.Channels.Message proporciona una representación en memoria de un mensaje SOAP. Para crear una instancia de Message , se invoca el método estático Message.Create .

Hay dos partes importantes para el mensaje SOAP que debe especificar al crear una instancia de mensaje para enviar al adaptador de Oracle E-Business.

  • La acción del mensaje es una cadena que forma parte del encabezado del mensaje SOAP. La acción de mensaje identifica la operación que se debe invocar en Oracle E-Business Suite. A continuación se muestra la acción de mensaje especificada para invocar el programa simultáneo de la interfaz de cliente en la aplicación De recepción en Oracle E-Business Suite: ConcurrentPrograms/AR/RACUST.

  • El cuerpo del mensaje contiene los datos de parámetro de la operación. El cuerpo del mensaje se compone de XML con formato correcto que corresponde al esquema de mensajes esperado por el adaptador de Oracle E-Business para la operación solicitada. El siguiente cuerpo del mensaje especifica un mensaje de solicitud para invocar el programa simultáneo de la interfaz de cliente .

    <RACUST xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ConcurrentPrograms/AR">
      <Description>Customer Interface Program</Description>
      <StartTime></StartTime>
      <CREATE_RECIPROCAL_CUSTOMER>Yes</CREATE_RECIPROCAL_CUSTOMER>
      <ORG_ID>203</ORG_ID>
    </RACUST>
    
    

    Para obtener información sobre los esquemas de mensajes del adaptador de E-Business de Oracle y las acciones de mensajes para las operaciones, vea Mensajes y esquemas de mensajes para el adaptador de BizTalk para Oracle E-Business Suite.

    El método Create está sobrecargado y ofrece muchas opciones diferentes para proporcionar el cuerpo del mensaje. En el código siguiente se muestra cómo crear una instancia de Message mediante xmlReader para proporcionar el cuerpo del mensaje. En este código, el cuerpo del mensaje se lee de un archivo.

XmlReader readerIn = XmlReader.Create("ConcProgRequest.xml");
Message messageIn = Message.CreateMessage(MessageVersion.Default,
    "ConcurrentPrograms/AR/RACUST",
    readerIn);

donde, ConProgRequest.xml contiene el mensaje de solicitud.

Importante

Debe proporcionar una acción de mensaje en la instancia de Message . Normalmente, esto se hace cuando se crea la instancia de Message .

Consulte también

Desarrollo de aplicaciones de Oracle E-Business Suite mediante el modelo de canal WCF