Exécuter une opération d’insertion sur une table d’interface dans Oracle E-Business Suite à l’aide du modèle de canal WCF
L’adaptateur Oracle E-Business découvre un ensemble d’opérations d’insertion, de sélection, de mise à jour et de suppression sur les tables d’interface Oracle E-Business Suite. À l’aide de ces opérations, vous pouvez effectuer des instructions Insert, Select, Update et Delete simples qualifiées par une clause Where sur une table d’interface cible. Cette rubrique fournit des instructions sur l’exécution d’une opération d’insertion dans une table d’interface à l’aide du modèle de canal WCF.
Pour plus d’informations sur la façon dont l’adaptateur prend en charge ces opérations, consultez Opérations sur les tables d’interface et les vues d’interface. Pour plus d’informations sur la façon d’effectuer des opérations sur Oracle E-Business Suite à l’aide du modèle de canal WCF, consultez Vue d’ensemble du modèle de canal WCF avec l’adaptateur Oracle E-Business Suite.
À propos des exemples utilisés dans cette rubrique
L’exemple de cette rubrique effectue des opérations 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, InsertOperation, basé sur cette rubrique, est également fourni avec les exemples d’adaptateur Oracle E-Business.
Message d’insertion
Pour effectuer des opérations sur Oracle E-Business Suite à l’aide du modèle de canal WCF, vous devez disposer du message de demande spécifique à l’opération. Le message de demande d’effectuer une opération d’insertion sur la table d’interface MS_SAMPLE_EMPLOYEE ressemble à ce qui suit :
<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>
Ce message de demande insère un enregistrement avec les détails suivants :
Employee Number = 10050
Name = Tom Smith
Designation = Manager
Salary = 500000
Vous devez copier le message dans un fichier, par exemple InsertRequest.xml. Ce fichier est utilisé dans cet exemple pour envoyer le message de demande à Oracle E-Business Suite à l’aide de l’adaptateur Oracle E-Business. Pour plus d’informations sur le schéma de message pour les opérations sur la table, consultez Schémas de message pour les opérations d’insertion, de mise à jour, de suppression et de sélection.
Création d’une application de canal WCF
Cette section fournit des instructions sur la création d’une application de canal WCF pour effectuer une opération d’insertion dans la table d’interface MS_SAMPLE_EMPLOYEE.
Pour créer une application de canal WCF pour insérer des enregistrements dans la table
Créez un projet Visual C# dans Visual Studio. Pour cette rubrique, créez une application console.
Dans le Explorateur de solutions, ajoutez une référence à
Microsoft.Adapters.OracleEBS
,Microsoft.ServiceModel.Channels
,System.ServiceModel
etSystem.Runtime.Serialization
.Ouvrez le fichier Program.cs et ajoutez les espaces de noms suivants :
Microsoft.Adapters.OracleEBS
Microsoft.ServiceModel.Channels
System.ServiceModel
System.ServiceModel.Channels
System.Xml
Créez la liaison et le point de terminaison.
OracleEBSBinding binding = new OracleEBSBinding(); EndpointAddress address = new EndpointAddress("oracleebs://ebs_instance_name");
É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 d’application, vous spécifiez les propriétés de liaison OracleUserName, OraclePassword et OracleEBSResponsibilityName . Pour plus d’informations sur le contexte d’application, consultez Définir le contexte d’application.
binding.OracleUserName = "myOracleEBSUserName"; binding.OraclePassword = "myOracleEBSPassword"; binding.OracleEBSResponsibilityName = "myOracleEBSResponsibility";
Créez et ouvrez la fabrique de canaux. Cette application envoie un message de demande à Oracle E-Business Suite et reçoit une réponse. Vous devez donc implémenter l’interface 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();
Créez et ouvrez le canal.
IRequestChannel channel; try { channel = factory.CreateChannel(); channel.Open(); } catch (Exception ex) { Console.WriteLine("Exception :" + ex.Message); throw; }
Créez et envoyez le message de demande.
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; }
Lors de la création du message de demande, vous devez spécifier l’action de message qui indique l’action que l’adaptateur effectue sur la table d’interface. Pour effectuer une opération d’insertion sur la table MS_SAMPLE_EMPLOYEE, l’action de message est
InterfaceTables/Insert/FND/APPS/MS_SAMPLE_EMPLOYEE
. Pour plus d’informations sur la façon de déterminer l’action de message pour diverses opérations sur des tables, consultez Schémas de message pour les opérations d’insertion, de mise à jour, de suppression et de sélection.Obtenez le message de réponse.
XmlReader readerOut = messageOut.GetReaderAtBodyContents(); XmlDocument doc = new XmlDocument(); doc.Load(readerOut); doc.Save("C:\\Response.xml");
Fermez le message, le canal et la fabrique de canaux.
messageOut.Close(); channel.Close(); factory.Close();
Créez le projet. Après avoir créé le projet, vous devez copier le message de demande, InsertRequest.xml, au même emplacement que votre exécutable de projet. En règle générale, cet emplacement est \bin\Debug\ dans le répertoire de votre projet.
Exécutez l’application. Le message de réponse, Response.xml, est enregistré à l’emplacement que vous avez spécifié dans l’application. Le message de réponse contient le nombre ou les enregistrements insérés et ressemble à ce qui suit :
<InsertResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/InterfaceTables/FND/APPS/MS_SAMPLE_EMPLOYEE"> <InsertResult>1</InsertResult> </InsertResponse>
La valeur « 1 » indique qu’un enregistrement unique est inséré dans la table MS_SAMPLE_EMPLOYEE.
Voir aussi
Développer des applications Oracle E-Business Suite à l’aide du modèle de canal WCF