Interroger Oracle E-Business Suite à l’aide de procédures stockées
Vous pouvez configurer l’adaptateur Oracle E-Business pour recevoir des messages périodiques de modification des données à l’aide de procédures stockées pour interroger en permanence la base de données Oracle. Vous pouvez spécifier une procédure stockée en tant qu’instruction d’interrogation que l’adaptateur exécute régulièrement pour interroger la base de données Oracle.
Pour activer l’interrogation, vous devez spécifier certaines propriétés de liaison sur le port de réception WCF-Custom ou WCF-OracleEBS. Pour plus d’informations sur la façon dont l’adaptateur prend en charge l’interrogation, consultez Prise en charge des appels entrants à l’aide de l’interrogation. Pour plus d’informations sur la structure du message SOAP pour les opérations d’interrogation, consultez Schémas de message pour les opérations d’interrogation.
Configuration d’une opération d’interrogation avec les propriétés de liaison de l’adaptateur Oracle E-Business
Le tableau suivant récapitule les propriétés de liaison de l’adaptateur Oracle E-Business que vous utilisez pour configurer l’adaptateur afin de recevoir des messages de modification de données. Vous devez spécifier ces propriétés de liaison lors de la configuration du port de réception WCF-Custom ou WCF-OracleEBS dans la console Administration BizTalk Server.
Binding, propriété | Description |
---|---|
InboundOperationType | Spécifie si vous souhaitez effectuer une opération d’interrogation ou de notification entrante. La valeur par défaut est Interrogation. |
PolledDataAvailableStatement | Spécifie l’instruction SQL que l’adaptateur exécute pour déterminer si des données sont disponibles pour l’interrogation. Si un enregistrement est disponible, la procédure stockée que vous avez spécifiée pour la propriété de liaison PollingInput est exécutée. |
PollingInterval | Spécifie l’intervalle, en secondes, auquel l’adaptateur Oracle E-Business exécute l’instruction spécifiée pour la propriété de liaison PolledDataAvailableStatement . La valeur par défaut est 30 secondes. L’intervalle d’interrogation détermine l’intervalle de temps entre les sondages successifs. Si l’instruction est exécutée dans l’intervalle spécifié, l’adaptateur est en veille pendant la durée restante de l’intervalle. |
PollingInput | Spécifie l’instruction d’interrogation. Pour interroger à l’aide d’une procédure stockée, vous devez spécifier l’intégralité du message de demande pour cette propriété de liaison. Le message de demande doit être le même que celui que vous envoyez à l’adaptateur pour appeler la procédure stockée en tant qu’opération sortante. La valeur par défaut est null. Vous devez spécifier une valeur pour la propriété de liaison PollingInput pour activer l’interrogation. L’instruction d’interrogation est exécutée uniquement s’il existe des données disponibles pour l’interrogation, qui sont déterminées par la propriété de liaison PolledDataAvailableStatement . |
PollingAction | Spécifie l’action pour l’opération d’interrogation. Vous pouvez déterminer l’action d’interrogation pour une opération spécifique à partir des métadonnées que vous générez pour l’opération à l’aide du complément Consume Adapter Service. |
PostPollStatement | Spécifie un bloc d’instructions qui est exécuté après l’exécution de l’instruction spécifiée par la propriété de liaison PollingInput . |
PollWhileDataFound | Spécifie si l’adaptateur Oracle E-Business ignore l’intervalle d’interrogation et exécute en continu l’instruction d’interrogation, si les données sont disponibles dans la table interrogée. Si aucune donnée n’est disponible dans la table, l’adaptateur rétablit pour exécuter l’instruction d’interrogation à l’intervalle d’interrogation spécifié. La valeur par défaut est false. |
Pour obtenir une description plus complète de ces propriétés, consultez En savoir plus sur les propriétés de liaison de l’adaptateur BizTalk pour Oracle E-Business Suite. Pour obtenir une description complète de l’utilisation de l’adaptateur Oracle E-Business pour interroger la base de données Oracle, lisez les sections suivantes.
Comment cette rubrique illustre l’interrogation
Dans cette rubrique, pour montrer comment l’adaptateur Oracle E-Business prend en charge la réception de messages de modification de données à l’aide de procédures stockées, créez un projet BizTalk et générez le schéma pour la procédure stockée que vous souhaitez utiliser pour interroger la base de données Oracle. Dans cette rubrique, nous utilisons la procédure stockée GET_ACTIVITYS pour interroger la table ACCOUNTACTIVITY. Cette procédure stockée est disponible avec le package ACCOUNT_PKG. Vous pouvez exécuter les scripts SQL fournis avec les exemples pour créer ces objets dans la base de données.
Notes
L’orchestration de cette rubrique interroge la table ACCOUNTACTIVITY, qui est une table de base de données créée en exécutant les scripts fournis avec les exemples. Vous devez effectuer des procédures similaires à celles décrites dans cette rubrique pour interroger toute autre table, y compris les tables d’interface.
Pour illustrer une opération d’interrogation, nous procédons comme suit :
Spécifiez une instruction SELECT pour la propriété de liaison PolledDataAvailableStatement afin de déterminer où la table interrogée (ACCOUNTACTIVITY) contient des données. Dans cet exemple, vous pouvez définir cette propriété de liaison comme suit :
SELECT COUNT (*) FROM ACCOUNTACTIVITY
Cela garantit que l’adaptateur exécute l’instruction d’interrogation uniquement lorsque la table ACCOUNTACTIVITY contient des enregistrements.
Exécutez une procédure stockée, GET_ACTIVITYS, en fournissant le message de demande dans le cadre de la propriété de liaison PollingInput . Cette procédure stockée récupère toutes les lignes de la table ACCOUNTACTIVITY et vous obtenez un message de réponse de l’adaptateur.
EXECUTE un bloc PL/SQL dans le cadre de la propriété de liaison PostPollStatement . Cette instruction déplace toutes les données de la table ACCOUNTACTIVITY vers une autre table de la base de données. Une fois que cela se produit, la prochaine fois que PollingInput sera exécuté, il n’extrait aucune donnée et, par conséquent, la procédure stockée GET_ACTIVITYS retournera un message de réponse vide.
Jusqu’à ce que d’autres données soient ajoutées à la table ACCOUNTACTIVITY, vous continuez à recevoir des messages de réponse vides. Vous devez donc remplir à nouveau la table ACCOUNTACTIVITY avec de nouveaux enregistrements. Pour ce faire, exécutez le script more_activity_data.sql fourni avec les exemples. Après avoir exécuté ce script, l’opération d’interrogation suivante extrait les nouveaux enregistrements insérés dans la table.
Comment recevoir des messages de modification de données à partir d’Oracle
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 les tâches procédurales suivantes décrites dans Blocs de construction pour créer des applications Oracle E-Business Suite. Pour configurer l’adaptateur pour interroger la base de données Oracle à l’aide d’une procédure stockée, ces tâches sont les suivantes :
Créez un projet BizTalk et générez le schéma pour la procédure stockée que vous souhaitez utiliser pour l’interrogation.
Créez un message dans le projet BizTalk pour recevoir des messages à partir d’une base de données Oracle.
Créez une orchestration pour recevoir des messages à partir d’une base de données Oracle et enregistrez-les dans un dossier.
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.
Important
Pour les scénarios d’interrogation entrante, vous devez toujours configurer un port de réception unidirectionnel. Les ports de réception bidirectionnel ne sont pas pris en charge pour les opérations entrantes.
Démarrez l’application BizTalk.
Cette rubrique fournit des instructions pour effectuer ces tâches.
Exemple basé sur cette rubrique
Un exemple, PollingUsingStoredProc, basé sur cette rubrique, est également fourni avec le pack d’adaptateurs BizTalk. Pour plus d’informations, consultez Exemples.
Génération d’un schéma
Vous devez générer le schéma pour l’opération GET_ACTIVITYS. Effectuez les tâches suivantes lors de la génération du schéma à l’aide du complément Consume Adapter Service.
Sélectionnez le type de contrat service (opération entrante).
Générez le schéma pour la procédure GET_ACTIVITYS .
Pour plus d’informations sur la façon de générer un schéma , consultez Parcourir, rechercher et obtenir des métadonnées pour les opérations Oracle E-Business.
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, dont le type est défini par le schéma correspondant. Une fois le schéma généré, vous devez le lier aux messages de la vue Orchestration du projet BizTalk.
Pour cette rubrique, vous devez créer un message pour recevoir des messages d’Oracle.
Effectuez les étapes suivantes pour créer des messages et les lier au schéma.
Pour créer des messages et créer un lien vers le schéma
Ajoutez une orchestration au projet BizTalk. Dans le 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.
Ouvrez la fenêtre d’affichage d’orchestration du projet BizTalk, s’il n’est pas déjà ouvert. Cliquez sur Affichage, pointez sur Autres fenêtres, puis cliquez sur Vue d’orchestration.
Dans la vue 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 de Message_1, procédez comme suit :
Propriété Pour Identificateur Tapez Receive. Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez Polling.OracleEBSBindingSchema, où Polling est le nom de votre projet BizTalk. OracleEBSBindingSchema est le schéma de réponse généré pour la procédure stockée GET_ACTIVITYS .
Important: Étant donné que l’interrogation est une opération unidirectionnelle, le schéma généré par l’adaptateur ne contient pas de nœud de réponse, et il n’y a donc qu’un seul nœud racine dans le schéma. Si vous utilisez de tels schémas pour un type de message, vous devez identifier le schéma par le nom de fichier du schéma généré.
Par exemple, si vous créez un schéma pour une opération bidirectionnelle, les nœuds du fichier de schéma avec un nomOracleEBSBindingSchema
peuvent ressembler à « Demande » et « Réponse ». Si vous souhaitez créer un message dans l’orchestration mappé au schéma de requête, vous pouvez identifier le schéma dans la liste en recherchantOracleEBSBindingSchema.Request
. Toutefois, dans le cas d’une opération d’interrogation, étant donné que le seul nœud est « Poll », il n’est pas facile d’identifier le schéma auquel vous souhaitez mapper, car les schémas avec des nœuds uniques ne sont pas répertoriés en tant que <schemafilename>.<rootnodename>. Au lieu de cela, ces schémas sont répertoriés uniquement par le nom de fichier. Dans ce cas, la seule façon d’identifier le schéma est le nom de fichier du schéma, par exemple OracleEBSBindingSchema.Le complément Consume Adapter Service génère un schéma pour les opérations entrantes et sortantes pour la procédure stockée GET_ACTIVITYS. Vous devez utiliser le schéma pour l’opération entrante pour :
Mapper le message créé dans le cadre de l’orchestration.
Pour récupérer l’action, vous devez spécifier la propriété de liaison PollingAction au moment de l’exécution.
Vous devez utiliser le schéma pour l’opération sortante afin d’obtenir le message de demande que vous devez spécifier dans le cadre de la propriété de liaison PollingInput .
Configuration de l’orchestration
Vous devez créer une orchestration BizTalk pour utiliser BizTalk Server pour recevoir des messages de modification de données basés sur l’interrogation d’Oracle. Dans cette orchestration, l’adaptateur reçoit la réponse en exécutant la procédure stockée pour laquelle vous avez spécifié le message de demande dans le cadre de la propriété de liaison PollingInput . Le message de réponse de la procédure stockée est enregistré dans un emplacement FILE. Une orchestration classique pour l’interrogation d’une base de données Oracle contient :
Recevoir et envoyer des formes pour recevoir des messages d’Oracle et les envoyer à un port FILE, respectivement.
Port de réception unidirectionnel pour recevoir des messages de la base de données Oracle.
Important
Pour les scénarios d’interrogation entrante, vous devez toujours configurer un port de réception unidirectionnel. Les ports de réception bidirectionnel ne sont pas pris en charge pour les opérations entrantes.
Port d’envoi unidirectionnel pour envoyer des réponses d’interrogation à partir d’une base de données Oracle.
Un exemple d’orchestration ressemble à ce qui suit.
Ajout de formes de message
Veillez à spécifier les propriétés suivantes pour chacune des formes de message. Les noms répertoriés dans la colonne Forme sont les 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 |
SaveMessage | Envoyer | - Définissez Nom sur SaveMessage |
Ajout de ports
Veillez à spécifier les propriétés suivantes pour chacun des ports logiques. Les noms répertoriés dans la colonne Port sont les noms des ports affichés dans l’orchestration.
Port | Propriétés |
---|---|
OracleReceivePort | - Définissez Identifier sur OracleReceivePort - Définissez Type sur OracleReceivePortType - Définir le modèle de communication sur Unidirectionnel - Définir le sens de la communication sur Réception |
SaveMessagePort | - Définissez Identifier sur SaveMessagePort - Définissez Type sur SaveMessagePortType - 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 se connecter aux ports
Le tableau suivant spécifie les propriétés et leurs valeurs que vous devez définir pour spécifier des messages pour les formes d’action et lier les messages aux ports. Les noms répertoriés dans la colonne Forme sont les noms des formes de message affichées dans l’orchestration mentionnée précédemment.
Forme | Propriétés |
---|---|
ReceiveMessage | - Définir le message sur Réception - Définissez Opération sur OracleReceivePort.Polling.Request |
SaveMessage | - Définir le message sur Réception - Définissez Opération sur SaveMessagePort.Polling.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 un 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 FILE correspondant où l’orchestration BizTalk supprimera les messages d’Oracle. Ces messages seront en réponse à l’instruction d’interrogation que vous spécifiez pour le port de réception.
Définissez un WCF-Custom physique ou WCF-OracleEBS port de réception unidirectionnel. Ce port interroge la base de données Oracle. Pour plus d’informations sur la création de ports de réception, consultez Configurer manuellement une liaison de port physique à l’adaptateur Oracle E-Business. Veillez à spécifier les propriétés de liaison suivantes pour le port de réception.
Binding, propriété Valeur InboundOperationType Définissez cette valeur sur Interrogation. PolledDataAvailableStatement Pour cet exemple, définissez cette propriété de liaison sur :
SELECT COUNT (*) FROM ACCOUNTACTIVITY
Cela garantit que l’adaptateur exécute l’instruction d’interrogation uniquement lorsque la table ACCOUNTACTIVITY contient des enregistrements.PollingAction Récupérez l’action d’interrogation à partir du schéma généré pour le message entrant pour la procédure GET_ACTIVITYS. Pour cet exemple, définissez cette propriété de liaison sur PollingPackageApis/APPS/ACCOUNT_PKG/GET_ACTIVITYS. PollingInput Pour cette propriété de liaison, spécifiez le message de demande pour appeler la procédure stockée GET_ACTIVITYS. Vous pouvez obtenir le message de demande à partir du schéma pour l’opération sortante générée par le complément Consume Adapter Service. Vous devez fournir l’intégralité du message XML comme entrée pour cette propriété de liaison. Pour cet exemple, définissez cette propriété de liaison sur :
<GET_ACTIVITYS xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/PackageApis/APPS/ACCOUNT_PKG"> <INRECS>OPEN ? FOR SELECT * FROM ACCOUNTACTIVITY</INRECS> </GET_ACTIVITYS>
La procédure stockée GET_ACTIVITYS prend un curseur REF d’entrée comme paramètre.PostPollStatement Spécifiez l’instruction post-sondage pour déplacer toutes les données de la table ACCOUNTACTIVITY vers une autre table. Pour cet exemple, définissez cette propriété de liaison sur :
BEGIN ACCOUNT_PKG.PROCESS_ACTIVITY(); END;
Pour plus d’informations sur les différentes propriétés de liaison, consultez En savoir plus sur les propriétés de liaison de l’adaptateur BizTalk pour Oracle E-Business Suite.
Important
Si vous interrogez une table d’interface, 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 d’application.
Notes
Nous vous recommandons de configurer le niveau d’isolation des transactions et le délai d’expiration de la transaction lors de l’exécution d’opérations entrantes à l’aide de l’adaptateur Oracle E-Business. Pour ce faire, ajoutez le comportement du service lors de la configuration du port de réception WCF-Custom ou WCF-OracleEBS. Pour obtenir des instructions sur l’ajout du comportement du service, consultez Configurer le niveau d’isolation des transactions et le délai d’expiration des transactions avec Oracle E-Business Suite.
Démarrage de l’application
Vous devez démarrer l’application BizTalk pour interroger 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 WCF-Custom ou WCF-OracleEBS port de réception unidirectionnel, qui interroge Oracle à l’aide de la procédure stockée spécifiée pour la propriété de liaison PollingInput , est en cours d’exécution.
Le port d’envoi FILE, qui reçoit les messages de 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, l’ensemble d’actions suivant se produit, dans la même séquence :
L’adaptateur exécute le PolledDataAvailableStatement qui retourne une valeur positive indiquant que l’adaptateur doit exécuter l’instruction spécifiée pour la propriété de liaison PollingInput .
L’adaptateur exécute la procédure stockée GET_ACTIVITYS spécifiée pour la propriété de liaison PollingInput et retourne toutes les lignes de la table ACCOUNTACTIVITY. La réponse de la base de données Oracle ressemble à ce qui suit :
<?xml version="1.0" encoding="utf-8" ?> <GET_ACTIVITYS xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/PollingPackageApis/APPS/ACCOUNT_PKG"> <OUTRECS> <OUTRECSRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ReferencedRecordTypes/APPS/ACCOUNT_PKG/GET_ACTIVITYS/APPS/GET_ACTIVITYS"> <TID>1</TID> <ACCOUNT>100001</ACCOUNT> <AMOUNT>500</AMOUNT> <DESCRIPTION /> <TRANSDATE>2008-06-21T15:52:19</TRANSDATE> <PROCESSED>n</PROCESSED> </OUTRECSRecord> <OUTRECSRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ReferencedRecordTypes/APPS/ACCOUNT_PKG/GET_ACTIVITYS/APPS/GET_ACTIVITYS"> ...... ...... </OUTRECSRecord> ...... ...... </OUTRECS> </GET_ACTIVITYS>
L’adaptateur exécute l’instruction post-interrogation, qui déplace toutes les données de la table ACCOUNTACTIVITY vers une autre table.
Après l’intervalle d’interrogation, l’adaptateur exécute à nouveau PolledDataAvailableStatement. Étant donné que la table ACCOUNTACTIVITY n’a pas d’enregistrements, PolledDataAvailableStatement ne retourne pas de valeur positive et, par conséquent, l’adaptateur n’exécute pas l’instruction spécifiée pour la propriété de liaison PollingInput . Par conséquent, le client d’adaptateur n’obtient aucun message d’interrogation.
Le client d’adaptateur n’obtient plus de messages d’interrogation tant que certains enregistrements ne sont pas explicitement insérés dans la table ACCOUNTACTIVITY. Pour insérer d’autres enregistrements, vous pouvez exécuter le script more_activity_data.sql fourni avec les exemples. Après avoir exécuté ce script, la prochaine fois que PolledDataAvailableStatement est exécuté, il retourne une valeur positive. Par conséquent, l’adaptateur exécute l’instruction d’interrogation et les clients de l’adaptateur reçoivent à nouveau un message d’interrogation.
Notes
L’adaptateur Oracle E-Business continue d’interroger jusqu’à ce que vous désactiviez explicitement le port de réception à partir de la console d’administration BizTalk Server.
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 liaisons. Une fois que vous avez généré un fichier de liaisons, vous pouvez importer les paramètres de configuration à partir du fichier afin de ne pas avoir à créer les ports d’envoi et de réception pour la même orchestration. Pour plus d’informations sur les fichiers de liaison, consultez Réutiliser les liaisons d’adaptateur SQL.
Voir aussi
Interroger Oracle E-Business Suite à l’aide de BizTalk Server