Compartir a través de


Operaciones ExecuteReader, ExecuteScalar o ExecuteNonQuery en Oracle E-Business Suite

El adaptador de Oracle E-Business expone operaciones genéricas como ExecuteNonQuery, ExecuteReader y ExecuteScalar. Puede usar estas operaciones para ejecutar cualquier instrucción SQL en la base de datos de Oracle. Estas operaciones difieren en función del tipo de respuesta que se obtiene para la instrucción SQL. Para obtener más información sobre cómo el adaptador admite estas operaciones, consulte Compatibilidad con las operaciones ExecuteNonQuery, ExecuteReader y ExecuteScalar.

En este tema se muestra cómo realizar una operación ExecuteReader mediante el adaptador de Oracle E-Business con BizTalk Server. Puede seguir el mismo conjunto de procedimientos descritos en este tema para realizar operaciones ExecuteNonQuery y ExecuteScalar .

Cómo invocar la operación ExecuteReader en Oracle Database

Realizar una operación en una base de datos de Oracle mediante el adaptador de Oracle E-Business con BizTalk Server implica tareas de procedimientos descritas en Bloques de creación para crear aplicaciones de Oracle E-Business Suite. Para invocar la operación ExecuteReader en la base de datos de Oracle, estas tareas son:

  1. Cree un proyecto de BizTalk y genere el esquema para la operación ExecuteReader .

  2. Cree mensajes en el proyecto de BizTalk para enviar y recibir mensajes de la base de datos de Oracle.

  3. Cree una orquestación para invocar la operación en la base de datos de Oracle.

  4. Compile e implemente el proyecto de BizTalk.

  5. Configure la aplicación de BizTalk mediante la creación de puertos físicos de envío y recepción.

  6. Inicie la aplicación de BizTalk.

    En este tema se proporcionan instrucciones para realizar estas tareas.

Generar esquema

En este tema se muestra cómo invocar la operación ExecuteReader en una base de datos de Oracle mediante el adaptador de Oracle E-Business con BizTalk Server. La operación ExecuteReader toma cualquier instrucción SQL como parámetro y devuelve el conjunto de resultados para la operación como una matriz de DataSet. Para este tema, ejecutamos una instrucción SELECT en la tabla ACCOUNTACTIVITY mediante la operación ExecuteReader . La tabla ACCOUNTACTIVITY se crea mediante la ejecución de los scripts proporcionados con los ejemplos. Para obtener más información sobre el script, vea Ejemplos.

Para demostrar cómo invocar la operación ExecuteReader , se genera el esquema para la operación ExecuteReader . Debe crear un proyecto de BizTalk y usar el complemento Consumir servicio de adaptador para generar el esquema. Para obtener más información sobre cómo generar esquemas, consulte Recuperación de metadatos para operaciones de Oracle E-Business Suite en Visual Studio.

Definición de mensajes y tipos de mensajes

El esquema que ha generado anteriormente describe los "tipos" necesarios para los mensajes de la orquestación. Normalmente, un mensaje es una variable cuyo tipo está definido por el esquema correspondiente. Ahora debe crear mensajes para la orquestación y vincularlos a esquemas generados en el paso anterior.

  1. Agregue una orquestación al proyecto de BizTalk. En Explorador de soluciones, haga clic con el botón derecho en el nombre del proyecto de BizTalk, seleccione Agregar y, a continuación, haga clic en Nuevo elemento. Escriba un nombre para la orquestación de BizTalk y, a continuación, haga clic en Agregar.

  2. Abra la ventana Vista orquestación del proyecto de BizTalk si no está abierta. Para ello, haga clic en Ver, seleccione Otras ventanas y, a continuación, haga clic en Vista de orquestación.

  3. En vista de orquestación, haga clic con el botón derecho en Mensajes y, a continuación, haga clic en Nuevo mensaje.

  4. Haga clic con el botón derecho en el mensaje recién creado y, a continuación, seleccione Ventana Propiedades.

  5. En el panel Propiedades del Message_1, haga lo siguiente:

    Use Para hacer esto
    Identificador Escriba Request
    Tipo de mensaje En la lista desplegable, expanda Esquemas y, a continuación, seleccione Execute_Reader.GenericOperation.ExecuteReader, donde Execute_Reader es el nombre del proyecto de BizTalk. GenericOperation es el esquema generado para la operación ExecuteReader .
  6. Repita el paso 2 para crear un mensaje. En el panel Propiedades del nuevo mensaje, haga lo siguiente:

    Use Para hacer esto
    Identificador Escriba Response
    Tipo de mensaje En la lista desplegable, expanda Esquemas y, a continuación, seleccione Execute_Reader.GenericOperation.ExecuteReaderResponse.

Configuración de la orquestación

Debe crear una orquestación de BizTalk para usar BizTalk Server para realizar una operación en la base de datos de Oracle. En esta orquestación, se quita un mensaje de solicitud en una ubicación de recepción definida. El adaptador de Oracle E-Business consume este mensaje y lo pasa a la base de datos de Oracle. La respuesta de la base de datos de Oracle se guarda en otra ubicación. Una orquestación típica para invocar operaciones genéricas como ExecuteReader contendría:

  • Enviar y recibir formas para enviar y recibir mensajes de una base de datos de Oracle.

  • Puerto de recepción bidireccional para enviar y recibir mensajes de una base de datos de Oracle.

  • Un puerto de envío unidireccional para enviar la respuesta de la base de datos de Oracle a una carpeta.

    Una orquestación de ejemplo para invocar una operación ExecuteReader es similar a la siguiente:

    Orquestación para invocar la operación ExecuteReader

Agregar formas de mensaje

Debe configurar las siguientes propiedades para cada una de las formas de mensaje. Los nombres enumerados en la columna Shape corresponden a los nombres de las formas de mensaje tal como se muestran en la orquestación mencionada.

Forma Tipo de forma Propiedades
ReceiveMessage Recepción - Establecer el nombre en ReceiveMessage
- Establecer Activar enTrue
SendMessage Envío - Establecer el nombre en SendMessage
ReceiveResponse Recepción - Establecer nombre en ReceiveResponse
- Establecer Activar en False
SendResponse Envío - Establecer nombre en SendResponse

Adición de puertos

Para cada uno de los puertos lógicos, configure las propiedades de la tabla siguiente. Los nombres enumerados en la columna Puerto corresponden a los nombres de los puertos tal y como se muestra en la orquestación.

Port Propiedades
MessageIn - Establecer identificador en MessageIn
- Establecer tipo en MessageInType
- 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
ResponseOut - Establecer identificador enResponseOut
- Establecer tipo en ResponseOutType
- 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 conectarlos a puertos

En la tabla siguiente se especifican los valores de propiedad para especificar mensajes para las formas de acción y para vincular los mensajes a los puertos. Los nombres enumerados en la columna Shape corresponden a los nombres de las formas de mensaje tal como se muestra en el diagrama de orquestación anterior.

Una vez configuradas estas propiedades, se conectan las formas y los puertos de mensaje y se completa la orquestación.

A continuación, ahora debe compilar la solución de BizTalk e implementarla en BizTalk Server. Para obtener más información, vea Compilar y ejecutar orquestaciones.

Forma Propiedades
ReceiveMessage - Establecer mensaje en solicitud
- Establecer operaciónen MessageIn.Exec_Reader.Request
SendMessage - Establecer mensaje en solicitud
- Establecer operaciónen LOBPort.Exec_Reader.Request
ReceiveResponse - Establecer mensaje en respuesta
- Establecer operaciónen LOBPort.Exec_Reader.Response
SendResponse - Establecer mensaje en respuesta
- Establecer operaciónen ResponseOut.Exec_Reader.Request

Después de especificar estas propiedades, se conectan las formas y los puertos de mensaje y se completa la orquestación.

Ahora debe compilar la solución de BizTalk e implementarla en 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 un tutorial, vea Tutorial: Implementación de una aplicación básica de BizTalk.

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á a la base de datos de Oracle.

    • 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 de la base de datos de Oracle.

    • Defina una WCF-Custom física o WCF-OracleEBS puerto de envío para enviar mensajes a la base de datos de Oracle. También debe especificar la acción en el puerto de envío. Para obtener información sobre cómo crear puertos de envío, vea Configuración manual de un enlace de puerto físico al adaptador de oracle E-Business .

      Importante

      Como parte de las operaciones genéricas, si está ejecutando operaciones en objetos, por ejemplo procedimientos almacenados, funciones, tablas de interfaz o vistas de interfaz, que pertenecen a una aplicación de Oracle E-Business Suite, debe establecer el contexto de la aplicación especificando las propiedades de enlace necesarias. Para obtener más información sobre cómo establecer el contexto de la aplicación, vea Establecer contexto de aplicación.

      Puede establecer el contexto de la aplicación especificando las propiedades de enlace o estableciendo las propiedades de contexto del mensaje expuestas por el adaptador de Oracle E-Business. Para obtener instrucciones sobre cómo establecer las propiedades de enlace, vea Configurar las propiedades de enlace para Oracle E-Business Suite. Para obtener instrucciones sobre cómo establecer el contexto de la aplicación mediante propiedades de contexto de mensaje, vea Configurar el contexto de la aplicación mediante propiedades de contexto de mensaje en Oracle E-Business Suite.

      Nota

      La generación del esquema mediante el complemento de proyecto consumir servicio de adaptador de BizTalk también crea un archivo de enlace que contiene información sobre los puertos y las acciones que se establecerán 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 Configurar un enlace de puerto físico mediante un archivo de enlace de puerto a Oracle E-Business Suite.

Iniciar la aplicación

Debe iniciar la aplicación de BizTalk antes de invocar la operación ExecuteReader en la base de datos de Oracle. Para obtener instrucciones sobre cómo iniciar una aplicación de BizTalk, vea Cómo iniciar una orquestación.

En esta fase, asegúrese de que:

  • 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.

  • Se está ejecutando el WCF-Custom o WCF-OracleEBS puerto de envío para enviar mensajes a la base de datos de Oracle.

  • 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 a la ubicación de recepción del archivo. El esquema del mensaje de solicitud debe ajustarse al esquema de la operación ExecuteReader que generó anteriormente. Por ejemplo, el mensaje de solicitud para ejecutar una instrucción SELECT mediante una operación ExecuteReader es:

<ExecuteReader xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/GenericOperation/">  
  <Query>SELECT * FROM ACCOUNTACTIVITY</Query>  
</ExecuteReader>  

Consulte Esquemas de mensajes para las operaciones ExecuteReader, ExecuteScalar y ExecuteNonQuery para obtener más información sobre el esquema de mensajes de solicitud para invocar una operación ExecuteReader mediante el adaptador de Oracle E-Business.

La orquestación consume el mensaje y lo envía a la base de datos de Oracle. La respuesta de la base de datos de Oracle se guarda en la otra ubicación FILE definida como parte de la orquestación. La respuesta de la operación ExecuteReader contiene un conjunto de resultados como DataSet. Por ejemplo, la respuesta de la base de datos de Oracle para el mensaje de solicitud anterior es:

<?xml version="1.0" encoding="utf-8" ?>   
<ExecuteReaderResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/GenericOperation/">  
  <ExecuteReaderResult>  
    <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">  
      <xs:element msdata:IsDataSet="true" name="NewDataSet">  
        <xs:complexType>  
          <xs:sequence>  
            <xs:element minOccurs="0" maxOccurs="unbounded" name="NewTable">  
              <xs:complexType>  
                <xs:sequence>  
                  <xs:element minOccurs="0" name="TID" type="xs:decimal" />   
                  <xs:element minOccurs="0" name="ACCOUNT" type="xs:decimal" />   
                  <xs:element minOccurs="0" name="AMOUNT" type="xs:decimal" />   
                  <xs:element minOccurs="0" name="DESCRIPTION" type="xs:string" />   
                  <xs:element minOccurs="0" name="TRANSDATE" type="xs:dateTime" />   
                  <xs:element minOccurs="0" name="PROCESSED" type="xs:string" />   
                </xs:sequence>  
              </xs:complexType>  
            </xs:element>  
          </xs:sequence>  
        </xs:complexType>  
      </xs:element>  
    </xs:schema>  
    <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">  
      <NewDataSet xmlns="">  
        <NewTable>  
          <TID>1</TID>   
          <ACCOUNT>100001</ACCOUNT>   
          <AMOUNT>500</AMOUNT>   
          <DESCRIPTION />   
          <TRANSDATE>2008-08-04T13:04:20</TRANSDATE>   
          <PROCESSED>n</PROCESSED>   
        </NewTable>  
        <NewTable>  
          ......  
          ......  
        </NewTable>  
        ......  
        ......  
      </NewDataSet>  
    </diffgr:diffgram>  
  </ExecuteReaderResult>  
</ExecuteReaderResponse>  

Prácticas recomendadas

Una vez implementado y configurado el proyecto de BizTalk, puede exportar los valores de configuración a un archivo XML denominado archivo de enlace. Después de generar un archivo de enlace, puede importar los valores de configuración del archivo, de modo que no sea necesario crear elementos como los puertos de envío y recibir puertos para la misma orquestación. Para obtener más información sobre el enlace de archivos, consulte Reutilización de enlaces de adaptador con Oracle E-Business Suite.

Consulte también

Desarrollo de aplicaciones de BizTalk mediante el adaptador de Oracle E-Business Suite