Formulaires d’initiation et d’association de flux de travail (Sharepoint Foundation)

Dernière modification : jeudi 8 avril 2010

S’applique à : SharePoint Foundation 2010

Dans cet article
Spécification des formulaires d'association
Traitement des formulaires d'association
Spécification des formulaires d'initiation
Traitement des formulaires d'initiation

Les formulaires d'association et d'initiation apparaissent pour que les utilisateurs les remplissent avant que le flux de travail ne démarre. Grâce à ces formulaires, vous pouvez autoriser les utilisateurs à définir des paramètres et autres informations pour le flux de travail à l'avance. Les formulaires d'association indiquent la manière dont le flux de travail est appliqué sur une liste, une bibliothèque ou un type de contenu spécifique ; les formulaires d'initiation indiquent la manière dont le flux de travail est appliqué sur un élément SharePoint spécifique.

Les formulaires d'association apparaissent sur l'écran des administrateurs lorsqu'ils décident pour la première fois d'ajouter, ou associer, un flux de travail à une liste, une bibliothèque de documents ou un type de contenu spécifique. Vous pouvez utiliser ces formulaires pour permettre à un administrateur de spécifier des paramètres, des valeurs par défaut et autres informations pour le flux de travail lors de son application sur la liste, la bibliothèque ou le type de contenu auquel l'administrateur l'associe.

Les formulaires d'initiation apparaissent sur l'écran des utilisateurs lorsqu'ils démarrent un flux de travail sur un élément SharePoint spécifique. Vous pouvez utiliser les formulaires d'initiation pour permettre aux utilisateurs d'écraser ou modifier les paramètres d'association définis par les administrateurs, ou pour spécifier des paramètres ou informations supplémentaires sur le flux de travail lors de son application sur l'élément SharePoint spécifique. Certains flux de travail n'ont pas besoin de formulaires d'initiation.

Les formulaires d'initiation et d'association peuvent être les mêmes. Par exemple, en utilisant le même formulaire pour chaque flux de travail, vous pouvez autoriser les administrateurs à définir certains paramètres par défaut pendant l'association du flux de travail, puis permettre à l'utilisateur qui lance l'instance du flux de travail sur un élément particulier de vérifier et écraser ces paramètres par défaut.

Spécification des formulaires d'association

Le formulaire d'association d'un flux de travail est spécifié dans le code XML de la définition du modèle de flux de travail. Pour ce faire, définissez la valeur de l'attribut AssociationURL de l'élément Workflow sur la page de formulaire personnalisée à utiliser pour l'association. Par exemple :

AssociationURL="MyWkflAssociationPage.aspx" 

Notes

Windows SharePoint Services 3.0 prend en charge les chemins d'accès relatifs au serveur ou absolus dans la définition du modèle de flux de travail. Vous devez exprimer toutes les URL de chemin d'accès aux formulaires dans l'un de ces formats. Par exemple, vous pouvez utiliser un chemin d'accès absolu, comme "http://site/library/page.aspx", ou un chemin d'accès relatif au serveur, comme "/layouts/page.aspx". SharePoint Foundation ne prend pas en charge la correction des liens dans les définitions de modèles de flux de travail.

Pour plus d'informations sur les définitions de flux de travail, voir Définitions de flux de travail.

Traitement des formulaires d'association

Lorsqu'un administrateur sélectionne un flux de travail à associer à une liste, une bibliothèque ou un type de contenu donné, SharePoint Foundation affiche la page d'ajout d'un nouveau flux de travail. L'administrateur peut utiliser cette page pour spécifier les paramètres communs à tous les flux de travail, comme sa définition et ses conditions d'initiation, et s'il est exécuté sur des éléments, des dossiers, ou les deux.

Lorsque l'administrateur clique sur le bouton Suivant de cette page, SharePoint Foundation examine l'attribut AssociationURL de l'élément Workflow, dans la définition du modèle de flux de travail, pour déterminer le formulaire correct à charger.

Pour fournir des données personnalisées au formulaire d'association, stockez-les dans l'élément AssocationData. Par exemple, cet élément peut vous permettre de stocker des valeurs par défaut à transférer au formulaire d'association lorsqu'il est affiché. L'élément AssocationData peut contenir tout code XML valide. Votre formulaire peut alors charger ces données d'association à partir du modèle de flux de travail.

Comme l'association du flux de travail n'est pas créée tant que le formulaire d'association personnalisé n'est pas envoyé, SharePoint Foundation transfère également les paramètres de requête suivants au formulaire d'association personnalisé :

<input type="hidden" name="WorkflowDefinition" value=<% _STSWriteHTML(Request.Form["WorkflowDefinition"]); %>>
<input type="hidden" name="WorkflowName" value=<% _STSWriteHTML(Request.Form["WorkflowName"]); %>>
<input type="hidden" name="AddToStatusMenu" value=<% _STSWriteHTML(Request.Form["AddToStatusMenu"]); %>>
<input type="hidden" name="AllowManual" value=<% _STSWriteHTML(Request.Form["AllowManual"]); %>>
<input type="hidden" name="RoleSelect" value=<% _STSWriteHTML(Request.Form["RoleSelect"]); %>>
<input type="hidden" name="AutoStartCreate" value=<% _STSWriteHTML(Request.Form["AutoStartCreate"]); %>>
<input type="hidden" name="AutoStartChange" value=<% _STSWriteHTML(Request.Form["AutoStartChange"]); %>>
<input type="hidden" name="GuidAssoc" value=<% _STSWriteHTML(Request.Form["GuidAssoc"]); %>>

Le développeur du flux de travail doit programmer ce qui survient lorsque l'administrateur envoie les modifications au formulaire. En règle générale, le formulaire d'association de flux de travail personnalisé doit effectuer les opérations suivantes :

  • Examiner la valeur du paramètre GuidAssoc pour déterminer si l'utilisateur ajoute une nouvelle association de flux de travail ou en modifie une existante.

  • Dans le premier cas, appeler la méthode AddWorkflowAssociation pour créer une nouvelle association de flux de travail.

  • Dans le second cas, appeler la méthode Update() pour mettre à jour cette association de flux de travail.

  • Créer la liste des tâches du flux de travail, si ce n'est pas déjà fait.

  • Utiliser les données recueillies auprès de l'utilisateur pour définir les propriétés de l'objet SPWorkflowAssociation, de manière appropriée.

  • Créer la liste de l'historique du flux de travail, le cas échéant.

Spécification des formulaires d'initiation

Pour intégrer un formulaire d'initiation à votre flux de travail, vous devez définir l'attribut InstantiationURL de l'élément Workflow dans la définition du modèle de flux de travail. Définissez cet élément sur le formulaire à utiliser pour recueillir les données d'initiation du flux de travail, comme illustré dans l'exemple ci-dessous.

InstantiationURL="MyWkflInitiationPage.aspx" 

Notes

Windows SharePoint Services 3.0 prend en charge les chemins d'accès relatifs au serveur ou absolus dans la définition du modèle de flux de travail. Vous devez exprimer toutes les URL de chemin d'accès aux formulaires dans l'un de ces formats. Par exemple, vous pouvez utiliser un chemin d'accès absolu, comme "http://site/library/page.aspx", ou un chemin d'accès relatif au serveur, comme "/layouts/page.aspx". SharePoint Foundation ne prend pas en charge la correction des liens dans les définitions de modèles de flux de travail.

Pour plus d'informations sur les définitions de flux de travail, voir Définitions de flux de travail.

Traitement des formulaires d'initiation

Lorsqu'un utilisateur lance un flux de travail sur un élément spécifique, SharePoint Foundation examine l'attribut InstantiationURL de l'élément Workflow, dans la définition du modèle de flux de travail, pour déterminer le formulaire correct à charger.

SharePoint Foundation charge le formulaire spécifié en intégrant les paramètres de requête suivants dans l'URL :

  • List   Le GUID de la liste à laquelle l'élément appartient.

  • ID   L'ID de l'élément de liste sur lequel le flux de travail est démarré.

  • Source   La page à partir de laquelle l'utilisateur a démarré le flux de travail.

  • TemplateID   Le GUID de l'association du flux de travail.

Par ailleurs, vous pouvez programmer votre formulaire pour qu'il charge les données du formulaire d'association de cette association de flux de travail. Ces informations figurent dans la propriété AssociationData de l'objet SPWorkflowAssociation représentant l'association du flux de travail.

Le développeur du flux de travail doit programmer ce qui survient lorsque l'utilisateur envoie les modifications à la page. En règle générale, le formulaire doit effectuer les opérations suivantes :

  • Situer l'objet SPWorkflowManager du site actif.

  • Utiliser l'objet SPWorkflowManager pour invoquer la méthode StartWorkflow, en transférant les objets SPListItem et SPWorkflowAssociation appropriés. Utilisez le paramètre eventData pour transférer les données du formulaire d'initiation au format chaîne.

  • Renvoyer l'utilisateur à la page source à partir de laquelle il a démarré le flux de travail.

Lorsque la méthode M:Microsoft.SharePoint.Workflow.SPWorkflowManager.StartWorkflow(Microsoft.SharePoint.SPListItem,Microsoft.SharePoint.Workflow.SPWorkflowAssociation,System.String) est appelée, le gestionnaire de flux de travail crée une instance du flux de travail sur l'élément SharePoint. Il transfère ensuite les données recueillies à l'aide du formulaire d'initiation à l'événement OnWorkflowActivated du flux de travail lui-même.

Tout flux de travail SharePoint Foundation doit démarrer avec une activité OnWorkflowActivated. L'activité OnWorkflowActivated contient une propriété, WorkflowProperties, qui renvoie un objet SPWorkflowActivationProperties. Cet objet représente les propriétés initiales du flux de travail à son démarrage, par exemple l'utilisateur qui a ajouté le flux de travail, ainsi que la liste et l'élément auxquels le flux de travail a été ajouté. Par ailleurs, la propriété AssociationData renvoie un objet System.Collections.Hashtable qui représente les données personnalisées fournies par le formulaire d'initiation du flux de travail.

Voir aussi

Concepts

Vue d'ensemble des formulaires de flux de travail

Formulaires de modification des flux de travail (SharePoint Foundation)

Formulaires de tâche de flux de travail (SharePoint Foundation)