Opérations ExecuteReader, ExecuteScalar ou ExecuteNonQuery dans Oracle E-Business Suite
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 SQL sur une base de données Oracle. Ces opérations diffèrent en fonction du type de réponse que vous obtenez pour l’instruction SQL. 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 avec BizTalk Server. Vous pouvez suivre le même ensemble de procédures que celui décrit dans cette rubrique pour effectuer des opérations ExecuteNonQuery et ExecuteScalar .
Procédure d’appel d’une opération ExecuteReader sur Oracle Database
L’exécution d’une opération sur une base de données Oracle à l’aide de l’adaptateur Oracle E-Business avec BizTalk Server implique des tâches procédurales décrites dans Blocs de construction pour créer des applications Oracle E-Business Suite. Pour appeler l’opération ExecuteReader sur une base de données Oracle, ces tâches sont les suivantes :
Créez un projet BizTalk et générez le schéma pour l’opération ExecuteReader .
Créez des messages dans le projet BizTalk pour envoyer et recevoir des messages à partir d’une base de données Oracle.
Créez une orchestration pour appeler l’opération sur la base de données Oracle.
Générez et déployez le projet BizTalk.
Configurez l’application BizTalk en créant des ports d’envoi et de réception physiques.
Démarrez l’application BizTalk.
Cette rubrique fournit des instructions pour effectuer ces tâches.
Génération d’un schéma
Cette rubrique montre comment appeler l’opération ExecuteReader sur une base de données Oracle à l’aide de l’adaptateur Oracle E-Business avec BizTalk Server. L’opération ExecuteReader prend n’importe quelle instruction SQL en tant que paramètre et retourne le jeu de résultats de l’opération en tant que tableau de DataSet. Pour cette rubrique, nous exécutons une instruction SELECT sur la table ACCOUNTACTIVITY à l’aide de l’opération ExecuteReader . La table ACCOUNTACTIVITY est créée en exécutant les scripts fournis avec les exemples. Pour plus d’informations sur le script, consultez Exemples.
Pour montrer comment appeler l’opération ExecuteReader , le schéma est généré pour l’opération ExecuteReader . Vous devez créer un projet BizTalk et utiliser le complément Consume Adapter Service pour générer le schéma. Pour plus d’informations sur la génération de schémas, consultez Récupération des métadonnées pour les opérations Oracle E-Business Suite dans Visual Studio.
Définition des messages et des types de messages
Le schéma que vous avez généré précédemment décrit les « types » requis pour les messages dans l’orchestration. Un message est généralement une variable, du type défini par le schéma correspondant. Vous devez maintenant créer des messages pour l’orchestration et les lier aux schémas que vous avez générés à l’étape précédente.
Pour créer des messages et créer un lien vers le schéma
Ajoutez une orchestration au projet BizTalk. À partir de Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet BizTalk, pointez sur Ajouter, puis cliquez sur Nouvel élément. Tapez un nom pour l’orchestration BizTalk, puis cliquez sur Ajouter.
Si la fenêtre Vue Orchestration du projet BizTalk n’est pas déjà ouverte, ouvrez-la. Pour ce faire, cliquez sur Affichage, pointez sur Autres fenêtres, puis cliquez sur Vue d’orchestration.
En mode Orchestration, cliquez avec le bouton droit sur Messages, puis cliquez sur Nouveau message.
Cliquez avec le bouton droit sur le message nouvellement créé, puis sélectionnez Fenêtre Propriétés.
Dans le volet Propriétés du Message_1, procédez comme suit :
Propriété Pour Identificateur Saisissez Request
Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez Execute_Reader.GenericOperation.ExecuteReader, où Execute_Reader est le nom de votre projet BizTalk. GenericOperation est le schéma généré pour l’opération ExecuteReader . Répétez l’étape 2 pour créer un nouveau message. Dans le volet Propriétés du nouveau message, procédez comme suit :
Propriété Pour Identificateur Saisissez Response
Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez Execute_Reader.GenericOperation.ExecuteReaderResponse.
Configuration de l’orchestration
Vous devez créer une orchestration BizTalk pour utiliser BizTalk Server pour effectuer une opération sur une base de données Oracle. Dans cette orchestration, vous supprimez un message de demande à un emplacement de réception défini. L’adaptateur Oracle E-Business consomme ce message et le transmet à la base de données Oracle. La réponse de la base de données Oracle est enregistrée dans un autre emplacement. Une orchestration classique pour appeler des opérations génériques telles qu’ExecuteReader contient :
Formes Envoyer et recevoir pour envoyer et recevoir des messages à partir d’une base de données Oracle.
Port de réception bidirectionnel pour envoyer et recevoir des messages à partir d’une base de données Oracle.
Port d’envoi unidirectionnel pour envoyer la réponse de la base de données Oracle à un dossier.
Un exemple d’orchestration pour appeler une opération ExecuteReader ressemble à ce qui suit :
Ajout de formes de message
Vous devez configurer les propriétés suivantes pour chacune des formes de message. Les noms répertoriés dans la colonne Forme correspondent aux noms des formes de message affichées dans l’orchestration qui vient d’être mentionnée.
Forme | Type de forme | Propriétés |
---|---|---|
ReceiveMessage | Recevoir | - Définissez Nom sur ReceiveMessage - Définissez Activer sur True |
SendMessage | Envoyer | - Définissez Nom sur SendMessage |
ReceiveResponse | Recevoir | - Définissez Nom sur ReceiveResponse - Définissez Activer sur False |
SendResponse | Envoyer | - Définissez Nom sur SendResponse |
Ajout de ports
Pour chacun des ports logiques, configurez les propriétés dans le tableau ci-dessous. Les noms répertoriés dans la colonne Port correspondent aux noms des ports affichés dans l’orchestration.
Port | Propriétés |
---|---|
MessageIn | - Définissez Identificateur sur MessageIn - Définissez Type sur MessageInType - Définir le modèle de communication sur Unidirectionnel - Définir le sens de communication sur réception |
LOBPort | - Définissez Identificateur sur LOBPort - Définissez Type sur LOBPortType - Définir le modèle de communication sur Requête-réponse - Définir le sens de la communication sur Envoyer-Recevoir |
ResponseOut | - Définissez Identifier sur ResponseOut - Définissez Type sur ResponseOutType - Définir le modèle de communication sur Unidirectionnel - Définir le sens de la communication sur Envoyer |
Spécifier des messages pour les formes d’action et les connecter aux ports
Le tableau suivant spécifie les valeurs de propriété permettant de spécifier les messages pour les formes d’action et de lier les messages aux ports. Les noms répertoriés dans la colonne Forme correspondent aux noms des formes de message, comme indiqué précédemment dans le diagramme d’orchestration.
Une fois que vous avez configuré ces propriétés, les formes de message et les ports sont connectés, et votre orchestration est terminée.
Ensuite, vous devez maintenant générer la solution BizTalk et la déployer sur BizTalk Server. Pour plus d’informations, consultez Génération et exécution d’orchestrations.
Forme | Propriétés |
---|---|
ReceiveMessage | - Définir message sur Demande - Définissez Opération sur MessageIn.Exec_Reader.Request |
SendMessage | - Définir message sur Demande - Définissez Opération sur LOBPort.Exec_Reader.Request |
ReceiveResponse | - Définir Message sur Réponse - Définissez Opération sur LOBPort.Exec_Reader.Response |
SendResponse | - Définir Message sur Réponse - Définissez Opération sur ResponseOut.Exec_Reader.Request |
Une fois que vous avez spécifié ces propriétés, les formes et les ports de message sont connectés, et votre orchestration est terminée.
Vous devez maintenant générer la solution BizTalk et la déployer sur BizTalk Server. Pour plus d’informations, consultez Génération et exécution d’orchestrations.
Configuration de l’application BizTalk
Une fois que vous avez déployé le projet BizTalk, l’orchestration que vous avez créée précédemment est répertoriée sous le volet Orchestrations de la console d’administration BizTalk Server. Vous devez utiliser la console d’administration BizTalk Server pour configurer l’application. Pour obtenir une procédure pas à pas, consultez Procédure pas à pas : déploiement d’une application BizTalk de base.
La configuration d’une application implique :
Sélection d’un hôte pour l’application.
Mappage des ports que vous avez créés dans votre orchestration à des ports physiques dans la console d’administration BizTalk Server. Pour cette orchestration, vous devez :
Définissez un emplacement sur le disque dur et un port de fichier correspondant où vous supprimerez un message de demande. L’orchestration BizTalk consomme le message de demande et l’envoie à la base de données Oracle.
Définissez un emplacement sur le disque dur et un port de fichier correspondant où l’orchestration BizTalk supprimera le message de réponse contenant la réponse de la base de données Oracle.
Définissez un port d’envoi WCF-OracleEBS ou WCF-Custom physique pour envoyer des messages à la base de données Oracle. Vous devez également spécifier l’action dans le port d’envoi. Pour plus d’informations sur la création de ports d’envoi, consultez Configuration manuelle d’une liaison de port physique à l’adaptateur Oracle E-Business .
Important
Dans le cadre d’opérations génériques, si vous exécutez des opérations sur des objets, par exemple des procédures stockées, des fonctions, des tables d’interface ou des vues d’interface, qui appartiennent à une application Oracle E-Business Suite, vous devez définir le contexte de l’application en spécifiant les propriétés de liaison requises. Pour plus d’informations sur la définition du contexte d’application, consultez Définir le contexte de l’application.
Vous pouvez définir le contexte de l’application en spécifiant les propriétés de liaison ou en définissant les propriétés de contexte de message exposées par l’adaptateur Oracle E-Business. Pour obtenir des instructions sur la définition des propriétés de liaison, consultez Configurer les propriétés de liaison pour Oracle E-Business Suite. Pour obtenir des instructions sur la définition du contexte d’application à l’aide des propriétés de contexte de message, consultez Configurer le contexte d’application à l’aide des propriétés du contexte de message dans Oracle E-Business Suite.
Notes
La génération du schéma à l’aide du complément de projet BizTalk du service d’adaptateur de consommation crée également un fichier de liaison qui contient des informations sur les ports et les actions à définir pour ces ports. Vous pouvez importer ce fichier de liaison à partir de la console d’administration BizTalk Server pour créer des ports d’envoi (pour les appels sortants) ou des ports de réception (pour les appels entrants). Pour plus d’informations, consultez Configurer une liaison de port physique à l’aide d’un fichier de liaison de port vers Oracle E-Business Suite.
Démarrage de l’application
Vous devez démarrer l’application BizTalk avant d’appeler l’opération ExecuteReader sur la base de données Oracle. Pour obtenir des instructions sur le démarrage d’une application BizTalk, consultez Guide pratique pour démarrer une orchestration.
À ce stade, assurez-vous que :
Le port de réception FILE pour recevoir des messages de demande pour l’orchestration est en cours d’exécution.
Le port d’envoi FILE pour recevoir les messages de réponse de l’orchestration est en cours d’exécution.
Le port d’envoi WCF-Custom ou WCF-OracleEBS pour envoyer des messages à la base de données Oracle est en cours d’exécution.
L’orchestration BizTalk pour l’opération est en cours d’exécution.
Exécution de l’opération
Après avoir exécuté l’application, vous devez supprimer un message de demande à l’emplacement de réception FILE. Le schéma du message de demande doit être conforme au schéma de l’opération ExecuteReader que vous avez générée précédemment. Par exemple, le message de demande d’exécution d’une instruction SELECT à l’aide d’une opération ExecuteReader est :
<ExecuteReader xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/GenericOperation/">
<Query>SELECT * FROM ACCOUNTACTIVITY</Query>
</ExecuteReader>
Consultez Schémas de message pour les opérations ExecuteReader, ExecuteScalar et ExecuteNonQuery pour plus d’informations sur le schéma de message de requête pour appeler une opération ExecuteReader à l’aide de l’adaptateur Oracle E-Business.
L’orchestration consomme le message et l’envoie à la base de données Oracle. La réponse de la base de données Oracle est enregistrée à l’autre emplacement FILE défini dans le cadre de l’orchestration. La réponse de l’opération ExecuteReader contient un jeu de résultats sous la forme d’un DataSet. Par exemple, la réponse de la base de données Oracle pour le message de demande précédent est la suivante :
<?xml version="1.0" encoding="utf-8" ?>
<ExecuteReaderResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/GenericOperation/">
<ExecuteReaderResult>
<xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element msdata:IsDataSet="true" name="NewDataSet">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="NewTable">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="TID" type="xs:decimal" />
<xs:element minOccurs="0" name="ACCOUNT" type="xs:decimal" />
<xs:element minOccurs="0" name="AMOUNT" type="xs:decimal" />
<xs:element minOccurs="0" name="DESCRIPTION" type="xs:string" />
<xs:element minOccurs="0" name="TRANSDATE" type="xs:dateTime" />
<xs:element minOccurs="0" name="PROCESSED" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet xmlns="">
<NewTable>
<TID>1</TID>
<ACCOUNT>100001</ACCOUNT>
<AMOUNT>500</AMOUNT>
<DESCRIPTION />
<TRANSDATE>2008-08-04T13:04:20</TRANSDATE>
<PROCESSED>n</PROCESSED>
</NewTable>
<NewTable>
......
......
</NewTable>
......
......
</NewDataSet>
</diffgr:diffgram>
</ExecuteReaderResult>
</ExecuteReaderResponse>
Bonnes pratiques
Une fois que vous avez déployé et configuré le projet BizTalk, vous pouvez exporter les paramètres de configuration vers un fichier XML appelé fichier de liaison. Après avoir généré un fichier de liaison, vous pouvez importer les paramètres de configuration à partir du fichier, de sorte que vous n’avez pas besoin de créer des éléments tels que les ports d’envoi et les ports de réception pour la même orchestration. Pour plus d’informations sur les fichiers de liaison, consultez Réutiliser les liaisons d’adaptateurs avec Oracle E-Business Suite.
Voir aussi
Développer des applications BizTalk à l’aide de l’adaptateur Oracle E-Business Suite