Vue d’ensemble du modèle de canal WCF avec l’adaptateur Oracle E-Business Suite
Pour appeler des opérations sur l’adaptateur Microsoft BizTalk pour Oracle E-Business Suite, votre code agit comme un client WCF et envoie des opérations sortantes à l’adaptateur. Dans le modèle de canal WCF, votre code appelle des opérations sur l’adaptateur en envoyant un message de demande sur un canal.
Pour appeler des opérations entrantes, telles que la réception de messages de modification de données basés sur l’interrogation à l’aide de l’opération d’interrogation fournie par l’adaptateur, votre code agit en tant que service WCF et reçoit l’opération entrante de l’adaptateur. En d’autres termes, votre code reçoit un message de demande de l’adaptateur sur un canal.
Les rubriques de cette section fournissent une vue d’ensemble de l’utilisation de l’adaptateur Oracle E-Business avec le modèle de canal WCF.
Vue d’ensemble du modèle de canal WCF
Les clients et les services communiquent en échangeant des messages SOAP. Le modèle de canal WCF est une abstraction de bas niveau de cet échange de messages. Il fournit des interfaces et des types qui vous permettent d’envoyer et de recevoir des messages à l’aide d’une pile de protocoles en couches appelée pile de canaux. Chaque couche de la pile est composée d’un canal, et chaque canal est créé à partir d’une liaison WCF. Au niveau de la couche la plus basse se trouve le canal de transport. Le canal de transport implémente le mécanisme de transport sous-jacent entre un service et un client et présente chaque message aux couches supérieures (et finalement à l’application consommatrice) sous la forme d’un System.ServiceModel.Message. La classe Message WCF est une abstraction d’un message SOAP. WCF fournit plusieurs interfaces de canal, appelées formes de canal, qui modélisent les modèles d’échange de messages SOAP de base, tels que demande-réponse ou unidirectionnel. Une liaison de transport WCF fournit une implémentation d’une ou plusieurs formes de canal que les couches supérieures peuvent utiliser pour envoyer et recevoir des messages. Pour plus d’informations sur le modèle de canal WCF, consultez « Vue d’ensemble du modèle de canal » à l’adresse https://go.microsoft.com/fwlink/?LinkId=82614.
L’adaptateur Oracle E-Business est une liaison de transport personnalisée WCF qui expose un artefact Oracle E-Business Suite en tant que service WCF.
Formes de canal prises en charge pour l’adaptateur Oracle E-Business Suite
L’adaptateur implémente les formes de canal WCF suivantes :
IRequestChannel (System.ServiceModel.Channels.IRequestChannel). L’interface IRequestChannel implémente le côté client d’un échange de messages demande-réponse. Vous pouvez utiliser un IRequestChannel pour effectuer des opérations pour lesquelles vous souhaitez utiliser une réponse, par exemple pour exécuter une requête SELECT sur une table d’interface.
IOutputChannel (System.ServiceModel.Channels.IOutputChannel). Cette forme implémente le côté client d’un échange de messages unidirectionnel. Vous pouvez utiliser un IOutputChannel pour appeler une opération pour laquelle vous n’avez pas besoin d’utiliser une réponse, par exemple pour appeler une procédure qui n’a pas de paramètres OUT.
Important
Tous les appels sous-jacents de l’adaptateur au client Oracle sont synchrones. Cela inclut les appels au client Oracle qui sont le résultat d’opérations appelées sur un IOutputChannel. Lorsque vous utilisez un IOutputChannel, l’adaptateur ignore la réponse reçue du client Oracle.
IInputChannel (System.ServiceModel.Channels.IInputChannel). Cette forme implémente le côté service d’un échange de messages unidirectionnel. Vous utilisez un IInputChannel pour recevoir des messages entrants de l’adaptateur.
Comme toute liaison WCF, l’adaptateur Oracle E-Business utilise un modèle de fabrique pour fournir des canaux au code d’application. Vous utilisez un objet Microsoft.Adapters.OracleEBSBinding pour créer des instances de :
System.ServiceModel.ChannelFactory<IRequestChannel> pour fournir des canaux IRequestChannel que vous pouvez utiliser pour appeler des opérations demande-réponse sur l’adaptateur.
System.ServiceModel.ChannelFactory<IOutputChannel> pour fournir des canaux IOutputChannel que vous pouvez utiliser pour appeler des opérations unidirectionnelles sur l’adaptateur.
System.ServiceModel.IChannelListener<IInputChannel> pour fournir des canaux IInputChannel que vous pouvez utiliser pour recevoir des messages entrants de l’adaptateur.
Création de messages pour la solution d’entreprise Oracle Enterprise dans le modèle de canal WCF
Dans WCF, la classe System.ServiceModel.Channels.Message fournit une représentation en mémoire d’un message SOAP. Vous créez un message instance en appelant la méthode statique Message.Create.
Le message SOAP comporte deux parties importantes que vous devez spécifier lorsque vous créez un message instance à envoyer à l’adaptateur Oracle E-Business.
L’action de message est une chaîne qui fait partie de l’en-tête de message SOAP. L’action de message identifie l’opération qui doit être appelée sur Oracle E-Business Suite. L’action de message suivante est spécifiée pour appeler le programme simultané de l’interface client sous l’application Clients dans Oracle E-Business Suite :
ConcurrentPrograms/AR/RACUST
.Le corps du message contient les données de paramètre pour l’opération. Le corps du message est composé d’un code XML bien formé qui correspond au schéma de message attendu par l’adaptateur Oracle E-Business pour l’opération demandée. Le corps du message suivant spécifie un message de demande pour appeler le programme simultané de l’interface client .
<RACUST xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ConcurrentPrograms/AR"> <Description>Customer Interface Program</Description> <StartTime></StartTime> <CREATE_RECIPROCAL_CUSTOMER>Yes</CREATE_RECIPROCAL_CUSTOMER> <ORG_ID>203</ORG_ID> </RACUST>
Pour plus d’informations sur les schémas de message de l’adaptateur Oracle E-Business et les actions de message pour les opérations, consultez Messages et schémas de message pour l’adaptateur BizTalk pour Oracle E-Business Suite.
La méthode Create est surchargée et offre de nombreuses options différentes pour fournir le corps du message. Le code suivant montre comment créer un message instance à l’aide d’un XmlReader pour fournir le corps du message. Dans ce code, le corps du message est lu à partir d’un fichier.
XmlReader readerIn = XmlReader.Create("ConcProgRequest.xml");
Message messageIn = Message.CreateMessage(MessageVersion.Default,
"ConcurrentPrograms/AR/RACUST",
readerIn);
où, ConProgRequest.xml contient le message de demande.
Important
Vous devez fournir une action de message dans votre instance Message. Cette opération est généralement effectuée lors de la création de l’instance Message.
Voir aussi
Développer des applications Oracle E-Business Suite à l’aide du modèle de canal WCF