SlideShare ist ein Scribd-Unternehmen logo
1 von 41
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

Weitere ähnliche Inhalte

Mehr von Mohammed Amine Mostefai

Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Mohammed Amine Mostefai
 
Utilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationUtilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationMohammed Amine Mostefai
 
Utilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsUtilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsMohammed Amine Mostefai
 
Utilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionUtilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionMohammed Amine Mostefai
 
Module 8 programmation avancée d'asp.net
Module 8   programmation avancée d'asp.netModule 8   programmation avancée d'asp.net
Module 8 programmation avancée d'asp.netMohammed Amine Mostefai
 
Module 7 intégration d'ajax et les services web dans les applications asp.net
Module 7   intégration d'ajax et les services web dans les applications asp.netModule 7   intégration d'ajax et les services web dans les applications asp.net
Module 7 intégration d'ajax et les services web dans les applications asp.netMohammed Amine Mostefai
 
Module 6 développement d'applications de bases de données avec asp.net
Module 6   développement d'applications de bases de données avec asp.netModule 6   développement d'applications de bases de données avec asp.net
Module 6 développement d'applications de bases de données avec asp.netMohammed Amine Mostefai
 
Module 4 navigation et homogénéisation des les applications web
Module 4   navigation et homogénéisation des les applications webModule 4   navigation et homogénéisation des les applications web
Module 4 navigation et homogénéisation des les applications webMohammed Amine Mostefai
 
Module 3 intégration de traitement dans les applications web asp.net
Module 3   intégration de traitement dans les applications web asp.netModule 3   intégration de traitement dans les applications web asp.net
Module 3 intégration de traitement dans les applications web asp.netMohammed Amine Mostefai
 
Module 2 introduction à asp.net web forms
Module 2   introduction à asp.net web formsModule 2   introduction à asp.net web forms
Module 2 introduction à asp.net web formsMohammed Amine Mostefai
 

Mehr von Mohammed Amine Mostefai (20)

Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)
 
Utilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationUtilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - Personnalisation
 
Utilisation Sharepoint (Listes)
Utilisation Sharepoint (Listes)Utilisation Sharepoint (Listes)
Utilisation Sharepoint (Listes)
 
Utilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsUtilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de Documents
 
Utilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionUtilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - Introduction
 
Pratiques agiles
Pratiques agilesPratiques agiles
Pratiques agiles
 
Introduction à Scrum
Introduction à ScrumIntroduction à Scrum
Introduction à Scrum
 
Le Manifeste Agile
Le Manifeste AgileLe Manifeste Agile
Le Manifeste Agile
 
Méthodes Agiles - Généralités
Méthodes Agiles - GénéralitésMéthodes Agiles - Généralités
Méthodes Agiles - Généralités
 
Introduction aux technologies mobiles
Introduction aux technologies mobilesIntroduction aux technologies mobiles
Introduction aux technologies mobiles
 
Présentation cloud journée azure
Présentation cloud   journée azurePrésentation cloud   journée azure
Présentation cloud journée azure
 
Le Langage CSS
Le Langage CSSLe Langage CSS
Le Langage CSS
 
Présentation sharepoint 2013
Présentation sharepoint 2013Présentation sharepoint 2013
Présentation sharepoint 2013
 
Module 8 programmation avancée d'asp.net
Module 8   programmation avancée d'asp.netModule 8   programmation avancée d'asp.net
Module 8 programmation avancée d'asp.net
 
Module 7 intégration d'ajax et les services web dans les applications asp.net
Module 7   intégration d'ajax et les services web dans les applications asp.netModule 7   intégration d'ajax et les services web dans les applications asp.net
Module 7 intégration d'ajax et les services web dans les applications asp.net
 
Module 6 développement d'applications de bases de données avec asp.net
Module 6   développement d'applications de bases de données avec asp.netModule 6   développement d'applications de bases de données avec asp.net
Module 6 développement d'applications de bases de données avec asp.net
 
Module 5 validation de données
Module 5   validation de donnéesModule 5   validation de données
Module 5 validation de données
 
Module 4 navigation et homogénéisation des les applications web
Module 4   navigation et homogénéisation des les applications webModule 4   navigation et homogénéisation des les applications web
Module 4 navigation et homogénéisation des les applications web
 
Module 3 intégration de traitement dans les applications web asp.net
Module 3   intégration de traitement dans les applications web asp.netModule 3   intégration de traitement dans les applications web asp.net
Module 3 intégration de traitement dans les applications web asp.net
 
Module 2 introduction à asp.net web forms
Module 2   introduction à asp.net web formsModule 2   introduction à asp.net web forms
Module 2 introduction à asp.net web forms
 

Microsoft Workflow Foundation - Cours 2

  • 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