Appeler des programmes simultanés dans Oracle E-Business Suite
Oracle E-Business Suite expose des programmes simultanés que vous pouvez exécuter pour effectuer des opérations spécifiques sur des applications Oracle. Chaque application Oracle a un ensemble de programmes simultanés standard (qui sont identiques pour toutes les opérations) et certains programmes simultanés spécifiques à une application Oracle. L’adaptateur Oracle E-Business expose tous les programmes simultanés en tant qu’opérations que les clients de l’adaptateur peuvent appeler. Pour plus d’informations sur la façon dont l’adaptateur prend en charge les programmes simultanés, consultez Opérations sur les programmes simultanés. Pour plus d’informations sur la structure des messages SOAP pour l’appel de programmes simultanés, consultez Schémas de message pour les programmes simultanés.
Notes
Pour les programmes simultanés qui n’exposent pas leurs métadonnées, l’adaptateur Oracle E-Business expose 100 paramètres facultatifs pour chacun de ces programmes simultanés. Pour appeler correctement ces programmes simultanés, l’utilisateur doit consulter la documentation d’Oracle E-Business Suite pour déterminer les paramètres d’un programme simultané qui nécessitent une valeur, puis les spécifier. Un exemple d’un tel programme simultané est l’importation de journal (nom réel : GLLEZL) dans l’application Registre général .
Prérequis
Vous devez avoir effectué les étapes décrites dans Prérequis pour créer des applications Oracle E-Business Suite.
Comment appeler des programmes simultanés dans des applications Oracle
L’exécution d’une opération sur Oracle E-Business Suite à 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 un programme simultané, ces tâches sont les suivantes :
Créez un projet BizTalk et générez le schéma pour le programme simultané que vous souhaitez appeler.
Créez des messages dans le projet BizTalk pour l’envoi et la réception de messages vers et à partir d’Oracle E-Business Suite.
Créez une orchestration pour appeler le programme simultané.
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 le programme simultané de l’interface client à partir de l’application Clients . Cette application est disponible avec l’application Oracle E-Business Suite par défaut. Ce programme simultané retourne un ID de demande. Pour case activée la status du programme simultané, nous exécutons le Get_Status programme simultané en transmettant l’ID de demande reçu dans la réponse du programme simultané de l’interface client.
Dans cette rubrique, nous générons un schéma pour l’interface client et Get_Status programmes simultanés. Pour plus d’informations sur la façon de générer un schéma, consultez Récupération de 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, dont le type est défini par le schéma correspondant. Vous devez maintenant créer des messages pour l’orchestration et les lier à des schémas que vous avez générés à l’étape précédente.
Dans cette orchestration, vous devez créer quatre messages : un ensemble de réception-réponse pour appeler le programme simultané de l’interface client et l’autre ensemble de réception-réponse pour appeler le Get_Status programme simultané.
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 ConcurrentProgram.OracleEBSBindingSchema.RACUST, où ConcurrentProgram est le nom de votre projet BizTalk. OracleEBSBindingSchema est le schéma généré pour appeler le programme simultané d’interface client . Note: RACUST est le nom réel du programme simultané de l’interface client . Alors que le complément Consume Adapter Service affiche le nom convivial (Interface client), le schéma contient le nom réel du programme simultané. Répétez l’étape 3 pour créer trois nouveaux messages. Dans le volet Propriétés du nouveau message, procédez comme suit :
Définissez Identificateur sur Définissez Type de message sur response ConcurrentProgram.OracleEBSBindingSchema.RACUSTResponse Get_StatusRequest ConcurrentProgram.OracleEBSBindingSchema1.GetStatusForConcurrentProgram Get_StatusResponse ConcurrentProgram.OracleEBSBindingSchema1.GetStatusForConcurrentProgramResponse
Configuration de l’orchestration
Vous devez créer une orchestration BizTalk pour utiliser BizTalk Server pour appeler des programmes simultanés dans Oracle E-Business Suite. Dans cette orchestration, vous supprimez un message de demande à un emplacement de réception défini. L’orchestration consomme ce message et le transmet à Oracle E-Business Suite pour appeler le programme simultané d’interface client . La réponse pour le programme simultané est reçue d’Oracle et est enregistrée à un autre emplacement. Le message de réponse contient un ID de demande. L’orchestration inclut une forme de message de construction pour extraire l’ID de demande de la réponse et construire un message conforme au schéma du Get_Status programme simultané. Le message d’appel du programme simultané Get_Status est envoyé à Oracle E-Business Suite avec l’ID de demande en tant que paramètre. Vous devez inclure des formes d’envoi et de réception, des formes de construction de message et des ports pour envoyer des messages à Oracle et recevoir des réponses.
En règle générale, l’exécution simultanée du programme d’interface client prend un certain temps. Vous devez donc attendre avant d’exécuter le Get_Status simultanément. Vous pouvez automatiser cela en ajoutant une forme Delay .
Un exemple d’orchestration ressemble à ce qui suit :
Ajout de formes de message
Spécifiez les propriétés suivantes pour chacune des formes de message. Les noms répertoriés dans la colonne Forme correspondent aux formes de message telles qu’affichées dans l’orchestration précédente.
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 |
SendGetStatus | Envoyer | - Définissez Nom sur SendGetStatus |
ReceiveStatusResponse | Recevoir | - Définissez Name sur ReceiveStatusResponse - Définissez Activer sur False |
SaveStatusResponse | Envoyer | - Définissez Name sur SaveStatusResponse |
Ajout d’une forme de délai
Si vous souhaitez que l’orchestration attende entre l’appel de l’interface client et Get_Status programmes simultanés, vous devez ajouter une forme Delay à l’orchestration. Vous devez ajouter une forme Delay après que l’orchestration a copié la réponse du programme simultané de l’interface client sur un port d’envoi FILE. Vous devez donc ajouter une forme Delay après la forme SendResponse .
Dans la forme Delay , vous pouvez spécifier l’intervalle de temps pendant lequel l’orchestration doit attendre avant de continuer en ajoutant le code suivant à l’Éditeur d’expressions pour la forme Delay :
new System.TimeSpan(0,2,0)
En ajoutant ce code, l’orchestration attend deux minutes avant de continuer. Pour plus d’informations sur la configuration de la forme Delay , consultez How to Configure the Delay Shape.
Ajout de la forme de message de construction
La réponse d’Oracle E-Business Suite pour le programme simultané d’interface client contient un ID de demande. Pour obtenir la status du programme simultané, vous devez passer le même ID de demande en tant que paramètre au Get_Status programme simultané. Pour ce faire, dans l’orchestration, vous devez inclure une forme Construire un message et une forme d’affectation de message . L’objectif de la forme Construire un message est le suivant :
Pour extraire l’ID de demande de la réponse reçue pour le programme simultané de l’interface client .
Pour construire un message conforme au schéma de message pour le programme simultané Get_Status .
Pour la forme Construire un message , définissez la propriété Message Construit surGet_StatusRequest.
Pour la forme Affectation de message, ajoutez la valeur ci-dessous. Avant d’ajouter le code, vous devez disposer des informations suivantes :
XmlDoc = new System.Xml.XmlDocument();
XmlDoc.LoadXml("<GetStatusForConcurrentProgram xmlns='http://schemas.microsoft.com/OracleEBS/2008/05/ConcurrentPrograms/AR'><RequestId /></GetStatusForConcurrentProgram>");
Get_StatusRequest = XmlDoc;
Get_StatusRequest.RequestId = xpath(Response,"string(/*[local-name()='RACUSTResponse']/*[local-name()='RACUSTResult']/text())");
Ajout de ports
Pour configurer les ports, vous spécifiez les propriétés répertoriées dans le tableau ci-dessous pour chacun des ports logiques. 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 Identifier sur MessageIn - Définissez Type sur MessageInType - Définir le modèle de communication sur Unidirectionnel - Définir le sens de la communication sur Réception |
LOBPort | - Définissez Identifier 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 - Créer une opération Cust_Interface. Cette opération est utilisée pour le programme simultané d’interface client . - Créer une opération Get_Status. Cette opération est utilisée pour le Get_Status programme simultané. |
LOBPort_GetStatus | - Définissez Identificateur sur LOBPort_GetStatus - Définissez Typesur LOBPort_GetStatusType - Définir le modèle de communication sur Requête-réponse - Définir le sens de la communication sur Envoyer-Recevoir |
Spécifier des messages pour les formes d’action et se connecter aux ports
Le tableau suivant spécifie les valeurs de propriété permettant de spécifier des messages pour les formes d’action et de les lier aux ports. Les noms répertoriés dans la colonne Forme correspondent aux noms des formes de message, comme indiqué dans le diagramme d’orchestration.
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, puis la déployer sur un 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.Cust_Interface.Request |
SendMessage | - Définir message sur Demande - Définissez Operation sur LOBport.Cust_Interface.Request |
ReceiveResponse | - Définir Message sur Réponse - Définissez Opération sur LOBport.Cust_Interface.Response |
SendResponse | - Définir Message sur Réponse - Définissez Opération sur ResponseOut.Cust_Interface.Request |
SendGetStatus | - Définissez Message sur Get_StatusRequest - Définissez Opérationsur LOBPort_GetStatus.Get_Status.Request |
ReceiveStatusResponse | - Définissez Message sur Get_StatusResponse - Définissez Opérationsur LOBPort_GetStatus.Get_Status.Response |
SaveStatusResponse | - Définissez Message sur Get_StatusResponse - Définissez Opération sur ResponseOut.Get_Status.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, puis 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 de fichier correspondant où vous supprimerez un message de demande. L’orchestration BizTalk consomme le message de requête et l’envoie à Oracle E-Business Suite.
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 d’Oracle E-Business Suite.
Définissez deux ports d’envoi de WCF-Custom physiques ou WCF-OracleEBS : l’un pour envoyer des messages à Oracle E-Business Suite pour exécuter le programme simultané de l’interface client et l’autre pour exécuter le programme simultané Get_Status . Vous devez également spécifier l’action dans les ports d’envoi. Pour plus d’informations sur la création de ports, consultez Configuration manuelle d’une liaison de port physique à l’adaptateur Oracle E-Business.
Pour appeler des programmes simultanés à l’aide de l’adaptateur Oracle E-Business, vous devez définir le contexte d’application approprié dans lequel l’opération est appelée. L’adaptateur Oracle E-Business fournit certaines propriétés de liaison pour spécifier le contexte de l’application pour toute opération. Vous devez définir ces propriétés de liaison sur le port WCF-Custom ou WCF-OracleEBS utilisé pour appeler des programmes simultanés.
Si la propriété de liaison ClientCredentialType est définie sur Base de données, vous devez spécifier les propriétés de liaison suivantes pour définir le contexte des applications.
Binding, propriété Valeur OracleUserName Spécifiez le nom d’un utilisateur Oracle E-Business Suite. L’adaptateur Oracle E-Business ne conserve pas la casse de la valeur que vous entrez pour la propriété de liaison OracleUserName lorsqu’elle se connecte à Oracle E-Business Suite. Le nom d’utilisateur est transmis à Oracle E-Business Suite à l’aide des règles standard de SQL*Plus. Toutefois, si vous souhaitez conserver la casse du nom d’utilisateur ou si vous souhaitez entrer un nom d’utilisateur contenant des caractères spéciaux, vous devez spécifier la valeur entre guillemets doubles. OraclePassword Mot de passe de l’utilisateur Oracle E-Business Suite. L’adaptateur Oracle E-Business ne conserve pas la casse de la valeur que vous entrez pour la propriété de liaison OraclePassword lorsqu’elle se connecte à Oracle E-Business Suite. Le mot de passe est transmis à Oracle E-Business Suite à l’aide des règles standard de SQL*Plus. Toutefois, si vous souhaitez conserver la casse du mot de passe ou si vous souhaitez entrer un mot de passe contenant des caractères spéciaux, vous devez spécifier la valeur entre guillemets doubles. OracleEBSResponsibilityName Responsabilité associée à l’utilisateur Oracle E-Business Suite. Si la propriété de liaison ClientCredentialType est définie sur EBusiness, vous devez avoir déjà spécifié les informations d’identification Oracle E-Business lors de l’établissement de la connexion. Dans ce cas, vous devez uniquement spécifier la valeur pour la propriété de liaison OracleEBSResponsibilityName .
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. Pour plus d’informations sur la façon dont l’adaptateur prend en charge la définition du contexte d’application, consultez Définir le contexte de l’application.
Notes
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 les programmes simultanés. 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 appeler le programme simultané de l’interface client est en cours d’exécution.
Port d’envoi WCF-Custom ou WCF-OracleEBS pour appeler le Get_Status programme simultané 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 conforme au schéma pour appeler le programme simultané de l’interface client . Par exemple, le message de demande d’appel du programme simultané de l’interface client est le suivant :
<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>
Notes
Le message de demande d’appel d’un programme simultané nécessite certains paramètres facultatifs tels que SetOptions, SetPrintOptions et SetRepeatOptions. Le message de demande fourni ici ne contient pas ces paramètres facultatifs. Pour plus d’informations sur le message de demande complet, y compris les paramètres facultatifs, consultez Schémas de message pour les programmes simultanés.
L’orchestration consomme le message, le transmet à Oracle E-Business Suite et reçoit une réponse. Le message de réponse est enregistré à l’autre emplacement de fichier spécifié dans le cadre de l’orchestration. La réponse pour le programme simultané d’interface client ressemble à ce qui suit :
<?xml version="1.0" encoding="utf-8"?>
<RACUSTResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ConcurrentPrograms/AR">
<RACUSTResult>2794708</RACUSTResult>
</RACUSTResponse>
La réponse d’Oracle E-Business Suite contient un ID de demande. L’orchestration extrait l’ID de demande du message de réponse, construit un message pour appeler le programme simultané Get_Status et le transmet à Oracle E-Business Suite pour exécuter le Get_Status programme simultané. Une fois la réponse reçue pour le programme simultané Get_Status , elle est copiée dans le même emplacement de fichier que la première réponse. La réponse pour le programme simultané Get_Status ressemble à ce qui suit :
<?xml version="1.0" encoding="utf-8" ?>
<GetStatusForConcurrentProgramResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ConcurrentPrograms/AR">
<GetStatusForConcurrentProgramResult>true</GetStatusForConcurrentProgramResult>
<Phase>Pending</Phase>
<Status>Standby</Status>
<DevPhase>PENDING</DevPhase>
<DevStatus>STANDBY</DevStatus>
<Message>null</Message>
</GetStatusForConcurrentProgramResponse>
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 des ports d’envoi et des 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