Compartir a través de


Ejecución de una operación de inserción en una tabla de interfaz de Oracle E-Business Suite mediante el modelo de canal WCF

El adaptador de Oracle E-Business detecta un conjunto de operaciones de inserción, selección, actualización y eliminación en tablas de interfaz de Oracle E-Business Suite. Mediante estas operaciones, puede realizar instrucciones Insert, Select, Update y Delete sencillas calificadas por una cláusula Where en una tabla de interfaz de destino. En este tema se proporcionan instrucciones sobre cómo realizar una operación de inserción en una tabla de interfaz mediante el modelo de canal WCF.

Para obtener más información sobre cómo el adaptador admite estas operaciones, vea Operaciones en tablas de interfaz y vistas de interfaz. Para obtener más información sobre cómo realizar operaciones en Oracle E-Business Suite mediante el modelo de canal WCF, consulte Información general sobre el modelo de canal WCF con el adaptador de Oracle E-Business Suite.

Acerca de los ejemplos usados en este tema

En el ejemplo de este tema se realizan operaciones en la tabla de interfaz MS_SAMPLE_EMPLOYEE. La tabla se crea mediante la ejecución del script proporcionado con los ejemplos. Para obtener más información sobre los ejemplos, consulte Ejemplos para el adaptador de Oracle EBS. También se proporciona un ejemplo, InsertOperation, que se basa en este tema, con los ejemplos de adaptadores de Oracle E-Business.

Insertar mensaje

Para realizar operaciones en Oracle E-Business Suite mediante el modelo de canal WCF, debe tener el mensaje de solicitud específico de la operación. El mensaje de solicitud para realizar una operación de inserción en la tabla de interfaz de MS_SAMPLE_EMPLOYEE es similar a la siguiente:

<Insert xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/InterfaceTables/FND/APPS/MS_SAMPLE_EMPLOYEE">  
  <RECORDSET>  
    <InsertRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/TableViewRecord/APPS/MS_SAMPLE_EMPLOYEE">  
      <EMP_NO>10050</EMP_NO>  
      <NAME>John Smith</NAME>  
      <DESIGNATION>Manager</DESIGNATION>  
      <SALARY>500000</SALARY>  
      <JOIN_DATE>1999-05-31</JOIN_DATE>  
    </InsertRecord>  
  </RECORDSET>  
</Insert>  

Este mensaje de solicitud inserta un registro con los detalles siguientes:

Employee Number = 10050  
Name = Tom Smith  
Designation = Manager  
Salary = 500000  

Debe copiar el mensaje en un archivo, por ejemplo, InsertRequest.xml. Este archivo se usa en este ejemplo para enviar el mensaje de solicitud a Oracle E-Business Suite mediante el adaptador de Oracle E-Business. Para obtener más información sobre el esquema de mensajes para las operaciones en la tabla, vea Esquemas de mensaje para insertar, actualizar, eliminar y seleccionar operaciones.

Creación de una aplicación de canal WCF

En esta sección se proporcionan instrucciones sobre cómo crear una aplicación de canal WCF para realizar una operación insert en la tabla de interfaz de MS_SAMPLE_EMPLOYEE.

Para crear una aplicación de canal WCF para insertar registros en la tabla

  1. Cree un proyecto de Visual C# en Visual Studio. Para este tema, cree una aplicación de consola.

  2. En el Explorador de soluciones, agregue referencia a Microsoft.Adapters.OracleEBS, Microsoft.ServiceModel.Channels, System.ServiceModely System.Runtime.Serialization.

  3. Abra el archivo Program.cs y agregue los siguientes espacios de nombres:

    • Microsoft.Adapters.OracleEBS

    • Microsoft.ServiceModel.Channels

    • System.ServiceModel

    • System.ServiceModel.Channels

    • System.Xml

  4. Cree el enlace y el punto de conexión.

    OracleEBSBinding binding = new OracleEBSBinding();  
    EndpointAddress address = new EndpointAddress("oracleebs://ebs_instance_name");  
    
    
  5. Dado que está realizando una operación en una tabla de interfaz, debe establecer el contexto de la aplicación. En este ejemplo, para establecer el contexto de la aplicación, especifique las propiedades de enlace OracleUserName, OraclePassword y OracleEBSResponsibilityName . Para más información sobre el contexto de la aplicación, consulte Establecimiento del contexto de la aplicación.

    binding.OracleUserName = "myOracleEBSUserName";  
    binding.OraclePassword = "myOracleEBSPassword";  
    binding.OracleEBSResponsibilityName = "myOracleEBSResponsibility";  
    
  6. Cree y abra el generador de canales. Esta aplicación envía un mensaje de solicitud a Oracle E-Business Suite y recibe una respuesta, por lo que debe implementar la interfaz IRequestChannel.

    ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, address);  
    factory.Credentials.UserName.UserName = "<Enter user name here>";  
    factory.Credentials.UserName.Password = "<Enter password here>";  
    factory.Open();  
    
  7. Cree y abra el canal.

    IRequestChannel channel;  
    try  
    {  
       channel = factory.CreateChannel();  
       channel.Open();  
    }  
    catch (Exception ex)  
    {  
       Console.WriteLine("Exception :" + ex.Message);  
       throw;  
    }  
    
  8. Cree y envíe el mensaje de solicitud.

    XmlReader readerIn;  
    try  
    {  
       readerIn = XmlReader.Create("InsertRequest.xml");  
       Console.WriteLine("Reader created");  
    }  
    catch (Exception ex)  
    {  
       Console.WriteLine("Exception: " + ex.Message);  
       throw;  
    }  
    Message messageIn;  
    Message messageOut;  
    try  
    {  
       messageIn = Message.CreateMessage(MessageVersion.Default, "InterfaceTables/Insert/FND/APPS/MS_SAMPLE_EMPLOYEE", readerIn);  
       messageOut = channel.Request(messageIn);  
    }  
    catch (Exception ex)  
    {  
       Console.WriteLine("Exception: " + ex.Message);  
       throw;  
    }  
    
    

    Al crear el mensaje de solicitud, debe especificar la acción de mensaje que indica la acción que realiza el adaptador en la tabla de interfaz. Para realizar una operación de inserción en la tabla MS_SAMPLE_EMPLOYEE, la acción del mensaje es InterfaceTables/Insert/FND/APPS/MS_SAMPLE_EMPLOYEE. Para obtener información sobre cómo puede determinar la acción de mensaje para varias operaciones en tablas, vea Esquemas de mensaje para insertar, actualizar, eliminar y seleccionar operaciones.

  9. Obtenga el mensaje de respuesta.

    XmlReader readerOut = messageOut.GetReaderAtBodyContents();  
    XmlDocument doc = new XmlDocument();  
    doc.Load(readerOut);  
    doc.Save("C:\\Response.xml");  
    
  10. Cierre el mensaje, el canal y el generador de canales.

    messageOut.Close();  
    channel.Close();  
    factory.Close();  
    
  11. Compile el proyecto. Después de compilar el proyecto, debe copiar el mensaje de solicitud, InsertRequest.xml, en la misma ubicación que el ejecutable del proyecto. Normalmente, esta ubicación es \bin\Debug\ en el directorio del proyecto.

  12. Ejecute la aplicación. El mensaje de respuesta, Response.xml, se guarda en la ubicación especificada en la aplicación. El mensaje de respuesta contiene el número o registros insertados y es similar al siguiente:

    <InsertResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/InterfaceTables/FND/APPS/MS_SAMPLE_EMPLOYEE">  
      <InsertResult>1</InsertResult>  
    </InsertResponse>  
    

    El valor "1" indica que se inserta un único registro en la tabla MS_SAMPLE_EMPLOYEE.

Consulte también

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