diff --git a/README.md b/README.md index 8510a90..a716043 100644 --- a/README.md +++ b/README.md @@ -4,18 +4,18 @@ BPM Camp - 7.x Slides and exercises for the BPM Camp events. Content is available in: -- English (Bonita BPM 7.2) -- French (Bonita BPM 7.2) +- English (Bonita BPM 7.4) +- French (Bonita BPM 7.4) - Spanish (Bonita BPM 7.2) ##Setup instructions for slides -1. Download [reveal.js](https://github.com/hakimel/reveal.js/) version 3.1.0 +1. Download [reveal.js version 3.4.1](https://github.com/hakimel/reveal.js/releases/tag/3.4.1) 2. Paste the content of the `slides/THE_LANGUAGE/` folder into your `reveal.js` directory 3. Paste the content of the `slides/theme` folder in your `reveal.js/css/theme` folder ##Setup instructions for exercises 1. Download and install the [DEP4E eclipse plugin](http://dep4e.sourceforge.net/) -2. Download [Ant-Contrib 1.0b2](http://sourceforge.net/projects/ant-contrib/files/ant-contrib/ant-contrib-1.0b2/ant-contrib-1.0b2-bin.zip/download) +2. Download [Ant-Contrib 1.0b2](http://sourceforge.net/projects/ant-contrib/files/ant-contrib/ant-contrib-1.0b2/ant-contrib-1.0b2-bin.zip/download) 3. Open Eclipse preferences and navigating to `Ant / Runtime` 4. Select the `Classpath` tab and add the Ant-Contrib JAR as an external JAR under `Global Entries` 5. Create a docbook project from the `exercices` folder @@ -26,5 +26,3 @@ Content is available in: With the exercises project set up, you may build the instructions in Eclipse: - as a PDF by running the Ant "PDF" target - as a ZIP file with corrections by running the Ant "Package as ZIP" target - - diff --git a/exercices/build.xml b/exercices/build.xml index f746055..e67a020 100644 --- a/exercices/build.xml +++ b/exercices/build.xml @@ -3,7 +3,7 @@ - + @@ -34,7 +34,7 @@ - + diff --git a/exercices/corrections/fr/Application_Data.xml b/exercices/corrections/fr/Application_Data.xml index 9856364..4465fcb 100644 --- a/exercices/corrections/fr/Application_Data.xml +++ b/exercices/corrections/fr/Application_Data.xml @@ -1,11 +1,11 @@ - - Application de demande de conges + + Application de demande de congés - + diff --git "a/exercices/corrections/fr/Diagramme demande de cong\303\251s-1.0.bos" "b/exercices/corrections/fr/Diagramme demande de cong\303\251s-1.0.bos" index 86d8a3e..e30c69c 100644 Binary files "a/exercices/corrections/fr/Diagramme demande de cong\303\251s-1.0.bos" and "b/exercices/corrections/fr/Diagramme demande de cong\303\251s-1.0.bos" differ diff --git "a/exercices/corrections/fr/Diagramme demande de cong\303\251s-2.0.bos" "b/exercices/corrections/fr/Diagramme demande de cong\303\251s-2.0.bos" index d1662da..2fd01ec 100644 Binary files "a/exercices/corrections/fr/Diagramme demande de cong\303\251s-2.0.bos" and "b/exercices/corrections/fr/Diagramme demande de cong\303\251s-2.0.bos" differ diff --git "a/exercices/corrections/fr/Diagramme demande de cong\303\251s-3.0.bos" "b/exercices/corrections/fr/Diagramme demande de cong\303\251s-3.0.bos" index 1a99679..2dc3b10 100644 Binary files "a/exercices/corrections/fr/Diagramme demande de cong\303\251s-3.0.bos" and "b/exercices/corrections/fr/Diagramme demande de cong\303\251s-3.0.bos" differ diff --git "a/exercices/corrections/fr/Diagramme demande de cong\303\251s-4.0.bos" "b/exercices/corrections/fr/Diagramme demande de cong\303\251s-4.0.bos" index ddff972..6f76434 100644 Binary files "a/exercices/corrections/fr/Diagramme demande de cong\303\251s-4.0.bos" and "b/exercices/corrections/fr/Diagramme demande de cong\303\251s-4.0.bos" differ diff --git "a/exercices/corrections/fr/Diagramme demande de cong\303\251s-5.0.bos" "b/exercices/corrections/fr/Diagramme demande de cong\303\251s-5.0.bos" index 92b5da2..edfd800 100644 Binary files "a/exercices/corrections/fr/Diagramme demande de cong\303\251s-5.0.bos" and "b/exercices/corrections/fr/Diagramme demande de cong\303\251s-5.0.bos" differ diff --git a/exercices/corrections/fr/page-demandeCongesApp.zip b/exercices/corrections/fr/page-SuiviDesDemandes.zip similarity index 93% rename from exercices/corrections/fr/page-demandeCongesApp.zip rename to exercices/corrections/fr/page-SuiviDesDemandes.zip index c3dc400..08f12f2 100644 Binary files a/exercices/corrections/fr/page-demandeCongesApp.zip and b/exercices/corrections/fr/page-SuiviDesDemandes.zip differ diff --git a/exercices/source/en/chapters/ex1.xml b/exercices/source/en/chapters/ex1.xml index 89b2ca0..ec70daa 100644 --- a/exercices/source/en/chapters/ex1.xml +++ b/exercices/source/en/chapters/ex1.xml @@ -32,7 +32,7 @@ Create a new process diagram. Set the diagram and process names. - Click on the "Diagram / Rename" top menu. + Click on the "Diagram / Rename..." top menu. Enter "Leave request diagram" as the diagram name and "Leave request" as the pool name. @@ -116,7 +116,7 @@ Validate the diagram. Once the transition conditions are properly set, you can re-validate the process diagram. - To do so, navigate to the "Validation status" tab and click on "refresh". + To do so, navigate to the "Validation status" tab and click on "Refresh". You may safely ignore the 3 warnings related to the UI Designer. @@ -146,7 +146,7 @@ - Submit the form of the "Validate request" task to complete your case. + Submit the form of the "Validate request" task by clicking on the "Execute" button to complete your case. diff --git a/exercices/source/en/chapters/ex2.xml b/exercices/source/en/chapters/ex2.xml index a664d9f..b0b33e3 100644 --- a/exercices/source/en/chapters/ex2.xml +++ b/exercices/source/en/chapters/ex2.xml @@ -144,7 +144,7 @@ Declare an instance of the "LeaveRequest" BDM on your process Select the process pool, and navigate to the "Data / Pool variables" tab. - In the "Business variables" section, click on "Add". + In the "Business variables" section, click on "Add...". Name the variable "request" and select the "LeaveRequest" business object. Click on "Finish". @@ -242,18 +242,20 @@ Update the "request" BDM initialization Select the process pool, and navigate to the "Data / Pool variables" tab. - Select the "request" business variable and click on "Edit". + Select the "request" business variable and click on "Edit...". Click on the "Pencil" icon next to the "Default value" field to open the expression editor. Clear all of the generated code and replace it by the following: XINCLUDE-ERROR This will initialize the BDM from the contract data and set the process initiator as the request author. + Click on "OK" button to close the expression editor. + Click again on "OK" button to confirm the modification of the business data. Set up the "Validate request" step contract Select the "Validate request" task and navigate to the "Execution / Contract / Inputs" tab. - Click on "Add" then set the input name to "isApproved" and its type to "BOOLEAN". + Click on "Add" button then set the input name to "isApproved" and its type to "BOOLEAN". Add an operation on "Validate request" to update the request @@ -262,7 +264,7 @@ Select "request" as the target. Click on the "Takes value of" link and switch to the "Use a Java method" operator type. Select the "setIsApproved" method and click on "OK". - In the rightmost dropdown, select the "isApproved" contract input. + In the rightmost drop-down, select the "isApproved" contract input. @@ -273,7 +275,8 @@ Use the business data to dynamically control the process flow - Select the transition "Yes" and click on the pencil icon next to the "Condition" dropdown to open the expression editor. + Select the transition "Yes" and navigate to the "General / General" tab. + Click on the pencil icon next to the "Condition" drop-down to open the expression editor. In the expression editor, select "Java" as the expression type, select the "request" variable and the "isApproved" method. diff --git a/exercices/source/en/chapters/ex3.xml b/exercices/source/en/chapters/ex3.xml index 7f8b8dd..8db96c0 100644 --- a/exercices/source/en/chapters/ex3.xml +++ b/exercices/source/en/chapters/ex3.xml @@ -42,7 +42,8 @@ Update the form title - Select the top most widget "Request Input" and edit the following properties: + Select the top most widget "Request Input". + In the section on the right edit the following properties: @@ -84,17 +85,13 @@ - - Required - yes - Placeholder - Start date of your leave + mm/dd/yyyy Date format - yyyy-MM-dd + MM/dd/yyyy @@ -114,10 +111,6 @@ - - Required - yes - Label Number of days @@ -312,17 +305,13 @@ Title level Level 2 - - Alignment - center - Add a widget to display the requestor - Drag an "Input" widget from the palette and drop it on the empty Form container. + Drag an "Text" widget from the palette and drop it on a new row under the form title. Configure the widget as following: @@ -335,17 +324,9 @@ - - Read-only - yes - - - Label - Requestor - Value - requestor.firstname +" "+ requestor.lastname + <b>Requestor: </b>{{requestor.firstname}} {{requestor.lastname}} @@ -353,7 +334,7 @@ Add a widget to display the leave start date - Drag an "Date picker" widget from the palette and drop it in the Form container under the requestor widget. + Drag an "Text" widget from the palette and drop it in the Form container under the requestor widget. Configure the widget as following: @@ -366,17 +347,9 @@ - - Read-only - yes - - - Label - Leave start - Value - request.leaveStart + <b>Leave start date: </b>{{request.leaveStart | date : 'dd/MM/yyyy' : 'UTC'}} @@ -384,7 +357,7 @@ Add a widget to display the number of days - Drag an "Input" widget from the palette and drop it on a new row under the "Start date" widget. + Drag an "Text" widget from the palette and drop it on a new row under the "Start date" widget. Configure the widget as following: @@ -397,17 +370,9 @@ - - Read-only - yes - - - Label - Number of days - Value - request.dayCount + <b>Number of days: </b> {{request.dayCount}} @@ -519,7 +484,7 @@ - + diff --git a/exercices/source/en/chapters/ex4.xml b/exercices/source/en/chapters/ex4.xml index 188818e..0e4a47d 100644 --- a/exercices/source/en/chapters/ex4.xml +++ b/exercices/source/en/chapters/ex4.xml @@ -36,8 +36,8 @@ Add an "Initiator manager" actor filter on the "Validator" lane. Select the "Validator" lane and navigate to the "General / Actor" tab. - Select the "Employee actor" from the dropdown menu. - Click on the "Set" button of the actor filter. + Select the "Employee actor" from the drop-down menu. + Click on the "Set..." button of the actor filter. Select an "Initiator manager" filter and click on "Next". Name the filter "requestorManager" and click on "Finish". diff --git a/exercices/source/en/chapters/ex5.xml b/exercices/source/en/chapters/ex5.xml index e53f960..91091e3 100644 --- a/exercices/source/en/chapters/ex5.xml +++ b/exercices/source/en/chapters/ex5.xml @@ -6,7 +6,7 @@
Goal The goal of this exercise is to demonstrate an interaction between Bonita BPM and an external system with the use of a connector. - In this context, we will notify the leave request initiator about his request's status with an email connector. + In this context, we will notify the leave request initiator about his request status with an email connector. Depending on your network configuration, your firewall or the security settings of your email server you may not be able to send an email from Bonita BPM. In order to get rid of those technical constraints, we will use a program that simulates an email server (FakeSMTP). @@ -18,7 +18,7 @@ Obtain and start the FakeSMTP server. Duplicate the process diagram from the previous exercise to create a 5.0 version. Add an email connector on the "Notify request approved" and "Notify request rejected" service tasks. - These will send an email to the requestor with the request's validation status. + These will send an email to the requestor with the request validation status. The following code will be used to retrieve the requestor's email in the connector: XINCLUDE-ERROR @@ -60,7 +60,7 @@ SMTP port - 25 (Or the port number specified in FakeSMTP) + 2525 (FakeSMTP default port or the port number specified in FakeSMTP) SSL (in the "Security" section) @@ -94,7 +94,7 @@ Add an email connector on the "Notify request approved" task. - Select the task, navigate to the "Execution / Connectors in" tab and click on "Add". + Select the task, navigate to the "Execution / Connectors in" tab and click on "Add...". Select the "Email (SMTP)" connector. Name it "sendRequestApprovedEmail" and click on "Next". Do not fill in the parameters but click on . diff --git a/exercices/source/en/chapters/ex6.xml b/exercices/source/en/chapters/ex6.xml index 740c144..85ed60f 100644 --- a/exercices/source/en/chapters/ex6.xml +++ b/exercices/source/en/chapters/ex6.xml @@ -11,10 +11,10 @@
Instructions overview - Create a page called "Leave Request Status" to follow the progress of the connected user leave request. + Open the UI Designer and create a new "Application page" named "LeaveRequestStatus" to follow the progress of the connected user leave request. This page will contain one multiple container that list the on-going leave request. For each request, the start date, number of days and status will be displayed. - Export the page as a zip file and deploy it in the portal. - Create a new application. Then add the "Leave Request Status" page in the application. + Export the page as a zip file and deploy it in the portal using the "Resources" menu of the "Administrator" view. + Create a new application. Then add the "LeaveRequestStatus" page in the application. Access the application using the generated URL. Optional: Add a date widget and an input widget to collect new leave request information in the page. Then add a submit button to start a new leave request.
@@ -50,7 +50,7 @@ Add another title below. Name it "Leave request status". - Select "level 4" from the Title Level dropdown list. Select "center" for alignment. + Select "level 4" from the Title Level drop-down list. Select "center" for alignment. Create a variable to store the session information. @@ -70,15 +70,15 @@ Create a variable to list the leave request. Click on "Create a new variable" and choose "External API". Name it "leaveRequestStatus". - In the field API URL, enter: (no breakline) + In the field API URL, enter: (no line break) ../API/bdm/businessData/com.company.model.LeaveRequest?q=findByRequestorId&p=0&c=100&f=requestorId={{sessionInfo.user_id}} Be careful when you copy/paste the URL that there is no whitespace left. - Define a new Javascript expression to prepare the list. - Click on "Create a new variable" and choose "Javascript expression". + Define a new JavaScript expression to prepare the list. + Click on "Create a new variable" and choose "JavaScript expression". Name it "updateLeaveRequestStatus". Replace the existing value with the following script: @@ -301,7 +301,7 @@ Create a new variable to store the process information. Click on "Create a new variable" and choose "External API". Name it "processDefinitionInfo". - In the field API URL, enter: (no breakline) + In the field API URL, enter: (no line break) ../API/bpm/process? p=0&c=100&o=displayName%20DESC&s=Leave%20Request&f=user_id={{sessionInfo.user_id}} Be careful when you copy/paste the URL that there is no whitespace left. @@ -315,7 +315,7 @@ Add a submit button in the form container. Drag the button widget from the palette and place it in the form container below the two widgets. Enter "Create a new request" in the field label. - Select POST in the Action dropdown list. + Select POST in the Action drop-down list. Click on "fx" to switch the "Data sent on click" field mode and then enter "formInput". In the field URL, enter: ../API/bpm/process/{{processDefinitionInfo[0].id}}/instantiation diff --git a/exercices/source/en/docbook.xml b/exercices/source/en/docbook.xml index c2bc4d4..8c007b5 100644 --- a/exercices/source/en/docbook.xml +++ b/exercices/source/en/docbook.xml @@ -4,10 +4,10 @@ xmlns:xi="http://www.w3.org/2001/XInclude"> - BPM Camp - Season 4 + BPM Camp Exercises - 2016 + 2017 Bonitasoft diff --git a/exercices/source/en/resources/code/ex2_initRequest.java b/exercices/source/en/resources/code/ex2_initRequest.java index 259fcb8..b109117 100644 --- a/exercices/source/en/resources/code/ex2_initRequest.java +++ b/exercices/source/en/resources/code/ex2_initRequest.java @@ -3,8 +3,8 @@ leaveRequestVar.dayCount = requestInput.dayCount // Retrieve current process instance -def processInstance = apiAccessor.processAPI.getProcessInstance(processInstanceId); +def processInstance = apiAccessor.processAPI.getProcessInstance(processInstanceId) // Add requestor id to the new request -leaveRequestVar.requestorId = processInstance.startedBy; +leaveRequestVar.requestorId = processInstance.startedBy -return leaveRequestVar \ No newline at end of file +return leaveRequestVar diff --git a/exercices/source/en/resources/code/ex5_getRequestorEmail.java b/exercices/source/en/resources/code/ex5_getRequestorEmail.java index c7cfa7a..1ff3494 100644 --- a/exercices/source/en/resources/code/ex5_getRequestorEmail.java +++ b/exercices/source/en/resources/code/ex5_getRequestorEmail.java @@ -1,14 +1 @@ -import org.bonitasoft.engine.api.IdentityAPI; -import org.bonitasoft.engine.api.ProcessAPI; -import org.bonitasoft.engine.bpm.process.ProcessInstance; -import org.bonitasoft.engine.identity.ContactData; - -// Get APIs -ProcessAPI processAPI = apiAccessor.getProcessAPI(); -IdentityAPI identityAPI = apiAccessor.getIdentityAPI(); -// Get process initiator -ProcessInstance processInstance = processAPI.getProcessInstance(processInstanceId); -long initiatorUserId = processInstance.getStartedBy(); -// Get email from process initiator -ContactData contactData = identityAPI.getUserContactData(initiatorUserId, false); -return contactData.getEmail(); \ No newline at end of file +BonitaUsers.getProcessInstanceInitiatorProfessionalContactInfo(apiAccessor,processInstanceId).email \ No newline at end of file diff --git a/exercices/source/en/resources/screenshots/ex3_08.png b/exercices/source/en/resources/screenshots/ex3_08.png index 7437667..2819cbc 100644 Binary files a/exercices/source/en/resources/screenshots/ex3_08.png and b/exercices/source/en/resources/screenshots/ex3_08.png differ diff --git a/exercices/source/en/resources/screenshots/ex_03.png b/exercices/source/en/resources/screenshots/ex4_03.png similarity index 100% rename from exercices/source/en/resources/screenshots/ex_03.png rename to exercices/source/en/resources/screenshots/ex4_03.png diff --git a/exercices/source/en/resources/screenshots/ex6_03.png b/exercices/source/en/resources/screenshots/ex6_03.png index d6e4640..f5d0244 100644 Binary files a/exercices/source/en/resources/screenshots/ex6_03.png and b/exercices/source/en/resources/screenshots/ex6_03.png differ diff --git a/exercices/source/fr/chapters/ex1.xml b/exercices/source/fr/chapters/ex1.xml index 46958ca..6ddcc9c 100644 --- a/exercices/source/fr/chapters/ex1.xml +++ b/exercices/source/fr/chapters/ex1.xml @@ -32,7 +32,7 @@ Créer un nouveau diagramme de processus. Spécifier le nom du diagramme et celui du processus. - Cliquer sur le menu "Diagramme / Renommer" en haut du Studio. + Cliquer sur le menu "Diagramme / Renommer..." en haut du Studio. Entrer "Diagramme demande de congés" pour le nom du diagramme et "Demande de congés" pour celui du pool. @@ -83,7 +83,7 @@ Créer une tâche automatique "Notifier refus" à partir de la porte logique Ajouter un événement de terminaison "Fin - Demande approuvée" à la suite de la tâche automatique "Notifier approbation" - Sélectionner tâche automatique "Notifier approbation", effectuer un glisser-déplacer à partir de l'icône contextuel d'évènements (A) et sélectionner l'évènement de fin (B) + Sélectionner tâche automatique "Notifier approbation", effectuer un glisser-déplacer à partir de l'icône contextuel d’événements (A) et sélectionner l’événement de fin (B) @@ -91,7 +91,7 @@ - Une fois l'évènement crée, renommer le. + Une fois l’événement crée, renommer le. Ajouter un événement de terminaison "Fin - Demande refusée" à la suite de la tâche automatique "Notifier refus" @@ -113,6 +113,12 @@ Configurer la transition "Non" en tant que flux par défaut. Sélectionner la transition "Non" et cocher la case "Flux par défaut". + + Actualiser la validation du diagramme : + Naviguer dans l'onglet "Statut de validation". + Cliquer sur le bouton "Rafraîchir". + Vous pouvez ignorez les 3 avertissements concernant les formulaires. + Vérifier que le diagramme ressemble à ceci : @@ -132,7 +138,7 @@ Cliquer sur le bouton de la barre de menu supérieur du Studio. Votre navigateur devrait s'ouvrir et présenter un formulaire d'instanciation automatiquement généré. Soumettre le formulaire. Vous devriez être redirigé vers la boîte de réception de tâches du Portail Bonita. - Sélectionner la tâche "Valider demande" et cliquer sur "Faire" en haut à droite de l'écran. + Sélectionner la tâche "Valider demande" et cliquer sur "Prendre" en haut à droite de l'écran. @@ -140,7 +146,7 @@ - Soumettre le formulaire de l'étape "Valider demande" pour terminer le cas. + Soumettre le formulaire de l'étape "Valider demande" en cliquant sur le bouton "Exécuter" pour terminer le cas.
diff --git a/exercices/source/fr/chapters/ex2.xml b/exercices/source/fr/chapters/ex2.xml index e3a4baa..52f50e4 100644 --- a/exercices/source/fr/chapters/ex2.xml +++ b/exercices/source/fr/chapters/ex2.xml @@ -12,7 +12,7 @@ Une fois complété, le processus sera exécutable avec des formulaires générés automatiquement. - Il est important de strictement respecter la casse et la syntaxe des noms techniques fournis dans les instructions sous peine d'erreurs. + Il est important de respecter strictement la casse et la syntaxe des noms techniques fournis dans les instructions sous peine d'erreurs. @@ -87,7 +87,7 @@ Créer le BDM "DemandeConges". Naviguer dans le menu "Développement / Modèle de Données Métier / Gérer...". Cliquer sur "Ajouter" (A), dans la liste d'objets métiers et nommer l'objet "DemandeConges" (B) (il s'agit d'un nom technique, il faut donc omettre les espaces, accents et autres caractères spéciaux). - Avec l'objet "DemandeConges" sélectionné, ajouter les attributs suivants (C): + Avec l'objet "DemandeConges" sélectionné, ajouter les attributs suivants (C) : @@ -144,7 +144,7 @@ Déclarer une variable métier de type "DemandeConges" dans le processus. Sélectionner le pool du processus et naviguer dans l'onglet "Données / Variables du pool". - Cliquer sur "Ajouter" dans la section "Variables métier". + Cliquer sur "Ajouter..." dans la section "Variables métier". Nommer la variable "demande" et sélectionner le type d'objet métier "DemandeConges". Cliquer sur "Terminer". @@ -168,7 +168,7 @@ - Click sur "Terminer" et ignorer les messages d'avertissement concernant l'initialisation partielle de la variable métier. + Cliquer sur "Terminer" et ignorer les messages d'avertissement concernant l'initialisation partielle de la variable métier. @@ -195,7 +195,7 @@ Expression - return demandeInput.dateDebut.compareTo(new Date()) > 0; + return demandeInput.dateDebut.compareTo(new Date()) > 0 Message d'erreur @@ -222,7 +222,7 @@ Expression - return demandeInput.nombreJours > 0; + return demandeInput.nombreJours > 0 Message d'erreur @@ -242,17 +242,19 @@ Modifier l'initialisation de la variable métier. Sélectionner le pool du processus et naviguer dans l'onglet "Données / Variables du pool". - Sélectionner la variable "demande" et cliquer sur "Modifier". + Sélectionner la variable "demande" et cliquer sur "Modifier...". Cliquer sur l'icône "crayon" associé au champ "Valeur par défaut" pour ouvrir l'éditeur d'expression. Entrer le code suivant (ou simplement appliquer les modifications) : XINCLUDE-ERROR + Cliquer sur le bouton "OK" pour fermer l'éditeur d’expression. + Cliquer à nouveau sur le bouton "OK" pour valider la modification de la variable métier. Configurer le contrat de l'étape "Valider demande". Sélectionner l'étape "Valider demande" et naviguer dans l'onglet "Exécution / Contrat / Entrées". - Ajouter une entrée "estApprouvee" de type "BOOLEAN". + Cliquer sur le bouton "Ajouter" pour créer une nouvelle entrée avec le nom "estApprouvee" et de type "BOOLEAN". Ajouter une opération sur la tâche "Valider demande" pour mettre à jour la demande. @@ -271,8 +273,9 @@ - Configurer la condition sur la transition "Oui" à partir de l'attribut "estApprouvee" du BDM "demande". - Sélectionner la transition "Oui" et cliquer sur l'icône crayon à côté du champ "Condition" pour ouvrir l'éditeur d'expression. + Configurer la condition sur la transition "Oui" à partir de l'attribut "estApprouvee" du BDM "demande". + Sélectionner la transition "Oui" et naviguer dans l'onglet "Général / Général". + Cliquer sur l'icône crayon à côté du champ "Condition" pour ouvrir l'éditeur d'expression. Dans l'éditeur d'expression, sélectionner "Java" comme type d'expression, sélectionner la variable "demande" et la méthode "isEstAprouvee". @@ -292,7 +295,7 @@ Astuces : pour le champ "dateDebut", le format de date attendu est AAAA-MM-JJ. - pour le champ "estApprouvee", une valeur booléenne est attendue: soit "true" ou "false". + pour le champ "estApprouvee", une valeur booléenne est attendue : soit "true" ou "false". diff --git a/exercices/source/fr/chapters/ex3.xml b/exercices/source/fr/chapters/ex3.xml index 4d10612..a89d3f2 100644 --- a/exercices/source/fr/chapters/ex3.xml +++ b/exercices/source/fr/chapters/ex3.xml @@ -43,7 +43,7 @@ Changer le titre du formulaire Sélectionner le widget "Demande Input" en haut du formulaire. - Dans la section à droite de l'écran, éditer les propriétés suivantes: + Dans la section à droite de l'écran, éditer les propriétés suivantes : @@ -73,7 +73,7 @@ Changer le widget "Date Debut" - Sélectionner le widget "Date Debut" et éditer les propriétés suivantes: + Sélectionner le widget "Date Debut" et éditer les propriétés suivantes : @@ -85,21 +85,17 @@ - - Obligatoire - oui - Libellé Date de début Placeholder - Date de début des congés + jj/mm/aaaa Format de la date - yyyy-MM-dd + dd/MM/yyyy @@ -107,7 +103,7 @@ Changer le widget "Nombre Jours" - Sélectionner le widget "Nombre Jours" et éditer les propriétés suivantes: + Sélectionner le widget "Nombre Jours" et éditer les propriétés suivantes : @@ -119,10 +115,6 @@ - - Obligatoire - oui - Libellé Nombre de jours @@ -143,7 +135,7 @@ Supprimer les valeurs initiales des champs (cela permettra d'afficher les placeholders lors du rendu final) Dans la partie inférieure de l'écran, sous l'onglet "variables", cliquer sur l'icône crayon situé à droite de la ligne contenant la variable "formInput". - Remplacer la valeur du JSON par ceci: + Remplacer la valeur du JSON par ceci : XINCLUDE-ERROR @@ -157,11 +149,6 @@ Changer le widget "Submit" Sélectionner le widget "Submit" Changer son libellé en "Soumettre" - Cliquer sur l'icône de "binding" se trouvant à côté de la propriété "Désactivés". - Saisissez le code suivant dans le champ nouvellement affiché (cela aura pour effet de désactiver le bouton si le formulaire contient des données invalides) : - - $form.$invalid - Associer la variable "erreur" à la réponse en cas d'échec pour permettre de récupérer le détail de l'erreur. @@ -169,18 +156,18 @@ Depuis la palette de widget située sur la gauche, faire glisser un widget de type "Text" en dessous du bouton "Soumettre". Modifier la valeur de "Classes CSS" pour la positionner à "text-danger". Cliquer sur l'icône "binding" associé à la propriété "Caché". - Entrer ce contenu dans le champ texte qui est apparu (ceci aura pour effet d'afficher le widget uniquement en cas d'erreur): + Entrer ce contenu dans le champ texte qui est apparu (ceci aura pour effet d'afficher le widget uniquement en cas d'erreur) : erreur == null - Remplacer la propriété "Texte" du widget par ce contenu: + Remplacer la propriété "Texte" du widget par ce contenu : XINCLUDE-ERROR Vérifier le formulaire - Vérifier que le formulaire ressemble à ceci dans l'éditeur: + Vérifier que le formulaire ressemble à ceci dans l'éditeur : @@ -189,7 +176,7 @@ Cliquer sur le bouton "Aperçu" en haut de l'écran. - Vérifier que l'aperçu ressemble à ceci: + Vérifier que l'aperçu ressemble à ceci : @@ -197,7 +184,7 @@ - On notera les points suivants dans l'aperçu: + On notera les points suivants dans l'aperçu : le widget présentant l'erreur n'est pas visible le bouton "Soumettre" est désactivé par défaut (ceci est dû à la validation fournie par le conteneur de formulaire) @@ -328,18 +315,14 @@ Niveau du titre Niveau 2 - - Alignement - au centre - Ajouter un widget pour présenter le demandeur - Faire glisser un widget de type "Input" dans une nouvelle ligne sous le titre du formulaire. - Configurer le widget comme ceci: + Faire glisser un widget de type "Text" dans une nouvelle ligne sous le titre du formulaire. + Configurer le widget comme ceci : @@ -351,17 +334,9 @@ - - Lecture seule - oui - - - Libellé - Demandeur - Valeur - demandeur.firstname +" "+ demandeur.lastname + <b>Demandeur :</b> {{demandeur.firstname}} {{demandeur.lastname}} @@ -369,8 +344,8 @@ Ajouter un widget pour afficher la date de début - Faire glisser un widget de type "Date picker" dans une nouvelle ligne sous le titre du formulaire. - Configurer le widget comme ceci: + Faire glisser un widget de type "Text" dans une nouvelle ligne sous le titre du formulaire. + Configurer le widget comme ceci : @@ -382,17 +357,9 @@ - - Lecture seule - oui - - - Libellé - Date de début - Valeur - demande.dateDebut | date + <b>Date de début :</b> {{demande.dateDebut | date : 'dd/MM/yyyy' : 'UTC'}} @@ -401,8 +368,8 @@ Ajouter un widget pour afficher le nombre de jours - Faire glisser un widget de type "Input" dans une nouvelle ligne sous le widget "Date de début". - Configurer le widget comme ceci: + Faire glisser un widget de type "Text" dans une nouvelle ligne sous le widget "Date de début". + Configurer le widget comme ceci : @@ -414,17 +381,9 @@ - - Lecture seule - oui - - - Libellé - Nombre de jours - Valeur - demande.nombreJours + <b>Nombre de jours :</b> {{demande.nombreJours}} @@ -433,7 +392,7 @@ Ajouter un widget pour refuser la demande Faire glisser un widget de type "Button" en bas du formulaire. - Configurer le widget comme ceci: + Configurer le widget comme ceci : @@ -480,7 +439,7 @@ Ajouter un widget pour approuver la demande Faire glisser un widget de type "Button" dans la zone "6 colonnes" à droite du widget "Refuser". - Configurer le widget comme ceci: + Configurer le widget comme ceci : @@ -521,18 +480,18 @@ Ajouter un widget de type "Text" en bas du formulaire. Modifier la valeur de "Classes CSS" pour la positionner à "text-danger". Cliquer sur l'icône "binding" associé à la propriété "Hidden". - Entrer ce contenu dans le champ texte qui est apparu: + Entrer ce contenu dans le champ texte qui est apparu : erreur == null - Remplacer la propriété "Texte" du widget par ce contenu: + Remplacer la propriété "Texte" du widget par ce contenu : XINCLUDE-ERROR Vérifier le formulaire - S'assurer que le formulaire ressemble à ceci: + S'assurer que le formulaire ressemble à ceci : diff --git a/exercices/source/fr/chapters/ex4.xml b/exercices/source/fr/chapters/ex4.xml index c524111..c59ef78 100644 --- a/exercices/source/fr/chapters/ex4.xml +++ b/exercices/source/fr/chapters/ex4.xml @@ -37,7 +37,7 @@ Configurer un filtre d'acteur de type "Manager de l'initiateur du processus" sur la lane "Validateur". Sélectionner la lane "Validateur", naviguer dans l'onglet "Général / Acteur". Sélectionner l'acteur "Employee actor" à partir du menu déroulant. - Cliquer sur le bouton "Définir" associé au filtre. + Cliquer sur le bouton "Définir..." associé au filtre. Sélectionner un filtre de type "Manager de l'initiateur du processus" puis cliquer sur "Suivant". Nommer le filtre "managerInitiateur" et cliquer sur "Terminer". diff --git a/exercices/source/fr/chapters/ex5.xml b/exercices/source/fr/chapters/ex5.xml index 0bc58cb..872f8ed 100644 --- a/exercices/source/fr/chapters/ex5.xml +++ b/exercices/source/fr/chapters/ex5.xml @@ -20,7 +20,7 @@ Dupliquer le diagramme de processus de l'exercice précédent pour créer une version 5.0. Ajouter un connecteur d'envoi d'email sur les tâches automatiques "Notifier approbation" et "Notifier refus". Ceux-ci enverront un email au demandeur avec le statut de validation de sa demande. - Le code ci-dessous sera utilisé pour récupérer l'email du demandeur dans le connecteur: + Le code ci-dessous sera utilisé pour récupérer l'email du demandeur dans le connecteur : XINCLUDE-ERROR @@ -60,7 +60,7 @@ Port SMTP - 25 (Ou le port spécifié dans FakeSMTP) + 2525 (port par défaut de FakeSMTP ou le port spécifié dans FakeSMTP ) SSL (sous l'onglet "Sécurité") @@ -72,7 +72,7 @@ Passer à la page suivante. Entrer des emails (pas nécessairement existants) en tant que destinataire et expéditeur et passer à la page suivante. Entrer "Bonita test" comme sujet, cliquer le bouton "Test" et confirmer sans cocher de dépendance. - Un message similaire à celui ci-dessous devrait s'afficher: + Un message similaire à celui ci-dessous devrait s'afficher : @@ -94,14 +94,14 @@ Ajouter un connecteur d'envoi d'email sur la tâche "Notifier approbation". - Sélectionner la tâche "Notifier approbation", naviguer dans l'onglet "Exécution / Connecteurs en entrée" puis cliquer sur "Ajouter". + Sélectionner la tâche "Notifier approbation", naviguer dans l'onglet "Exécution / Connecteurs en entrée" puis cliquer sur "Ajouter...". Sélectionner un connecteur de type "Courriel". Spécifier "envoiEmailApprobation" comme nom et passer à la page suivante. Ne pas remplir les paramètres de la page mais cliquer sur . Sélectionner la configuration "configEmail" et passer à la page de configuration du destinataire. Entrer "rh@acme.com" comme adresse email dans le champ expéditeur "De". Utiliser l'icône "crayon" pour éditer l'expression sur le champ destinataire "A". - Changer le type d'expression à "Script", nommer le script "recupEmailDemandeur" et coller le code ci-dessous dans la zone d'édition du script: + Changer le type d'expression à "Script", nommer le script "recupEmailDemandeur" et coller le code ci-dessous dans la zone d'édition du script : XINCLUDE-ERROR diff --git a/exercices/source/fr/chapters/ex6.xml b/exercices/source/fr/chapters/ex6.xml index 1dd1962..2592c8b 100644 --- a/exercices/source/fr/chapters/ex6.xml +++ b/exercices/source/fr/chapters/ex6.xml @@ -2,7 +2,7 @@ - Exercice: Créer une application de gestion de congés. + Exercice : Créer une application de gestion de congés.
Objectif @@ -11,12 +11,12 @@
Instructions résumées - Créer une nouvelle page d'application "Suivi des demandes" qui permet de le suivi des demandes de congés initiés par l'utilisateur connecté - Cette page contient un container multiple qui liste les demandes de congés ouvertes. Pour chaque demande, la date de début, le nombre de jours et le status sont affichés. - Exporter la page d'application en tant que fichier ZIP et la déployer dans le portail. - Créer une nouvelle application et y ajouter la page "Suivi des demandes". + Ouvrir l'UI Designer et créer une nouvelle "Page d'application" nommée "SuiviDesDemandes" qui permet le suivi des demandes de congés initiés par l'utilisateur connecté. + Cette page contient un container multiple qui liste les demandes de congés ouvertes. Pour chaque demande, la date de début, le nombre de jours et le statut sont affichés. + Exporter la page d'application en tant que fichier ZIP et la déployer dans le portail via le menu "Ressources" de la vue "Administrateur". + Créer une nouvelle application et y ajouter la page "SuiviDesDemandes". Accéder à l'application nouvellement créer en utilisant l'URL unique générée. - Optionnel: Ajouter un widget date et un widget input pour collecter les informations nécessaires à la création d'une nouvelle demande de congés. Puis ajouter et configurer un bouton pour soumettre la nouvelle demande. + Optionnel : Ajouter un widget date et un widget input pour collecter les informations nécessaires à la création d'une nouvelle demande de congés. Puis ajouter et configurer un bouton pour soumettre la nouvelle demande.
@@ -69,18 +69,18 @@ Créer une variable pour lister les demandes de congés. Cliquer sur "Créer un nouvelle variable" et choisir "External API". - Nommer la "leaveRequestStatus". + Nommer la "demandesConges". Dans le champ "API URL", taper : ../API/bdm/businessData/com.company.model.DemandeConges? q=findByIdDemandeur&p=0&c=100&f=idDemandeur={{sessionInfo.user_id}} - Faire attention qu'aucun espace dans l'URL ne subsiste apres le copier/coller. + Faire attention qu'aucun espace dans l'URL ne subsiste après le copier/coller. - Declarer une nouvelle expression Javascript pour mettre en forme la liste. - Cliquer sur "Créer un nouvelle variable" et choisir "Javascript expression". - Nommer la "updateLeaveRequestStatus". + Déclarer une nouvelle expression JavaScript pour mettre en forme la liste. + Cliquer sur "Créer un nouvelle variable" et choisir "JavaScript expression". + Nommer la "ajoutLibelleStatutDemandeConges". Remplacer la valeur existante par le script suivant : XINCLUDE-ERROR @@ -88,8 +88,8 @@ Créer un container multiple. - Glisser le widget Container depuis la palette et placer le sous le titre "Suivi des demandes". - Sélectionner le container puis, sur le panneau de droite, entrer "leaveRequestStatus" dans le champ "Collections". + Glisser le widget "Container" depuis la palette et placer le sous le titre "Suivi des demandes". + Sélectionner le container puis, sur le panneau de droite, entrer "demandesConges" dans le champ "Collections". Ajouter 4 widgets dans le container : @@ -226,7 +226,7 @@ Vous pouvez à n'importe quel moment pré-visualiser la page en cliquant sur "Aperçu". - Astuce: Si vous êtes connectés au portail dans le même navigateur, les demandes de congés réelles seront affichés. + Astuce : Si vous êtes connectés au portail dans le même navigateur, les demandes de congés réelles seront affichés. Exporter la page. @@ -237,7 +237,7 @@ Se connecter au portail Bonita avec un utilisateur Administrateur. Choisir le profil "Administrateur". Naviguer vers le menu "Ressources". Cliquer sur le bouton "Ajouter" (A) - Sélectionner (B) la page au format ZIP et cliquer sur Suivant. Confirmer sur l'écran suivant. + Sélectionner (B) la page au format ZIP et cliquer sur "Suivant". Sur l'écran suivant cliquer sur "Confirmer". @@ -249,11 +249,11 @@ Créer une nouvelle application. - Dans le portail, naviguer vers le menu Applications. - Cliquer sur Nouveau. - Saisir "Application de demande de conges" dans le champ "Nom affiché" (A). - Saisir "demandeConge" dans le champ "URL" (B). - Laisser les valeurs par defaut dans les champs Version (C) et Profils (D). + Dans le portail, naviguer vers le menu "Applications". + Cliquer sur "Nouveau". + Saisir "Application de demande de congés" dans le champ "Nom affiché" (A). + Saisir "demandeConges" dans le champ "URL" (B). + Laisser les valeurs par défaut dans les champs Version (C) et Profils (D). @@ -263,8 +263,8 @@ Cliquer sur "Créer" pour créer l'application. Cliquer sur "..." pour accéder à l'écran de configuration. - Aller à la section "Pages", situé dans la partie basse de l'écran et cliquer sur "Ajouter". Sélectionner la page demandeConges et saisir "status" dans le champ "URL". - Définir la page demandeConges en tant que page d'accueil en cliquer sur l'icône "maison" . + Aller à la section "Pages", situé dans la partie basse de l'écran et cliquer sur "Ajouter". Sélectionner la page custompage_SuiviDesDemandes et saisir "statut" dans le champ "URL". + Définir la page SuiviDesDemandes en tant que page d'accueil en cliquer sur l'icône "maison" . Une fois cela fait, cliquer sur l'icône "corbeille" pour supprimer la page par défaut. Vérifier que la page de configuration ressemble à ceci : @@ -286,13 +286,13 @@ Ajouter un nouveau form container. - Retourner dans l'UI designer pour éditer la page de gestion des demandes de conges. + Retourner dans l'UI designer pour éditer la page de gestion des demandes de congés. Glisser un form container depuis la palette et le placer entre les deux titres. Créer une nouvelle variable pour stocker les informations liées à la demande de congés. Cliquer sur "Créer sur une nouvelle variable" et choisir "JSON". - Nommer le "formInput". + Nommer la "nouvelleDemandeConges". Dans le champ texte "valeur", taper le script suivant : XINCLUDE-ERROR @@ -301,32 +301,32 @@ Créer une nouvelle variable pour stocker les informations liés au processus. Cliquer sur "Créer une nouvelle variable" et choisir "External API". - Nommer le "processDefinitionInfo". - Dans le champ API URL, taper : + Nommer le "informationDefinitionProcessus". + Dans le champ URL d'API, taper : ../API/bpm/process? p=0&c=100&o=displayName%20DESC&s=Demande%20de%20Conges&f=user_id={{sessionInfo.user_id}} - Faire attention qu'aucun espace dans l'URL ne subsiste apres le copier/coller. + Faire attention qu'aucun espace dans l'URL ne subsiste après le copier/coller. Ajouter deux widgets dans le form container. - Un widget date avec les options: Largeur : 6. Valeur : formInput.demandeInput.dateDebut. Libellé : Date Début - Un widget input avec les options : Largeur : 6. Valeur: formInput.demandeInput.nombreJours. Libellé: Nombre de jours + Un widget date avec les options : Largeur : 6. Valeur : nouvelleDemandeConges.demandeInput.dateDebut. Libellé : Date de début + Un widget input avec les options : Largeur : 6. Valeur : nouvelleDemandeConges.demandeInput.nombreJours. Libellé : Nombre de jours Ajouter un bouton pour soumettre le formulaire. Glisser le widget bouton depuis la palette et placer le dans le form container en dessous des deux widgets. Entrer "Créer une nouvelle demande" dans le champ libellé. - Sélectionner POST dans le list déroulante "Action". - Cliquer sur "fx" pour changer le mode du champ "Données envoyés au click" et taper "formInput". + Sélectionner POST dans la liste déroulante "Action". + Cliquer sur "fx" pour changer le mode du champ "Données envoyés au clic" et taper "nouvelleDemandeConges". Dans le champ "URL à appeler", taper : - ../API/bpm/process/{{processDefinitionInfo[0].id}}/instantiation + ../API/bpm/process/{{informationDefinitionProcessus[0].id}}/instantiation Dans le champ "URL cible en cas de succès", taper : - /bonita/apps/demandeConge + /bonita/apps/demandeConges Sauver la page. La page devrait maintenant ressembler à ceci : - + @@ -335,9 +335,9 @@ Mettre à jour la page dans le portail. Exporter la nouvelle version de la page. - Se connecter au portail et cliquer sur le bouton Editer de la page. + Se connecter au portail et cliquer sur le bouton Éditer de la page. Sélectionner le fichier ZIP correspondant la nouvelle version de la page. - Rafraichir l'application, les changements devraient être visibles. + Rafraîchir l'application, les changements devraient être visibles.
diff --git a/exercices/source/fr/docbook.xml b/exercices/source/fr/docbook.xml index 4f83253..ef9aa45 100644 --- a/exercices/source/fr/docbook.xml +++ b/exercices/source/fr/docbook.xml @@ -2,18 +2,18 @@ - + - BPMN Camp - Saison 4 + BPMN Camp Exercices - 2016 + 2017 Bonitasoft - + - + diff --git a/exercices/source/fr/resources/code/ex2_initRequest.java b/exercices/source/fr/resources/code/ex2_initRequest.java index a92a8e7..faf9d3c 100644 --- a/exercices/source/fr/resources/code/ex2_initRequest.java +++ b/exercices/source/fr/resources/code/ex2_initRequest.java @@ -3,8 +3,8 @@ demandeCongesVar.nombreJours = demandeInput.nombreJours // Récupérer l'instance de processus en cours -def processInstance = apiAccessor.processAPI.getProcessInstance(processInstanceId); +def processInstance = apiAccessor.processAPI.getProcessInstance(processInstanceId) // Ajouter l'identifiant du demandeur à la nouvelle demande -demandeCongesVar.idDemandeur = processInstance.startedBy; +demandeCongesVar.idDemandeur = processInstance.startedBy -return demandeCongesVar \ No newline at end of file +return demandeCongesVar diff --git a/exercices/source/fr/resources/code/ex5_getRequestorEmail.java b/exercices/source/fr/resources/code/ex5_getRequestorEmail.java index 48721b1..1ff3494 100644 --- a/exercices/source/fr/resources/code/ex5_getRequestorEmail.java +++ b/exercices/source/fr/resources/code/ex5_getRequestorEmail.java @@ -1,14 +1 @@ -import org.bonitasoft.engine.api.IdentityAPI; -import org.bonitasoft.engine.api.ProcessAPI; -import org.bonitasoft.engine.bpm.process.ProcessInstance; -import org.bonitasoft.engine.identity.ContactData; - -// Récupération APIs -ProcessAPI processAPI = apiAccessor.getProcessAPI(); -IdentityAPI identityAPI = apiAccessor.getIdentityAPI(); -// Récupération initiateur du processus -ProcessInstance processInstance = processAPI.getProcessInstance(processInstanceId); -long initiatorUserId = processInstance.getStartedBy(); -// Récupération email de l'initiateur -ContactData contactData = identityAPI.getUserContactData(initiatorUserId, false); -return contactData.getEmail(); \ No newline at end of file +BonitaUsers.getProcessInstanceInitiatorProfessionalContactInfo(apiAccessor,processInstanceId).email \ No newline at end of file diff --git a/exercices/source/fr/resources/code/ex6_updateLeaveRequestStatus.js b/exercices/source/fr/resources/code/ex6_updateLeaveRequestStatus.js index 46e395a..2a432cf 100644 --- a/exercices/source/fr/resources/code/ex6_updateLeaveRequestStatus.js +++ b/exercices/source/fr/resources/code/ex6_updateLeaveRequestStatus.js @@ -1,4 +1,4 @@ -for (let line of $data.leaveRequestStatus) { +for (let line of $data.demandeConges) { if (line.estApprouvee === null) { line.estApprouveeLabel = "En cours"; } else if (line.estApprouvee) { diff --git a/exercices/source/fr/resources/screenshots/ex1_09.png b/exercices/source/fr/resources/screenshots/ex1_09.png index 7946d41..1789d77 100644 Binary files a/exercices/source/fr/resources/screenshots/ex1_09.png and b/exercices/source/fr/resources/screenshots/ex1_09.png differ diff --git a/exercices/source/fr/resources/screenshots/ex3.zip b/exercices/source/fr/resources/screenshots/ex3.zip deleted file mode 100644 index 9836fb2..0000000 Binary files a/exercices/source/fr/resources/screenshots/ex3.zip and /dev/null differ diff --git a/exercices/source/fr/resources/screenshots/ex3_06.png b/exercices/source/fr/resources/screenshots/ex3_06.png index 9b53cd7..c8d47c1 100644 Binary files a/exercices/source/fr/resources/screenshots/ex3_06.png and b/exercices/source/fr/resources/screenshots/ex3_06.png differ diff --git a/exercices/source/fr/resources/screenshots/ex3_08.png b/exercices/source/fr/resources/screenshots/ex3_08.png index 43d775e..28ea50b 100644 Binary files a/exercices/source/fr/resources/screenshots/ex3_08.png and b/exercices/source/fr/resources/screenshots/ex3_08.png differ diff --git a/exercices/source/fr/resources/screenshots/ex6_05.png b/exercices/source/fr/resources/screenshots/ex6_05.png index 041995c..c48c4fd 100644 Binary files a/exercices/source/fr/resources/screenshots/ex6_05.png and b/exercices/source/fr/resources/screenshots/ex6_05.png differ diff --git a/exercices/source/fr/resources/screenshots/ex6_06.png b/exercices/source/fr/resources/screenshots/ex6_06.png index 3737e32..041995c 100644 Binary files a/exercices/source/fr/resources/screenshots/ex6_06.png and b/exercices/source/fr/resources/screenshots/ex6_06.png differ diff --git a/exercices/source/fr/resources/screenshots/ex6_07.png b/exercices/source/fr/resources/screenshots/ex6_07.png new file mode 100644 index 0000000..3737e32 Binary files /dev/null and b/exercices/source/fr/resources/screenshots/ex6_07.png differ diff --git a/exercices/source/fr/resources/screenshots/ex6_13.png b/exercices/source/fr/resources/screenshots/ex6_13.png deleted file mode 100644 index c48c4fd..0000000 Binary files a/exercices/source/fr/resources/screenshots/ex6_13.png and /dev/null differ diff --git a/slides/en/index.html b/slides/en/index.html index 273dd56..1fd558a 100644 --- a/slides/en/index.html +++ b/slides/en/index.html @@ -1,594 +1,589 @@ - - - - BPM Camp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- -
-
- auto -
-
-
Lionel Palacin
-
22th of November 2016
-
- - -
- -
-

Agenda

-
    -
  • BPM Goals
  • -
  • Bonita BPM Components
  • -
  • BPMN 2.0
  • -
  • Data & Contracts
  • -
  • Forms & Pages
  • -
  • Actors
  • -
  • Connectors
  • -
  • BPM-based applications
  • -
  • Deployment
  • -
-
- -
-

BPM Goals

-

Collaborate during the definition and execution of Business Processes

-

Track process execution

-

Optimise processes

- - -
- -
-
-

Bonita BPM Components

- - - - - - - - - - - - -
Bonita Studio
Bonita Engine}Bonita Platform
Bonita Portal
- - -
- -
-

Bonita BPM Studio : Process Editor

- Bonita BPM Studio : Diagram Editor - - -
- -
-

Bonita BPM Studio : UI Designer

- Bonita BPM Studio : UI Designer - - -
- -
-

Bonita BPM Engine

-

In charge process execution (no built-in UI)

-

Based on Java SE 7+ / Java EE 6

-

Packaged with the Bonita Portal in a Java web application

-

Requires :

-
    -
  • A Java application server
  • -
  • A JDBC compliant transactional database
  • -
- - -
- -
-

Bonita BPM Portal

-

End user and administration web interface

-

Displays the list of available tasks

-

Allows to deploy and configure processes

- Bonita BPM Portal : Task Inbox - - -
-
-

Bonita BPM Portal : Forms

-

Renders forms created with UI Designer

-

Served within Bonita Portal or embedded in an application

- Bonita form - - -
-
-

Bonita BPM Portal : Applications

-

Allows to deploy Business Applications composed of custom pages implemented with the UI Designer

- Bonita application - - -
-
- -
-
-

BPMN 2.0

-

Standard notation (OMG) for process modelling

-

A process is represented by a Pool pool

-

Key elements :

- - - - - - - - - - - - - - -
start eventStart Event
human taskHuman Task
service taskAutomated/Service Task
end eventEnd Event
- -

Elements are linked together by Transitions

- - -
- -
-

Gateways

-

3 types of gateways:

- - - - - - - - - - - -
exclusive gatewayExclusive
inclusive gatewayParallel
inclusive gatewayInclusive
- -

Best practice: in order to avoid bad designs, gateways should be placed in a symmetrical manner when possible:

- Symetrical gateway design - - -
- -
-

Exercise 1

-

Modelling a basic process

-

Download the instructions and corrections from this link :

-
- auto -
-
-
- -
-
-

Data : Scopes & Lifecycles

-
-
-

BDM (Business Data Model)

-

Accessible from anywhere, stored in Business DB
+ Use case: store any kind of data manipulated by processes instances and/or applications.

-
-
-

Process & Step data

-

Accessible within a single process or step instance, stored in Engine DB, archived with process instance
+ Use case: chain connectors execution.

-
-
-

Form data

-

Accessible within form, never persisted
+ Use case: process and store data displayed and updated in forms

-
-
- - -
- -
-

Data

- - - - - - - - - - - -
BDMProcess & Task dataForm data
-
  • Structured objects composed of: -
      -
    • Java primitives (String, Integer, Boolean, Date...)
    • -
    • Other BDMs
    • -
    -
  • -
-
-
    -
  • Any Java Serializable type: -
      -
    • Primitives, Collections...
    • -
    • Custom types...
    • -
    -
-
  • Any JavaScript type
-
-

- Documents: files with revisions can be declared at process level -

- - -
- -
-

Contracts

-

Set of required input parameters with validation rules.

-

Data sent by forms must satisfy a contract in order to

-
    -
  • Start a process
  • -
  • Execute a human task
  • -
-

Contributes to the decoupling of process logic and user interface.

-
- -
-

Exercise 2

-

Adding data and specifying contracts

-
-
- - - - - -
-
-

Forms & Pages

-

Created with UI Designer with containers and widgets

-

Based on AngularJS and Bootstrap.

-

2 types of forms:

-
    -
  • Editable forms that must satisfy a contract -
      -
    • Process instantiation
    • -
    • Human tasks
    • -
    -
  • -
  • - Overview form (read-only) defined at pool level -
  • -
- - -
- -
-

Widgets

-

A set of widgets is available out of the box (text field, select, date picker...)

-

Custom widgets can be created with the UI Designer

- - -
- -
-

Exercise 3

-

Creating forms

-
-
- -
-
-

Actors

-

Declared at pool level. Associated with lanes or human tasks. 2 options available: actors and actors filters


- - - - - - - - - - - - - - - - - -
BenefitsLimitations
ActorsAlways up to date with organizationStatic mapping that can not rely on business/process data
Actor filtersDynamic mapping that can include business/process dataExecuted only once at task instantiation
- - - -
- -
-

Exercise 4

-

Configuring actors

-
-
- -
-
-

Connectors

-

Allows processes to interact with IS (opposite of the Bonita APIs)

-

A set of standard connectors is shipped in the Studio

-

Custom connectors can be:

-
    -
  • Implemented using the Studio or other Java IDEs
  • -
  • Imported from the Community website
  • -
- - -
- -
-

Exercise 5

-

Using a connector to send an email

-
-
- - -
-
-

BPM-based applications

-

Combine processes together to handle a real business use case

-

Respect the MVC design pattern:

-
    -
  • Model is the business data model
  • -
  • View is a combination of pages and process forms
  • -
  • Controller is a set of processes
  • -
-

Applications are deployed and hosted in Bonita Portal

-
- -
-

Exercise 6

-

Create a leave request application

-
-
- -
-
-

Process Deployment

-

Main steps for process deployment :

- - - - - - - - - -
1. Process configuration
- 2. Bar file generation -
Studio
3. Bar deployment
- 4. Process configuration
- 5. Process activation -
Portal
- - -
- -
-

Application Deployment

-

Main steps for application deployment :

- - - - - - - - - -
1. Export pages from UI Designer
-
Studio
2. Import pages as Resource
- 3. Create an application
- 4. Configure the application
- 5. Add the pages to the application -
Portal
-
-
-
-

Thank you for your attention

-

Any questions? Do not hesitate.

-

Extra Resources:

- -
- -
- -
- - - - - - - - - + + + + BPM Camp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ BPM Camp logo +
+
+ auto +
+
+
Lionel Palacin
+
13th of March 2017
+
+ + +
+ +
+

Agenda

+
    +
  • BPM Goals
  • +
  • Bonita BPM Components
  • +
  • BPMN 2.0
  • +
  • Data & Contracts
  • +
  • Forms & Pages
  • +
  • Actors
  • +
  • Connectors
  • +
  • BPM-based applications
  • +
  • Deployment
  • +
+
+ +
+

BPM Goals

+

Collaborate during the definition and execution of Business Processes

+

Track process execution

+

Optimise processes

+ + +
+ +
+
+

Bonita BPM Components

+ + + + + + + + + + + + +
Bonita Studio
Bonita Engine}Bonita Platform
Bonita Portal
+ + +
+ +
+

Bonita BPM Studio : Process Editor

+ Bonita BPM Studio : Diagram Editor + + +
+ +
+

Bonita BPM Studio : UI Designer

+ Bonita BPM Studio : UI Designer + + +
+ +
+

Bonita BPM Engine

+

In charge process execution (no built-in UI)

+

Based on Java SE 7 / Java EE 6

+

Packaged with the Bonita Portal in a Java web application

+

Requires:

+
    +
  • A Java application server
  • +
  • A JDBC compliant transactional database
  • +
+ + +
+ +
+

Bonita BPM Portal

+

End user and administration web interface

+

Displays the list of available tasks

+

Allows to deploy and configure processes

+ Bonita BPM Portal : Task Inbox + + +
+ +
+

Bonita BPM Portal: Forms

+

Renders forms created with UI Designer

+

Served within Bonita Portal or embedded in an application

+ Bonita form + + +
+ +
+

Bonita BPM Portal: Applications

+

Allows to deploy Business Applications composed of custom pages implemented with the UI Designer

+ Bonita application + + +
+
+ +
+
+

BPMN 2.0

+

Standard notation (OMG) for process modeling

+

A process is represented by a Pool pool

+

Key elements :

+ + + + + + + + + + + + + + +
start eventStart Event
human taskHuman Task
service taskAutomated/Service Task
end eventEnd Event
+ +

Elements are linked together by Transitions

+ + +
+ +
+

Gateways

+

3 types of gateways:

+ + + + + + + + + + + +
exclusive gatewayExclusive
inclusive gatewayParallel
inclusive gatewayInclusive
+ +

Best practice: in order to avoid bad designs, gateways should be placed in a symmetrical manner when possible:

+ Symetrical gateway design + + +
+ +
+

Exercise 1

+

Modelling a basic process

+

Download the instructions and corrections from this link :

+
+ auto +
+
+
+ +
+
+

Data: scopes & life cycles

+
+
+

BDM (Business Data Model)

+

Accessible from anywhere, stored in Business DB
+ Use case: store any kind of data manipulated by processes instances and/or applications.

+
+
+

Process & Step data

+

Accessible within a single process or step instance, stored in Engine DB, archived with process instance
+ Use case: chain connectors execution.

+
+
+

Form data

+

Accessible within form, never persisted
+ Use case: process and store data displayed and updated in forms

+
+
+ + +
+ +
+

Data: types

+ + + + + + + + + + + +
BDMProcess & Task dataForm data
+
    +
  • Structured objects composed of: +
      +
    • Java primitives (String, Integer, Boolean, Date...)
    • +
    • Other BDMs
    • +
    +
  • +
+
+
    +
  • Any Java Serializable type: +
      +
    • Primitives, Collections...
    • +
    • Custom types...
    • +
    +
  • +
+
+
  • Any JavaScript type
+
+
+

+ Documents: files with revisions can be declared at process level +

+ + +
+ +
+

Contracts

+

Set of required input parameters with validation rules.

+

Data sent by forms must satisfy a contract in order to

+
    +
  • Start a process
  • +
  • Execute a human task
  • +
+

Contributes to the decoupling of process logic and user interface.

+
+ +
+

Exercise 2

+

Adding data and specifying contracts

+
+
+ +
+
+

Forms & Pages

+

Created with UI Designer with containers and widgets

+

Based on AngularJS and Bootstrap.

+

2 types of forms:

+
    +
  • Editable forms that must satisfy a contract +
      +
    • Process instantiation
    • +
    • Human tasks
    • +
    +
  • +
  • + Overview form (read-only) defined at pool level +
  • +
+ + +
+ +
+

Widgets

+

A set of widgets is available out of the box (text field, select, date picker...)

+

Custom widgets can be created with the UI Designer

+ + +
+ +
+

Exercise 3

+

Creating forms

+
+
+ +
+
+

Actors

+

Declared at pool level. Associated with lanes or human tasks. 2 options available: actors and actors filters


+ + + + + + + + + + + + + + + + + +
BenefitsLimitations
ActorsAlways up to date with organizationMapping that can not rely on business/process data
Actor filtersMapping that can be based on business/process dataExecuted only once at task instantiation
+ + +
+ +
+

Exercise 4

+

Configuring actors

+
+
+ +
+
+

Connectors

+

Allows processes to interact with IS (opposite of the Bonita APIs)

+

A set of standard connectors is shipped in the Studio

+

Custom connectors can be:

+
    +
  • Implemented using the Studio or other Java IDEs
  • +
  • Imported from the Community website
  • +
+ + +
+ +
+

Exercise 5

+

Using a connector to send an email

+
+
+ + +
+
+

BPM-based applications

+

Combine processes together to handle a real business use case

+

Respect the MVC design pattern:

+
    +
  • Model is the business data model
  • +
  • View is a combination of pages and process forms
  • +
  • Controller is a set of processes
  • +
+

Applications are deployed and hosted in Bonita Portal

+
+ +
+

Exercise 6

+

Create a leave request application

+
+
+ +
+
+

Process Deployment

+

Main steps for process deployment :

+ + + + + + + + + +
1. Process configuration
+ 2. Bar file generation +
Studio
3. Bar deployment
+ 4. Process configuration
+ 5. Process activation +
Portal
+ + +
+ +
+

Application Deployment

+

Main steps for application deployment :

+ + + + + + + + + +
1. Export pages from UI Designer
+
Studio
2. Import pages as Resource
+ 3. Create an application
+ 4. Configure the application
+ 5. Add the pages to the application +
Portal
+
+
+ +
+

Thank you for your attention

+

Any questions? Do not hesitate.

+

Extra Resources:

+ +
+ +
+ +
+ + + + + + + + + diff --git a/slides/fr/index.html b/slides/fr/index.html index e2bb25b..1a175d3 100644 --- a/slides/fr/index.html +++ b/slides/fr/index.html @@ -1,588 +1,587 @@ - - - - BPM Camp - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- -
-
- auto -
-
-
Antoine Mottier
-
24 Novembre 2016
-
- - -
- -
-

Programme

-
    -
  • Objectifs du BPM
  • -
  • Composants de Bonita BPM
  • -
  • Introduction au BPMN
  • -
  • Données & Contrats
  • -
  • D'avantage sur le BPMN
  • -
  • Formulaires et Pages
  • -
  • Acteurs
  • -
  • Connecteurs
  • -
  • Déploiement
  • -
-
- -
-

Objectifs du BPM

-

Collaborer à la définition et à l'exécution des processus de l'entreprise

-

Suivre le bon déroulement des processus

-

Optimiser les processus

- - -
- -
-
-

Composants de Bonita BPM

- - - - - - - - - - - - -
Bonita Studio
Bonita Engine}Bonita Platform
Bonita Portal
- - -
- -
-

Bonita BPM Studio : éditeur de diagrammes

- Bonita BPM Studio : edition de diagrammes - -
- -
-

Bonita BPM Studio : UI Designer

- Bonita BPM Studio : UI Designer - - -
- -
-

Bonita BPM Engine

-

Responsable de l'exécution des processus (pas d'interface graphique)

-

Basé sur Java SE 7 / Java EE 6

-

Encapsulé avec le Portal dans une application web Java

-

Requiert :

-
    -
  • Serveur d'application Java
  • -
  • Base de données transactionnelle compatible avec JDBC
  • -
- - -
- -
-

Bonita BPM Portal

-

Interface web pour l'utilisateur final et l'administrateur

-

Présente la liste des tâches à réaliser

-

Permet de déployer et configurer des processus

- Bonita BPM Portal : liste de tâches - - -
-
-

Bonita BPM Portal : Forms

-

Affiche les formulaires créés avec le UI Designer

-

Servis dans le Portal Bonita ou intégré dans une application

- Bonita form - - -
-
-

Bonita BPM Portal : Applications

-

Permet le déploiement d'application métiers composées de pages personnalisées créées avec le UI Designer

- Bonita application - - -
-
- -
-
-

Introduction au BPMN

-

Une notation standard (OMG) pour la modélisation des processus

-

Un processus est représenté par un Pool pool

-

Les éléments essentiels :

- - - - - - - - - - - - - - -
start eventEvénement de début
human taskTâche humaine
service taskTâche automatique/service
end eventEvénement de fin
- -

Les éléments sont reliés par des Transitions

- - -
- -
-

D'avantage sur le BPMN

-

3 types de portes logiques :

- - - - - - - - - - - -
exclusive gatewayExclusive
inclusive gatewayParallèle
inclusive gatewayInclusive
- -

Une bonne pratique consiste à utiliser les portes de manière symétrique si possible:

- Symetrical gateway design - - -
- -
-

Exercice 1

-

Modélisation basique de processus

-

Téléchargez les instructions et les corrections à partir de ce lien:

-
- auto -
-
-
- -
-
-

Données

-
-
-

BDM (Business Data Model)

-

Accessible de partout, stocké dans une base métier
- Usage: stocker les données manipulées par les instances de processus et/ou applications

-
-
-

Variables de processus & d'étapes

-

Accessibles depuis une seule instance de processus/étape, stockées dans la base moteur, archivées avec l'instance de processus
- Usage: chainer l'exécution de connecteurs

-
-
-

Variables de formulaire

-

Accessibles depuis un formulaire, jamais persistées
- Usage: manipuler et stocker les informations accessibles en lecture et en écriture dans un formulaire

-
-
- - -
- -
-

Données

- - - - - - - - - - - -
BDMVariables de processus & d'étapesVariables de formulaire
-
    -
  • Objets structurés composés de : -
      -
    • Primitives Java (String, Integer, Boolean, Date...)
    • -
    • Autres BDMs
    • -
    -
  • -
-
-
    -
  • Tout type Java Serializable : -
      -
    • Primitives, Collections
    • -
    • Types personnalisés
    • -
    -
  • -
-
-
  • Tout type JavaScript
-
- -
-

Documents : fichiers avec gestion des révisions, déclarés au niveau des processus

- - -
- -
-

Contrats

-

Ensemble de paramètres d'entrée requis avec des règles de validation.

-

Les données envoyées par les formulaires doivent remplir des contrats pour :

-
    -
  • Instancier un processus
  • -
  • Exécuter une tâche humaine
  • -
-

Contribue au découplage entre la logique métier et les interfaces graphiques.

-
- -
-

Exercice 2

-

Ajout de données et spécification de contrats

-
-
- - - -
-
-

Formulaires & Pages

-

Créé dans le UI Designer à base de conteneurs et de widgets

-

Basé sur AngularJS et Bootstrap.

-

2 types de formulaires:

-
    -
  • Formulaires éditables qui doivent remplir un contrat -
      -
    • Instanciation de processus
    • -
    • Tâches humaines
    • -
    -
  • -
  • - Formulaire de synthèse (lecture seule) défini au niveau du Pool -
  • -
- - -
- -
-

Widgets

-

Un ensemble de widget de base sont fourni par défaut (champ texte, menu déroulant, sélecteur de date...)

-

Des widgets personnalisés peuvent être créés avec le UI Designer

- - -
- -
-

Exercice 3

-

Création de formulaires

-
-
- -
-
-

Acteurs

-

Déclaré au niveau du Pool. Associé avec des Lanes ou des tâches humaines. 2 options d'implémentation :

- - - - - - - - - - - - - - - - -
AvantagesLimitations
ActeurToujours à jour par rapport à l'organisationAssociation statique qui ne peut se baser sur des données métier
Filtre d'acteurAssociation dynamique qui peut inclure des données métierCalculé seulement une fois à l'instanciation d'une étape
- - -
- -
-

Exercice 4

-

Gestion d'acteurs

-
-
- -
-
-

Connecteurs

-

Permet à un processus d'interagir avec le SI (à l'opposé des API Bonita)

-

Un catalogue de connecteurs standard est fourni dans le Studio.

-

Des connecteurs personnalisés peuvent être :

-
    -
  • Implémentés dans le Studio ou un IDE Java
  • -
  • Importés depuis notre site communautaire
  • -
- - -
- -
-

Exercice 5

-

Notification par le biais d'un connecteur

-
-
- -
-
-

Applications basées sur le BPM

-

Combiner différents processus ensemble dans le but de fournir une application métier riche et cohérente.

-

Respecte le modèle MVC:

-
    -
  • Le modele est le BDM
  • -
  • La vue est la combinaison des pages d'applications et des formulaires de processus
  • -
  • Le controlleur est un ensemble de processus
  • -
-

Les applications sont déployés et rendus par le Portail Bonita

-
- -
-

Exercice 6

-

Créer une application de gestion des congés.

-
-
-
-
-

Déploiement de processus

-

Étapes principales du déploiement d'un processus :

- - - - - - - - - -
1. Configuration du processus
- 2. Génération du fichier Bar -
Studio
3. Déploiement du fichier Bar
- 4. Configuration du processus
- 5. Activation du processus -
Portal
- - -
-
-

Déploiement d'applications

-

Étapes principales du déploiement d'une application:

- - - - - - - - - -
1. Exporter les pages depuis le UI Designer
-
Studio
2. Importer les pages dans le menu Ressources
- 3. Créer une nouvelle application
- 4. Configurer l'application
- 5. Ajouter les pages à l'applcation -
Portail
-
- -
- -
-

Merci pour votre attention

-

Des questions? N'hésitez pas.

-

Ressources complémentaires :

- -
- -
-
- - - - - - - - - + + + + BPM Camp + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ BPM Camp logo +
+
+ auto +
+
+
Antoine Mottier
+
24 Novembre 2016
+
+ + +
+ +
+

Programme

+
    +
  • Objectifs du BPM
  • +
  • Composants de Bonita BPM
  • +
  • Introduction au BPMN
  • +
  • Données et Contrats
  • +
  • Formulaires et Pages
  • +
  • Acteurs
  • +
  • Connecteurs
  • +
  • Applications
  • +
  • Déploiement
  • +
+
+ +
+

Objectifs du BPM

+

Collaborer à la définition et à l'exécution des processus de l'entreprise

+

Suivre le bon déroulement des processus

+

Optimiser les processus

+ + +
+ +
+
+

Composants de Bonita BPM

+ + + + + + + + + + + + +
Bonita Studio
Bonita Engine}Bonita Platform
Bonita Portal
+ + +
+ +
+

Studio : éditeur de diagrammes

+ Bonita BPM Studio : edition de diagrammes + +
+ +
+

Studio : UI Designer

+ Bonita BPM Studio : UI Designer + + +
+ +
+

Bonita BPM Engine

+

Responsable de l'exécution des processus (pas d'interface graphique)

+

Basé sur Java SE 7 / Java EE 6

+

Encapsulé avec le Portal dans une application web Java

+

Requiert :

+
    +
  • Serveur d'application Java
  • +
  • Base de données transactionnelle compatible avec JDBC
  • +
+ + +
+ +
+

Bonita BPM Portal

+

Interface web pour l'utilisateur final et l'administrateur

+

Présente la liste des tâches à réaliser

+

Permet de déployer et configurer des processus

+ Bonita BPM Portal : liste de tâches + + +
+
+

Bonita BPM Portal : Forms

+

Affiche les formulaires créés avec le UI Designer

+

Servis dans le Portal Bonita ou intégré dans une application

+ Bonita form + + +
+
+

Bonita BPM Portal : Applications

+

Permet le déploiement d'application métiers composées de pages personnalisées créées avec le UI Designer

+ Bonita application + + +
+
+ +
+
+

Introduction au BPMN

+

Notation standard pour la modélisation des processus

+

Un processus est représenté par un Pool pool

+

Les éléments essentiels :

+ + + + + + + + + + + + + + +
start eventEvénement de début
human taskTâche humaine
service taskTâche automatique/service
end eventEvénement de fin
+ +

Les éléments sont reliés par des Transitions

+ + +
+ +
+

Portes logiques

+

3 types de portes logiques :

+ + + + + + + + + + + +
exclusive gatewayExclusive
inclusive gatewayParallèle
inclusive gatewayInclusive
+ +

Une bonne pratique consiste à utiliser les portes de manière symétrique si possible :

+ Symetrical gateway design + + +
+ +
+

Exercice 1

+

Modélisation basique de processus

+

Téléchargez les instructions et les corrections à partir de ce lien :

+
+ auto +
+
+
+ +
+
+

Données

+
+
+

BDM (Business Data Model)

+

Accessible de partout, stocké dans une base métier
+ Usage : stocker les données manipulées par les instances de processus et/ou applications

+
+
+

Variables de processus & d'étapes

+

Accessibles depuis une seule instance de processus/étape, stockées dans la base moteur, archivées avec l'instance de processus
+ Usage : chainer l'exécution de connecteurs

+
+
+

Variables de formulaire

+

Accessibles depuis un formulaire, jamais persistées
+ Usage : manipuler et stocker les informations accessibles en lecture et en écriture dans un formulaire

+
+
+ + +
+ +
+

Données

+ + + + + + + + + + + +
BDMVariables de processus & d'étapesVariables de formulaire
+
    +
  • Objets structurés composés de : +
      +
    • Primitives Java (String, Integer, Boolean, Date...)
    • +
    • Autres BDMs
    • +
    +
  • +
+
+
    +
  • Tout type Java Serializable : +
      +
    • Primitives, Collections...
    • +
    • Types personnalisés
    • +
    +
  • +
+
+
  • Tout type JavaScript
+
+ +
+

+ Documents : fichiers avec gestion des révisions, déclarés au niveau des processus +

+ + +
+ +
+

Contrats

+

Ensemble de paramètres d'entrée requis avec des règles de validation.

+

Les données envoyées par les formulaires doivent remplir des contrats pour :

+
    +
  • Instancier un processus
  • +
  • Exécuter une tâche humaine
  • +
+

Contribue au découplage entre la logique métier et les interfaces graphiques.

+
+ +
+

Exercice 2

+

Ajout de données et spécification de contrats

+
+
+ + + +
+
+

Formulaires & Pages

+

Créé dans le UI Designer à base de conteneurs et de widgets

+

Basé sur AngularJS et Bootstrap.

+

2 types de formulaires:

+
    +
  • Formulaires éditables qui doivent remplir un contrat +
      +
    • Instanciation de processus
    • +
    • Tâches humaines
    • +
    +
  • +
  • + Formulaire de synthèse (lecture seule) défini au niveau du Pool +
  • +
+ + +
+ +
+

Widgets

+

Un ensemble de widget de base sont fourni par défaut (champ texte, menu déroulant, sélecteur de date...)

+

Des widgets personnalisés peuvent être créés avec le UI Designer

+ + +
+ +
+

Exercice 3

+

Création de formulaires

+
+
+ +
+
+

Acteurs

+

Déclaré au niveau du Pool. Associé avec des Lanes ou des tâches humaines. 2 options d'implémentation :

+ + + + + + + + + + + + + + + + +
AvantagesLimitations
ActeurToujours à jour par rapport à l'organisationAssociation qui ne peut pas se baser sur des données métier
Filtre d'acteurAssociation qui peut inclure des données métierCalculé à l'instanciation d'une étape
+ + +
+ +
+

Exercice 4

+

Gestion d'acteurs

+
+
+ +
+
+

Connecteurs

+

Permet à un processus d'interagir avec le SI (sens opposé à celui des API Bonita)

+

Un catalogue de connecteurs standard est fourni dans le Studio.

+

Des connecteurs personnalisés peuvent être :

+
    +
  • Implémentés dans le Studio ou un IDE Java
  • +
  • Importés depuis notre site communautaire
  • +
+ + +
+ +
+

Exercice 5

+

Notification par le biais d'un connecteur

+
+
+ +
+
+

Applications basées sur le BPM

+

Combiner différents processus ensemble dans le but de fournir une application métier riche et cohérente.

+

Respecte le modèle MVC :

+
    +
  • Le modele est le BDM
  • +
  • La vue est la combinaison des pages d'applications et des formulaires de processus
  • +
  • Le controlleur est un ensemble de processus
  • +
+

Les applications sont déployés et rendus par le Portail Bonita

+
+ +
+

Exercice 6

+

Créer une application de gestion des congés.

+
+
+
+
+

Déploiement de processus

+

Étapes principales du déploiement d'un processus :

+ + + + + + + + + +
1. Configuration du processus
+ 2. Génération du fichier Bar +
Studio
3. Déploiement du fichier Bar
+ 4. Configuration du processus
+ 5. Activation du processus +
Portal
+ + +
+
+

Déploiement d'applications

+

Étapes principales du déploiement d'une application:

+ + + + + + + + + +
1. Exporter les pages depuis le UI Designer
+
Studio
2. Importer les pages dans le menu Ressources
+ 3. Créer une nouvelle application
+ 4. Configurer l'application
+ 5. Ajouter les pages à l'application +
Portail
+
+ +
+ +
+

Merci pour votre attention

+

Des questions? N'hésitez pas.

+

Ressources complémentaires :

+ +
+ +
+
+ + + + + + + + + diff --git a/slides/fr/presentation_images/screenshot_portal_inbox.png b/slides/fr/presentation_images/screenshot_portal_inbox.png index ff58d5d..898c921 100644 Binary files a/slides/fr/presentation_images/screenshot_portal_inbox.png and b/slides/fr/presentation_images/screenshot_portal_inbox.png differ diff --git a/slides/fr/presentation_images/screenshot_studio_diagram.png b/slides/fr/presentation_images/screenshot_studio_diagram.png index 635dc27..125557a 100644 Binary files a/slides/fr/presentation_images/screenshot_studio_diagram.png and b/slides/fr/presentation_images/screenshot_studio_diagram.png differ