Pré. | Proc. |
Intégrer dans BPSim pour la Simulation
La force de DMN est sa capacité à décrire les exigences métier à travers le diagramme Décision Requirement et à encapsuler la logique compliquée dans des expressions polyvalentes telles que le Tableau de Décision et le Boxed Context.
De même, la force de BPMN est sa capacité à décrire les processus métier avec une Flux séquence de tâches et d'événements, ou à décrire des collaborations de processus avec des Message Flows.
Le diagramme Décision Exigences fait le pont entre les modèles Processus Métier et les modèles logiques de décision :
- Les modèles Processus Métier définissent les tâches au sein des processus métier, là où la prise de décision est requise
- Les diagrammes Décision Exigences définissent les décisions à prendre dans ces tâches, leurs interrelations et leurs exigences pour la logique de décision
- La logique de Décision définit les décisions requises avec suffisamment de détails pour permettre la validation et/ou l'automatisation
Les deux exemples présentés dans cette rubrique sont accessibles à partir de :
- EAExemple Modèle | Simulation de Modèle | Modèles BPSim
- perspective | Modélisation Métier | BPSim | Études de cas BPSim
- Service Décision de DMN - démontré par le processus de demande de prêt
- BusinessKnowledgeModel de DMN - démontré par le calcul des coûts de livraison
- Validation du Modèle DMN, Simulation , génération de code et Tester sur le module généré
- Configurer une dépendance d'utilisation de l'artefact BPSim à l'artefact DMN
- Générer ou mettre à jour le BPMN DataObject depuis le DMN DataSet
- Créer des paramètres de propriété dans Séquence à utiliser sur les tâches et les flux de séquence sortant des passerelles
- Lier l'interface DMN aux paramètres de propriété BPSim
Validation de Modèle DMN pour les langages compilés tels que Java
Lorsque vous créez un modèle DMN et que vous le simulez dans Enterprise Architect , le code pilotant la simulation est JavaScript ; cela signifie que les variables n'ont pas besoin d'être explicitement typées (le type de la variable est déduit de la valeur qui lui est affectée).
Cependant, pour les langages tels que C++, C# et Java, le compilateur signalera une erreur indiquant qu'une variable n'a pas de type.
Pour la génération vers ces langages, vous devez exécuter validation sur le modèle et utiliser les résultats pour trouver les variables qui nécessitent leur type défini. Par exemple:
- Paramètre Métier Knowledge Modèle - sélectionnez l'élément BKM à afficher dans la fenêtre Expression DMN, cliquez sur le deuxième bouton pour ouvrir la boîte de dialogue 'Paramètre', spécifiez un type pour le paramètre
- Type de Décision - sélectionnez l'élément Décision , ouvrez la fenêtre Propriétés , pour la propriété 'variableType' sélectionnez dans le champ 'Value'
- Clauses Input/Output Tableau de Décision - sur la clause Input/Output Tableau de Décision , cliquez-droit pour afficher le menu contextuel et choisir le type
- Variables Boxed Context - reportez-vous à la rubrique d'aide Contexte encadré
Génération de code DMN en Java
Après avoir utilisé la validation pour résoudre les problèmes de type de variable, nous pouvons passer à la page 'Module Générer ' dans la fenêtre de Simulation DMN.
- Sélectionnez DecisionService1 dans le champ de saisie de données de la barre d'outils supérieure ; tous les éléments impliqués dans DecisionService1 seront maintenant inclus dans la liste
- Item Definition et Métier Knowledge Modèle sont des éléments globaux
- Les données d'entrée et les décisions sont encapsulées dans l'élément DecisionService
- Les langages supportés sont C++, C# , Java et JavaScript ; note que pour JavaScript le fichier .js généré est le même que le script de simulation (onglet 'Simuler' | menu déroulant bouton Exécuter | Générer Nouveau Script ( Scriptant Exécuter ) sauf que les codes liés à la simulation sont omis
- Pour Java, la valeur 'Module valeur ' doit correspondre à la structure Paquetage ; dans cet exemple, le DMNModule.java doit être généré dans un répertoire pour former un chemin de fichier qui se termine par '\com\sparxsystems\dmn\DMNModule.java' - vous devez créer manuellement les structures de répertoires pour maintenant
- Le fichier .java est généré dans le chemin spécifié
- Un script d'analyseur (script de construction) pour cet artefact est créé
- Le script de construction pour ce script d'analyseur est exécuté
- Les messages de progression sont signalés dans la fenêtre Sortie système
S'il y a des erreurs de compilation, vous pouvez ouvrir le fichier .java généré en cliquant sur le bouton à côté du bouton dans la barre d'outils, résoudre manuellement le problème et compiler avec le script généré jusqu'à ce que vous réussissiez.
Une raison courante d'un échec de compilation est que les langages peuvent avoir des grammaires différentes pour une expression. Vous devrez peut-être fournir une valeur pour une langue afin de remplacer la valeur par défaut ( cliquez-droit sur une expression littérale DMN | Modifier l'expression).
Tester les modules DMN avant utilisation externe
Après avoir généré le modèle en code Java et l'avoir compilé avec succès, nous souhaitons maintenant :
- Test l'exactitude de ce module
- Fournissez-lui des entrées
- Obtenir les valeurs de Décision de sortie
Générer BPMN DataObject
Les données portées par le jeu de données sélectionné seront générées dans le champ ' Notes ' du BPMN DataObject.
- Cliquez sur le bouton (2ème à droite sur la barre d'outils de l'onglet ' Générer Module') pour ouvrir l'onglet ' Test Module'
- Cliquez sur l' dans la barre d'outils pour sélectionner les éléments d'entrée BPMN DataObject
- Sélectionnez les sorties disponibles dans la combo ' Décision ', comme Get_Routing(), et cliquez sur le bouton Exécuter de la barre d'outils
Le résultat de l'exécution sera affiché dans la fenêtre Déboguer . Vous pouvez également ouvrir le fichier du module de test, définir un point d'arrêt sur la ligne et déboguer dans le module DMN pour effectuer un débogage au niveau de la ligne.
Nous vous recommandons fortement de tester votre module DMN avec cette fenêtre pour garantir que le module DMN est fonctionnel avec les entrées données (à partir des BPMN DataObjects) et qu'il calculera avec succès le résultat de la sortie.
Note : Le chemin du module DMN est enregistré dans la propriété 'Filepath' de l'artefact DMNSimConfiguration.
Il est maintenant temps d'intégrer le module DMN au modèle BPSim.
La première étape consiste à configurer la dépendance d'utilisation entre l'artefact BPSim et l'artefact de Simulation DMN.
Note : Un BPSim Artifact peut utiliser plusieurs modules DMN si nécessaire. Ceci est pris en charge en plaçant simplement tous les artefacts DMN sur ce diagramme et en dessinant un connecteur de dépendance de l'artefact BPSim à chaque artefact de Simulation DMN.
Ces rubriques d'aide fournissent deux exemples d'utilisation de ces méthodes. Voir:
- Exemple : Intégrer DMN Décision Service dans BPSim Data Object et Paramètres Propriété
- Exemple : Intégrer DMN Métier Knowledge Modèle dans BPSim Paramètres Propriété