Avant de commencer
Ce tutoriel de 40 minutes vous montre la création d'une orchestration pouvant effectuer des transactions dans une base de données compatible JDBC externe à JD Edwards EnterpriseOne. Pour interagir avec une base de données externe, une orchestration requiert une demande de service de connecteur qui comporte un script Groovy personnalisé permettant d'effectuer des opérations sur la base de données. La demande de service de connecteur utilise un enregistrement de connexion paramétrable, que vous allez également créer dans ce tutoriel, dans le but de fournir la connexion à la base de données.
Cet exemple utilise une base de données MySQL et montre comment créer le fichier de base de données requis pour effectuer les autres tâches du tutoriel.
Contexte
Dans JD Edwards EnterpriseOne Orchestrator Studio, vous pouvez créer un connecteur de base de données qui, lorsqu'il est ajouté à une orchestration, active cette dernière pour effectuer des opérations sur une base de données externe à EnterpriseOne. La base de données doit prendre en charge JDBC.
La page de conception du connecteur dans Orchestrator Studio comporte un modèle Groovy que vous pouvez utiliser pour créer un script Groovy afin d'effectuer des opérations sur la base de données. Vous devez connaître le langage script Groovy pour créer un connecteur de base de données. Toutefois, dans ce tutoriel, nous vous fournissons un exemple de script Groovy.
Environnement requis
- Orchestrator Studio version 6.1.0.0 ou ultérieure déployé dans un environnement de test JD Edwards EnterpriseOne disposant au minimum.de la version 9.2.2.1 des outils EnterpriseOne.
- Une base de données compatible JDBC, de préférence une base de données MySQL, disposant de données d'identification utilisateur et de l'accès requis pour effectuer des opérations SQL sur les données et les fichiers existants dans la base de données.
- Une configuration réseau permettant au serveur AIS (Application Interface Services) EnterpriseOne d'accéder à la base de données.
Définition du fichier dans la base de données externe
Les autres tâches de ce tutoriel dépendent de l'obtention de données spécifiques dans le fichier de base de données. Suivez les étapes ci-dessous pour ajouter un fichier comportant ces données à une base de données, de préférence une base de données MySQL.
- Dans la base de données, ajoutez un nouveau fichier nommé
vineyard_moisture
et ajoutez-lui les champs suivants :Champ
Type
NULL
Clé
DATE
char(10)
NO
PRI
LOCATION
char(10)
NO
PRI
PRECIP
float
YES
MOISTURE
float
YES
HIGH
int(11)
YES
LOW
int(11)
YES
- Ajoutez les enregistrements suivants au fichier. Vous en aurez besoin pour tester l'orchestration que vous allez créer plus tard dans ce tutoriel :
DATE LOCATION PRECIP MOISTURE HIGH LOW 12/21/2017 VIN1 0.1 0.15 61 30 12/22/2017 VIN1 0.1 0.15 55 25 12/23/2017 VIN1 0.1 0.1 54 35 12/24/2017 VIN1 0.1 0.1 56 39 12/25/2017 VIN1 0 0.15 57 35 12/26/2017 VIN1 0 0.1 61 29 12/27/2017 VIN1 0 0.1 59 30 12/28/2017 VIN1 0 0.1 63 30 12/30/2017 VIN1 0 0.1 62 34 12/31/2017 VIN1 0.06 0.2 63 30 1/1/2018 VIN1 0 0.1 57 32 1/2/2018 VIN1 0 0.1 64 35 1/3/2018 VIN1 0 0.1 63 32 1/4/2018 VIN1 0 0.1 57 30
Création d'un enregistrement paramétrable pour la connexion à la base de données
Suivez les étapes ci-dessous pour établir une connexion à la base de données. Dans la tâche suivante, vous allez créer une demande de service de connecteur utilisant cette connexion pour accéder à la base de données externe.
- Ouvrez une session dans Orchestrator Studio.
- Accédez à la page Outils, puis cliquez sur l'icône Connexions.
- Cliquez sur Nouvelle connexion.
- Dans la zone Données connexion, remplissez les champs suivants :
- Nom = Entrez un nom unique pour la connexion.
- Description = Entrez une description.
- Type = Sélectionnez Database.
- Utilisateur/rôle = Entrez le nom de l'utilisateur autorisé à exécuter l'orchestration d'origine, c'est-à-dire l'orchestration sur le système local qui appelle la base de données externe. Il peut s'agir d'un utilisateur ou d'un rôle EnterpriseOne, ou encore *PUBLIC.
- Environnement = Entrez l'environnement hébergeant les orchestrations locales.
- Dans la zone Détails connexion base données, remplissez les champs suivants :
- Connexion = Dans cet exemple, la connexion est pour une base de données MySQL. La chaîne de connexion est spécifique au type de base de données; la valeur que vous entrez peut différer selon le type de base de données.
- Utilisateur = Entrez le nom de l'utilisateur de la base de données.
- Mot passe= Entrez le mot de passe de l'utilisateur de la base de données.
- Pilote = Le pilote est spécifique au type de base de données. Pour cet exemple, le pilote MySQL était déjà installé sur le serveur AIS. Si le type de la base de données est différent, vous aurez peut-être besoin de télécharger un pilote et de vous assurer qu'il figure dans le classpath du serveur AIS.

Création d'une demande de service de connecteur au moyen de Groovy
- Dans la page d'accueil d'Orchestrator Studio, cliquez sur Demandes de service.
- Cliquez sur Création demande service, puis sélectionnez Connecteur.
- Nommez le connecteur
Insert Moisture Record
et entrez une description si vous le souhaitez. - Cliquez sur la liste déroulante Code produit et sélectionnez un code de produit de client compris entre 55 et 59.
- Cliquez sur le champ Connexion et sélectionnez la connexion que vous avez créée à la tâche précédente, qui devrait être indiquée dans la catégorie de base de données.
- Remplacez le modèle Groovy par ce script Groovy qui tentera d'insérer un enregistrement. Si l'insertion échoue, tentez de supprimer tout enregistrement en double et réessayez d'effectuer l'insertion.
- Sous l'éditeur de script, ajoutez les variables suivantes à la liste d'entrées :
VineyardID
Precipitation
Moisture Content
High Temp
Low Temp
Les entrées d'un script Groovy sont toujours des chaînes; vous pouvez effectuer des conversions dans Groovy si d'autres types sont requis.
- Ajoutez les variables suivantes à la liste de sorties sous l'éditeur de script. Les valeurs retournées sont toujours des chaînes.
Sortie Nom de variable insertError insertError - Enregistrez la demande de service.
Notez que l'éditeur de script Groovy contient un modèle Groovy de base.
Pour plus de détails sur ce processus, reportez-vous aux commentaires du script.
Ajout de la demande de service de connecteur à une orchestration
Dans cette tâche, vous allez créer une orchestration et lui ajouter une demande de service de connecteur, mappant les entrées de l'orchestration aux entrées de la demande de service de connecteur.
- Dans la page d'accueil d'Orchestrator Studio, cliquez sur l'icône Orchestrations.
- Cliquez sur Nouvelle orchestration.
- Remplissez les champs suivants :
- Orchestration =
External Database Example
- Entrée description courte =
Insert record in external database.
- Orchestration =
- Cliquez sur la liste déroulante Code produit et sélectionnez un code de produit de client compris entre 55 et 59.
- Ajoutez la demande de service de connecteur nommée Insert Moisture Record à l'orchestration :
- Au lieu d'ajouter manuellement des entrées à l'orchestration, vous pouvez les générer à partir des entrées définies dans la demande de service de connecteur. Pour ce faire, à la fin de la ligne de l'étape Demande service, cliquez sur le bouton Ajout entrées à orchestration.
- Pour mapper ces entrées, dans la zone Transformations, cliquez sur le bouton Mappage auto.
- Enregistrez l'orchestration.
- Ajoutez des sorties à l'orchestration pour retourner la valeur insertError.
a. A côté de la grille Etapes orchestration, cliquez sur Ajout étape.
b. Dans la fenêtre contextuelle Entrez le type d'étape, sélectionnez Demande service dans la liste déroulante, puis cliquez sur OK.
c. A la fin de la ligne Demande service, cliquez sur la flèche vers le bas et sélectionnez Insert Moisture Record.
Les entrées sont affichées dans la grille Entrées orchestration. Vous devez mapper ces entrées aux entrées de la demande de service de connecteur dans la grille Transformations.
A ce stade, l'orchestration doit se présenter comme suit :

a. Cliquez sur le bouton Sortie orchestration. Si ce bouton n'est pas activé, enregistrez l'orchestration pour l'activer.
b. Cliquez sur Ajouter pour voir une liste de toutes les étapes (composants de l'orchestration) de l'orchestration contenant des champs retournés.
c. Développez l'étape de la demande de service pour voir les champs retournés. La colonne Champ sortie affiche le nom de variable défini pour un champ retourné.
d. Dans la colonne Sélectionner, cochez la case à côté du champ retourné insertError.
e. Cliquez sur OK.
f. Cliquez sur l'icône Fermer.
g. Enregistrez l'orchestration.
Test de l'orchestration
Utilisez le client d'orchestration pour tester l'orchestration et vérifier qu'elle insère un enregistrement dans une base de données externe.
- Dans Orchestrator Studio, cliquez sur le lien Outils dans l'angle supérieur droit, puis cliquez sur l'icône Client orchestration.
- Connectez-vous au client d'orchestration à l'aide des mêmes données d'identification que vous avez utilisées pour accéder à Orchestrator Studio.
- Cliquez sur la liste déroulante Nom orchestration et sélectionnez External Database Example.
- Entrez les valeurs que vous souhaitez insérer dans la base de données :
- Cliquez sur le bouton Exécuter pour exécuter l'orchestration.
- Pour vérifier le succès de l'exécution de l'orchestration :
Vous pouvez entrer manuellement des valeurs dans la zone des entrées ou vous pouvez cocher la case Entrée JSON, puis copier et coller le code suivant dans la case d'entrée :
{
"inputs" : [ {
"name" : "VineyardID",
"value" : "VIN2"
}, {
"name" : "Precipitation",
"value" : "0.15"
}, {
"name" : "Moisture Content",
"value" : "0.2"
}, {
"name" : "High Temp",
"value" : "55"
}, {
"name" : "Low Temp",
"value" : "24"
} ]
}
La section Sortie doit contenir la réponse suivante :
{
"insertError" : "false"
}

La base de données doit contenir un nouvel enregistrement avec les données suivantes :
DATE | LOCATION | PRECIP | MOISTURE | HIGH | LOW |
2/2/2018 | VIN2 | 0.15 | 0.2 | 55 | 24 |
Si l'orchestration échoue parce que le fichier n'existe pas dans la base de données, la réponse doit ressembler à ce qui suit :
{
"insertError" : "Table 'testdb.vineyard_moisture' doesn't exist"
}
Remarque : Le script Groovy inclus dans la demande de service de connecteur comprend également des opérations pour écrire des entrées de journal, que vous pouvez trouver dans les entrées de journal du serveur AIS. Par exemple :
[WARN ] JDE - [CUSTOM] START Groovy Record Vineyard Conditions Connector
[WARN ] JDE - [CUSTOM] VineyardID VIN2
[WARN ] JDE - [CUSTOM] Precipitation 0.15
[WARN ] JDE - [CUSTOM] Moisture Content 0.2
[WARN ] JDE - [CUSTOM] High Temp 55
[WARN ] JDE - [CUSTOM] Low Temp 24
[WARN ] JDE - [CUSTOM] returnMap [insertError:false]
Ajout d'une autre demande de service de connecteur pour effectuer des opérations SQL supplémentaires
Cette tâche utilise aussi la base de données externe. Elle montre la création d'une demande de service de connecteur pour extraire des enregistrements à partir du fichier vineyard_moisture.
- Dans la page Orchestrations d'Orchestrator Studio, sélectionnez l'orchestration External Database Example dans la liste des orchestrations, puis cliquez sur Modification orchestration.
- Dans la page de conception de l'orchestration, mettez en surbrillance l'étape Insert Moisture Record et cliquez sur le bouton Insertion étape après pour ajouter une autre étape à l'orchestration.
- Dans la fenêtre contextuelle, sélectionnez Demande service, puis cliquez sur OK (+).
- Cliquez sur le bouton (crayon) Modifier et sélectionnez Connecteur dans la liste contextuelle.
- Dans la page de conception du connecteur, entrez
Calculate Averages
comme nom de la demande de service. - Cliquez sur la liste déroulante Code produit et sélectionnez un code produit client compris entre 55 et 59.
- Cliquez sur la liste déroulante Connexion et sélectionnez la connexion MYSQL.
- Remplacez le modèle Groovy par ce script Groovy.
- Sous l'éditeur de script, ajoutez la variable
Vineyard
à la liste d'entrées. - Ajoutez les sorties suivantes :
Sortie Nom de variable averageMoisture averageMoisture averageHigh averageHigh averageError averageError - Enregistrez la demande de service et fermez-la pour retourner à l'orchestration.
- Dans la nouvelle ligne de demande de service, cliquez sur la flèche vers le bas et sélectionnez la demande de service Calculate Averages que vous venez de créer.
- Dans la zone Transformations, mappez l'entrée d'orchestration
VineyardID
à l'entréeVineyard
de la nouvelle demande de service. - Enregistrez l'orchestration.
- Cliquez sur le bouton Sortie orchestration.
- Cliquez sur le bouton Ajouter.
- Sous le connecteur Calculate Averages, ajoutez les trois nouvelles sorties suivantes à l'orchestration et cochez la case Sélectionner à côté de chaque sortie :
averageMoisture
,averageHigh
,averageError
.Définition des sorties de l'orchestration - Cliquez sur OK, fermez les sorties et enregistrez l'orchestration.
L'orchestration doit contenir les sorties suivantes :

Test des moyennes
Effectuez un autre test, cette fois pour vérifier que l'orchestration exécute les deux opérations consistant à ajouter un nouvel enregistrement et à obtenir les moyennes.
- Dans Orchestrator Studio, accédez au client d'orchestration à partir de la page Outils. Vous aurez peut-être besoin d'ouvrir une nouvelle session dans le client d'orchestration.
- Dans la liste déroulante Nom orchestration, sélectionnez External Database Example.
- Entrez les valeurs que l'orchestration doit insérer dans la base de données. Cette fois, utilisez
VIN1
pour sélectionner les enregistrements existants dans le fichier.
- Cliquez sur Exécuter pour exécuter l'orchestration.
Vous pouvez entrer manuellement des valeurs dans la zone des entrées ou vous pouvez cocher la case Entrée JSON, puis copier et coller le code suivant dans la case d'entrée :
{
"inputs" : [ {
"name" : "VineyardID",
"value" : "VIN1"
}, {
"name" : "Precipitation",
"value" : "0.15"
}, {
"name" : "Moisture Content",
"value" : "0.2"
}, {
"name" : "High Temp",
"value" : "55"
}, {
"name" : "Low Temp",
"value" : "24"
} ]
}
Si elle réussit, la zone Sortie doit contenir le code JSON suivant :
{
"insertError" : "false",
"averageMoisture" : "0.12333333591620127",
"averageHigh" : "59.1333",
"averageError" : "false"
}
Et un nouvel enregistrement supplémentaire doit avoir été ajouté à la base de données :
DATE | LOCATION | PRECIP | MOISTURE | HIGH | LOW |
2/2/2018 | VIN1 | 0.15 | 0.2 | 55 | 24 |
En outre, dans le serveur AIS, vous devez voir les entrées de journal écrites par le script Groovy. Par exemple :
[WARN ] JDE - [CUSTOM] first: [AVG(MOISTURE):0.12333333591620127, AVG(HIGH):59.1333]
[WARN ] JDE - [CUSTOM] first avg moisture: 0.12333333591620127
[WARN ] JDE - [CUSTOM] first avg high: 59.1333
[WARN ] JDE - [CUSTOM] returnMap [averageMoisture:0.12333333591620127, averageHigh:59.1333, error:false]