1. Workflow Foundation 4.5 avec Visual Studio 2012
Module 2 : Création et Réutilisation d’Activités
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 1
2. Section 1 : Introduction
aux activités
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
2
3. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 1 : INTRODUCTION AUX ACTIVITÉS
Qu’est-ce qu’une activité
Pièce fonctionnelle dont l’exécution fournit un résultat
Un workflow coordonne et gère les activités
Une activité composite est une activité parente d’autres activité
Un workflow est une activité composite
Les activités sont réutilisables
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 3
4. Activités
définies par
l’utilisateur
MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 1 : INTRODUCTION AUX ACTIVITÉS
Catégories d’activités
Activités
prédéfinies
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 4
5. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 1 : INTRODUCTION AUX ACTIVITÉS
Données utilisées par les activités
Les activités peuvent utiliser les arguments et les variables
Les expressions C# sont utilisées pour le calcul et l’évaluation
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 5
6. Section 2 : Activité
prédéfinies
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
6
7. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Activité primitives
Activités très simples fournissant certaines fonctionnalités
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 7
8. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
L’activité «WriteLine »
Affiche une ligne de texte dans la console
La propriété « Text » de type « String » est le texte à afficher
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 8
9. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
L’activité « Assign »
Permet d’effectuer une affectation
La propriété « To » demande l’argument ou la variable à affecter
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 9
10. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
L’activité « Delay »
Permet de pauser l’exécution du workflow pendant un laps de temps
La propriété « Duration » indique le temps de pause
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 10
11. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
L’activité « InvokeMethod »
Permet d’invoquer une méthode d’un objet C#
La propriété « TargetType » définit le type de l’objet à partir duquel la méthode est invoquée
La propriété « Parameters » définit les paramètres à passer aux méthodes
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 11
12. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Tutoriel 2.1 : Activités primitives
Tutoriel 2.1 : Activités primitives
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 12
13. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Les activités de contrôle de flux
Contrôlent le déroulement et l’exécution du workflow
Selon les contraintes, et le contexte, ces activités rendent le workflow avec plusieurs déviations
possibles
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 13
14. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
L’activité conditionnelle « If »
Détermine un chemin possibles selon une condition
La condition est une expression définie par la propriété « Condition »
« Then » et « Else » sont les chemins enfants à emprunter selon la condition
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 14
15. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
L’instruction multidécisionnelle
« Switch »
Convient mieux si la condition peut avoir plus de deux valeurs possibles
Chaque cas est déterminé par une valeur et une action à exécuter si la condition du switch est
égale à cette valeur
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 15
16. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
La boucle «While »
Exécute des activités enfants tant qu’une condition « Condition » définie par une expression
est valide
La propriété « Body » définit les activités enfants à exécuter
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 16
17. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
La boucle « DoWhile »
Similaire à « While » sauf qu’elle s’exécute au moins une fois
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 17
18. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
L’itérateur « FoEach »
Pour une collection donnée, exécute des activités pour chaque élément de cette collection
La propriété « Body » définit les activités enfants à exécuter
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 18
19. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Les séquences « Sequence »
Un ensemble d’activités exécutés séquentiellement
Les séquences sont souvent créés automatiquement
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 19
20. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Exécution parallèle « Parallel »
Permet d’exécuter plusieurs activités en parallèle
Si la propriété « CompletionCondition » est à « true », l’activité se termine si une de ses
branches a terminé
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 20
21. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Parcours parallèle d’une collection
« ParallelForEach »
Parcourt les éléments d’une collection d’une manière parallèle
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 21
22. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Tutoriel 2.2 : Utilisation d’activités de
contrôle de flux
Tutoriel 2.2
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 22
23. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Gestion des collections
Des activités qui gèrent et manipulent des collections
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 23
24. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
AddToCollection
Ajoute un élément à une collection
La propriété « Collection » est la collection utilisée
La propriété « Item » est l’élément à ajouter
La propriété « TypeArgument » est le type des éléments de la collection
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 24
25. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
ExistsInCollection
Indique si un élément existe dans une collection ou pas
La propriété « Collection » est la collection utilisée
La propriété « Item » est l’élément à chercher
La propriété « Result » est le résultat de recherche
La propriété « TypeArgument » est le type des éléments de la collection
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 25
26. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
RemoveFromCollection
Supprime un élément d’une collection
La propriété « Collection » est la collection utilisée
La propriété « Item » est l’élément à supprimer
La propriété « Result » est le résultat de suppression
La propriété « TypeArgument » est le type des éléments de la collection
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 26
27. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
ClearCollection
Vide une collection
La propriété « Collection » est la collection utilisée
La propriété « TypeArgument » est le type des éléments de la collection
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 27
28. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Gestion des erreurs
Des activités qui gèrent les erreurs dans le workflow
Inspiré du modèle objet de la gestion d’exceptions
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 28
29. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Activité « TryCatch »
Contient deux blocs : un bloc surveillé (try) et un bloc qui sera exécuté si une exception est
déclenchée
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 29
30. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Activité « Rethrow »
Utilisée dans un bloc « Catch », utilisée pour réenclencher la dernière exception pour passer
éventuellement un « TryCatch » parent
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 30
31. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Activité « Throw »
Déclenche « manuellement » une exception
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 31
32. Section 3 : Activités
Utilisateur
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
32
33. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 3: ACTIVITÉS UTILISATEUR
Activités Utilisateur
L’utilisateur peut créer ses propres activités
Une activité est une classe qui dérive de l’une de ces classes : « CodeActivity »,
« NativeActivity », « AsyncCodeActivity » et « DynamicActivity »
« CodeActivity » est une classe abstraite que l’utilisateur dérive pour créer ses propres
fonctionnalités. Une descendante de « CodeActivity » ne peut pas avoir d’activités enfant
« NativeActivity » est apparue avec WF4.0. Les classes descendantes peuvent communiquer
avec le moteur et peuvent avoir des enfants
« AsyncCodeActivity » définit des classes dont l’exécution n’est pas bloquante (asynchrone)
« DynamicActivity » est une classe sellée qui permet définir dynamiquement une activité
Toutes les activités descendent de la classe abstraite « Activity »
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 33
34. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 3: ACTIVITÉS UTILISATEUR
Réutilisation d’activités
Une activité peut être utilisée par plusieurs workflow
Le designer et la boîte à outils facilitent la réutilisation d’activités
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 34
35. [Terminé sans problème]
Closed
[Exception]
Faulted
Final
MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 3: ACTIVITÉS UTILISATEUR
Etat d’une activité
Initial
Executing
[Démarrage]
Canceled
[Demande annulation]
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 35
36. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 3: ACTIVITÉS UTILISATEUR
Passage d’information entre les activités
Variables
Arguments (entrée / sortie)
Expressions
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 36
37. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 3: ACTIVITÉS UTILISATEUR
Création d’une nouvelle activité
En utilisant l’assistant « Ajout d’un nouvel élément »
Utiliser le template « Code Activity »
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 37
38. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 3: ACTIVITÉS UTILISATEUR
Template « CodeActivity » - Exemple
public sealed class CodeActivity1 : CodeActivity
{
// Define an activity input argument of type string
public InArgument<string> Text { get; set; }
// If your activity returns a value, derive from CodeActivity<TResult>
// and return the value from the Execute method.
protected override void Execute(CodeActivityContext context)
{
// Obtain the runtime value of the Text input argument
string text = context.GetValue(this.Text);
}
}
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 38
39. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 3: ACTIVITÉS UTILISATEUR
Débogage de workflow
Comme le code, les activités peuvent présenter des bugs
Le designer offre des options de débogage de workflow
Des points d’arrêt peuvent être définis sur les workflows
Le pas à pas et les expressions de suivis sont aussi valables
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 39
40. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Tutoriel 2.3 : Création et réutilisation
d’activités
Tutoriel 2.3
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 40
41. MODULE 2 - CRÉATION ET RÉUTILISATION D’ACTIVITÉS
SECTION 2: ACTIVITÉS PRÉDÉFINIES
Exercice 2.1 : Simulation d’une course de
chevaux
En utilisant l’activité « Generateur » du tutoriel précédent, simuler une course de chevaux où
l’on ne sait pas à priori le cheval qui va arriver en premier.
Chaque cheval doit effectuer une course qui dure un temps aléatoire
Utiliser les activités « ParallelForEach », « Delay », « Assign », « While », « WriteLine » et les
variables
WORKFLOW FOUNDATION 4.5 | MOSTEFAI MOHAMMED AMINE | JUIN 2013 41