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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
[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
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
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
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
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
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
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

Microsoft Workflow Foundation - Cours 2

  • 1.
    Workflow Foundation 4.5avec 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