Operaciones ExecuteReader, ExecuteScalar o ExecuteNonQuery en Oracle E-Business Suite mediante el modelo de servicio WCF
El adaptador de Oracle E-Business expone operaciones genéricas como ExecuteNonQuery, ExecuteReader y ExecuteScalar. Puede usar estas operaciones para ejecutar cualquier instrucción en Oracle E-Business Suite. Estas operaciones difieren en función del tipo de respuesta que se obtiene para la instrucción . 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 mediante el modelo de servicio WCF. Puede seguir el mismo conjunto de procedimientos descritos en este tema para realizar operaciones ExecuteNonQuery y ExecuteScalar .
Acerca de los ejemplos usados en este tema
En el ejemplo de este tema se realiza una operación ExecuteReader para realizar una operación SELECT en la tabla de interfaz de 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, ExecuteReader, que se basa en este tema, con los ejemplos del adaptador de Oracle E-Business.
Clase de cliente WCF
El nombre del cliente WCF generado para invocar operaciones genéricas (ExecuteNonQuery, ExecuteReader o ExecuteScalar) mediante el adaptador de Oracle E-Business se muestra en la tabla siguiente.
Operations | Nombre del cliente WCF |
---|---|
ExecuteNonQuery, ExecuteReader o ExecuteScalar | GenericOperation_Client |
Firma de método para invocar operaciones genéricas
En la tabla siguiente se muestra la firma del método expuesto para invocar las operaciones genéricas.
Operación | Firma del método |
---|---|
ExecuteNonQuery | int ExecuteNonQuery(string Query, string[] OutputRefCursorNames, out System.Data.DataSet[] OutputRefCursors) |
ExecuteReader | System.Data.DataSet ExecuteReader(string Query) |
ExecuteScalar | string ExecuteScalar(string Query) |
Por ejemplo, la firma de los métodos de operación genéricos se muestra en el siguiente fragmento de código.
public partial class GenericOperation_Client : System.ServiceModel.ClientBase<GenericOperation_>, GenericOperation_ {
public int ExecuteNonQuery(string Query, string[] OutputRefCursorNames, out System.Data.DataSet[] OutputRefCursors);
public System.Data.DataSet ExecuteReader(string Query);
public string ExecuteScalar(string Query);
}
En este fragmento de código,
GenericOperation_Client
es el nombre de la clase . Esta clase se usa para crear un cliente para invocar la operación genérica, ExecuteReader.public System.Data.DataSet ExecuteReader(string Query)
es el método que se invoca para realizar una instrucción SELECT en la tabla de interfaz MS_SAMPLE_EMPLOYEE.
Crear un cliente WCF para invocar una operación ExecuteReader
El conjunto genérico de acciones necesarias para realizar una operación en Oracle E-Business Suite mediante un cliente WCF implica un conjunto de tareas descritas en Información general del modelo de servicio WCF con el adaptador de Oracle E-Business Suite. En esta sección se describe cómo crear un cliente WCF para invocar la operación ExecuteReader .
Para crear un cliente WCF para invocar la operación ExecuteReader
Cree un proyecto de Visual C# en Visual Studio. Para este tema, cree una aplicación de consola.
Genere la clase de cliente WCF para la operación genérica ExecuteReader . Esta operación está disponible en el nodo raíz cuando se conecta a Oracle E-Business Suite mediante el complemento Add Adapter Service Reference. Para obtener más información sobre cómo generar una clase de cliente WCF, vea Generar un cliente WCF o un contrato de servicio WCF para artefactos de solución de Oracle E-Business Suite.
Importante
Antes de generar la clase de cliente WCF, asegúrese de establecer la propiedad de enlace EnableBizTalkCompatibilityMode en false.
En el Explorador de soluciones, agregue referencia a
Microsoft.Adapters.OracleEBS
yMicrosoft.ServiceModel.Channels
.Abra el archivo Program.cs y agregue los siguientes espacios de nombres:
Microsoft.Adapters.OracleEBS
System.ServiceModel
En el archivo Program.cs, cree un cliente como se describe en el fragmento de código siguiente.
OracleEBSBinding binding = new OracleEBSBinding(); EndpointAddress address = new EndpointAddress("oracleebs://ebs-72-11"); GenericOperation_Client client = new GenericOperation_Client(binding, address);
En este fragmento de código,
GenericOperation_Client
es el cliente WCF definido en OracleEBSBindingClient.cs. El complemento Add Adapter Service Reference (Agregar referencia del servicio de adaptador) genera este archivo.Nota
En este fragmento de código, se especifica explícitamente la dirección de enlace y punto de conexión en el código de la aplicación. Puede usar estos valores desde el archivo de configuración de la aplicación, app.config, también generado por el complemento Agregar referencia de servicio de adaptador. Para obtener más información sobre las distintas formas de especificar el enlace de cliente, consulte Configuración de un enlace de cliente para Oracle E-Business Suite.
Establezca las credenciales del cliente.
client.ClientCredentials.UserName.UserName = "myuser"; client.ClientCredentials.UserName.Password = "mypassword";
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";
Abra el cliente como se describe en el fragmento de código siguiente:
try { Console.WriteLine("Opening Client..."); client.Open(); } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); throw; }
Invoque la operación ExecuteReader para realizar la operación SELECT en MS_SAMPLE_EMPLOYEE tabla. Antes de invocar la operación ExecuteReader, debe agregar el
System.Data
espacio de nombres al código.string query = "SELECT * FROM MS_SAMPLE_EMPLOYEE"; DataSet ds = client.ExecuteReader(query); Console.WriteLine("Invoking the SELECT statement using ExecuteReader"); Console.WriteLine("*****************************************************"); foreach (DataTable tab in ds.Tables) { foreach (DataRow row in tab.Rows) { Console.WriteLine("The details of the employee are: "); for (int i = 0; i < tab.Columns.Count; i++) { Console.WriteLine(row[i]); } Console.WriteLine(); } } Console.WriteLine("*****************************************************"); Console.ReadLine();
Cierre el cliente como se describe en el fragmento de código siguiente:
client.Close(); Console.WriteLine("Press any key to exit..."); Console.ReadLine();
Compile el proyecto y ejecútelo. Todos los registros de la tabla MS_SAMPLE_EMPLOYEE se muestran en la consola.
Consulte también
Desarrollo de aplicaciones de Oracle E-Business Suite mediante el modelo de servicio WCF