Opérations ExecuteReader, ExecuteScalar ou ExecuteNonQuery dans Oracle E-Business Suite à l’aide du modèle de service WCF
L’adaptateur Oracle E-Business expose des opérations génériques telles que ExecuteNonQuery, ExecuteReader et ExecuteScalar. Vous pouvez utiliser ces opérations pour exécuter n’importe quelle instruction sur Oracle E-Business Suite. Ces opérations diffèrent en fonction du type de réponse que vous obtenez pour l’instruction. Pour plus d’informations sur la façon dont l’adaptateur prend en charge ces opérations, consultez Prise en charge des opérations ExecuteNonQuery, ExecuteReader et ExecuteScalar.
Cette rubrique montre comment effectuer une opération ExecuteReader à l’aide de l’adaptateur Oracle E-Business à l’aide du modèle de service WCF. Vous pouvez suivre le même ensemble de procédures décrit dans cette rubrique pour effectuer des opérations ExecuteNonQuery et ExecuteScalar .
À propos des exemples utilisés dans cette rubrique
L’exemple de cette rubrique effectue une opération ExecuteReader pour effectuer une opération SELECT sur la table d’interface MS_SAMPLE_EMPLOYEE. La table est créée en exécutant le script fourni avec les exemples. Pour plus d’informations sur les exemples, consultez Exemples pour l’adaptateur Oracle EBS. Un exemple, ExecuteReader, qui est basé sur cette rubrique, est également fourni avec les exemples d’adaptateur Oracle E-Business.
Classe de client WCF
Le nom du client WCF généré pour appeler des opérations génériques (ExecuteNonQuery, ExecuteReader ou ExecuteScalar) à l’aide de l’adaptateur Oracle E-Business est répertorié dans le tableau suivant.
Operations | Nom du client WCF |
---|---|
ExecuteNonQuery, ExecuteReader ou ExecuteScalar | GenericOperation_Client |
Signature de méthode pour appeler des opérations génériques
Le tableau suivant montre la signature de la méthode exposée pour appeler les opérations génériques.
Opération | Signature de méthode |
---|---|
ExecuteNonQuery | int ExecuteNonQuery(string Query, string[] OutputRefCursorNames, out System.Data.DataSet[] OutputRefCursors) |
ExecuteReader | System.Data.DataSet ExecuteReader(string Query) |
ExecuteScalar | string ExecuteScalar(string Query) |
Par exemple, la signature des méthodes d’opération génériques est illustrée dans l’extrait de code suivant.
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);
}
Dans cet extrait de code,
GenericOperation_Client
est le nom de la classe . Cette classe est utilisée pour créer un client pour appeler l’opération générique ExecuteReader.public System.Data.DataSet ExecuteReader(string Query)
est la méthode que vous appelez pour exécuter une instruction SELECT sur la table d’interface MS_SAMPLE_EMPLOYEE.
Création d’un client WCF pour appeler une opération ExecuteReader
L’ensemble générique d’actions requis pour effectuer une opération sur Oracle E-Business Suite à l’aide d’un client WCF implique un ensemble de tâches décrites dans Vue d’ensemble du modèle de service WCF avec l’adaptateur Oracle E-Business Suite. Cette section explique comment créer un client WCF pour appeler l’opération ExecuteReader .
Pour créer un client WCF pour appeler l’opération ExecuteReader
Créez un projet Visual C# dans Visual Studio. Pour cette rubrique, créez une application console.
Générez la classe de client WCF pour l’opération générique ExecuteReader . Cette opération est disponible sous le nœud racine lorsque vous vous connectez à Oracle E-Business Suite à l’aide du plug-in Add Adapter Service Reference. Pour plus d’informations sur la génération d’une classe de client WCF, consultez Générer un client WCF ou un contrat de service WCF pour les artefacts de solution Oracle E-Business Suite.
Important
Avant de générer la classe de client WCF, veillez à définir la propriété de liaison EnableBizTalkCompatibilityMode sur false.
Dans le Explorateur de solutions, ajoutez une référence à
Microsoft.Adapters.OracleEBS
etMicrosoft.ServiceModel.Channels
.Ouvrez le fichier Program.cs et ajoutez les espaces de noms suivants :
Microsoft.Adapters.OracleEBS
System.ServiceModel
Dans le fichier Program.cs, créez un client comme décrit dans l’extrait de code ci-dessous.
OracleEBSBinding binding = new OracleEBSBinding(); EndpointAddress address = new EndpointAddress("oracleebs://ebs-72-11"); GenericOperation_Client client = new GenericOperation_Client(binding, address);
Dans cet extrait de code,
GenericOperation_Client
est le client WCF défini dans OracleEBSBindingClient.cs. Ce fichier est généré par le plug-in Add Adapter Service Reference.Notes
Dans cet extrait de code, vous spécifiez explicitement la liaison et l’adresse de point de terminaison dans le code de votre application. Vous pouvez utiliser ces valeurs à partir du fichier de configuration de l’application, app.config, également généré par le plug-in Add Adapter Service Reference. Pour plus d’informations sur les différentes façons de spécifier la liaison de client, consultez Configurer une liaison cliente pour Oracle E-Business Suite.
Définissez les informations d’identification du client.
client.ClientCredentials.UserName.UserName = "myuser"; client.ClientCredentials.UserName.Password = "mypassword";
Étant donné que vous effectuez une opération sur une table d’interface, vous devez définir le contexte de l’application. Dans cet exemple, pour définir le contexte de l’application, vous spécifiez les propriétés de liaison OracleUserName, OraclePassword et OracleEBSResponsibilityName . Pour plus d’informations sur le contexte de l’application, consultez Définir le contexte de l’application.
binding.OracleUserName = "myOracleEBSUserName"; binding.OraclePassword = "myOracleEBSPassword"; binding.OracleEBSResponsibilityName = "myOracleEBSResponsibility";
Ouvrez le client comme décrit dans l’extrait de code ci-dessous :
try { Console.WriteLine("Opening Client..."); client.Open(); } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); throw; }
Appelez l’opération ExecuteReader pour effectuer l’opération SELECT sur MS_SAMPLE_EMPLOYEE table. Avant d’appeler l’opération ExecuteReader, vous devez ajouter l’espace
System.Data
de noms à votre code.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();
Fermez le client comme décrit dans l’extrait de code ci-dessous :
client.Close(); Console.WriteLine("Press any key to exit..."); Console.ReadLine();
Générez le projet, puis exécutez-le. Tous les enregistrements de la table MS_SAMPLE_EMPLOYEE sont affichés sur la console.
Voir aussi
Développer des applications Oracle E-Business Suite à l’aide du modèle de service WCF