Archives du mot-clé workflow manager 1.0

Automatiser ses processus métier avec SharePoint et Nintex


Voici les slides du café iNext qui s’est déroulé à Genève le 13 mai 2014.

Un petit résumé :

Découvrez les nouveautés du moteur de workflow de SharePoint 2013, ses possibilités Out of the Box et ses limites. Assistez aux démonstrations des outils de développement SharePoint Designer 2013, Visual Studio 2012 et Visio 2013 dans le cadre du déploiement d’un workflow simple. Partagez votre expérience et échangez avec nos experts sur les bénéfices de Nintex workflow pour SharePoint 2013 et Nintex Forms.

 

Création d’un workflow de type State Machine (machine à état) SharePoint 2013


Cet article fait partie d’une série concernant la mise en oeuvre de liste externes et de workflows avec SharePoint. Les étapes suivantes seront passées en revue :

_______________________________________________________________________________________________

Besoin fonctionnel

Je veux pouvoir gérer toutes les tâches liées à l’arrivée d’un nouveau salarié dans mon entreprise, comme par exemple :

  • l’attribution de son bureau
  • l’attribution de son numéro de téléphone fixe et mobile (s’il doit avoir un mobile professionnel)
  • la création de son compte AD et de son adresse email Exchange (avec possibilité d’automatisation)
  • l’attribution de droits sur les applications de l’entreprise
  • etc.

Les information concernant ce nouveau collaborateur étant renseignées en premier lieu dans une application RH dotée d’une base de donnée SQL Serveur.

Chaque équipe concernée devra pouvoir valider chacune des étapes afin de tracer et finaliser le processus avant la date d’entrée du nouveau collaborateur.

Conception générale

Considérant ce besoin fonctionnel, il pourra être traduit dans SharePoint de la manière suivante :

  • un type de contenu externe « Personne » issu d’une base de la données RH (cf. articles précédents) ainsi que sa liste externe associée
  • une liste « Fiche accueil nouveau collaborateur » qui référence le type de contenu externe « Personne » et qui vient ajouter des colonnes telles que :
    • attribution téléphone portable
    • véhicule de fonction
    • emplacement bureau
    • etc.
  • un workflow SharePoint 2013 associé à cette liste
  • des groupes SharePoint correspondants à chaque service impliqué dans le processus (RH, moyens généraux, support IT)
  • éventuellement des types de contenu spécifiques pour les tâches de workflow afin que l’on puisse saisir le numéro de téléphone ou la plaque d’immatriculation attribuée lorsque celle-ci est terminée
  • un event handler permettant de récupérer les informations saisies lors de la validation de la tâche et venir compléter la fiche d’accueil
  • une webpart affichant les tâches affectées à l’utilisateur courant (même si ceci est déterminé via un groupe SharePoint)
  • un event handler permettant de rende la tâche visible uniquement par le groupe d’utilisateur auquel elle est affectée

Création du workflow machine à état avec Visual Studio 2012

Considérons qu’une nouvelle instance de liste « FicheAccueil » a déjà été créée avec les champs suivants :

  • Titre : une ligne de texte
  • Personne  : BusinessData
  • Téléphone mobile : booléen
  • Véhicule de fonction : booléen
  • Numéro de mobile : une ligne de texte
  • emplacement bureau : liste de choix

Se conférer aux posts précédents afin de voir comment référencer une colonne de données externe dans une liste / un type de contenu.

Ajouter un nouvel élément de type « Flux de travail » de liste au projet SharePoint. L’associer à la liste « FicheAccueil » créée au préalable.

workflow sharepoint 2013

list workflow sharepoint 2013

workflow sharepoint 2013paramètrage workflow sharepoint 2013

Identifier le workflow, les listes créées (historique et tâches) ainsi que ses propriétés. Les modifier si nécessaire.

workflow properties sharepoint 2013

Dans le designer qui vient de s’ouvrir (workflow.xaml) renommer la séquence par défaut en « Séquence racine ».

root sequence workflow sharepoint

Créer la machine à état avec ses étapes et ses transitions

Y ajouter une séquence « machine à état » (StateMachine ») depuis la boîte à outils et double cliquer sur le logo en haut à gauche de cette séquence comme indiqué dans le screenshot ci-dessous.

state machine workflow sharepoint 2013

statemachine workflow

Insérer les états de la fiche d’accueil tout au long de son cycle de vie. Ceci se fait en sélectionnant l’item « state » dans la boîte à outils.

états workflow sharepoint 2013

Ajouter un état final. Glisser déposer l’élément « FinalState » depuis la boîte à outils.

finalstate workflow sharepoint 2013

Ajouter des transitions entre chacune des étapes (elles se créent manuellement et très simplement avec votre souris en traçant un lien entre chaque étape)

transition machine à états workflow sharepoint

Modifier la première étape et ajouter des logs au workflow

Double cliquer sur l’étape d’INIT sur le logo en haut à gauche. Insérer un événement de log dans l’historique avec le texte « Début du workflow Accueil Nouveau collaborateur ». Noter que le texte doit être entre guillemet et qu’il est possible d’accéder à de nombreuses fonctions et autre variables depuis l’éditeur d’expressions (accessible dans la fenêtre propriétés).

workflow writetohistory sharepoint

S’il y a une erreur quelconque de validation de workflow celle-ci est visible via une petit icone bleue qui apparaît dans le coin supérieur droit de chacun des éléments parents concernés. Le survol de cette icône affiche la source de l’erreur.

erreur workflow sharepoint 2013

Ajouter un élément « WriteLine » ou un élément de « DEBUG » en phase d’output de l’INIT. Ceci permet juste de valider cette première étape et le fait que le workflow soit bien lancé. Il est possible d’instancier des variables ainsi que de logguer des informations beaucoup plus riches à cette étape.

writeline sharepoint 2013

Modifier la séquence de l’état « approbation manager » afin d’assigner une tâche d’approbation de cette fiche d’accueil au manager de ce futur collaborateur.  Le groupe auquel est affecté cette tâche est sélectionné dynamiquement en fonction du service. La transition entre les 2 états reste inchangée.

Récupérer une valeur dynamique depuis les éléments SharePoint

Ajouter un élément de type « LookupSPListItem » et modifier ses propriétés afin de le faire pointer vers l‘élément courant et la liste courante (celle sur laquelle est branchée le workflow). Créer une variable de type « DynamicValue » et de portée « séquence » afin de stocker l’élément récupéré en sortie.

lookupsplistitem workflow sharepoint

Ajouter une activité « GetDynamicValueProperties » à la séquence via la boîte à outil en glisser déposer. Cette activité permet d’aller récupérer des valeurs de champs en OData depuis n’importe quel élément SharePoint passé en INPUT.

getdynamicvalueproperties workflow sharepoint

Lui passer votre SPListItem récupéré au préalable en INPUT.

getdynamicvalueproperties source sharepoint

Sélectionner ensuite les colonnes dont vous voulez récupérer la valeur dans les propriétés. Pour cela sélectionner « Elément de liste FicheAccueil » en tant que type d’entité, sélectionner ensuite la ou les colonne(s) dont vous voulez la valeur (ici le service et l’auteur) et cliquer sur « remplir les variables » afin d’ajouter des noms de variable automatiquement.

getdynamicvalueproperties entity sharepoint workflow

Changer la portée d’une variable de workflow

Le nom des variables créées peut alors être modifié si nécessaire. Une nouvelle variable de portée « séquence » est apparue. Changer son scope si celle-ci doit être réutilisée hors de cette séquence.

variable workflow sharepoint 2013

Ajouter une activité permettant de tracer le nom du service récupéré dans les la liste d’historique de workflow

LogToHistory workflow sharepoint

Ajouter une conditionnelle dans le workflow

Puis en fonction du nombre de conditions ajouter une conditionnelle ou un switch. Dans notre cas un « if » suffit. Celui-ci va comparer la valeur du champs « service » récupéré avec notre variable inscrite ici en dur mais qui peut être récupérée depuis votre futur environnement via configuration ou n’importe quelle liste.

condition if workflow sharepoint

Assigner une tâche de workflow et modifier sa date d’échéance

Assigner une tâche au groupe « Manager du service 1 ». Pour cela glisser déposer une « singleTask » depuis la boîte à outils dans la clause la partie « then ».

singletaks workflow sharepoint 2013

Modifier les propriétés de cette tâche afin qu’elles conviennent à votre processus. Dans mon cas le groupe à qui elle est affectée est « Manager Service 1 », celui-ci correspond à un groupe SharePoint créé au préalable ou via une feature déployée par votre projet de workflow.

singletask properties workflow sharepoint

La « Date d’échéance » est créée à date de création de la tâche + 3 jours. Ceci ne correspond pas à 3 jours ouvrés, pour cela un algo spécifique devrait être mis en place pour calculer la date par rapport à un calendrier de travail annuel passé en INPUT.

Le corps du message a également été modifié.  D’autres propriétés non visibles sur l’écran ci dessus peuvent être modifiées via la fenêtre de propriétés de la tâche.

Récupérer le résultat d’une tâche de workflow

Il faut noter l’apparition d’une nouvelle variable nommée « outcome_0 » qui correspond à la valeur de sortie de cette activité. Si celle-ci est égale à 0, cela signifie que la tâche a été approuvée, une autre valeur signifie qu’elle a été rejetée si nous n’avons que ces deux possibilités.

outcome_0 workflow task sharepoint

La renommer en « tacheManager » et changer sa portée au niveau « state machine », le reporter dans les propriétés de la tâche.

task outcome workflow sharepoint

Ajouter ensuite une activité « WriteToHistory » afin de logguer qu’une tâche a bien été affectée au manager du service. Noter que la portée de la variable « service1 » a été modifiée afin que je puisse y accéder au niveau mon état « approbation manager » et non plus de ma séquence.

writetohistory workflow sharepoint 2013

Modifier une transition

Modifier la transition pour le passage au 2e état en fonction de l’approbation de la tâche.

transition workflow SharePoint 2013

Ouvrir la transition en cliquant sur T2 afin de définir la séquence suivante pour envoyer un email à l’initiateur du workflow une fois la tâche approuvée :

Si la tâche a été approuvée, alors :

workflows transition sharepoint 2013

Envoyer un email à l’initiateur du Workflow

Dans la zone d’action ajouter un élément de type « LookupWorkflowContextProperty » afin de récupérer l’initiateur du workflow.

lookupworkflowcontextproperty sharepoint 2013

Créer une nouvelle variable nommée « initiateur » afin d’y stocker le résultat de cette requête.

workflow SharePoint 2013 variable

Sélectionner cette variable comme élément de sortie de l’action précédente

workflow sharepoint 2013

Créer une nouvelle variable de nommée « destinataire » de type System.Collections.ObjectModel.Collection<T> choisir ensuite le type « String » afin de ne pas laisser le type Générique.

send email sharepoint 2013 workfow visual studio

 

send email workflows sharepoint 2013

 

System.ObjectModel.Collection

Ensuite ajouter l’initiateur à la liste des destinataires de l’email. Pour cela utiliser l’activité « BuildCollection<T> » typée en « String ».

BuildCollection sharepoint 2013 workflow

 

Dans les propriété de cette activité, ajouter des valeurs en cliquant sur les « … »

sharepoint 2013 email workflow

 

Créer une argumenter avec la variable « Initiateur »

sharepoint 2013 worfklow visual studio

 

Définir la variable « Destinataire » en tant que résultat (output) dans le fenêtre de propriété également.

send email workflow sharepoint visual studio

 

Ajouter une activité de type « Courrier électronique » et définir le destinataire avec la variable nouvellement créée.

email workflow visual studio 2012

 

Ajouter un log dans l’historique pour signifier l’envoi de cet email.

sequence envoi email worfklow sharepoint 2013

 

Pour les 2 étapes suivantes les principes sont les mêmes concernant la récupération dynamique d’élément et l’affectation de tâches.

Même opération et même logique pour les étapes suivantes

Pour le téléphone mobile il faudra enchaîner les opération suivantes : 

  • Récupérer la valeur du champs « téléphone mobile »
  • Poser une condition afin d’assigner une tâche à l’équipe en charge de l’attribution si la valeur est à « true »
  • Assigner une tâche au groupe « Telephonie mobile »
  • Si tâche OK alors passer à l’étape suivante

workfows sharepoint 2013 visual studio 2012

NB  : afin de récupérer le numéro de téléphone attribué au nouveau collaborateur, il est possible de créer un  type de contenu spécifique pour la tâche à destination de l’équipe téléphonie mobile. Celui-ci contiendra un champs « No De tel » qui devra obligatoirement être saisie pour que la tâche soit complétée. Il pourra ensuite être récupéré par le Workflow (GetDynamicValueProperty) et inséré dans la fiche d’accueil elle-même.

Le workflow une fois déployé 

Le formulaire de fiche d’accueil : 

workflow visual studio 2012

 

le workflow une fois déclenché avec sa liste de tâche et son historique (traces) : 

Sharepoint 2013 custom Workflow with visual studio 2012

CA DESIGN DONC MAIS CA NE DEVELOPPE PAS … ENCORE !

ENJOY !!

Sources :

Utilisation des workflows SharePoint 2013


Cet article fait partie d’une série concernant la mise en oeuvre de liste externes et de workflows avec SharePoint. Les étapes suivantes seront passées en revue :

_______________________________________________________________________________________________

SharePoint est souvent cité comme une plateforme permettant de mettre en oeuvre des Workflows, cependant ses capacités Out Of the Box restent très axées sur les documents (DocFlow) et donc plutôt limitées lorsqu’on parle de dématérialisation de processus métiers.

Il est, par exemple, assez simple de mettre en oeuvre de l’approbation documentaire avant publication (usage courant)  mais dès que l’on veut aller plus loin, cela peut vite se compliquer car il faut souvent avoir recourt à des développements chronophages.

La couverture fonctionnelle native de SharePoint

Typiquement si je veux créer un workflow de demande de congés, par défaut, SharePoint ne sait pas répondre à mon besoin. Je dois utiliser, au choix, l’une des solutions suivantes, en fonction de mon profil, de mes affinités avec les outils, de mes moyens :

  • SharePoint Designer 2013
  • Visual Studio 2012
  • Une solution tierce : Nintex, K2 ou autre

Au final j’aurais probablement une liste qui référencera un type de contenu « demande de congés », qui me permettra d’offrir un formulaire complet au demandeur. Son responsable hiérarchique pourra ensuite valider cette demande via une liste de tâches dédiée, mais plusieurs problèmes ne sont pas solvables sans développement :

  • trouver dynamiquement le responsable hiérarchique de l’utilisateur courant (en comptant sur le fait que celui-ci soit systématiquement renseigné dans le profil SharePoint de l’utilisateur)
  • Gérer la visibilité d’une tâche, en effet on ne veut pas que toutes les personnes qui accèdent à la liste de tâches puissent valider la tâche qui est affectée au manager du demandeur.
  • Avoir un affichage « user friendly » des demandes en cours pour le manager et pour le demandeur. Je veux pouvoir consulter les tâches qui me sont affectés en tant qu’individu ou que groupe.
  • Avoir un reminder paramétrable si une tâche n’a pas été traitée
  • Pouvoir réassigner une tâche automatiquement au bout d’un certain temps
  • Recevoir des alertes emails spécifiques et personnalisées me permettant d’interagir directement avec ma tâche afin de valider ou non la demande via un bouton dédié
  • Avoir un reporting sur le workflow : temps de traitement, le nombre de demandes annuelles,  etc.
  • etc.

Les fonctionnalités citées ci-dessus paraissent, pour certaines, être le béaba de tout outil de workflow, et bien ce n’est pas le cas de SharePoint 2013, qui, sans paramétrage avancé + développements ne sait pas répondre à ces besoins.

Nous disposons des fondations (moteur de workflow) mais pas des murs et encore mois de la décoration (affichages user centric). Un effort à fournir qui peut parfois être conséquent !

Evolution des Workflows dans SharePoint 2013

Les workflows SharePoint 2013 reposent sur WorkFlow Foundation 4.0, qui repose lui-même sur WCF. Les évolutions notables par rapport à 2010 sont entre autres :

  • la création entièrement déclarative (plus, pu très peu, de code serveur pour interagir avec le workflow) basée sur un designer Visual Studio 2012 (plus de détail dans le prochain article)
  • le gestionnaire de workflow (Workflow Manager 1.0) devient l’élément central de l’architecture des workflows et doit être installé en plus des binaires SharePoint 2013 classiques. S’il n’est pas installé sur la plateforme, seule la création de workflow de type SharePoint 2010 est possible avec SharePoint Designer 2013 (pas de modèles 2013 visibles).
  • Le gestionnaire de workflow a été développé dans une optique Azure, ce qui permet de gérer des worfklow à grande échelle et en répartissant la charge (exécution au sein d’une architecture mutualisée prise en charge). Il offre donc une plus grande évolutivité et scalabilité aux scénariis liés aux workflows.
  • Les workflows natifs (disponibles dans l’interface d’un site SharePoint quelconque) sont uniquement des modèles SharePoint 2010.
  • REST et le Service Bus permettent d’interagir avec le workflow manager via le CSOM
  • SharePoint Designer 2013 a été grandement amélioré concernant la création de workflow et devient donc un outil privilégié dans ce type de contexte
  • évolution de la gestion et de la présentation des tâches (validation rapide via une check box, agrégation de tâches cross collection de site via l’application de service « Work Management »)

Modifications de l’architecture dans les flux de travail

Un point important est la rétrocompatibilité de ce système avec les workflows de type SharePoint 2010 qui sont toujours utilisables (le moteur est toujours présent). Plutôt rassurant pour les entreprise qui ont largement investit sur ces modèles (et il y en a) car ce ne sera pas un frein pour migrer vers SharePoint 2013. De même il est possible de continuer à développer des workflows de types SharePoint 2010, même si, avec cette nouvelle version, on se doute bien que ceux-ci ne seront pas éternels et qu’il vaut mieux privilégier un workflow de type SharePoint 2013 si possible.

Workflows Natifs SharePoint 2013

Comme précisé ci dessus, ce sont les mêmes que ceux présents dans la version 2010, ils sont d’ailleurs de type 2010. Voici les fonctionnalités que l’on retrouve au niveau de la collection de site : features workflows par défaut sharepoint 2013 Dans une bibliothèque de documents on retrouve les workflow suivants : workflows natifs sharepoint 2013

  • Approbation – SharePoint 2010 : Envoie un document pour approbation. Les approbateurs peuvent approuver ou rejeter le document, réattribuer la tâche d’approbation, ou requérir la modification du document
  • Approbation de destruction : Gère l’expiration et la rétention de documents en autorisant les membres à conserver ou supprimer les documents expirés.
  • Approbation de publication : Envoie une page pour approbation. Les approbateurs peuvent approuver ou rejeter la page, réaffecter la tâche d’approbation ou demander des modifications à la page.
  • Recueillir les commentaires : Envoie un document en révision. Les réviseurs peuvent insérer des commentaires qui seront compilés et envoyés au propriétaire du document à la fin du flux de travail.
  • Collecte des signatures : Rassemble les signatures nécessaires pour achever un document Microsoft Office.
  • Trois états : Ce flux de travail permet de suivre les éléments d’une liste.

Bien choisir son outil pour créer un nouveau workflow

SP Designer 2013 vs Visual Studio 2012 vs Solutions tierces (K2 offre, par exemple, de très bon outil de design de process et de création de formulaires).

Il faut alors choisir en fonction du profil de la personne qui va créer le workflow, s’il elle a des compétence en développement et est familière de Visual Studio ou pas.

Si l’entreprise décide d’investir plus largement sur une plateforme de développement de processus métier critiques ou centraux pour certaines équipe, des outils tels que Nintex ou K2 BlackPearl / K2 BlackPoint

Fonctionnalité / requis SharePoint Designer Visual Studio
Permet le développement rapide de Workflow Oui Oui
Permet de réutiliser des workflows Un workflow peut être utilisé uniquement par la liste ou bibliothèque à laquelle il a été développé. Toutefois, SharePoint Designer fournit des workflow réutilisables qui peutvent être utilisés plusieurs fois dans le même site. Un workflow peut être écrit comme un modèle de sorte qu’après avoir déployé, il peut être réutilisé et associé à une liste ou une bibliothèque.
Inclure un workflow dans une solution SharePoint (WSP) ou application pour SharePoint Non Oui
Permet de créer des actions personnalisées Non. Toutefois, SharePoint Designer peut consommer et implémenter des actions personnalisées qui sont créées et déployées à l’aide de Visual Studio. Oui. En revanche, vous devez savoir que dans Visual Studio, les activités sous-jacentes, pas les opérations correspondantes, sont utilisées.
Permet d’écrire du code personnalisé Non Non. Nouveauté SharePoint 2013, workflow déclaratifs uniquement et Visual Studio s’appuie sur le designer pour le développement de workflow.
Utilisation de Visio Professional pour créer une logique de workflow Oui Non
Déploiement Déployés automatiquement sur la liste, bibliothèque ou sur le site sur lequel ils ont été créés. Créer un fichier de package (.wsp) de solution SharePoint et le déploie dans le site (SPWeb).
Publication en 1 clic Oui Oui
Packaging et déploiement sur un serveur distant Oui Oui
Débogage Non. workflow peut être débogué à l’aide de Visual Studio. Mais pas encoe mis en œuvre.
Utilisation exclusive des actions qui sont approuvées par l’administrateur de site Oui Oui. Nouveauté SharePoint 2013, dans les versions précédentes les workflow et les actions créées à l’aide de Visual Studio étaient basés sur du code et déployés dans l’étendue de la ferme de serveurs (approbation administrateur non requise).

Installation de workflow Manager 1.0 et du Service BUS

La procédure est décrit de manière très précise dans le document de Critical Path référencé dans Créer son environnement de développement SharePoint 2013 sur VMWare Player.

  1. L’installation de service Bus et de Workflow Manager 1.0 se fait via le Web Platform Installer sous réserve que la machine soit connectée au web.
  2. Télécharger et installer WebPlatform Installer 4.5
  3. Dans le webplatform Installer chercher « Service Bus », installer Service Bus 1.0 puis le cumulative update 1 de Service Bus 1.0
  4. Chercher « Workflow Manager », installer Workflow Manager 1.0 mais ne pas le configurer (fermer l’installeur avant de lancer le wizzard), installer le cumulative update 1 de workflow Manager 1.0.
  5. exécuter les script suivant Script05_CreateWorkflowFarm.ps1
$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null
$ErrorActionPreference = "Continue"
Start-Transcript -path C:\output.txt -append
# do some stuff

# add SQL Server login for WINGTIP\sp_workflow
# add this login to roles of securityadmin and dbcreator
$sql = "CREATE LOGIN [SPALEX\sp_workflow] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[French]
        GO
        ALTER SERVER ROLE [securityadmin] ADD MEMBER [SPALEX\sp_workflow]
        GO
        ALTER SERVER ROLE [dbcreator] ADD MEMBER [SPALEX\sp_workflow]"

# invoke this SQL command
Invoke-Sqlcmd -ServerInstance "SPAlexandre\SQLSharePoint" -Query $sql

# determine path to CreateWorkflowFarmScript.ps1
$currentScriptPath = $MyInvocation.MyCommand.Path
$scriptFolder = Split-Path $currentScriptPath
$targetScriptPath = Join-Path $scriptFolder "\CreateWorkflowFarmScript.ps1"

Write-Host
Write-Host "Executing script $targetScriptPath using credentials of sp_workflow"
Write-Host "This script will execute within its own window"

# Get the Farm Account Creds
$serviceAccountName = "SPALEX\sp_workflow"
$serviceAccountPassword = "yourpassword"
$serviceAccountSecureStringPassword = ConvertTo-SecureString -String $serviceAccountPassword -AsPlainText -Force
$serviceAccountCredentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $serviceAccountName, $serviceAccountSecureStringPassword

# Create a new process with UAC elevation
Start-Process $PSHOME\powershell.exe `
                -Credential $serviceAccountCredentials `
                -ArgumentList "-Command Start-Process $PSHOME\powershell.exe -ArgumentList `"'$targetScriptPath'`" -Verb Runas" -Wait

Write-Host
Write-Host "Reverting back to identity of SPALEX\Administrateur"
Write-Host

# register workflow farm with SharePoint farm
Add-PSSnapin Microsoft.SharePoint.Powershell
Write-Host "Registering new workflow farm with SharePoint farm to support SharePoint 2013 workflows"
Register-SPWorkflowService –SPSite "http://spalexandre" –WorkflowHostUri "http://spalexandre:12291" –AllowOAuthHttp
Stop-Transcript

Ce script lancera automatiquement celui-ci CreateWorkflowFarm.ps1 :


$wfinstallpath = (Get-ItemProperty "HKLM:\Software\Microsoft\Workflow Manager\1.0" INSTALLDIR).INSTALLDIR
$wfinstallpath = $wfinstallpath.TrimEnd('\')

if ($SetDirectory){
Set-Location $wfinstallpath
}

[Environment]::SetEnvironmentVariable("PSModulePath", [Environment]::GetEnvironmentVariable("PSModulePath","Machine"))
Import-Module WorkflowManager

# Create new SB Farm
Write-Host "Creating new service bus farm..."
$SBCertificateAutoGenerationKey = ConvertTo-SecureString -AsPlainText -Force -String 'yourpassword' -Verbose
New-SBFarm `
-SBFarmDBConnectionString 'Data Source=SPAlexandre\SQLSharePoint;Initial Catalog=WF_ServiceBus_ManagementDB;Integrated Security=True;Encrypt=False' `
-InternalPortRangeStart 9000 `
-TcpPort 9354 `
-MessageBrokerPort 9356 `
-RunAsAccount 'SPALEX\sp_workflow' `
-AdminGroup 'BUILTIN\Administrateurs' `
-GatewayDBConnectionString 'Data Source=SPAlexandre\SQLSharePoint;Initial Catalog=WF_ServiceBus_GatewayDatabase;Integrated Security=True;Encrypt=False' `
-CertificateAutoGenerationKey $SBCertificateAutoGenerationKey `
-MessageContainerDBConnectionString 'Data Source=SPAlexandre\SQLSharePoint;Initial Catalog=WF_ServiceBus_MessageContainer;Integrated Security=True;Encrypt=False' | Out-Null

# Create new WF Farm
Write-Host "Creating new workflow manager farm..."
$WFCertAutoGenerationKey = ConvertTo-SecureString -AsPlainText -Force -String 'yourpassword' -Verbose
New-WFFarm `
-WFFarmDBConnectionString 'Data Source=SPAlexandre\SQLSharePoint;Initial Catalog=WF_ManagementDB;Integrated Security=True;Encrypt=False' `
-RunAsAccount 'SPALEX\sp_workflow' `
-AdminGroup 'BUILTIN\Administrateurs' `
-HttpsPort 12290 `
-HttpPort 12291 `
-InstanceDBConnectionString 'Data Source=SPAlexandre\SQLSharePoint;Initial Catalog=WF_InstanceManagementDB;Integrated Security=True;Encrypt=False' `
-ResourceDBConnectionString 'Data Source=SPAlexandre\SQLSharePoint;Initial Catalog=WF_ResourceManagementDB;Integrated Security=True;Encrypt=False' `
-CertificateAutoGenerationKey $WFCertAutoGenerationKey

# Add SB Host
Write-Host "Creating new service bus host..."
$SBRunAsPassword = ConvertTo-SecureString -AsPlainText -Force -String 'yourpassword' -Verbose
Add-SBHost `
-SBFarmDBConnectionString 'Data Source=SPAlexandre\SQLSharePoint;Initial Catalog=WF_ServiceBus_ManagementDB;Integrated Security=True;Encrypt=False' `
-RunAsPassword $SBRunAsPassword `
-EnableFirewallRules $true `
-CertificateAutoGenerationKey $SBCertificateAutoGenerationKey

Try {
# Create new SB Namespace
New-SBNamespace `
-Name 'WorkflowDefaultNamespace' `
-AddressingScheme 'Path' `
-ManageUsers 'SPALEX\sp_workflow','SPALEX\Administrateur'

Start-Sleep -s 90
}
Catch [system.InvalidOperationException]{}

# Get SB Client Configuration
$SBClientConfiguration = Get-SBClientConfiguration -Namespaces 'WorkflowDefaultNamespace' -Verbose

# Add WF Host
Write-Host "Creating new workflow manager host..."
$WFRunAsPassword = ConvertTo-SecureString -AsPlainText -Force -String 'yourpassword' -Verbose;
Add-WFHost `
-WFFarmDBConnectionString 'Data Source=SPAlexandre\SQLSharePoint;Initial Catalog=WF_ManagementDB;Integrated Security=True;Encrypt=False' `
-RunAsPassword $WFRunAsPassword `
-EnableFirewallRules $true `
-SBClientConfiguration $SBClientConfiguration `
-EnableHttpPort `
-CertificateAutoGenerationKey $WFCertAutoGenerationKey

Write-Host "Workflow manager setup complete"
Write-Host

Afin de tester le fait que l’installation et la configuration soit OK, lancer SharePoint Designer 2013 qui devrait maintenant proposer les modèles de workflow Sharepoint 2013. workflow sharepoint designer 2013

Les types de workflow SharePoint 2013 dans SharePoint Designer

SharePoint Designer 2013 est l’outil privilégié pour créer de petit DocFlow. Il offre la possibilité de créer de nouveaux flux de travail : workflows natifs sharepoint designer 2013

  • sur une liste ou une bibliothèque donnée
  • réutilisable : avec très peu d’action disponibles et sans possibilité de manipuler des métadonnées, ce qui est tout de même souvent une nécessité …
  • sur un site donné
  • importé depuis Visio 2013 (SharePoint Designer et Visio 2013 – MSDN)

Ces workflows peuvent ensuite être déployés sur le site en un clic et être sauvegardés en tant que modèle pour être déployés sur un autre environnement. Attention à cette étape qui est souvent très chaotique car le wokflow est souvent lié à de nombreuses variables de votre environnement de dev qui ne sont pas présentes en production. De plus les environnements doivent être complètement ISO.

Une des grosses nouveautés dans les actions est l’appel d’un service web HTTP permettant d’interagir avec SharePoint mais aussi de nombreux autres systèmes afin de déclencher des actions métier. Il est également possible de créer des branches parallèles très simplement.

Toutes les actions sont décrites ici : référence des actions de workflow SharePoint Designer 2013 MSDN

workflow sharepoint designer 2013 - actions

Les types de workflows disponibles dans Visual Studio 2012

On y retrouve des Workflows de type SharePoint 2010 (logo grisé) et des workflows de type SharePoint 2013 (logo bleu).

  • Flux de travail SharePoint 2013
  • Activité personnalisée de flux de travail SharePoint 2013
  • Flux de travail séquentiel SharePoint 2010
  • Flux de travail de la machine a états SharePoint 2010

workflow sharepoint 2013 visual studio 2012 On retrouvera également un flux de travail de type machine a état dans le workflow SharePoint 2013 (le 1er de la liste). Mais ça, c’est pour le prochain article. Il y a aussi un projet de type « SharePoint 2010 – importer le flux de travail réutilisable » disponible à la création. visual studio 2012 rpojets sharepoint 2013 En espérant avoir planté le décor autour de ce vaste sujet SharePoint 2013.