Le développement de règles pour ODM est effectué dans Rule Designer. Le concepteur de règles gratuit pour ODM for Developer peut être obtenu et installé en tant que plug-in à partir d'Eclipse Marketplace.
Cette fois, j'aimerais développer une règle simple avec Rule Designer.
Le dernier Rule Designer est basé sur Eclipse v4.7.3 (Oxygen), vous devez donc installer la même version. Veuillez noter que vous ne pourrez peut-être pas modifier les paramètres régionaux de la langue de Rule Designer si vous avez installé la dernière version d'Eclipse ou le plug-in de localisation japonais.
Si vous n'avez pas Eclipse ou si la version est différente, veuillez installer Eclipse Oxygen.
Démarrez Eclipse et ouvrez la fenêtre Eclipse Marketplace. Recherchez «odm» et installez IBM ODM Rule Designer for Developer V8.10.1.
Dans la fenêtre de confirmation de licence, sélectionnez "J'accepte les termes…" et cliquez sur le bouton "Terminer".
Une fois l'installation terminée, redémarrez Eclipse. Assurez-vous que la perspective de règle a été ajoutée.
L'environnement de développement de règles est prêt. Dans les étapes suivantes, nous développerons une règle simple.
Développez une règle simple qui renvoie le taux d'actualisation en fonction du classement du client. (La logique simple ne vous oblige pas à utiliser des règles, mais elle simplifie le scénario pour comprendre comment fonctionne ODM et comment créer des règles.)
Les règles ODM définissent un dictionnaire qui associe le modèle d'exécution (XOM) au modèle d'objet métier (BOM) afin d'écrire les règles en japonais. Au début du développement de la règle, concevez les éléments de données utilisés dans la règle et créez un modèle d'exécution à l'aide de classes Java et d'un schéma XML. Ici, nous allons utiliser Java pour créer le XOM.
Ouvrez la perspective Java dans Eclipse. Cliquez sur Nouveau> Projet Java.
Entrez CustomerLoyaltyXOM comme nom du projet, assurez-vous que la version JRE est 1.8 et cliquez sur Terminer.
Cliquez avec le bouton droit sur le projet Java que vous avez créé dans l'Explorateur de packages et sélectionnez Nouveau> Classe.
Entrez "my.first.rule" pour le nom du package et "Loyalty" pour le nom de la classe, puis cliquez sur Terminer.
L'éditeur Java s'ouvre. Créez trois variables privées comme indiqué ci-dessous.
Cliquez avec le bouton droit de la souris sur l'éditeur Java et sélectionnez Source> Generate Getter and Setter.
Cliquez sur Tout sélectionner à droite, puis sur le bouton OK.
Cliquez à nouveau avec le bouton droit de la souris dans l'éditeur Java et sélectionnez Source> Générer un constructeur à l'aide de champs.
Assurez-vous que trois champs sont sélectionnés par défaut et cliquez sur OK.
Cliquez à nouveau avec le bouton droit de la souris dans l'éditeur Java et sélectionnez Source> Générer un constructeur à partir de la superclasse.
Conservez la valeur par défaut et cliquez sur OK.
Le code doit ressembler à ceci: Appuyez sur Ctrl + S pour enregistrer.
Cliquez sur l'icône dans le coin supérieur droit d'Eclipse pour passer à la perspective des règles.
La carte du service de décision s'affiche en bas de l'écran. Ceci est un guide des étapes à suivre pour développer vos règles. Cliquez sur "Créer un projet de règle principale" en haut à gauche.
Assurez-vous que Projet de règle principale est sélectionné pour le modèle et cliquez sur Suivant.
Entrez CustomerLoyaltyRule comme nom du projet de règles et cliquez sur Terminer.
Depuis la carte du service de décision affichée en bas de l'écran, cliquez sur "Importer XOM".
Assurez-vous que le modèle d'objet d'exécution Java est sélectionné et cliquez sur OK.
Cochez "Customer Loyalty XOM" dans la liste et cliquez sur "Apply and Close".
BOM est un dictionnaire de termes commerciaux utilisés dans les descriptions de règles. Définissez non seulement les mots utilisés pour l'interface XOM, mais également les mots requis dans la logique de calcul et de jugement.
En définissant des mots avec des modèles limités tels que les noms de produits et les noms d'établissements commerciaux comme des «domaines», il est possible de développer et de vérifier efficacement des règles.
Cliquez sur Créer une nomenclature sur la carte du service de décision.
Conservez les valeurs par défaut et cliquez sur Suivant.
Cliquez sur le bouton "Rechercher XOM" sur la droite, sélectionnez le "Customer Loyalty XOM" que vous avez créé précédemment et cliquez sur "Terminer".
Double-cliquez sur Modèle dans l'Explorateur de règles pour l'ouvrir.
Développez le package et double-cliquez sur la classe "Loyalty".
Dans la section de verbalisation du cours, cliquez sur Modifier le terme.
Changez le libellé en "Programme de fidélité" et cliquez sur le bouton "OK".
Ensuite, verbaliser les membres. Double-cliquez sur "discount_rate" en haut de la section membres.
Dans la section de verbalisation du membre, cliquez sur le lien «Modifier le sujet utilisé dans la phrase».
Changez le libellé en "Taux de remise" et cliquez sur "OK".
Le terme taux d'actualisation reste dans le modèle d'action. Modifiez le texte et changez-le en "Taux de remise".
Verbalez les autres membres de la même manière. Sélectionnez l'onglet Classes sous l'éditeur de nomenclature et double-cliquez sur le deuxième "lank" de la section membres.
Dans la section de verbalisation du membre, cliquez sur Modifier le sujet utilisé dans la phrase.
Changez le libellé en "Classement du client" et cliquez sur le bouton "OK".
Modifiez le mot «maigre» qui reste dans le modèle d'action en «Classement du client».
Les classements des clients sont limités à quelques types, alors créez un domaine pour identifier le terme. Cliquez sur Créer un domaine dans la section Domaines.
Dans le type de domaine, sélectionnez Littéral et cliquez sur Suivant.
Cliquez sur le bouton "Ajouter" à droite et remplacez la nouvelle valeur ajoutée à la liste par "Platinum". De même, ajoutez de l'or, de l'argent et du bronze et cliquez sur Terminer.
Sous l'éditeur de nomenclature, sélectionnez l'onglet Classes et double-cliquez sur le troisième "message" de la section Membres.
Cliquez sur le lien «Modifier le sujet utilisé dans la phrase» dans la section de verbalisation du membre.
Changez le libellé en "Message" et cliquez sur le bouton "OK".
Modifiez le mot «message» qui reste dans le modèle d'action en «message».
Cliquez sur Ctrl + S pour enregistrer vos modifications.
Une opération de décision est une définition d'interface lorsqu'une règle est appelée de l'extérieur. Il s'agit d'une opération pour laquelle le XOM a été créé à l'étape précédente en tant que paramètre. Ici, l'opération de prise de décision est définie et verbalisée (en japonais), et l'ordre de calcul et de jugement au sein de la règle est défini comme le flux de règles.
Dans la carte du service de décision, cliquez sur Ajouter une opération de décision.
Entrez "getDiscount" comme nom de l'opération et cliquez sur le bouton "Terminer".
Dans la carte du service de décision, cliquez sur Aller à la carte des opérations.
Dans la fenêtre de sélection de l'opération de décision, sélectionnez "getDiscount" et cliquez sur le bouton "OK".
La carte des opérations s'ouvre. Cliquez sur "Ajouter un jeu de variables".
Entrez param pour le nom du jeu de variables et cliquez sur Terminer.
Cliquez sur le bouton Ajouter sur le côté droit de l'éditeur de jeux de variables et changez le type de verbalisation «Fidélité» en «Programme de fidélité».
Cliquez sur Ctrl + S pour enregistrer vos modifications et fermer l'éditeur de jeux de variables.
Cliquez sur Lier les variables sur la carte des opérations.
Faites glisser et déposez la variable (myVar) que vous venez d'ajouter dans la section Paramètres d'E / S.
Cliquez sur Ctrl + S pour enregistrer vos modifications et fermer l'éditeur d'opérations de décision.
Cliquez ensuite sur Ajouter un package de règles sur la carte des opérations.
Entrez "Judgment" dans le nom du package et cliquez sur le bouton "Terminer".
Sur la carte des opérations, cliquez sur Ajouter un flux de règles.
Entrez "Flux principal" comme nom du flux de règles et cliquez sur le bouton "Terminer".
L'éditeur de flux de règles s'ouvre. Cliquez sur Démarrer le nœud (icône de la flèche du haut) dans la palette de gauche, puis cliquez sur l'éditeur.
De même, cliquez sur le "Nœud de fin" (la deuxième icône de cercle rouge), puis cliquez sur l'éditeur. Les nœuds de début et de fin doivent être disposés comme indiqué ci-dessous.
Cliquez sur Tâches de règle (troisième icône d'engrenage) dans la palette de gauche, puis cliquez entre les nœuds de début et de fin dans l'éditeur.
Dans les propriétés sous l'éditeur, changez le libellé de la tâche de règle en "jugement".
Cliquez sur le bouton Modifier dans l'onglet Sélectionner une règle des propriétés.
Cliquez sur le bouton >> dans la fenêtre de sélection de règles et sélectionnez le package de règles Jugement (affiché dans la liste de droite).
Cliquez sur Transition (flèche vers le bas en bas) dans la palette Editeur de flux de règles. Cliquez sur le nœud de début, la tâche de règle et le nœud de fin dans cet ordre pour vous connecter.
Cliquez avec le bouton droit de la souris sur l'éditeur et sélectionnez "Disposition de tous les nœuds". Le flux est le suivant.
Affichez à nouveau la carte des opérations. Cliquez sur "Bind Rule Flow".
L'éditeur d'opérations décisionnelles s'ouvre. Dans la section Flux de règles, cliquez sur le lien Sélectionner le flux de règles et sélectionnez le flux principal que vous venez de créer.
Cliquez sur Ctrl + S pour enregistrer vos modifications et fermer l'éditeur d'opérations de décision.
Dans la carte des opérations, cliquez sur Ajouter une règle d'action.
Cliquez sur le bouton Parcourir en regard du package et sélectionnez le package Judgment. Cela inclura la règle d'action dans le package Judgment et l'exécutera dans le flux de règles.
Entrez «Contrôle de classement vide» dans le nom et cliquez sur «Terminer».
L'éditeur de règles s'ouvre. Lorsque vous cliquez sur Ctrl + Espace, la fonction d'assistance au code affiche le libellé de la règle. Créez une règle comme celle ci-dessous. (Vous pouvez également saisir du texte directement)
Entrez "1" pour la priorité dans les propriétés en bas de l'écran. S'il existe plusieurs règles dans le même package de règles, ce paramètre entraîne l'exécution des règles en premier.
Revenez à la carte des opérations et cliquez sur "Ajouter une table de décision".
Sélectionnez Jugement pour le package et entrez Jugement de remise pour le nom. Cliquez sur le bouton "Terminer".
Une feuille de décision vide est créée. Cliquez avec le bouton droit sur la colonne A et sélectionnez "Modifier la colonne de condition".
Dans la section Test de la fenêtre Modifier la colonne, utilisez Code Assist et tapez: "Le classement du client du" Programme de fidélité "est le même que celui de
Changez le titre en «Classement du client» et cliquez sur le bouton «OK».
Cliquez avec le bouton droit sur les colonnes B et C de la table de décision et supprimez la colonne de conditions.
Cliquez avec le bouton droit sur la colonne d'action (colonne grisâtre) dans la table de décision et sélectionnez Modifier la colonne d'action.
Changez l'action en "Définir le taux de remise du" Programme de fidélité "sur <Numérique>".
Entrez "Taux de remise" dans le titre et cliquez sur le bouton "OK".
Cliquez avec le bouton droit de la souris sur la colonne de conditions "Classement du client" et sélectionnez "Ajouter> Toutes les valeurs de domaine". Tous les domaines définis dans la nomenclature sont ajoutés.
Entrez un nombre approprié (une fraction de 0,01 à 0,99) dans la colonne d'action «Taux d'actualisation».
Il est également possible d'afficher le taux d'actualisation en%. Cliquez avec le bouton droit sur la colonne d'action et sélectionnez Format. (Sélectionnez une colonne, pas une seule cellule)
Dans la liste des formats, sélectionnez "{0, number, percent}". Cliquez sur le bouton "OK" pour fermer la fenêtre.
Assurez-vous que le taux d'actualisation sur la feuille de décision est affiché en%.
Cliquez sur Ctrl + S pour enregistrer vos modifications et fermer l'éditeur de tableau de décision.
Cette fois, j'ai utilisé Rule Designer pour développer une règle simple. La prochaine fois, je vous montrerai comment déployer cette règle sur votre serveur pour la tester et la modifier.