Guide d'administration et de configuration
Le guide d'administration et de configuration de Red Hat JBoss BPM Suite
Kanchan Desai
kadesai@redhat.comDoug Hoffman
Eva Kopalova
Red Hat Content Services
Joshua Wulf
jwulf@redhat.comRésumé
Partie I. Introduction
Chapitre 1. BPMN (de l'anglais Business Process Model and Notation)
1.1. Composants
Execution Engine- fournit l'environnement d'exécution des processus et des règles d'entreprise. Il comprend une bibliothèque de flux de travail qui peut être incorporée dans une application web de l'utilisateur. Le Runtime Manager est l'objet root et il contient les composantes suivants :Runtime Engine- implémente le comportement principal du langage informatique de la machine et il est fourni par le Runtime Manager.Process Engine- est l'environnement d'exécution du modèle de processus d'entreprise.Task Service- gère les cycles de vie des tâches humaines.
Rule Engine- peut être utilisé avec le moteur de processus ou tout seul.Rules Evaluation- exécute les règles métier sur la base d'un ensemble de faits donnés.Complex Event Processing- applique les règles métier sur des flux d'événements entrants.
Business Central- une application basée-web qui accommode des outils de création de ressources, de gestion et de contrôle en procurant un environnement web intégré.Référentiel Ressources- c'est l'emplacement central de partage des connaissances (Knowledge Store) des ressources d'entreprise, processus, règles, formulaires, etc.. Sur la page Project Explorer de Business Central via Création → Création Projet, les utilisateurs peuvent accéder à ce référentiel. Par défaut, le produit initialise un référentiel GIT local comme son référentiel de ressources. Toutefois, d'autres référentiels peuvent être ajoutés ou retirés si nécessaires.Référentiel d'artefacts- c'est un référentiel de stockage d'artefacts de jars de projets basé MavenServeur d'exécution- fournit un environnement d'exécution pour les tâches et les instances de processus d'entreprise.Surveillance Activité- fournit un affichage personnalisable sur la performance de l'entreprise.
Note
1.2. Projet
pom.xml) avec des informations sur la façon de construire l'artefact sortant. Il contient également le fichier de descripteur de module, kmodule.xml, qui contient la configuration de KIE Base et de KIE Session pour les ressources du projet.
1.3. Création d'un projet
- Ouvrir la perspective Création Projet : à partir du menu principal, cliquer sur Création → Création Projet.
- Dans Project Explorer, sélectionner l'unité organisationnelle et le référentiel où vous souhaitez créer le projet.
- Dans le menu perspective, cliquer sur Nouvel élément → Projet.
- Dans la boîte de dialogue Créer Nouveau projet, définir les informations sur le projet :
- Dans la case Projet, saisir le nom du projet.

- Le Project Explorer se réactualise pour afficher une fenêtre Assistant Nouveau projet.

- Définir les informations Configuration générale Projet et Version Artefact Groupe de ce nouveau projet. Ces paramètres se trouvent dans le fichier de configuration
pom.xmlde Maven.- Nom du projet : le nom du projet; par exemple
MortgageProject - Description du projet : la description du projet qui peut être utile à des buts de documentation du projet.
- ID Groupe : ID de groupe du projet ; par exemple
org.mycompany.commons - ID Artefact : ID d'artefact unique au groupe ; par exemple
myframework. Évitez d'utiliser un espace ou un caractère spécial qui risque de vous mener à un nom non valide. - ID Version : version du projet ; par exemple
2.1.1
L'affichage Écran Projet est mis à jour avec les nouveaux détails du projet, tel que défini dans le fichier pom.xml. Notez que vous pouvez basculer entre les fichiers de descripteur du projet dans le menu déroulant via Configuration Projet et Configuration Base de connaissances et modifier leur contenu.
1.4. Ajouter des dépendances
- Ouvrir le Project Editor pour le projet donné :
- Sur la page Project Explorer de la perspective
Création Projet, ouvrir le répertoire du projet. - Cliquer sur le bouton
pour ouvrir la vue du projet.
- Dans la vue Écran du projet, sélectionner dans la boîte de dialogue Configuration Projet l'élément Dépendances.
- Sur l'écran Écran du projet mis à jour, cliquer sur le bouton Ajouter pour ajouter une dépendance Maven ou cliquer sur le bouton Ajouter à partir du référentiel pour ajouter une dépendance du Knowledge Store (référentiel d'artefacts) :
- Quand il ajoute une dépendance Maven, un utilisateur doit définir les ID Groupe, ID Artefact et ID Version sur la nouvelle rangée créée dans la table de dépendances.
- Quand on ajoute une dépendance du Knowledge Store, il faut sélectionner la dépendance dans la boîte de dialogue qui s'affiche : la dépendance sera ajoutée au tableau des dépendances.
- Pour pouvoir appliquer les différents changements, les dépendances doivent être sauvegardées.
Avertissement
Partie II. Configuration
Chapitre 2. Configuration de Business Central
DEPLOY_DIRECTORY/business-central.war/WEB-INF/web.xml et des fichiers référencés, et si déployé sur Red Hat JBoss EAP 6, également dans jboss-web.xml et jboss-deployment-structure.xml.
2.1. Conrôle de l'accès
$JBOSS_HOME/standalone/deployments/business-central.war/WEB-INF/classes/userinfo.properties.
admin: administre le système JBoss BPM Suite et possède des droits pour effectuer les changements nécessaires, y compris la possibilité d'ajouter ou de supprimer des utilisateurs du système.developer: implémente le code requis pour que les processus fonctionnent et a accès à tout sauf aux tâches administratives.analyst: crée et conceptualise des processus et des formulaires, instancie les artefacts de processus et de déploiement. Ce rôle est similaire à celui d'un développeur, sans l'accès au référentiel des ressources, ni aux déploiements.user: réclame, effectue et fait appel à d'autres actions (par exemple, escalade, rejet, etc.) sur les tâches affectées et n'a pas accès aux fonctions de création (authoring).manager: contrôle le système et ses statistiques, et a uniquement accès au tableau de bord.business user: effectue les tâches d'entreprise requises pour que les processus puissent continuer. Travaille surtout sur la liste de tâches.
$JBOSS_HOME/add-user.sh et créez un utilisateur d'application dans ApplicationRealm avec les rôles respectifs.
Configuration de workbench
$JBOSS_HOME /standalone/deployments/business-central.war/WEB-INF/classes/workbench-policy.propeties.
standalone.xml dans EAP.
Authentification pour les tâches humaines
UserGroupCallback pour assigner des tâches aux utilisateurs.
Avertissement
2.2. Configuration d'un profil de Business Central
- Full profile - profil par défaut actif sans besoin de configuration supplémentaire (IU et services distants, par ex. REST).
- Execution server profile - désactive les composants IU de l'application complètement et permet un accès éloigné uniquement, par ex. via l'interface REST.
- UI server profile - désactive les services distants comme REST et permet uniquement l'accès à l'IU à l'application.
Procédure 2.1. Configuration des profils de Business Central
- Sélectionner le
web.xmldésiré dans$BPMS_HOME/standalone/deployments/business-central.war/WEB-INF/. Les fichiers suivants sont fournis.web.xml(valeur par défaut) pour le profil completweb-exec-server.xmlpour le profil de serveur d'exécutionweb-ui-server.xmlpour le profil de serveur de l'IU
- Pour activer un profil autre que le profil complet (full profil) par défaut, le fichier web-<PROFILE>.xml doit être renommé
web.xml. Les étapes suivantes montrent une façon d'exécuter le profil du serveur.- Sauvegarder le fichier
web.xmldu profil complet (full profile).$ mv web.xml web-full.xml
- Renommer le fichier
web-exec-server.xml:$ mv web-exec-server.xml web.xml
- Démarrer le serveur d'applications avec une propriété système supplémentaire pour instruire le gestionnaire de profils d'activer le profil donné.
Dorg.kie.active.profile=full- pour activer le profil complet (full profil) ou éviter la propriété complètement.Dorg.kie.active.profile=exec-server- pour activer le profil de serveur d'exécutionDorg.kie.active.profile=ui-server- pour activer le serveur de l'IU
2.3. Personnalisation de l'application Business Central
- Écran de connexionVous pouvez personnaliser les attributs de l'écran de connexion de Business Central suivants :
- L'image d'arrière-plan
- Le logo de la société
- Le logo de l'application
- L'en-tête de l'applicationVous pouvez personnaliser les attributs de l'en-tête de l'application de Business Central suivants :
- L'en-tête de Business Central contient le titre et le logo de la bannière
- Fenêtres contextuelles d'assistanceVous pouvez personnaliser les attributs suivants des fenêtres contextuelles d'assistance de l'écran de démarrage :
- Les images d'assistance de l'écran de démarrage
- Texte de l'étiquette
2.3.1. Personnalisation de la page de connexion de Business Central
Procédure 2.2. Modifier l'image d'arrière-plan de la page de connexion de Business Central
- Démarrer le serveur EAP et ouvrir http://localhost:8080/business-central dans un navigateur web.
- Copier la nouvelle image d'arrière-plan dans le répertoire
$EAP_HOME/standalone/deployments/business-central.war/imagesde votre installation JBoss BPM Suite. - Naviguez dans le répertoire
$EAP_HOME/standalone/deployments/business-central.war/styleset ouvrir le fichierlogin-screen.cssdans l'éditeur de texte. - Dans le fichier
login-screen.css, indiquez l'emplacement de votre nouvelle image d'arrière-plan dans l'attributbackground-imagesuivant.background-image: url("../images/login-screen-background.jpg");L'attributbackground-imagepointe vers l'imagelogin-screen-background.jpgpar défaut.En plus de l'image d'arrière-plan, vous pouvez modifier les autres attributs comme la taille de l'image, sa position, la couleur du fond dans le fichierlogin-screen.css.
Procédure 2.3. Modifier les logos de la société et du projet dans Business Central
- Démarrer le serveur EAP et ouvrir http://localhost:8080/business-central dans un navigateur web.
- Naviguez dans le répertoire
$EAP_HOME/standalone/deployments/business-central.war/imagesde votre installation JBoss BPM Suite. - Remplacer l'image par défaut
login-screen-logo.pngpar une nouvelle image. Ce sera le logo de la société, qui apparaîtra dans le coin de droite de votre page de connexion. - Remplacer l'image par défaut
RH_JBoss_BPMS_Logo.pngRH_JBoss_BRMS_Logo.pngpar une nouvelle image. Ce sera le logo du projet qui apparaîtra au centre légèrement à gauche de la page de connexion.
2.3.2. Personnalisation de l'en-tête de l'application Business Central
Procédure 2.4. Modifier l'en-tête de l'application Business Central (bannière)
- Démarrer le serveur EAP et ouvrir http://localhost:8080/business-central dans un navigateur web.
- Connectez-vous à l'application Business Central par vos identifiants d'utilisateur.
- Copier la nouvelle image d'en-tête de votre application dans le répertoire
$EAP_HOME/standalone/deployments/business-central.war/imagesde votre installation JBoss BPM Suite. - Ouvrir le fichier
$EAP_HOME/standalone/deployments/business-central.war/banner/banner.htmldans un éditeur de texte. - Dans le fichier
banner.html, modifier la balise <img> suivante pour donner un nom à votre nouvelle image d'en-tête :<img src="banner/logo.png"/>
L'image par défaut estlogo.png.
2.3.3. Personnalisation des fenêtres d'assistance de l'écran de démarrage de Business Central
$EAP_HOME/standalone/deployments/business-central.war/plugins contient les pages d'écran de démarrage et les fichiers html correspondants. Chaque page d'écran de démarrage (splash page) contient le nom du fichier html qui contient des informations sur le ou les image(s) à afficher. Par exemple, la page d'écran de démarrage authoring_perspective.splash.js pointe vers le fichier authoring_perspective.splash.html. Le fichier authoring_perspective.splash.html contient les noms et emplacements de tous les fichiers d'images qui apparaissent sur la page d'assistance de démarrage d'Authoring Perspective, ainsi que leurs légendes.
Procédure 2.5. Modifier les images et légendes des fenêtres contextuelles d'assistance de Business Central
- Démarrer le serveur EAP et ouvrir http://localhost:8080/business-central dans un navigateur web.
- Connectez-vous à l'application Business Central par vos identifiants d'utilisateur.
- Copier la ou les nouvelle(s) image(s) d'assistance de la page de démarrage dans le répertoire
$EAP_HOME/standalone/deployments/business-central.war/imagesde votre installation JBoss BPM Suite. - Ouvrir le fichier html correspondant du répertoire
$EAP_HOME/standalone/deployments/business-central.war/pluginsdans l'éditeur de texte. - Modifiez le fichier html pour qu'il pointe vers votre nouvelle image d'aide de l'écran de démarrage. Par exemple, pour modifier la première image qui apparaît dans l'aide de Perspective Authoring, modifiez la balise < img > suivante dans le fichier
authoring_perspective.splash.htmlpour ajouter votre nouvelle image :<img src="images/authoring_perspective1.png" alt="">
L'image par défaut estauthoring_perspective1.png, qui apparaît dans l'assistance de la première page d'Authoring Perspective (perspective de création). - Pour modifier la légende de l'image qui apparaît sur la page d'aide de l'écran de démarrage, modifier les contenus des balises <h4> et <p> sous la balise <img> :
<h4>Authoring</h4> <p>Modularized and customizable workbench</p>
2.4. Descripteurs de déploiement
META-INF du kjar appelé kmodule.xml peut être utilisé pour définir les bases de connaissances et de sessions. Par défaut, ce fichier kmodule.xml est vide.
kmodule.xml pour construire la représentation de runtime.
kmodule.xml. La présence de ces descripteurs est optionnelle et votre déploiement pourra avoir lieu sans qu'ils soient présents. Les propriétés qui vous pouvez définir en utilisant ces descripteurs sont purement techniques de nature, et incluent des meta valeurs comme la stratégie de runtime, l'auditing et la persistance.
kie-deployment-descriptor.xml et mettre ce fichier à côté de votre fichier kmodule.xml dans le dossier META-INF. Vous pouvez changer cet emplacement par défaut (et le nom du fichier) en le spécifiant comme paramètre système :
-Dorg.kie.deployment.desc.location=file:/path/to/file/company-deployment-descriptor.xml
2.4.1. Configuration du descripteur de déploiement
- niveau serveur : le niveau principal, s'applique à tous les kjars déployés sur le serveur.
- niveau kjar : vous permet de configurer les descripteurs sur la base d'un kjar.
- niveau temps de déploiement : descripteurs qui s'appliquent quand un kjar est en cours de déploiement.
Note
NONE, mais que le même mode est spécifié comme JPA au niveau kjar, le mode réel sera JPA pour cette kjar. Si rien n'est spécifié pour le mode de persistance dans le descripteur de déploiement pour ce kjar (ou s'il n'y a aucun descripteur de déploiement), cela renverra à la configuration niveau serveur, qui est dans ce cas NONE (aucun) (ou JPA s'il n'y a aucun descripteur de déploiement au niveau du serveur).
Pouvez-vous substituer ce comportement de mode de fusionnement par hiérarchie ?
MERGE_COLLECTIONS. Mais vous pouvez en changer (Section 2.4.2, « Gestion des descripteurs de déploiement ») si cela ne convient pas à votre environnement :
- KEEP_ALL: dans ce mode, toutes les valeurs de niveau supérieur remplacent toutes les valeurs de niveau inférieur (les valeurs de niveau serveur remplacent les valeurs kjar)
- OVERRIDE_ALL: dans ce mode, toutes les valeurs de niveau inférieur remplacent toutes les valeurs de niveau supérieur (les valeurs kjar remplacent les valeurs de niveau serveur)
- OVERRIDE_EMPTY: dans ce mode, tous les éléments de configuration non vides des niveaux inférieurs remplacent ceux des niveaux supérieurs, y compris les éléments qui sont représentés sous forme de collections.
- MERGE_COLLECTIONS (DEFAULT): dans ce mode, tous les éléments de configuration non vides de niveau inférieur remplacent les éléments de niveaux supérieurs (comme OVERRIDE_EMPTY), mais les propriétés de collection sont mergées (combinées).
Est-ce que je dois fournir un descripteur de déploiement complet pour tous les kjars ?
Peut-on configurer ?
Tableau 2.1. Descripteurs de déploiement
| Configuration | Entrée XML | Valeurs autorisées | Valeur par défaut |
|---|---|---|---|
| Nom d'unité de persistance pour les données de runtime | persistence-unit | N'importe quel nom valide de package de persistance | org.jbpm.domain |
| Nom d'unité de persistance pour les données d'auditing | audit-persistence-unit | N'importe quel nom valide de package de persistance | org.jbpm.domain |
| Mode de persistance | persistence-mode | JPA, NONE | JPA |
| Mode d'auditing | audit-mode | JPA, JMS ou NONE | JPA |
| Stratégie de runtime | runtime-strategy | SINGLETON, PER_REQUEST ou PER_PROCESS_INSTANCE | SINGLETON |
| Liste des listeners d'événements à enregistrer | event-listeners | Noms de classe de listener comme ObjectModel | Pas de valeur par défaut |
| Liste des listeners d'événements de tâches à enregistrer | task-event-listeners | Noms de classe de listener comme ObjectModel | Pas de valeur par défaut |
| Liste de Work Item Handlers à enregistrer | work-item-handlers | Classes de Work Item Handlers données comme NamedObjectHandler | Pas de valeur par défaut |
| Liste des variables globales à enregistrer | globals | Variables globales valides données comme NamedObjectModel | Pas de valeur par défaut |
| Stratégies de marshalling à enregistrer (pour une persistance variable enfichable) | marshalling-strategies | Classes ObjectModel valides | Pas de valeur par défaut |
| Rôles exigés pour pouvoir avoir accès aux ressources du kjar | required-roles | Noms de rôles de string | Pas de valeur par défaut |
| Entrées environnementales supplémentaires pour les sessions de Knowledge | environment-entries | NamedObjectModel valide | Pas de valeur par défaut |
| Options de configuration supplémentaires pour les sessions de Knowledge | configurations | NamedObjectModel valide | Pas de valeur par défaut |
Comment procurer des valeurs aux éléments de configuration basés collections ?
ObjectModel, soit NamedObjectModel. Les deux sont similaires et fournissent une définition de l'objet à construire ou créer pendant le runtime, sauf que les informations sur l'objet NamedObjectModel nomment l'objet à observer. Ces deux types sont définis à l'aide d'un identificateur, de paramètres facultatifs et d'un résolveur (qui résoudre l'objet).
- identifier - définit toutes les informations sur l'objet, comme le nom de classe complet, l'id du bean Spring ou une expression MVEL.
- parameters - paramètres optionnels qui doivent être utilisés quand on crée des instances d'objets à partir de ce modèle.
- resolver - identificateur du programme de résolution qui sera utilisé pour créer des instances d'objet à partir du modèle - (reflection, mvel ou Spring).
ObjectModel, avec pour identificateur com.mycompany.MyStrategy, le programme de résolution étant reflection (le plus simple et la valeur par défaut) et tous les paramètres requis pour que votre stratégie fonctionne. Reflexion servira ensuite pour créer une instance de cette stratégie en utilisant le nom de classe qualifié complet que vous avez fourni comme identificateur.
<marshalling-strategy>
<resolver>reflection</resolver>
<identifier>com.myCompany.MyStrategy</identifier>
<parameters>
<parameter xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">
param
</parameter>
</parameters>
</marshalling-strategy>
<marshalling-strategy> <resolver>mvel</resolver> <identifier>new com.myCompany.CustomStrategy(runtimeManager)</identifier> </marshalling-strategy>
<marshalling-strategy> <resolver>spring</resolver> <identifier>customStrategy</identifier> </marshalling-strategy>
2.4.2. Gestion des descripteurs de déploiement
META-INF de File Explorer. Cliquer sur le fichier kie-deployment-descriptor.xml pour pouvoir le modifier manuellement.
kie-deployment-descriptor.xml de stockage est généré avec les valeurs par défaut décrites plus haut.
Remplacer le comportement de mode de fusionnement par hiérarhie
- Définir la propriété système org.kie.dd.mergemode à l'une des valeurs suivantes. Ce mode de fusion deviendra le mode par défaut de tous les kjars déployés dans le système, à moins que vous ne les remplaciez au niveau kjar par la prochaine méthode.
- Quand vous déployez une nouvelle unité de déploiement via Business Central (Déployer → Déploiements), vous pouvez sélectionner le mode de fusion à utiliser pour ce kjar particulier.
- Quand vous déployez via l'API REST, vous pouvez ajouter le paramètre de recherche mergemode à l'un de ces modes pour définir le mode de fusion pour ce déploiement.
Limiter l'accès à Runtime Engine
2.5. Gestion de la politique de remplacement de déploiement
false par défaut. Modifiez-la à true pour activer le remplacement des déploiements ayant le même GAV, que vous procurez au moment du démarrage de votre serveur (-Dorg.kie.override.deploy.enabled=true).
2.6. Étendre Business Central
Gestion de plugins
2.6.1. Gestion des plugins
Gestion Plugin en cliquant sur Extensions → Gestion Plugin. Vous afficherez ainsi l'écran Plugin Explorer qui donne la liste de tous les plugins : Plugin Perspective, Plugin Écran, Editor Plugin, Plugin Splashscreen et Menu dynamique. Ouvrez-en une et vous verrez tous les plugins existants pour chaque catégorie, y compris ceux qui ne sont as modifiables et qui sont générés par le système.
- Créer un nouvel écran
- Créer une nouvelle perspective (et y ajouter le nouvel écran)
- Créer un nouveau menu (et y ajouter le nouvel écran)
- Apps (en option)
Ajouter un nouvel écran
Note
< div >Mon ecran Helloworld< / div >. Il peut s'agir de n'importe quel code HTML, et vous pouvez utiliser les exemples Angular et Knockout fournis. Pour les besoins de cet exemple, nous n'utilisons pas un de ces exemples, mais vous pouvez en choisir un en le sélectionnant dans le menu déroulant au bas dans la section Template.
main, on_close et on_open. Pour cette démo, sélectionnez on_open et saisir ce qui suit : function () { alert('Hello World'); }
Ajouter une nouvelle Perspective
6 6 sur le côté droit.
HelloWorldJS). Cliquer sur le bouton OK, puis sur le bouton
pour sauvegarder cette perspective. Saisir HelloWorldPerspective, puis Accueil dans le champ de nom de balise (et cliquer sur le bouton Ajouter Balise). Enfin, cliquer sur le bouton OK pour terminer l'enregistrement
et saisir le nom de la perspective.
Ajout d'un nouveau menu
Hello World.
Travailler avec des applications (optionnel)
HelloWorldPerspective, vous avez entré la balise Accueil de page d'accueil. L'annuaire d'applications par défaut contient un répertoire unique appelé Accueil auquel vous avez associé votre perspective. C'est là où vous le trouverez quand vous ouvrirez le répertoire d'applications. Vous pouvez cliquer dessus pour exécuter la perspective maintenant.
2.6.2. API JavaScript (JS) API pour Extensions
plugins de l'application web de Business Central (normalement : {INSTALL_DIR}/business-central.war/plugins/) ou il peut être chargé par des appels réguliers de JavaScript.
- API Register Perspective : permet la création dynamique de perspectives. L'exemple ci-dessous crée un panneau par la méthode
registerPerspective:$registerPerspective({ id: "Home", is_default: true, panel_type: "org.uberfire.client.workbench.panels.impl.MultiListWorkbenchPanelPresenter", view: { parts: [ { place: "welcome", min_height: 100, parameters: {} } ], panels: [ { width: 250, min_width: 200, position: "west", panel_type: "org.uberfire.client.workbench.panels.impl.MultiListWorkbenchPanelPresenter", parts: [ { place: "YouTubeVideos", parameters: {} } ] }, { position: "east", panel_type: "org.uberfire.client.workbench.panels.impl.MultiListWorkbenchPanelPresenter", parts: [ { place: "TodoListScreen", parameters: {} } ] }, { height: 400, position: "south", panel_type: "org.uberfire.client.workbench.panels.impl.MultiTabWorkbenchPanelPresenter", parts: [ { place: "YouTubeScreen", parameters: {} } ] } ] } }); - API Editor : vous permet de créer des éditeurs de façon dynamique et de les associer à un type de fichier. L'exemple ci-dessous crée un exemple d'éditeur et l'associe au type de fichier
filename.$registerEditor({ "id": "sample editor", "type": "editor", "templateUrl": "editor.html", "resourceType": "org.uberfire.client.workbench.type.AnyResourceType", "on_concurrent_update":function(){ alert('on_concurrent_update callback') $vfs_readAllString(document.getElementById('filename').innerHTML, function(a) { document.getElementById('editor').value= a; }); }, "on_startup": function (uri) { $vfs_readAllString(uri, function(a) { alert('sample on_startup callback') }); }, "on_open":function(uri){ $vfs_readAllString(uri, function(a) { document.getElementById('editor').value=a; }); document.getElementById('filename').innerHTML = uri; } });En plus des méthodeson_startupeton_openvues dans les exemples précédents, l'API expose les événements de callback (rappels) suivants pour le cycle de vie de l'éditeur :Vous pouvez afficher cet éditeur via un modèle html :- on_concurrent_update;
- on_concurrent_delete;
- on_concurrent_rename;
- on_concurrent_copy;
- on_rename;
- on_delete;
- on_copy;
- on_update;
- on_open;
- on_close;
- on_focus;
- on_lost_focus;
- on_may_close;
- on_startup;
- on_shutdown;
<div id="sampleEditor"> <p>Sample JS editor (generated by editor-sample.js)</p> <textarea id="editor"></textarea> <p>Current file:</p><span id="filename"></span> <button id="save" type="button" onclick="$vfs_write(document.getElementById('filename').innerHTML, document.getElementById('editor').value, function(a) {});">Save</button> <br> <p>This button change the file content, and uberfire send a callback to the editor:</p> <button id="reset" type="button" onclick="$vfs_write(document.getElementById('filename').innerHTML, 'Something else', function(a) {});">Reset File</button> </div> - API PlaceManager : les méthodes de cet API vous permettent de demander à Business Central d'afficher un composant particulier associ. à une cible :
$goToPlace("componentIdentifier"); - API Register plugin : les méthodes de cet API vous permettent de créer des plugins dynamiques de façon dynamqiue (qui seront transformées dans les écrans de Business Central) via l'API JS.
$registerPlugin( { id: "my_angular_js", type: "angularjs", templateUrl: "angular.sample.html", title: function () { return "angular " + Math.floor(Math.random() * 10); }, on_close: function () { alert("this is a pure JS alert!"); } });Le plugin se réfère au modèleangular.sample.html:<div ng-controller="TodoCtrl"> <span>{{remaining()}} of {{todos.length}} remaining</span> [ <a href="" ng-click="archive()">archive</a> ] <ul class="unstyled"> <li ng-repeat="todo in todos"> <input type="checkbox" ng-model="todo.done"> <span class="done-{{todo.done}}">{{todo.text}}</span> </li> </ul> <form ng-submit="addTodo()"> <input type="text" ng-model="todoText" size="30" placeholder="add new todo here"> <input class="btn-primary" type="submit" value="add"> </form> <form ng-submit="goto()"> <input type="text" ng-model="placeText" size="30" placeholder="place to go"> <input class="btn-primary" type="submit" value="goTo"> </form> </div>Un plugin peut être ajouté a un événement de Business Central par une série de rappels (callback) JavaScript :- on_concurrent_update;
- on_concurrent_delete;
- on_concurrent_rename;
- on_concurrent_copy;
- on_rename;
- on_delete;
- on_copy;
- on_update;
- on_open;
- on_close;
- on_focus;
- on_lost_focus;
- on_may_close;
- on_startup;
- on_shutdown;
- API Register Splash Screen : utilise les méthodes de cette API pour créer des écrans de démarrage.
$registerSplashScreen({ id: "home.splash", templateUrl: "home.splash.html", body_height: 325, title: function () { return "Cool Home Splash " + Math.floor(Math.random() * 10); }, display_next_time: true, interception_points: ["Home"] }); - API Virtual File System (VFS) API : avec cette API, vous pouvez lire ou écrire un fichier sauvegardé dans un système de fichiers par un appel asynchrone.
$vfs_readAllString(uri, function(a) { //callback logic }); $vfs_write(uri,content, function(a) { //callback logic })
2.7. Configurer des colonnes sur un tableau
Ajout et suppression de colonnes
dans le coin à droite. Si vous cliquer sur ce bouton, vous ouvrirez une liste de colonnes qui peuvent être ajoutées ou supprimées dans le tableau par une case se situant à côté de chaque colonne :
Redimensionner les colonnes
Déplacer des colonnes
.
.
Ordonnancer les colonnes
Chapitre 3. Configuration en ligne de commande
kie-config-cli est un outil de ligne de commande qui fournit des fonctions de gestion de répertoires de systèmes par ligne de commande et qui peut être utilise en ligne ou hors ligne.
Online mode(par défaut et conseillé) - au démarrage, l'outil se connecte a un répertoire Git par le serveur Git fourni parkie-wb. Toutes les modifications ont lieu localement et sont publiées en amont une fois que la commande push-changes a été lancée. Utilisez la commande exit pour publier les modifications locales. Pour ignorer les modifications locales à la sortie, utiliser la commande discard.Offline mode(un style d'installateur) - crée et manipule le référentiel du système directement sur le serveur - il n'y a aucune option de rejet (discard).
- Rendez-vous dans Red Hat Customer Portal et connectez-vous.
- Cliquer sur Téléchargements → Téléchargements de produits.
- À partir de la page Téléchargements de produits qui s'ouvre, cliquer sur Red Hat JBoss BPM Suite.
- À partir du menu déroulant Version, sélectionner 6.1.
- Dans le tableau qui s'affiche, naviguer sur la ligne Outils supplémentaires et cliquer sur Télécharger.
kie-config-cli-6.MINOR_VERSION-redhat-x-dist avec fichier kie-config-cli.sh.
3.1. Démarrer l'outil kie-config-cli tool en mode en ligne
- Pour démarrer l'outil kie-config-clie en ligne, naviguer dans le répertoire
kie-config-cli-6.MINOR_VERSION-redhat-x-distoù vous avez installé l'outil et exécutez ensuite la commande suivante. - Dans un environnement Unix, exécuter :
./kie-config-cli.sh
Dans un environnement Windows, exécuter :./kie-config-cli.bat
git://kie-wb-host:9148/system
3.2. Démarrer l'outil kie-config-cli tool en mode hors ligne
- Naviguer dans le répertoire
kie-config-cli-6.MINOR_VERSION-redhat-x-distoù vous avez installé l'outil. - Dans un environnement Unix, exécuter :
./kie-config-cli.sh offline
Dans un environnement Windows, exécuter :./kie-config-cli.bat offline
.niogit). Si .niogit n'existe pas encore, la valeur du dossier peut être laissée vide et une toute nouvelle configuration sera créée.
3.3. Commandes disponibles pour l'outil kie-config-cli
add-deployment- ajoute une nouvelle unité de déploiementadd-repo-org-unit- ajoute un référentiel à l’unité organisationnelleadd-role-org-unit- ajoute un ou des rôle(s) à l’unité organisationnelleadd-role-project- ajoute un ou des rôle(s) a un projetadd-role-repo- ajoute un ou des rôle(s) a un référentielcreate-org-unit- crée une nouvelle unité organisationnellecreate-repo- crée un nouveau référentiel gitdiscard- ne publie aucun changement local, nettoie les répertoires temporaires et ferme l'outilexit- publie le travail, nettoie les répertoires temporaires et ferme l'outilfetch-changes- récupère les changements faits en amont dans le référentielhelp- imprime les commandes disponibles avec leurs descriptionslist-deployment- fait la liste des déploiements disponibleslist-org-units- fait le liste des unités organisationnelleslist-repo- fait les liste des référentiels disponiblespush-changes- pousse les modifications dans le référentiel en amont (en mode en ligne uniquement)remove-deployment- supprime le déploiement existantremove-org-unit-supprime l’unité organisationnelle existanteremove-repo- supprime un référentiel existant de la config uniquementremove-repo-org-unit- supprime un référentiel de l’unité organisationnelleremove--role-org-unit-supprime le ou les rôle(s) d'une unité organisationnelleadd-role-project- supprime un ou des rôle(s) d'un projetremove-role-repo- supprime un ou des rôle(s) d'un référentiel
Chapitre 4. Migration
- Commencer par migrer les données : ce sont vos ressources d'entreprise.
- Puis, migrer vos processus de runtime.
- Enfin, convertissez vos anciens appels d'API en nouveaux, l'un après l'autre.
4.1. Migration des données
- Télécharger l'outil de migration en vous connectant sur le Portail client de Red Hat, puis naviguer vers la section de téléchargements des logiciels Red Hat JBoss BPM Suite. Cliquer sur Red Hat JBoss BPM Suite Migration Tool pour télécharger l'archive zip.
- Décompresser l'archive zip téléchargée dans un répertoire de votre choix, et naviguer vers ce répertoire par l'intermédiaire d'une invite de commande. Ce répertoire contient quatre dossiers :
bin- contient les scripts de lancement.jcr-exporter-libs- contient les fichiers libs spécifiques à la partieexport-from-JCRde la migration.jcr-importer-libs- contient les fichiers libs spécifiques à la partieimport-from-Gitde la migration.conf- contient la configuration de l'outil de migration global.
- Pour les bases de données de production, copier le pilote JDBC pour la base de données utilisée par le référentiel JCR du répertoire
jcr-exporter-libsde l'outil de migration. - Exécuter la commande suivante :
./bin/runMigration.sh -i <source-path> -o <destination-path> -r <repository-name>
- <source-path> est un chemin d'accès vers le référentiel JCR source.
- <desintation-path> est un chemin d'accès vers une destination GIT VFS. Ce dossier ne doit pas être déjà existant.
- <repository-name> un nom arbitraire de nouveau référentiel.
-i, vous pouvez également utiliser -h pour imprimer un message d'aide et -f qui oblige un écrasement du répertoire de sortie, éliminant ainsi le besoin de suppression manuelle de ce répertoire.
Comment importer un référentiel de Business Central
Note
Importer le référentiel dans JBDS
- Démarrer JBoss Developer Studio
- Démarrer le serveur Red Hat JBoss BPM Suite (s'il n'est pas déjà en cours d'exécution) en sélectionnant le serveur à partir de l'onglet serveur et en cliquant sur l'icône de démarrage.
- Sélectionner Fichier → Importer... et naviguer dans le fichier Git. Ouvrir le dossier Git et sélectionner Projets de Git puis cliquer Suite.
- Sélectionner la source du référentiel en tant que Sortir du référentiel local et cliquer sur Suite.
- Sélectionner le référentiel qui doit être configuré à partir de la liste de référentiels disponibles.
- Importer le projet en tant que projet général dans la prochaine fenêtre et cliquer sur Suite. Nommer ce projet et cliquer sur Terminer.
4.2. Migration de runtime
- Démarrer la propriété système
jbpm.v5.id.strategyà true dans le fichier JBoss BPM Suitestandalone.xml:<property name="jbpm.v5.id.strategy" value="true"/>
- Charger la KieSession comme suit :
KieSession ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(sessionID, kbase, sessionConf, env);
- Continuer l'exécution normale du processus en utilisant les méthodes :
ksession.signalEvent("SomeEvent", null);
4.3. API et Compatibilité rétroactive
Migration vers Version 6.1
knowledge-api JAR n'est plus supporté dans la version 6.1 et est remplacé par des API contenues dans le fichier kie-api JAR qui ont été introduites dans JBoss BPM Suite 6.0.
knowledge-api.jar), veuillez migrer (réécrire) les appels d'API dans la nouvelle API de KIE. Notez bien que plusieurs autres API ont changé entre JBoss BRMS 5.x et JBoss BPM Suite 6.x, à savoir l'API de service de tâches et l'API REST.
Migration vers Version 6.0
connaissances-api spécialement conçu pour le code rétro-compatible. Cette API est l'interface publique qui sert à travailler dans JBoss BPM Suite et JBoss BRMS et elle est rétro-compatible.
4.4. Migration du service de tâches
LocalHTWorkItemHandler.
Chapitre 5. Gestion des données
5.1. Sauvegarde des données
- tout descripteur de déploiement personnalisé (tel que,
web.xml,jboss-web.xml,jboss.xml) - tous les fichiers de propriétés personnalisés
Note
Considérez la sauvegarde du fichierbusiness-central.wartotal et des fichiersdashbuilder.war.
5.2. Installation des indexes
Installation des indexes de clés étrangères
Installation d'indexes pour le tableau de tâches et de processus
processinstancelog et bamtasksummary.
5.3. Installer la base de données
- Postgres
- L’énoncé sql suivant est utilisé pour créer une base de données Postgres :
CREATE DATABASE dashbuilder WITH ENCODING='UTF8' OWNER=dashbuilder CONNECTION LIMIT=-1Note
La codification de la base de données doit être UTF8 - DB2
- La base de données DB2 peut être créée en utilisant l’énoncé sql suivant :
CREATE DATABASE dashb PAGESIZE 16384
Note
La taille de page des systèmes DB2 par défaut est de 4k, ce qui n'est pas suffisant pour la taille des colonnes du tableau dashbuilder. La taille d'une page doit être forcée à 16384 comme le montre l’énoncé suivant.
<datasource jndi-name="java:jboss/datasources/jbpmDS" enabled="true" use-java-context="true" pool-name="postgresqlDS">
<connection-url>jdbc:postgresql://localhost/test</connection-url>
<driver>postgresql</driver>
<pool></pool>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<drivers>
<driver name="postgresql" module="org.postgresql">
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>
</drivers>5.4. Modifier la base de données
java:jboss/datasources/ExampleDS
standalone.xml.
Note
Procédure 5.1. Changer de base de données
- Installer le pilote de base de données sur JBoss (voir la documentation du pilote de JBoss).
- Créer une base de données vide et une source de données de JBoss qui se connecte au pilote de la base de données.
- Modifier le fichier
dashbuilder.war/WEB-INF/jboss-web.xml:<jboss-web> <context-root>/dashbuilder</context-root> <resource-ref> <res-ref-name>jdbc/dashbuilder</res-ref-name> <res-type>javax.sql.DataSource</res-type> <jndi-name>java:jboss/datasources/myDataSource</jndi-name> </resource-ref> ... - Remplacer la valeur du paramètre jndi-name par le nom du chemin JNDI de la source de données JBoss que vous venez de créer.
- Modifier le fichier
dashbuilder.war/WEB-INF/jboss-deployment-structure.xml - Ajouter l'extrait de configuration suivant à l’intérieur de la balise
deployment, oujdbcDriverModuleNamecorrespond au nom du module de pilote de JBoss JDBC :<dependencies> <module name="jdbcDriverModuleName" /> </dependencies>
5.5. Scripts DDL
ddl-scripts. Les scripts de bases de données sont fournis pour DB2, H2, MySQL5, Oracle, PostgreSQL et SQLServer.
Chapitre 6. Référentiel de ressources
Project Explorer à partir de l'environnement unifié de Red Hat JBoss BPM Suite.
6.1. Création d'un référentiel
Important
ADMIN peut créer un référentiel.
Procédure 6.1. Création d'un nouveau référentiel
- Ouvrez la perspective Administration : à partir du menu principal, cliquer sur Création → Administration.
- Dans le menu perspective, cliquer sur Référentiels → Nouveau référentiel.
- La fenêtre Création de référentiel s'ouvre.

Figure 6.1. Fenêtre de création de référentiel
- Saisir les informations obligatoires :
- Nom de référentiel.
Note
Notez que le nom du référentiel doit avoir un nom de fichier valide. Évitez d'utiliser un espace ou un caractère spécial qui puisse mener à un nom de dossier non valide. - Sélectionner une unité organisationnelle dans laquelle le référentiel doit être créé à partir du menu déroulant Unité organisationnelle.
- Cliquer sur Terminer
6.2. Clonage d'un référentiel
Important
ADMIN peut cloner un référentiel.
Procédure 6.2. Clonage d'un référentiel
- Ouvrez la perspective Administration.
- Dans le menu Référentiels, sélectionner Clonage d'un référentiel.
- La fenêtre Clonage d'un référentiel s'ouvre.

Figure 6.2. Fenêtre de clonage d'un référentiel
- Dans la boîte de dialogue Clonage d'un référentiel, saisir les informations sur le référentiel :
- Saisir le Nom de référentiel à utiliser comme identifiant pour le référentiel de ressources Asset et sélectionner l'Unité organisationnelle dans laquelle il devra être ajouté.
- Saisir l'URL du référentiel GIT :
- Pour un référentiel local :
file:///path-to-repository/reponame - Pour un référentiel déjà existant ou distant :
git://hostname/reponame
Note
Le protocole de fichier n'est pris en charge que pour les opérations 'READ'. Les opérations 'WRITE' ne sont pas prises en charge. - Si nécessaire, saisir les Nom d'utilisateur et Mot de passe à utiliser pour l'authentification quand on clone le référentiel.
- Cliquer sur Cloner.
- Vous apercevrez une invite avec un bouton OK qui notifie l'utilisateur que le référentiel a été créé. Cliquer sur OK. Le référentiel sera indexé. Certaines fonctionnalités de workbench risquent de pas être disponibles tant que l'indexation est en cours.
6.3. Supprimer un référentiel
Comment supprimer un référentiel de Business Central
Procédure 6.3. Utiliser Business Central pour supprimer un référentiel
- Accéder au RepositoryEditor dans Business Central Création → Administration.
- Sélectionner les Référentiels du menu arborescent sur la gauche.
- Sur la droite du RepositoryEditor, chercher le référentiel à supprimer de la liste des référentiels disponibles.
- Sélectionner master dans le menu descendant, et cliquer sur le bouton Suppression.
- Le message suivant apparaîtra :
Êtes-vous certain de vouloir supprimer le référentiel "<$RepositoryName>" ? Certains éditeurs de texte deviennent soudain inopérables si on ne peut plus accéder à leur contenu.
Cliquer sur Ok pour supprimer.
Supprimer un référentiel par l'outil kie-config-cli
kie-config-cli par la commande remove-repo.
kie-config-cli, voir Chapitre 3, Configuration en ligne de commande.
Supprimer un référentiel par l'API REST
DELETE. Cet appel assume que l'utlisateur a créé une session HTTP authentifiée avant de lancer cette commande.
Exemple 6.1. Supprimer un référentiel avec curl
curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X DELETE 'localhost:8080/business-central/rest/repositories/REPOSITORY_NAME'
6.4. Gestion des ressources
Note
kiemgmt.
Référentiels gérés ou non-gérés


Branches gérées


Structure du référentiel


kiemgmt verra une tâche utilisateur apparaître dans cette liste de tâches, lui indiquant de revoir les ressources à promouvoir. Cet utilisateur peut alors demander cette tâche, et décider de promouvoir tous, certains ou aucun des éléments de ressources. Le processus sous-jacent va choisir les commits sélectionnées par l'utilisateur dans une branche de sortie de version. Cet utilisateur peut également demander un nouvel examen de ces ressources, et ce processus peut être répété plusieurs fois jusqu'à ce que toutes les ressources soient prêtes à sortir dans une nouvelle version. Le flux de ce processus est illustré ci-dessous :

Avertissement
release

6.5. Référentiel Maven
- Les builds
- La documentation
- Les rapports
- Les dépendances
- Les versions
- Les SCM
- La distribution
- Local : se réfère à un référentiel local où toutes les dépendances de projet sont stockées et se trouvent dans l'installation en cours comme « m2 » dans le dossier par défaut. C'est un cache des téléchargements à distance qui contient également les artefacts de builds temporaires non encore sortis.
- Remote (distant) : se réfère à n'importe quel autre type de référentiel qui puisse être accessible par une variété de protocoles tels que file:// ou http://. Ces référentiels peuvent être dans un lieu éloigné, mis en place par un tiers pour le téléchargement des artefacts ou un référentiel interne mis en place sur un fichier ou un serveur HTTP, utilisé pour partager des objets privés entre les équipes de développement pour la gestion des versions internes.
6.6. Configurer un déploiement pour un référentiel Nexus distant
distributionManagement à votre fichier pom.xml de projet, comme l'illustre l'exemple ci-dessous.
<distributionManagement>
<repository>
<id>deployment</id>
<name>Internal Releases</name>
<url>http://your_nexus_host:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>deployment</id>
<name>Internal Releases</name>
<url>http://your_nexus_host:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>snapshotRepository est utilisé quand le qualificateur -SNAPSHOT est ajouté au numéro de version actuel du projet. Dans les autres cas, le référentiel spécifié dans l'élément du repository sera utilisé.
paramètres-security.xml à l'aide d'un mot de passe maître. Par défaut, ce fichier est dans le dossier ~/.m2, sauf si vous avez changé son emplacement en modifiant la propriété système kie.maven.settings.custom.
<servers>
<server>
<id>deployment</id>
<username>admin</username>
<password>admin.123</password>
</server>
</servers>pom.xml.
6.7. Configuration système
Procédure 6.4. Modifier les propriétés système
- Modifier le fichier
$JBOSS_HOME/domain/configuration/host.xml - Cherchez les éléments XML qui appartiennent au main-server-group et ajouter la propriété système. Par exemple :
<system-properties> <property name="org.uberfire.nio.git.dir" value="..." boot-time="false"/> ... </system-properties>
org.uberfire.nio.git.dir: emplacement du répertoire .niogit. Par défaut : le répertoire de travailorg.uberfire.nio.git.daemon.enabled: active/désactive le démon GIT. Par défaut: trueorg.uberfire.nio.git.daemon.host: si le démon GIT est activé, utiliser cette propriété comme identifiant d'hôte local. Valeur par défaut : localhostorg.uberfire.nio.git.daemon.port: si le démon GIT est activé, utiliser cette propriété comme numéro de port. Valeur par défaut : 9418org.uberfire.nio.git.ssh.enabled: active/désactive le démon SSH. Par défaut: trueorg.uberfire.nio.git.ssh.host: si le démon SSH est activé, utiliser cette propriété comme identifiant d'hôte local. Valeur par défaut : localhostorg.uberfire.nio.git.ssh.port: si le démon SSH est activé, utiliser cette propriété comme numéro de port. Valeur par défaut : 8001org.uberfire.nio.git.ssh.cert.dir: emplacement du répertoire.securityoù les certificats locaux seront stockés. Valeur par défaut : répertoire de travail.org.uberfire.metadata.index.dir: emplacement du dossier.indexde Lucene. Par défaut : le répertoire de travailorg.uberfire.cluster.id: nom du cluster Helix, par example : kie-clusterorg.uberfire.cluster.zk: string de connexion à Zookeeper. Se présente sous la forme :host1:port1,host2:port2,host3:port3. Par exemple :localhost:2188.org.uberfire.cluster.local.id: id unique du noeud de cluster Helix. Notez que ':' est remplacé par '_'. Par exemple : node1_12345.org.uberfire.cluster.vfs.lock: nom de la ressource définie sur le cluster Helix, par exemple : kie-vfsorg.uberfire.cluster.autostart: cette valeur retarde la mise en cluster VFS jusqu'à ce que l'application soit entièrement initialisée pour éviter les conflits lorsque tous les membres de cluster créent des clones locaux.org.uberfire.sys.repo.monitor.disabled: désactive le moniteur de configuration (ne pas désactiver à moins de savoir ce que vous faîtes). Valeur par défaut : falseorg.uberfire.secure.key: mot de passe utilisé par le cryptage de mots de passe. Valeur par défaut : org.uberfire.adminorg.uberfire.secure.alg: algorythme Crypto utilisé par le crytage de mots de passe. Valeur par défaut : PBEWithMD5AndDESorg.guvnor.m2repo.dir: endroit où le dossier de référentiel Maven est stocké. Valeur par défaut : working-directory/repositories/kieorg.kie.example.repositories: dossier à partir desquels les référentiels de démo seront clonés. Les référentiels de démo doivent avoir été obtenus et doivent être placés dans ce dossier. Cette propriété système prévaut sur les propriétés org.kie.demo et org.kie.example. Par défaut : Not used (non utilisé).org.kie.demo: active le clone externe d'une application démo de GitHub. Ce système a priorité sur org.kie.example. Valeur par défaut : true.org.kie.example: active la structure de l'exemple composé par un référentiel, une unité organisationnelle ou un projet. Valeur par défaut : false.
Chapitre 7. Exportation et importation d'un processus
7.1. Créer une définition de processus
- Ouvrir la perspective Création de projet (Création → Création Projet).
- Dans
Project Explorer(Création Projet → Project Explorer), naviguer jusqu'au projet où vous souhaitez créer la définition de processus (dans la vue Projet, sélectionner le projet et le référentiel qui conviennent dans les listes déroulantes ; et dans la vue Référentiel, naviguer jusqu'au répertoireREPOSITORY/PROJECT/src/main/resources/).Note
Il est conseillé de créer vos ressources, y compris les définitions de processus, dans un package de projet pour permettre l'importation de ressources et leur référencement. Pour créer un package, procéder ainsi :- Dans la vue Référentiel de Project Explorer, naviguer dans le répertoire
REPOSITORY/PROJECT/src/main/resources/. - Aller dans Nouvel élément → Package.
- Dans la boîte de dialogue Nouvelle ressource, définir le nom du package et vérifier l'emplacement du package dans le référentiel.
- Dans le menu perspective, cliquer sur Nouvel élément → Business Process.
- Dans la boîte de dialogues Nouveaux Processus, saisir le nom du processus et cliquer sur le bouton OK. Attendez que l'éditeur de processus apparaisse avec le diagramme de processus.
7.2. Importation d'une définition de processus
- Dans Project Explorer, sélectionner un projet et un package respectif dans lequel vous souhaitez importer la définition du processus.
- Créer un nouveau processus métier en allant dans Nouvel Élément → Business Process.
- Dans la barre d'outils de Process Designer, cliquer sur l'icône importation
dans la barre d'outils Éde l'éditeur et choisissez le format de la définition de processus importé. Notez que vous devez choisir de remplacer la définition de processus existante pour importer.
- À partir de la fenêtre Importer, cherchez le fichier de processus (Process) et cliquer sur Importer.

Figure 7.1. Fénêtre d'importation
7.3. Importer jPDL 3.2 dans BPMN2

Figure 7.2. Migrer jPDL 3.2 dans BPMN2

Figure 7.3. Migrer dans la boîte de dialogue BPMN2
Important
7.4. Exportation d'un processus
Procédure 7.1. Exportation d'un processus métier
- Ouvrir la perspective Création Projet : à partir du menu principal, cliquer sur Création → Création Projet.
- Sélectionner le processus métier à exporter pour le voir dans le Process Designer.
- Cliquer sur le bouton (
) de la barre de conception de processus et sélectionner Afficher les sources des processus parmi les options de menu déroulant.
- La fenêtre Sources des processus apparaît
- Cliquer sur le bouton Télécharger BPMN2 et sauvegarder le processus métier à l'emplacement désiré.
Partie III. Intégration
Chapitre 8. Le déploiement d'artefacts de Red Hat JBoss BPM Suite dans S-RAMP (de l'anglais Repository Artifact Model and Protocol)
8.1. Le déploiement d'artefacts de Red Hat JBoss BPM Suite dans SOA Repository Artifact Model and Protocol (S-RAMP) en utilisant Maven
pom.xml comme dans l'exemple ci-dessous :
<build>
<extensions>
<extension>
<groupId>org.overlord.sramp</groupId>
<artifactId>s-ramp-wagon</artifactId>
<version>${s-ramp-wagon.version}</version>
</extension>
</extensions>
</build>- Cloner le référentiel git où vous avez sauvegardé le projet BPM Suite en exécutant cette commande :
git clone http://localhost:8001/REPOSITORY_NAME
- Par la ligne de commande, déplacez-vous dans le dossier qui contient le projet.
- Suivez les instructions qui se trouvent dans Red Hat JBoss Fuse Service Works 6 Development Guide, Volume 3: Governance, section Deploiement dans S-RAMP. Utiliser l'URL de l'exemple ci-dessous :
<distributionManagement> <repository> <id>local-sramp-repo</id> <name>S-RAMP Releases Repository</name> <url>sramp://S-RAMP_SERVER_URL/s-ramp-server/</url> </repository> <snapshotRepository> <id>local-sramp-repo-snapshots</id> <name>S-RAMP Snapshots Repository</name> <url>sramp://S-RAMP_SERVER_URL/s-ramp-server/</url> </snapshotRepository> </distributionManagement>Avec ces paramètres de configuration, les déploiements de Maven sont envoyés directement dans le référentiel S-RAMP en utilisant l'API S-RAMP. Notez que les artefacts sont ajoutés au référentiel S-RAMP avec un type d'artefact basé sur le type Maven du projet. Vous pouvez substituer ce comportement en ajoutant un paramètre de recherche dans l'URL du référentiel dans le fichierpom.xmlfile. Par exemple :<distributionManagement> <repository> <id>local-sramp-repo</id> <name>S-RAMP Releases Repository</name> <url>sramp://S-RAMP_SERVER_URL/s-ramp-server/?artifactType=KieJarArchive</url> </repository> </distributionManagement>L'exemple ci-dessus entraîne l'artefact Maven à être téléchargé avec un type d'artefact S-RAMP de KieJarArchive. - Modifier le plug-in de Maven dans le fichier
pom.xmlet ajouter y une dépendance comme suit au cas où le projet ne contienne pas de tables de décisions :<plugins> <plugin> <groupId>org.kie</groupId> <artifactId>kie-maven-plugin</artifactId> <version>6.0.2-redhat-6</version> <extensions>true</extensions> <dependencies> <dependency> <groupId>org.jbpm</groupId> <artifactId>jbpm-bpmn2</artifactId> <version>6.0.2-redhat-6</version> </dependency> </dependencies> </plugin> </plugins>Si le projet contient des tables de décisions, utiliser cette dépendance pour kie-maven-plugin à la place :<plugins> <plugin> <groupId>org.kie</groupId> <artifactId>kie-maven-plugin</artifactId> <version>6.0.2-redhat-6</version> <extensions>true</extensions> <dependencies> <dependency> <groupId>org.drools</groupId> <artifactId>drools-decisiontables</artifactId> <version>6.0.2-redhat-6</version> </dependency> </dependencies> </plugin> </plugins> - Exécuter un déploiement propre par la commande suivante :
mvn -s sramp-settings.xml deploy
.
Note
settings.xml. Pour plus de détails sur les informations d'identification, consulter la documentation Red Hat JBoss Fuse Service Works (FSW) sur l'authentification.
8.2. Le déploiement d'artefacts de Red Hat JBoss BPM Suite dans SOA Repository Artifact Model and Protocol (S-RAMP) en utilisant l'interface graphique (GUI).
- Naviguer dans http://localhost:8080/s-ramp-ui/ via navigateur web. Si l'interface utilisateur est configurée pour exécuter à partir d'un nom de domaine, substituer
localhostpar le nom de domaine. Par exemple http://www.example.com:8080/s-ramp-ui/. - Cliquer sur Artefacts.
- Dans la section Gestion Artefacts, sélectionner le bouton Importer.
- Situer l'archive kie que vous souhaitez déployer. Dans la boite de dialogue qui s'ouvre, remplir
KieJarArchivecomme type, et sélectionner Importer. - Le déploiement crée alors ces entrées dans un référentiel S-RAMP :
KieJarArchive, à partir duquel on a :KieXmlDocument(si l'archive contientkmodule.xml)BpmnDocument(si l'archive contient les définitionsbpmn)DroolsDocument(si l'archive contient les définitionsdrl)
Chapitre 9. Intégrer Red Hat JBoss BPM Suite dans Red Hat JBoss Fuse
features.xml : un fichier fournissant des fonctionnalités de base de JBoss BPM Suite et de JBoss BRMS, qui définissent les fonctionnalités d'OSGi pouvant être déployées dans JBoss Fuse et un autre fichier fournissant un support supplémentaires à l'intégration à SwitchYard et Camel.
Note
Important
drools-karaf-features-6.2.0.Final-redhat-6-BZ1232486-features.xml:
- drools-common
- drools-module
- drools-templates
- drools-decisiontable
- drools-jpa
- kie
- kie-ci
- kie-spring
- kie-aries-blueprint
- jbpm-commons
- jbpm-human-task
- jbpm
- droolsjbpm-hibernate
- h2
Tableau 9.1. Exemples de fonctionnalités et de cas d'utilisation
| Fonctionnalité | Cas d'utilisation |
|---|---|
drools-module | Utiliser le moteur JBoss BRMS pour l'évaluation de règles, sans avoir besoin de tables de décisions, processus ou persistances. |
drools-jpa | Utiliser le moteur de JBoss BRMS pour l'évaluation de règles de persistance ou de transactions, sans exiger de tables de décision ou de processus. La fonctionnalité drools-jpa contient déjà drools-module, mais vous devrez peut-être également installer la fonctionnalité droolsjbpm-hibernate, ou vous assurer qu'il y ait un package Hibernate compatible installé. |
drools-decisiontable | Utiliser le moteur JBoss BRMS avec des tables de décision. |
jbpm | Utiliser JBoss BPM Suite (ou le moteur JBoss BRMS avec les processus). La fonctionnalité jbpm contient déjà drools-module, et drools-jpa. Vous devrez peut-être également installer la fonctionnalité droolsjbpm-hibernate, ou vous assurer qu'il y ait un package Hibernate compatible installé. |
jbpm et jbpm-human-task | Utiliser JBoss BPM Suite (ou le moteur JBoss BRMS avec des processus) avec Human Task. |
Jars de moteurs de base et kie-ci. | Utiliser JBoss BRMS ou JBoss BPM Suite avec KieScanner (KIE-CI) pour télécharger les kJARs d'un référentiel Maven. |
kie-spring | Utiliser l'intégration KIE-Spring. |
kie-spring et kie-aries-blueprint. | Utiliser l'intégration KIE-Aries-Blueprint. |
org/jboss/integration/fuse/karaf-features/1.0.0.redhat-620137/karaf-features-1.0.0.redhat-620137-features.xml :
- fuse-bxms-switchyard-common-knowledge
- fuse-bxms-switchyard-rules
- fuse-bxms-switchyard-bpm
- kie-camel
- jbpm-workitems-camel
installDir/etc/org.ops4j.pax.url.mvn.cfg.
9.1. Installer / Mettre à jour les fonctionnalités d'intégration principales
drools-karaf-features-6.2.0.Final-redhat-6-features.xml), vous devrez les supprimer, ainsi que tous les fichiers associés avant d'installer le fichier features.xml plus récent.
Procédure 9.1. Supprimer une installation drools-karaf-features existante
- Démarrer la console Fuse par :
$ ./installDir/bin/fuse
- Retirer l'installation d'anciennes fonctionnalités/apps qui utilisaient l'ancien fichier
features.xml. Par exemple :JBossFuse:karaf@root> features:uninstall drools-module JBossFuse:karaf@root> features:uninstall jbpm JBossFuse:karaf@root> features:uninstall kie-ci
- Chercher des références de lots en utilisant drools/kie/jbpm et les supprimer :
list -t 0 -s | grep drools list -t 0 -s | grep kie list -t 0 -s | grep jbpm
Pour supprimer les lots :karaf@root> osgi:uninstall <BUNDLE_ID>
- Supprimer l'ancien url drools-karaf-features :
karaf@root> features:removeurl mvn:org.drools/drools-karaf-features/6.2.0.Final-redhat-<VERSION>/xml/features
- Redémarrer Fuse
- Ajouter le fichier de nouvelles fonctionnalités :
karaf@root> features:addurl mvn:org.drools/drools-karaf-features/6.2.0.Final-redhat-6-BZ1232486/xml/features
- Installer les fonctionnalités :
karaf@root> features:install ...
drools-karaf-features :
Procédure 9.2. Installer les fonctionnalités de base de JBoss BPM Suite et de JBoss BRMS
- Télécharger et Installer le correctif.
- Télécharger
jboss-brms-6.1.1-BZ-1232486.zip. - Le décompresser.
- Naviguer dans le répertoire
BZ-1232486. - Exécuter la commande de console suivante :
$ mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=drools-karaf-features-6.2.0.Final-redhat-6-BZ1232486-features.xml -DgroupId=org.drools -DartifactId=drools-karaf-features -Dversion=6.2.0.Final-redhat-6-BZ1232486 -Dpackaging=xml -Dclassifier=features
- Configurer les référentiels demandés
- Modifier le fichier
installDir/etc/org.ops4j.pax.url.mvn.cfgdans votre installation JBoss Fuse et ajouter la variableorg.ops4j.pax.url.mvn.repositories, et notez que les entrées sont séparées par ‘, \’ :- http://maven.repository.redhat.com/techpreview/all/@id=bxms-product-repo
- Démarrer JBoss Fuse :
$ ./installDir/bin/fuse
- Ajouter un référence au fichier de fonctionnalités de base en exécutant la commande de console suivante :
JBossFuse:karaf@root> features:addurl mvn:org.drools/drools-karaf-features/6.2.0.Final-redhat-6-BZ1232486/xml/features
- Vous pouvez installer les fonctionnalités fournies dans ce fichier en exécutant, par exemple, la commande de console suivante :
JBossFuse:karaf@root> features:install drools-module
9.2. Installer des fonctionnalités d'intégration supplémentaires
Important
Procédure 9.3. Intégration SwitchYard et Camel
- Ajouter une référence au fichier de fonctionnalités en vue d'une intégration supplémentaire avec SwitchYard et Camel en exécutant la commande de console suivante :
JBossFuse:karaf@root> features:addurl mvn:org.jboss.integration.fuse/karaf-features/1.0.0.redhat-620137/xml/features
- Vous pouvez installer les fonctionnalités fournies pour l'intégration SwitchYard and Camel en exécutant, par exemple, la commande de console suivante :
JBossFuse:karaf@root> features:install fuse-bxms-switchyard-rules
9.3. Installer les applications Quickstart deJBoss Fuse Integration
org/jboss/integration/fuse/quickstarts/karaf-features/1.0.0.redhat-620137/karaf-features-1.0.0.redhat-620137-features.xml :
- fuse-bxms-switchyard-quickstart-bpm-service
- fuse-bxms-switchyard-quickstart-remote-invoker
- fuse-bxms-switchyard-quickstart-rules-camel-cbr
- fuse-bxms-switchyard-quickstart-rules-interview
- fuse-bxms-switchyard-quickstart-rules-interview-container
- fuse-bxms-switchyard-quickstart-rules-interview-dtable
- fuse-bxms-switchyard-demo-library
- fuse-bxms-switchyard-demo-helpdesk
installDir/etc/org.ops4j.pax.url.mvn.cfg.
Procédure 9.4. Installer l'application Quickstart
- Ajouter une référence au fichier de fonctionnalités en exécutant la commande de console suivante :
JBossFuse:karaf@root> features:addurl mvn:org.jboss.integration.fuse.quickstarts/karaf-features/1.0.0.redhat-620137/xml/features
- Vous pouvez maintenant installer les applications quickstart fournies par de fichier de fonctionnalités en exécutant, par exemple la commande de console suivante :
JBossFuse:karaf@root> features:install fuse-bxms-switchyard-quickstart-bpm-service
Procédure 9.5. Télécharger et installer les fichiers ZIP de Quickstart
- Télécharger le fichier ZIP d'installation Quickstart.
- Extraire les éléments de contenu du répertoire quickstart dans votre répertoire
installDir/quickstartexistant. - Extraire les éléments de contenu du répertoire de système dans votre répertoire
installDir/systemexistant.
9.3.1. Tester votre première application Quickstart
Procédure 9.6. Tester l'application Quickstart
- Démarrer JBoss Fuse :
$ ./installDir/bin/fuse
- Installer et démarrer switchyard-bpm-service en exécutant la commande de console suivante :
JBossFuse:karaf@root> features:install fuse-bxms-switchyard-quickstart-bpm-service
Note
Toutes les fonctionnalités dépendantes spécifiées dans le fichier des fonctionnalités de l'application seront installées automatiquement. - Soumettre une requête web pour invoquer la passerelle SOAP.
- Ouvrir une fenêtre de terminal, et naviguez dans le répertoire quickstart associé extrait du fichier ZIP de l'application quickstart (dans ce cas, switchyard-bpm-service).
- Exécuter la commande suivante :
$ mvn clean install
Note
Vous aurez besoin des référentiels suivants configurés dans votre fichiersettings.xml:- http://maven.repository.redhat.com/techpreview/all/
- http://repository.jboss.org/nexus/content/repositories/public/
- Exécuter la commande suivante :
$ mvn exec:java -Pkaraf
- Vous recevrez la réponse suivante :
SOAP Reply: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/><soap:Body><ns2:submitOrderResponse xmlns:ns2="urn:switchyard-quickstart:bpm-service:1.0"> <orderId>test1</orderId> <accepted>true</accepted> <status>Thanks for your order, it has been shipped!</status> </ns2:submitOrderResponse></soap:Body></soap:Envelope>
Chapitre 10. Intégration avec Spring
10.1. Configurer Red Hat JBoss BPM Suite avec Spring
jboss-bpms-engine.zip et s'appelle kie-spring-VERSION-redhat-MINORVERSION.jar.
En tant que Moteur de processus auto gérés
RuntimeManager, une synchronisation parfaite entre le service de tâches et le moteur de processus est gérée en interne et l'utilisateur final n'a pas à traiter le code interne pour les faire fonctionner ensemble.
En tant que service de tâches partagées
TaskService, vous avez plus de flexibilité dans la configuration de l'instance de service de tâches car elle est indépendante du RuntimeManager. Une fois configurée, elle est ensuite utilisée par le RuntimeManager à la demande.
org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean. Cette classe de fabrique est chargée de produire des instances de RuntimeEnvironment qui sont consommés par le RuntimeManager lors de la création. Illustré ci-dessous, vous verrez un RuntimeEnvironment configuré le gestionnaire d'entités, le gestionnaire de transactions et les ressources pour la classe org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean :
<bean id="runtimeEnvironment" class="org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean">
<property name="type" value="DEFAULT"/>
<property name="entityManagerFactory" ref="jbpmEMF"/>
<property name="transactionManager" ref="jbpmTxManager"/>
<property name="assets">
<map>
<entry key-ref="process"><util:constant static-field="org.kie.api.io.ResourceType.BPMN2"/></entry>
</map>
</property>
</bean>
- DEFAULT - configuration par défaut (le plus commun) du RuntimeManager
- EMPTY - environnement complètement vide à remplir manuellement
- DEFAULT_IN_MEMORY - la même chose que DEFAULT mais sans persistence du moteur de runtime
- DEFAULT_KJAR - la même chose que DEFAULT mais les ressources de connaissance sont prises dans le KJAR identifié par releaseId ou le GAV
- DEFAULT_KJAR_CL - généré directement à partir d'une chemin de classe qui consiste en un descripteur kmodule.xml
- knowledgeBase
- assets
- releaseId
- groupId, artifactId, version
entity manager factory outransaction manager. Voici ci-dessous un exemple de RuntimeManager pour org.kie.spring.factorybeans.RuntimeManagerFactoryBean :
<bean id="runtimeManager" class="org.kie.spring.factorybeans.RuntimeManagerFactoryBean" destroy-method="close"> <property name="identifier" value="spring-rm"/> <property name="runtimeEnvironment" ref="runtimeEnvironment"/> </bean>
Chapitre 11. Intégration CDI
11.1. Intégration CDI
- Gestionnaire d'entités et Usine de gestionnaires d'entités
- Callback de groupes d'utilisateurs pour des tâches humaines
- Fournisseur d'identité pour passer les informations d’authentification de l'utilisateur aux services.
public class EnvironmentProducer {
@PersistenceUnit(unitName = "org.jbpm.domain")
private EntityManagerFactory emf;
@Inject
@Selectable
private UserGroupCallback userGroupCallback;
@Produces
public EntityManagerFactory getEntityManagerFactory() {
return this.emf;
}
@Produces
@RequestScoped
public EntityManager getEntityManager() {
EntityManager em = emf.createEntityManager();
return em;
}
public void close(@Disposes EntityManager em) {
em.close();
}
@Produces
public UserGroupCallback produceSelectedUserGroupCalback() {
return userGroupCallback;
}
@Produces
public IdentityProvider produceIdentityProvider {
return new IdentityProvider() {
// implement IdentityProvider
};
}
}
deployments/business-central.war/WEB-INF/beans.xml peut être configuré pour pouvoir modifier les paramètres de configuration actuels de l'implémentation de usergroupcallback.
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://docs.jboss.org/cdi/beans_1_0.xsd"> <alternatives> <class>org.jbpm.services.task.identity.JAASUserGroupCallbackImpl</class> </alternatives> </beans>
Note
org.jbpm.services.task.identity.JAASUserGroupCallbackImpl est juste un exemple pour démontrer les paramètres de configuration du serveur d'applications quel qu'il fût (LDAP, DB, etc).
Chapitre 12. Persistance
Note
- État de session : cela inclut l'ID de session, la date de la dernière modification, les données de session dont les règles métier peuvent avoir besoin pour l'évaluation, l'état des tâches de minuterie.
- État d'instance de processus : cela inclut l'ID d'instance de processus, l'ID de processus, la date de la dernière modification, la date du dernier accès en lecture, la date de démarrage de l'instance de processus, les données de runtime (le statut d'exécution comprenant le noeud à exécuter, les valeurs des variables, etc.) et les types d'événements.
- État de runtime d'élément de travail : inclut l'ID d'élément de travail, la date de création, le nom, l'ID d'instance de processus, et l'état de l'élément de travail lui-même.
12.1. Session
SessionInfo. Elles persistent l'état de la session KIE de runtime, et stocke les données suivantes :
Tableau 12.1.
| Champ | Description | Nullable |
|---|---|---|
|
id
|
Clé primaire
|
false
|
|
lastmodificationdate
|
dernière sauvegarde dans le store de données
|
N/A
|
|
rulesbytearray
|
jeu de données binaire avec état de session (blob binaire
|
false
|
|
startdate
|
démarrage de session
| |
|
optlock
|
numéro de version utilisé pour verrouiller la valeur d'un verrouillage optimiste
| |
12.2. Instance de processus
ProcessInstanceInfo, qui persistent l'état d'une instance de processus en cours d'exécution et qui stockent les données suivantes :
Tableau 12.2.
| Champ | Description | Nullable |
|---|---|---|
|
instanceid
|
Clé primaire
|
false
|
|
lastmodificationdate
|
dernière sauvegarde dans le store de données
|
N/A
|
|
lastreaddate
|
dernière lecture dans le store de données
|
N/A
|
|
processid
|
ID du processus sur lequel l'instance est basée
|
false
|
|
processinstancebytearray
|
jeu de données binaire avec état d'instance de processus (blob binaire)
|
false
|
|
startdate
|
Date de démarrage de l'instance de processus
| |
|
optlock
|
numéro de version utilisée comme valeur de verrouillage pour le verrouillage optimiste
| |
|
état
|
État d'instance de processus
|
false
|
ProcessInstanceInfo possède une relation 1:N avec l'entité EventTypes.
EventTypes contient les données suivantes :
Tableau 12.3.
| Champ | Description | Nullable |
|---|---|---|
|
instanceid
|
référence à l'instance de processus (clé étrangère de
processinstanceinfo)
|
false
|
|
élément
|
champ de texte lié à un événement subi par une instance de processus
| |
Support du verrouillage pessimiste
import org.kie.api.runtime.Environment; import org.kie.api.runtime.EnvironmentName; import org.kie.api.runtime.manager.RuntimeManager; import org.kie.api.runtime.manager.RuntimeManagerFactory; ... // here env is an instance of org.kie.api.runtime.Environment env.set(EnvironmentName.USE_PESSIMISTIC_LOCKING, true); // now create your Runtime Manager using this enviornment RuntimeManager manager = RuntimeManagerFactory.Factory.get().newPerRequestRuntimeManager(environment);
12.3. Élément de travail
workiteminfo, qui persistent l'état d'une instance d'élément de travail en particulier en cours d'exécution et qui stocke les données suivantes :
Tableau 12.4.
| Champ | Description | Nullable |
|---|---|---|
|
workitemid
|
Clé primaire
|
false
|
|
nom
|
nom de l'élément de travail
| |
|
processinstanceid
|
id d'instance de processus parent
|
false
|
|
état
|
entier relatif représentant un état d'élément de travail
|
false
|
|
optlock
|
numéro de version utilisée comme valeur de verrouillage pour le verrouillage optimiste
| |
|
workitembytearray
|
ensemble de données binaires avec état d'élément de travail (blob binaire
)
|
false
|
|
creationDate
|
horodate de création de l'élément de travail
|
false
|
12.4. Configuration de la persistance
12.4.1. Configuration de la persistance
JBPMHelper quand vous créez une session ou en utilisant JPAKnowledgeService pour créer votre session. La dernière option offre plus de flexibilité, tandis que JBPMHelper a une méthode pour créer une session et utilise un fichier de configuration pour configurer cette session.
12.4.2. Configurer une persistance en utilisant JBPMHelper
- Définir votre application pour qu'elle puisse utiliser le contructeur de session JBPMHelper :
KieSession ksession = JBPMHelper.newKieSession(kbase);KieSession ksession = JBPMHelper.loadKieSession(kbase, sessionId);
- Configurer la persistance dans le fichier
jBPM.properties.Exemple 12.1. Extrait de fichier jBPM.properties avec une persistance pour la base de données H2 en-mémoire
# for creating a datasource persistence.datasource.name=jdbc/jbpm-ds persistence.datasource.user=sa persistence.datasource.password= persistence.datasource.url=jdbc:h2:tcp://localhost/~/jbpm-db persistence.datasource.driverClassName=org.h2.Driver # for configuring persistence of the session persistence.enabled=true persistence.persistenceunit.name=org.jbpm.persistence.jpa persistence.persistenceunit.dialect=org.hibernate.dialect.H2Dialect # for configuring the human task service taskservice.enabled=true taskservice.datasource.name=org.jbpm.task taskservice.transport=mina taskservice.usergroupcallback=org.jbpm.task.service.DefaultUserGroupCallbackImpl
JBPMHelper.startH2Server(); et l'enregistrer dans engine par l'appel de méthode JBPMHelper.setupDataSource();.
12.4.3. Configurer une persistance en utilisant JPAKnowledgeService
- Définir votre application pour qu'elle utilise la session de connaissance créée par JPAKnowledgeService :
- Définir la session sur la base d'une base de connaisances, une configuration de session de connaissance, et un environnement. L'environnement doit contenir une référence à l'usine de gestionnaires d'entités :
// create the entity manager factory and register it in the environment EntityManagerFactory emf = Persistence.createEntityManagerFactory( "org.jbpm.persistence.jpa" ); Environment env = KnowledgeBaseFactory.newEnvironment(); env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, emf ); // create a new knowledge session that uses JPA to store the runtime state KieSession ksession = JPAKnowledgeService.newKieSession( kbase, null, env ); int sessionId = ksession.getId(); // invoke methods on your method here ksession.startProcess( "MyProcess" ); ksession.dispose();
- Définir la session sur la base d'un id de session spécifique
// recreate the session from database using the sessionId ksession = JPAKnowledgeService.loadKieSession(sessionId, kbase, null, env );
- Configurer la persistance dans le fichier
META-INF/persistence.xml: configurer JPA pour qu'il utilise Hibernate et la base de données respective.Les informations sur la façon de configurer la source de données sur votre serveur d'applications doivent être dans la documentation livrée avec le serveur d'applications. Pour cette information pour JBoss Enterprise Application Platform, consulter le Guide de Configuration et d'Administration pour ce produit.Exemple 12.2. Extrait de fichier persistence.xml avec une persistance pour une source de données H2
jdbc/jbpm-ds<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <persistence version="1.0" xsi:schemaLocation= "http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="org.jbpm.persistence.jpa" transaction-type="JTA"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>jdbc/jbpm-ds</jta-data-source> <mapping-file>META-INF/JBPMorm.xml</mapping-file> <class>org.drools.persistence.info.SessionInfo</class> <class>org.jbpm.persistence.processinstance.ProcessInstanceInfo</class> <class>org.drools.persistence.info.WorkItemInfo</class> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <property name="hibernate.max_fetch_depth" value="3"/> <property name="hibernate.hbm2ddl.auto" value="update"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.BTMTransactionManagerLookup"/> </properties> </persistence-unit> </persistence>
JBPMHelper.startH2Server(); et l'enregistrer dans engine par l'appel de méthode JBPMHelper.setupDataSource();.
Note
PoolingDataSource ds = new PoolingDataSource();
ds.setUniqueName("jdbc/jbpm-ds");
ds.setClassName("bitronix.tm.resource.jdbc.lrc.LrcXADataSource");
ds.setMaxPoolSize(3);
ds.setAllowLocalTransactions(true);
ds.getDriverProperties().put("user", "sa");
ds.getDriverProperties().put("password", "sasa");
ds.getDriverProperties().put("URL", "jdbc:h2:tcp://localhost/~/jbpm-db");
ds.getDriverProperties().put("driverClassName", "org.h2.Driver");
ds.init();Chapitre 13. Transactions
13.1. Transactions
13.2. Définir des transactions
- Enregistrez le gestionnaire de transactions dans votre environnement.
Exemple 13.1. Codifiez par l'enregistrement du gestionnaire de transactions
// create the entity manager factory EntityManagerFactory emf = EntityManagerFactoryManager.get().getOrCreate("org.jbpm.persistence.jpa"); TransactionManager tm = TransactionManagerServices.getTransactionManager(); Environment env = EnvironmentFactory.newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); env.set(EnvironmentName.TRANSACTION_MANAGER, tm); // setup the runtime environment RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get() .newDefaultBuilder() .addAsset(ResourceFactory.newClassPathResource("MyProcessDefinition.bpmn2"), ResourceType.BPMN2) .addEnvironmentEntry(EnvironmentName.TRANSACTION_MANAGER, tm) .addEnvironmentEntry(EnvironmentName.PERSISTENCE_CONTEXT_MANAGER, new JpaProcessPersistenceContextManager(env)) .addEnvironmentEntry(EnvironmentName.TASK_PERSISTENCE_CONTEXT_MANAGER, new JPATaskPersistenceContextManager(env)) .get(); - Initialiser la KieSession :
// get the KieSession RuntimeManager manager = RuntimeManagerFactory.Factory.get().newPerProcessInstanceRuntimeManager(environment); RuntimeEngine runtime = manager.getRuntimeEngine(ProcessInstanceIdContext.get()); KieSession ksession = runtime.getKieSession();
- Définir le gestionnaire de transactions dans
jndi.properties.Exemple 13.2. Definition du gestionnaire de transactions Bitronix dans jndi.properties
java.naming.factory.initial=bitronix.tm.jndi.BitronixInitialContextFactory
Note
Pour utiliser un gestionnaire de transactions différent, modifier hibernate.transaction.manager_lookup_class, la propriété de gestionnaire de transactions, dans le fichierpersistence.xmlpour charger votre gestionnaire de transactions.Exemple 13.3. Le gestionnaire de transactions de JBoss comme gestionnaire de transactions
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
- Définir le début et la fin d'une transaction.
// start the transaction UserTransaction ut = InitialContext.doLookup("java:comp/UserTransaction"); ut.begin(); // perform multiple commands inside one transaction ksession.insert( new Person( "John Doe" ) ); ksession.startProcess("MyProcess"); // commit the transaction ut.commit();
13.3. CMT (Container Managed Transactions)
org.jbpm.persistence.jta.ContainerManagerTransactionManager. C'est parce que l'implémentation par défaut du gestionnaire de transactions de JBoss BPM Suite est basée sur la classe UserTransaction qui obtient le statut de la transaction. Cependant, certains serveurs d'applications en mode CMT ne permettent pas d'accéder à l'instance de UserTransaction à partir du JNDI.
ContainerManagedTransactionManager s'attend à ce que la transaction soit toujours active (renvoyant ACTIVE à la méthode getStatus()).
Note
Configurer le gestionnaire de transactions
ContainerManagedTransactionManager, il doit être inséré dans l'environnement avant que vous puissiez créer ou charger une session :
Environment env = EnvironmentFactory.newEnvironment();
env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);
env.set(EnvironmentName.TRANSACTION_MANAGER, new ContainerManagedTransactionManager());
env.set(EnvironmentName.PERSISTENCE_CONTEXT_MANAGER, new JpaProcessPersistenceContextManager(env));
persistence.xml. Par exemple, si vous utilisez WebSphere d'IBM :
<property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.CMTTransactionFactory"/> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"/>
Disposer d'une KSession dans une CMT
dispose()). Ce faisant provoquerait des exceptions à la fin de la transaction car le moteur de processus doit nettoyer l'état quand l'invocation est terminée
execute() de la classe spécialisée org.jbpm.persistence.jta.ContainerManagedTransactionDisposeCommand. Cette commande s'assure que la ksession sera supprimée lorsque la transaction sera effectivement terminée.
afterDisposal de la transaction au lieu de l'exécuter directement. S'il n'y a aucune transaction active, la ksession sera supprimée immédiatement.
Chapitre 14. Journalisation
- Instance de processus
processinstancelog - Instance d'élément
nodeinstancelog - Instance de variable
variableinstancelog
Tableau 14.1. Champs de la table de ProcessInstanceLog
| Champ | Description | Nullable |
|---|---|---|
|
id
|
La clé primaire de l'entité de journalisation
|
Non
|
|
end_date
|
La date de fin de l'instance du processus
|
Oui
|
|
processid
|
Le nom (id) du processus sous-jacent
|
Oui
|
|
processinstanceid
|
L'id de l'instance du processus
|
Non
|
|
start_date
|
La date de démarrage de l'instance du processus
|
Oui
|
|
status
|
Le statut de l'instance du processus
|
Oui
|
|
parentProcessInstanceId
|
L'id d'instance de processus de l'instance de processus parent si tel est le cas
|
Oui
|
|
résultat
|
Le résultat de l'instance de processus (comme des information de fin de processus, comme un code d'erreur)
|
Oui
|
Tableau 14.2. Champs de la table de NodeInstanceLog
| Champ | Description | Nullable |
|---|---|---|
|
id
|
La clé primaire de l'entité de journalisation
|
Non
|
|
log_date
|
La date de l'événement
|
Oui
|
|
nodeid
|
L'id du noeud de l'élément de processus sous-jacent
|
Oui
|
|
nodeinstanceid
|
L'id de l'instance de noeud
|
Oui
|
|
nodename
|
Le nom du noeud sous-jacent
|
Oui
|
|
processid
|
L'id du processus sous-jacent
|
Oui
|
|
processinstanceid
|
L'id de l'instance de processus parente
|
Non
|
|
type
|
Le type d'événement (
0 = enter event, 1 = exit event)
|
Non
|
Tableau 14.3. Les champs de la table de VariableInstanceLog
| Champ | Description | Nullable |
|---|---|---|
|
id
|
La clé primaire de l'entité de journalisation
|
Non
|
|
log_date
|
La date de l'événement
|
Oui
|
|
processid
|
Le nom (id) du processus sous-jacent
|
Oui
|
|
processinstanceid
|
L'id de l'instance du processus
|
Non
|
|
value
|
La valeur de la variable au moment de la journalisation
|
Oui
|
|
variableid
|
La variable est définie dans la définition du processus
|
Oui
|
|
variableinstanceid
|
l'id de l'instance de la variable
|
Oui
|
|
résultat
|
Le résultat de l'instance de processus (comme des information de fin de processus, comme un code d'erreur)
|
Oui
|
14.1. Journalisation des événements dans la base de données
- Mapper les classes de journalisation dans la source de données, de façon à ce que la source de données présentée accepte les entrées de journalisation. Dans Red Hat JBoss EAP, éditez les propriétés de sources de données dans le fichier
persistence.xml.Exemple 14.1. Les classes ProcessInstanceLog, NodeInstanceLog et VariableInstanceLog activées pour processInstanceDS
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <persistence version="1.0" xsi:schemaLocation= "http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="org.jbpm.persistence.jpa"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>jdbc/processInstanceDS</jta-data-source> <class>org.drools.persistence.info.SessionInfo</class> <class>org.jbpm.persistence.processinstance.ProcessInstanceInfo</class> <class>org.drools.persistence.info.WorkItemInfo</class> <class>org.jbpm.process.audit.ProcessInstanceLog</class> <class>org.jbpm.process.audit.NodeInstanceLog</class> <class>org.jbpm.process.audit.VariableInstanceLog</class> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <property name="hibernate.max_fetch_depth" value="3"/> <property name="hibernate.hbm2ddl.auto" value="update"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.BTMTransactionManagerLookup"/> </properties> </persistence-unit> </persistence> - Enregistrer in logger dans votre session Kie.
Exemple 14.2. Importer les loggers
import org.jbpm.process.audit.AuditLogService; import org.jbpm.process.audit.AuditLoggerFactory; import org.jbpm.process.audit.AuditLoggerFactory.Type; import org.jbpm.process.audit.JPAAuditLogService; ...
Exemple 14.3. Enregistrer un logger dans une session Kie
@PersistenceUnit(unitName = PERSISTENCE_UNIT_NAME) private EntityManagerFactory emf; private AuditLogService auditLogService; @PostConstruct public void configure() { auditLogService = new JPAAuditLogService(emf); ((JPAAuditLogService) auditLogService).setPersistenceUnitName(PERSISTENCE_UNIT_NAME); if( emf == null ) { ((JPAAuditLogService) auditLogService).setPersistenceUnitName(PERSISTENCE_UNIT_NAME); } RuntimeEngine runtime = singletonManager.getRuntimeEngine(EmptyContext.get()); KieSession ksession = runtime.getKieSession(); AuditLoggerFactory.newInstance(Type.JPA, ksession, null); } - En option, appeler la méthode
addFiltersur le logger pour filtrer les informations inutiles. Seules les informations acceptées par tous les filtres apparaissent dans la base de données. - Les classes de logger peuvent être visualisées dans la vue d'auditing :
<dependency> <groupId>org.jbpm</groupId> <artifactId>jbpm-audit</artifactId> <version>6.0.1.Final</version> </dependency>
14.2. Fonctionnalité Logback
logback pour la configuration de la journalisation.
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.x</version>
</dependency>Note
slf4j-nop and slf4j-simple se prêtent bien à un environnement léger.
14.3. Configurer la journalisation
logback.xml dans business-central.war/WEB-INF/classes/logback.xml. Pour définir le niveau de journalisation du package org.drools à "debug" pour une journalisation verbeuse, vous devez ajouter la ligne suivante au fichier :
<configuration>
<logger name="org.drools" level="debug"/>
...
<configuration>- org.guvnor
- org.jbpm
- org.kie
- org.slf4j
- org.dashbuilder
- org.uberfire
- org.errai
- etc...
log4j, le log4j.xml peut être situé dans le fichier business-central.war/WEB-INF/classes/log4j.xml et peut être configuré de la manière suivante :
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<category name="org.drools">
<priority value="debug" />
</category>
...
</log4j:configuration>Note
Chapitre 15. Localisation et personnalisation
15.1. Langues disponibles
- Anglais États-Unis (
en_US) - Espagnol (
es_ES) - Japonais (
ja_JP) - Chinois (
zh_CN) - Portuguais (
pt_BR) - Français (
fr_CA) - Allemand (
de_DE)
Note
15.2. Modifier les paramètres de langue
Modifier la langue dans l'interface utilisateur de Business Central
http://localhost:8080/business-central/?locale=pt_BR
Modifier la langue dans l'interface utilisateur de Dashbuilder
- Connecter-vous à Dashbuilder une fois que le serveur a démarré en naviguant dans http://localhost:8080/dashbuilder par un navigateur web.
- Sélectionner la langue de votre choix en cliquant sur les paramètres régionaux possibles en haut du centre de l'interface utilisateur de Dasbuilder pour modifier la langue.
Définir une langue d'interface utilisateur par défaut dans Dashbuilder
Procédure 15.1. Définir la langue par défaut Français
- Naviguer dans
jboss-eap-6.1/standalone/configurationet définir ce qui suit dans le fichierstandalone.xml.<system-properties> <property name="org.jboss.dashboard.LocaleManager.installedLocaleIds" value="en,es,de,fr,ja,pt,zh"/> <property name="org.jboss.dashboard.LocaleManager.defaultLocaleId" value="fr"/> </system-properties> - La langue d'interface utilisateur par défaut de Dashbuilder est maintenant le français.
Définir les paramètres régionaux installés dans Dashbuilder
Procédure 15.2. Définir le paramètre régional installé
- Naviguer dans
jboss-eap-6.1/standalone/configurationet définir ce qui suit dans le fichierstandalone.xml.<system-properties> <property name="org.jboss.dashboard.LocaleManager.installedLocaleIds" value="en,es,de,fr,ja,pt"/> <property name="org.jboss.dashboard.LocaleManager.defaultLocaleId" value="fr"/> </system-properties>
Note
15.3. Exécuter une JVM avec la codification UTF-8
Partie IV. Exécution
Chapitre 16. Serveur d'exécution
16.1. Règles d'attribution
16.1.1. Définir les règles d'attribution
- Créer un fichier qui contienne la définition de la règle sur le chemin d'accès de Business Central (l'emplacement recommandé est
$DEPLOY_DIR/standalone/deployments/business-central.war/WEB-INF/classes/) :default-add-task.drlavec les règles à vérifier quand la tâche humaine est créée.default-complete-task.drlavec les règles à vérifier quand la tâche humaine est terminée.
- Pour définir les règles dans le fichier.
Exemple 16.1. Le contenu de default-add-task.drl
package defaultPackage
import org.kie.api.task.model.Task;
import org.kie.api.task.model.User;
import org.kie.api.task.model.Status;
import org.kie.api.task.model.PeopleAssignments;
import org.jbpm.services.task.rule.TaskServiceRequest;
import org.jbpm.services.task.exception.PermissionDeniedException;
import org.jbpm.services.task.impl.model.*;
import java.util.HashMap;
import java.util.List;
global TaskServiceRequest request;
rule "Don't allow Mary to complete task when rejected"
when
$task : Task()
$actualOwner : User( id == 'mary') from $task.getTaskData().getActualOwner()
$params : HashMap(this["approved"] == false)
then
request.setAllowed(false);
request.setExceptionClass(PermissionDeniedException.class);
request.addReason("Mary is not allowed to complete task with approved false");
endMary, la tâche sera assignée automatiquement à l'utilisateur mary.
Exemple 16.2. Le contenu de default-complete-task.drl
package defaultPackage
import org.kie.api.task.model.Task;
import org.kie.api.task.model.User;
import org.kie.api.task.model.Status;
import org.kie.api.task.model.PeopleAssignments;
import org.jbpm.services.task.rule.TaskServiceRequest;
import org.jbpm.services.task.exception.PermissionDeniedException;
import org.jbpm.services.task.impl.model.*;
import java.util.HashMap;
import java.util.List;
global TaskServiceRequest request;
rule "Don't allow Mary to complete task when rejected"
when
$task : Task()
$actualOwner : User( id == 'mary') from $task.getTaskData().getActualOwner()
$params : HashMap(this["approved"] == false)
then
request.setAllowed(false);
request.setExceptionClass(PermissionDeniedException.class);
request.addReason("Mary is not allowed to complete task without approval.");
endMary, la tâche sera assignée automatiquement à l'utilisateur mary.
16.2. Session Mail
16.2.1. Mise en place d'une session mail
- Ouvrir le fichier de configuration du profil respectif (
standalone.xmlouhost.xml) pour effectuer les modifications. - Ajouter la session mail au sous-système
urn:jboss:domain:mail:1.1.Exemple 16.3. Nouvelle session mail sur le localhost
<subsystem xmlns="urn:jboss:domain:mail:1.1"> <!-- omitted code --> <mail-session jndi-name="java:/mail/bpmsMailSession" debug="true" from="bpms@company.com"> <smtp-server outbound-socket-binding-ref="bpmsMail"/> </mail-session> </subsystem> - Définir un socket sortant dans le fichier de configuration du profil.
Exemple 16.4. Définition du socket sortant
<outbound-socket-binding name="bpmsMail"> <remote-destination host="localhost" port="12345"/> </outbound-socket-binding>
Chapitre 17. Plug-in de Red Hat JBoss Developer Studio
17.1. Plug-in
Partie V. Monitoring
Chapitre 18. Monitoring des processus
18.1. Réseau JBoss Operations Network
com.sun.management.jmxremote.* doivent être passés à l'application JBoss par le fichier de configuration pom.xml.
18.2. Installer le plug-in JBoss BRMS dans JBoss ON
Procédure 18.1. Copier les fichiers JAR du plug-in JBoss BRMS
- Extraire l'archive du pack de plug-in JBoss BRMS dans un lieu temporaire. Cela crée un sous-répertoire nommé jon-plugin-pack-brms-bpms-3.3.0.GA. Exemple :
[root@server rhq-agent]# unzip jon-plugin-pack-brms-bpms-3.3.0.GA.zip -d /tmp
- Copier les fichiers JAR du plug-in de JBoss BRMS du répertoire jon-plugin-pack-brms-bpms-3.3.2.GA/ dans le répertoire du plug-in du serveur JBoss ON. Exemple :
[root@server rhq-agent]# cp /tmp/jon-plugin-pack-brms-bpms-3.3.0.GA/*.jar /opt/jon/jon-server-3.3.0.GA1/plugins
- Démarrer le serveur JBoss Operations Network pour mettre à jour le plug-in de JBoss BRMS.
Procédure 18.2. Télécharger le plug-in de JBoss BRMS par le GUI
- Démarrer le serveur de JBoss Operations Network et connectez-vous pour accéder au GUI.
- Dans la navigation supérieure du GUI, ouvrez le menu Administration.
- Dans la zone Configuration sur la gauche, sélectionner le lien Plugins Serveur.
- Au bas de la liste des plug-ins de serveur téléchargés, cliquer sur le bouton Télécharger un plugin et choisissez le plug-in BRMS.
- Le plug-in JBoss BRMS de JBoss Operations Network est maintenant téléchargé.
18.3. Contrôle des KieBases et des KieSessions
-kie.mbeans = enabled
KieBaseConfiguration kbconf = KieServices.Factory.get().newKieBaseConfiguration();
kbconf.setOption(MBeansOption.ENABLED);Note
Kie Services ont été créés pour JBoss BRMS 6; pour JBoss BRMS 5, Drools Services était la convention de nommage utilisée et elle a des mensurations différentes suivant les sessions. Par exemple, le renommage de activation → correspondance est apparu dans la version mise à jour.
Chapitre 19. Gestion de la sécurité dans Red Hat JBoss BPM Suite Dashbuilder
19.1. Accéder à Red Hat JBoss BPM Suite Dashbuilder
19.2. Gestion de la sécurité
- admin - administre le système Red Hat JBoss BPM Suite. A tous les droits de procéder aux changements nécessaires. A également la possibilité d'ajouter ou de supprimer des utilisateurs du système.
- developer - implémente le code requis pour faire fonctionner les processus. Utilise surtout la connexion JBDS pour voir les processus, mais peut utiliser l'outil web de temps en temps :
- analyst - est responsable de créer ou de concevoir des processus dans le système. Crée des flux de processus et est chargé des demandes de changement de processus. Doit tester les processus qu'ils créent. Crée également des formulaires et des tableaux de bord.
- user - utilisateur quotidien du système qui réalise les tâches d'entreprise requises pour que les processus puissent avancer. Travaille principalement à partir d'une liste de tâches.
- manager - observateur du système intéressé par les statistiques autour des processus métier et leur performance, les indicateurs d'entreprise, les autres rapports sur le système, et les personnes en rapport avec le système.
19.3. Permissions d'espace de travail
Procédure 19.1. Accéder à des permissions d'espace de travail
- Connectez-vous aux Tableaux de bord d'entreprise de Business Central (comme décrit dans le sujet Accéder à Red Hat JBoss BPM Suite Dashbuilder)
- Sélectionner le tableau de bord qui convient à partir du menu déroulant de l'espace de travail.

Figure 19.1. Espace de travail de Dashbuilder
- Cliquer sur le bouton Edit selected workspace properties
pour accéder au Tableau de bord d'espace de travail.
- Cliquer sur l'étiquette Permissions pour voir l'écran de gestion des permissions.

Figure 19.2. Écran des permissions
- Access: permission de vous connecter à l'application
- Administrate: permission d'accéder à la barre d'outils et aux fonctionnalités de configuration du système.
- Create pages: possibilité de créer des nouvelles pages de projet.
- Edit : permission de modifier des propriétés d'espace de travail.
- Clear : possibilité de supprimer l'espace de travail.
- Edit permissions : possibilité d'octroyer/refuser des permissions.
- Change allowed panels: permission de limiter le type de panneaux qui peuvent être utilisés dans cet espace de travail.

Figure 19.3. Attribution des permissions
- Target roles (who) : quel utilisateur recevra/ne recevra pas les permissions définies.
- Allowed actions : suivant le type de ressource, nous pouvons activer/désactiver ce que l'utilisateur peut faire avec cette ressource.
- Reverse (optional) : quand on a un groupe de rôles et que l'on veut donner/refuser une permission à tous les rôles sauf un.
Note
19.4. Permissions de page
- Pour accéder aux Page permissions, chercher le menu déroulant Pages qui se trouve sous le Tableau de bord jBPM (ou un autre tableau de bord que vous aurez sélectionné).
- Étendre le menu Pages, puis l'option Tableau de bord de processus.
- Sélectionner l'option Permissions de page.

Figure 19.4. Permissions de page
- Visualize : permission pour rendre la page visible.
- Edit : possibilité de modifier les propriétés d'une page.
- Clear : possibilité de supprimer la page.
- Edit permissions : possibilité d'octroyer/refuser des permissions pour une page.
19.5. Panneau de permissions
- Pour accéder à la page Permissions de panneau, étendre l'option Instnaces de panneau sous le Tableau de bord jBPM (ou un autre tableau de bord que vous utilisez).
- Étendre l'option Tableau de bord, puis étendre Tableau de bord de processus.
- Étendre le choix Panneaux et sélectionner le processus qui convient.
- Ouvrir la page Permissions de panneau.

Figure 19.5. Écran de configuration des permissions du panneau
- Visualize : pour rendre la page visible.
- Edit : pour modifier des propriétés d'espace de travail.
- Edit permissions : octroyer/refuser des permissions pour une page.
Annexe A. Historique des versions
| Historique des versions | |||
|---|---|---|---|
| Version 1.0.0-1.2 | Mon Feb 15 2016 | Corina Roe | |
| |||
| Version 1.0.0-1.1 | Tue Jan 5 2016 | Red Hat Localization Services | |
| |||
| Version 1.0.0-1 | Wed Aug 05 2015 | Petr Penicka | |
| |||