Réserver une Démo
Pré. Proc.

Intégrer dans BPSim pour Simulation

La force de DMN est sa capacité à décrire les exigences métier à travers le diagramme des exigences Décision et à encapsuler la logique complexe dans des expressions polyvalentes telles que le Tableau de Décision et le Contexte encadré.

De même, la force de BPMN réside dans sa capacité à décrire des processus métier avec une Flux séquence de tâches et d’événements, ou à décrire des collaborations de processus avec des flux de messages.

Le diagramme Décision Exigences forme un 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, où une prise de décision est requise
  • diagrammes Décision Exigences définissent les décisions à prendre dans ces tâches, leurs interrelations et leurs exigences en matière de logique de décision
  • La logique Décision définit les décisions requises de manière suffisamment détaillée pour permettre la validation et/ou l'automatisation
DMN fournit un modèle Décision complet qui complète un modèle Processus Métier en spécifiant en détail les prises de décision réalisées dans les tâches du processus.

Les deux exemples présentés dans cette rubrique sont accessibles à partir de :

  • EAExample Modèle | Simulation de Modèle | Modèles BPSim
  • Point de vue | Modélisation Métier | BPSim | Études de cas BPSim
Les expressions BPSim utilisent un modèle DMN de deux manières :
  • Le service Décision de DMN - démontré par le processus de demande de prêt
  • Modèle de connaissances commerciales de DMN - démontré par le calcul des coûts de livraison
Le processus d'intégration d'un modèle DMN avec un modèle BPSim comprend :
  • Validation 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 vers l'artefact DMN
  • Générer ou mettre à jour le DataObject BPMN à partir du DataSet DMN
  • Créez des paramètres de propriété dans BPSim à utiliser sur les tâches et les flux Séquence sortant des passerelles
  • Lier l'interface DMN aux paramètres de propriété BPSim

Validation Modèle DMN pour les langages compilés tels que Java

Lorsque vous créez un modèle DMN et 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 variable est déduit de la valeur qui lui est attribué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 générer ces langages, vous devez exécuter une validation sur le modèle et utiliser les résultats pour trouver les variables qui nécessitent un 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 dialogue « Paramètre », spécifiez un type pour le paramètre
  • Type 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 'Valeur'
  • Clauses Tableau de Décision - sur la clause d'entrée/sortie Tableau de Décision , cliquez-droit pour afficher le menu contextuel et choisir le type
  • Variables de contexte encadrées - reportez-vous à la rubrique d'aide sur le 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 « Générer un module » dans la fenêtre 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
  • La Définition Item et Modèle de Connaissance Métier 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 du bouton Exécuter | Générer un nouveau script (fenêtre Scriptant )) sauf que les codes liés à la simulation sont omis
  • Pour Java, la valeur « Module Path » 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épertoire pour maintenant
Cliquez sur le bouton Générer du code ( ) dans la barre d'outils. Cet exemple utilisera Java ; cependant, C++ et C# sont identiques. Ces actions sont effectuées :
  • Le fichier .java est généré dans le chemin spécifié
  • Un script d'analyse (script de construction) pour cet artefact est créé
  • Le script de construction de ce script d'analyse est exécuté
  • Les messages de progression sont signalés dans la fenêtre de sortie du système
Si le modèle est valide, ce processus renverra le message :

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 un langage 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 données d'entrée
  • Obtenir les valeurs Décision de sortie

Générer un DataObject BPMN

Les données transportées par l'ensemble de données sélectionné seront générées dans le champ « Notes » de l'objet de données BPMN.

  • Cliquez sur le bouton (2ème à droite sur la barre d'outils de l'onglet ' Générer un module') pour ouvrir l'onglet 'Module Test '
  • Cliquez sur l' dans la barre d'outils pour sélectionner les éléments d'entrée de l'objet de données BPMN
  • Sélectionnez les sorties disponibles dans la liste déroulante « Décision », telles que 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 fournies (à partir des DataObjects BPMN) 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 avec le modèle BPSim.

La première étape consiste à configurer la dépendance d’utilisation entre l’artefact BPSim et l’artefact Simulation DMN.

Note : un artefact BPSim peut utiliser plusieurs modules DMN si nécessaire. Pour cela, il suffit de placer tous les artefacts DMN sur ce diagramme et de dessiner un connecteur de dépendance entre l'artefact BPSim et chaque artefact Simulation DMN.

Ces rubriques d'aide fournissent deux exemples d'utilisation de ces méthodes. Voir :

  • Exemple : Intégrer le service Décision DMN dans Object de données BPSim et Paramètres Propriété
  • Exemple : Intégrer DMN Métier Knowledge Modèle dans BPSim Paramètres Propriété

Apprendre encore plus