Utiliser l’interopérabilité de flux de travail pour SharePoint
Fournit une description de l'utilisation de flux de travail SharePoint interopérabilité de base dans le concepteur de flux de travail Visual Studio 2012 . L’interopérabilité de flux de travail vous permet d’appeler un flux de travail SharePoint 2010 à partir d’un flux de travail SharePoint. Il s’agit d’une fonctionnalité importante qui vous permet de réutiliser les fonctionnalités de flux de travail existantes et d’appeler des activités de flux de travail qui ne sont pas intégrées à SharePoint.
Remarque
Les flux de travail SharePoint 2010 ont été retirés depuis le 1er août 2020 pour les nouveaux locataires et retirés des locataires existants le 1er novembre 2020. Si vous utilisez des flux de travail SharePoint 2010, nous vous recommandons de migrer vers Power Automate ou d'autres solutions prises en charge. Pour plus d'informations, voir la retraite du flux de travail SharePoint 2010.
Importante
Pour en savoir plus sur l’utilisation de la fonctionnalité d’interopérabilité de flux de travail SharePoint dans SharePoint Designer 2013, voir Présentation des actions de coordination dans SharePoint Designer 2013.
Interopérabilité de flux de travail SharePoint
Voici le problème. Vous disposez de flux de travail SharePoint 2010 hérités que vous souhaitez réutiliser sur votre plateforme SharePoint. Ou pire, vous créez des flux de travail SharePoint et vous devez appeler des activités qui ne sont disponibles que dans la plateforme SharePoint 2010. Et vous ne savez quoi faire. En fait, la solution est simple : utiliser des flux de travail SharePoint interopérabilité de base.
L’interopérabilité des flux de travail SharePoint permet aux flux de travail SharePoint 2010 (basés sur Windows Workflow Foundation 3) de fonctionner sans problème avec le moteur de flux de travail SharePoint, qui est basé sur Windows Workflow Foundation 4. Bien que le nouveau moteur d’exécution Windows Workflow Foundation 4 soit hébergé dans Gestionnaire de flux de travail, qui s’exécute en tant que service externe, SharePoint contient toujours l’hôte de flux de travail SharePoint hérité qu’il utilise pour traiter les flux de travail SharePoint 2010. Interopérabilité des flux de travail SharePoint négocie les environnements de deux exécution, comme illustré dans la Figure 1.
Figure 1. Interopérabilité de flux de travail SharePoint en action
Nous allons Parcourez le processus illustré dans la Figure 1. Utilisez les lettres pour référencer des points d'en italique dans l'illustration :
( A ) Une instance d’un flux de travail SharePoint commence à s’exécuter dans le Gestionnaire de flux de travail Windows Workflow Foundation 4. Notez que le gestionnaire de Workflow ne figure pas dans SharePoint, mais au lieu de cela fonctionne comme un service externe.
( B ) Vous atteignez un point dans le flux de travail SharePoint - étape 3 dans le Gestionnaire de flux de travail - où vous souhaitez appeler un flux de travail SharePoint 2010. Dans le concepteur de flux de travail Visual Studio 2012 , vous cela en implémentant l'activité Start 2010 WF, comme le montre la Figure 2.
Figure 2. Vignette d’étape pour le démarrage d’un flux de travail SharePoint 2010.
Du point de vue du modèle objet SharePoint, cela s’effectue à l’aide de la méthode StartWorkflow sur la classe WorkflowInteropService .
( C ) à ce stade, le flux de travail SharePoint 2010 commence à exécuter dans l'hôte de flux de travail de 3,5 Windows Workflow Foundation à l'intérieur de SharePoint. Mais un facteur important apparaît. Dans certains scénarios, vous pouvez vouloir le flux de travail 2013 à attendre que le flux de travail 2010 complète en cours d'exécution (et sans doute renvoyer des données) avant de continuer à exécuter le flux de travail 2013. Dans les autres scénarios, ce ne peut être nécessaire et les deux flux de travail peuvent être exécutées indépendamment, en parallèle.
Pour contrôler ce comportement, la classe WorkflowInterop , qui contrôle l’exécution des flux de travail dans l’hôte de flux de travail Windows Workflow Foundation 3.5, fournit une propriété Wait . Si vous définissez cette propriété booléenne sur « Oui » (dans la boîte de dialogue du concepteur) ou sur true dans la propriété Wait , le flux de travail 2013 est suspendu jusqu’à ce que l’exécution 2010 soit terminée et retourne un message terminé .
Figure 3. Démarrer une boîte de dialogue Propriétés du flux de travail.
( D ) l'effet pratique de sélection de true ou falseWait propriété (ou Oui ou non dans la boîte de dialogue Propriétés) est illustré ici. Si Wait a la valeur true, le workflow 2010 transmet un événement WorkflowCompleted (et, éventuellement, retourne des données sous la forme d’une propriété DynamicValue ). Pour plus d'informations sur les valeurs dynamiques, consultez la rubrique Understanding Dynamic Value.
Bien entendu, si Wait est défini sur false, votre workflow 2010 s’exécute, puis se termine normalement.
( E ) cette étape est pertinent uniquement si votre via l'invocation du flux de travail 2010 spécifié Wait=true. Dans ce cas, votre flux de travail 2013 a reçu l'événement WorkflowCompleted et redémarre l'exécution de 2013 de flux de travail au niveau du point que étiez resté.
( F ) votre flux de travail 2013 est terminée de l'exécution et se termine normalement. Wait=false, puis votre workflow 2013 s'exécute et se termine indépendamment du flux de travail 2010.
Conception d'interopérabilité de base des flux de travail
Interopérabilité des flux de travail SharePoint est une infrastructure de messagerie qui prend en charge un mappage un-à-instance entre les activités de flux de travail WF 3 et 4 WF. WF 3 et WF 4 interagissent via des échanges de messages qui sont encapsulés par un ensemble d’activités WF 4 sur WorkflowInteropService .
Pour prendre en charge l’interopérabilité des flux de travail, l’aire de conception de flux de travail dans SharePoint Designer permet d’accéder à une nouvelle activité de flux de travail, Start 2010 WF, qui est un wrapper sur la méthode StartWorkflow . Cette activité permet de démarrer un flux de travail de liste ou un flux de travail de site.
L’activité est en fait une séquence de messages qui se produisent entre le Gestionnaire de flux de travail et l’hôte de flux de travail SharePoint 2010 qui s’exécute dans SharePoint. Ces deux sont contrôlée par une couche de messagerie, comme le montre la Figure 4. La séquence commence dans le gestionnaire de flux de travail SharePoint par un appel de la méthode StartWorkflow . Le message « démarrer » atteint le service de flux de travail à l'intérieur de SharePoint, dans laquelle à son tour il lance le flux de travail à l'intérieur de l'hôte de flux de travail SharePoint 2010 . Une fois l'exécution du flux de travail 2010 terminée, un événement qui envoie un message « terminé » par le biais de l'éditeur d'événements vers le gestionnaire de flux de travail 2013 est déclenché.