Flux de travail, actions (activités), événements et formulaires dans le modèle SharePoint de l’application
Résumé
L’approche que vous appliquez pour implémenter des flux de travail et leurs composants associés est différente dans le nouveau modèle de SharePoint par rapport au code de confiance totale. Dans un scénario classique de code de confiance totale/solution de batterie de serveurs, les flux de travail et leurs composants associés étaient créés avec du code côté serveur et déployés via SharePoint Solutions. Les flux de travail et leurs composants associés étaient en cours d’SharePoint serveur.
Dans un SharePoint de modèle de composant, les flux de travail et leurs composants associés sont développés avec du code qui s’exécute sur des serveurs distants. Les flux de travail et leurs composants associés sont enregistrés auprès du service de flux de travail, mais tout le code s’exécute sur des serveurs distants.
Conseils importants
En règle générale, nous voulons fournir les instructions de haut niveau suivantes pour la création de flux de travail et leurs composants associés dans le nouveau modèle de SharePoint.
- Le code des flux de travail n’est pas disponible dans Office 365 locations, ou avec le modèle de SharePoint en général.
- Tout le code-behind associé aux flux de travail et à leurs composants associés doit être placé dans un service web externe en cours d’exécution sur un serveur distant.
Options de création de flux de travail personnalisés et de leurs composants associés
Vous avez plusieurs options pour créer des flux de travail personnalisés et leurs composants associés.
- Créer des flux de travail personnalisés
- Créer des activités de flux de travail personnalisées
- Créer des événements de flux de travail personnalisés
- Créer des formulaires de flux de travail personnalisés
Créer des flux de travail personnalisés
Dans cette option, des flux de travail personnalisés sont créés, déployés et associés au site web hôte dans SharePoint.
- Des flux de travail personnalisés peuvent être créés avec Visual Studio ou SharePoint Designer.
- Voir les flux de travail Développer SharePoint 2013 à l’aide de Visual Studio (article MSDN) qui récapitule les deux options et présente les avantages et les inconvénients de chacune d’elles.
- Les flux de travail personnalisés peuvent être déployés et associés au site web hôte SharePoint de plusieurs manières.
- Les flux de travail créés dans Visual Studio sont automatiquement empaquetés dans des fonctionnalités pour le déploiement.
- Les flux de travail créés SharePoint concepteur doivent être exportés et importés pour être déployés à partir d’un serveur de développement vers un serveur de production.
- Les flux de travail peuvent également être déployés et associés au site web hôte dans SharePoint via le modèle de mise en service à distance. Pour plus d’informations sur le modèle d’approvisionnement à distance, voir la mise en service de site (SharePoint Recette de la mise en service à distance).
L’exemple de code suivant montre comment utiliser CSOM pour mettre en service un flux de travail et les listes qui le supportent.
public void ProvisionIncidentWorkflowAndRelatedLists(string incidentWorkflowFile, string suiteLevelWebAppUrl, string dispatcherName)
{
//Return the list the workflow will be associated with
var incidentsList = CSOMUtil.GetListByTitle(clientContext, "Incidents");
//Create a new WorkflowProvisionService class instance which uses the
//Microsoft.SharePoint.Client.WorkflowServices.WorkflowServicesManager to
//provision and configure workflows
var service = new WorkflowProvisionService(clientContext);
//Read the workflow .XAML file
var incidentWF = System.IO.File.ReadAllText(incidentWorkflowFile);
//Create the WorkflowDefinition and use the
//Microsoft.SharePoint.Client.WorkflowServices.WorkflowServicesManager
//to save and publish it.
//This method is shown below for reference.
var incidentWFDefinitionId = service.SaveDefinitionAndPublish("Incident",
WorkflowUtil.TranslateWorkflow(incidentWF));
//Create the workflow tasks list
var taskListId = service.CreateTaskList("Incident Workflow Tasks");
//Create the workflow history list
var historyListId = service.CreateHistoryList("Incident Workflow History");
//Use the Microsoft.SharePoint.Client.WorkflowServices.WorkflowSubscriptionService to
//subscibe the workflow to the list the workflow is associated with, register the
//events it is associated with, and register the tasks and history list.
//This method is shown below for reference.
service.Subscribe("Incident Workflow", incidentWFDefinitionId, incidentsList.Id,
WorkflowSubscritpionEventType.ItemAdded, taskListId, historyListId);
}
public Guid SaveDefinitionAndPublish(string name, string translatedWorkflows)
{
var definition = new WorkflowDefinition(ClientContext)
{
DisplayName = name,
Xaml = translatedWorkflows
};
var deploymentService = workflowServicesManager.GetWorkflowDeploymentService();
var result = deploymentService.SaveDefinition(definition);
ClientContext.ExecuteQuery();
deploymentService.PublishDefinition(result.Value);
ClientContext.ExecuteQuery();
return result.Value;
}
public Guid Subscribe(string name, Guid definitionId, Guid targetListId, WorkflowSubscritpionEventType eventTypes, Guid taskListId, Guid historyListId)
{
var eventTypesList = new List<string>();
foreach (WorkflowSubscritpionEventType type in Enum.GetValues(typeof(WorkflowSubscritpionEventType)))
{
if ((type & eventTypes) > 0)
eventTypesList.Add(type.ToString());
}
var subscription = new WorkflowSubscription(ClientContext)
{
Name = name,
Enabled = true,
DefinitionId = definitionId,
EventSourceId = targetListId,
EventTypes = eventTypesList.ToArray()
};
subscription.SetProperty("TaskListId", taskListId.ToString());
subscription.SetProperty("HistoryListId", historyListId.ToString());
var subscriptionService = workflowServicesManager.GetWorkflowSubscriptionService();
var result = subscriptionService.PublishSubscriptionForList(subscription, targetListId);
ClientContext.ExecuteQuery();
return result.Value;
}
Quand est-elle adaptée ?
Lorsque vous devez créer des flux de travail personnalisés avec du code derrière eux, cette option est adaptée.
Prise en main
Les articles suivants montrent comment créer des flux de travail personnalisés.
- Créer une application SharePoint flux de travail à l’aide Visual Studio 2012 (article MSDN)
- How to: Create SharePoint 2013 Workflows using Visual Studio (MSDN Article)
Créer des activités de flux de travail personnalisées
Dans cette option, les activités de flux de travail personnalisées sont créées et déployées sur SharePoint.
- Les activités de flux de travail personnalisées peuvent être créées avec Visual Studio.
- Les activités de flux de travail personnalisées peuvent ne pas être créées avec SharePoint Designer.
- Les activités de flux de travail personnalisées peuvent être utilisées dans SharePoint Designer une fois qu’elles sont déployées dans un environnement SharePoint de travail.
Quand est-elle adaptée ?
Lorsque vous devez implémenter des flux de travail dans des processus d’entreprise dont les exigences ne sont pas satisfaites par la bibliothèque d’actions de flux de travail pré-SharePoint Designer
Prise en main
L’article suivant montre comment créer une activité de flux de travail personnalisée avec Visual Studio.
L’exemple Workflow.Activities (O365 PnP) inclut plusieurs activités de flux de travail personnalisées créées avec Visual Studio. Il montre également comment utiliser les activités de flux de travail personnalisées dans un flux de travail.
Créer des événements de flux de travail personnalisés
Dans cette option, des événements de flux de travail personnalisés sont créés et déployés sur SharePoint.
- Les événements de flux de travail personnalisés peuvent être créés Visual Studio.
- Les événements de flux de travail personnalisés peuvent ne pas être créés avec SharePoint Designer.
- Les événements de flux de travail personnalisés peuvent être utilisés dans SharePoint Designer après leur déploiement dans un environnement SharePoint de travail.
Quand est-elle adaptée ?
Lorsque vous devez implémenter des flux de travail dans des processus d’entreprise dont les conditions requises exigent que les flux de travail attendent un événement personnalisé avant de poursuivre.
Prise en main
L’exemple Workflow.CustomEvents (O365 PnP) montre comment créer un flux de travail qui attend qu’une personnalisée se soit même tirer avant de poursuivre. Il montre également comment utiliser le modèle objet côté client JavaScript (JSOM) pour le Gestionnaire des services de flux de travail pour créer un événement personnalisé.
Créer des formulaires de flux de travail personnalisés
Dans cette option, des formulaires de flux de travail personnalisés sont créés et déployés sur SharePoint.
- Les formulaires de flux de travail personnalisés peuvent être créés Visual Studio.
- Les formulaires de flux de travail personnalisés peuvent ne pas être créés SharePoint Designer.
- Les formulaires de flux de travail personnalisés peuvent être utilisés dans SharePoint Designer après leur déploiement dans un environnement SharePoint de travail.
Quand est-elle adaptée ?
Lorsque vous devez implémenter des flux de travail dans des processus d’entreprise dont les exigences nécessitent des formulaires personnalisés.
Prise en main
L’article suivant montre comment créer des formulaires d’initiation et d’association de flux de travail personnalisés et les utiliser dans un flux de travail.
L’exemple Workflow.CustomTasks (O365 PnP) montre comment créer des formulaires de tâche et d’initiation personnalisés et les utiliser dans un flux de travail.
Options de mise à jour SharePoint données d’un flux de travail personnalisé
Vous avez plusieurs options pour mettre à jour SharePoint données à partir d’un flux de travail personnalisé.
- Utilisez le jeton de contexte et l’URL du site web du SharePoint.
- Utilisez l’URL du site web de SharePoint proxy web pour vous authentifier SharePoint.
Utiliser le jeton de contexte et l’URL du site web de l’application pour vous authentifier SharePoint
Dans cette option, vous passez le jeton de contexte et l’URL du site web du add-in du flux de travail au service que le flux de travail appelle via les en-têtes HTTP. Le service utilise le jeton de contexte et l’URL du site web du SharePoint et retourne un jeton d’accès avant de mettre à jour SharePoint données.
- Cette approche nécessite de transmettre le jeton de contenu du flux de travail au service web.
Quand est-elle adaptée ?
Lorsque vous souhaitez que la communication SharePoint se produise au niveau du client.
Prise en main
L’exemple suivant montre comment utiliser le jeton de contexte et l’URL du site web du SharePoint et mettre à jour SharePoint données.
Pour plus d’informations sur le passage du jeton de contexte et de l’URL du site web du flux de travail au service, voir la section Call Web Api service dans workflow.CallCustomService (exemple PnP O365).
Les autres sections de l’exemple WORKFLOW.CallCustomService (exemple PnP O365) fournissent des informations détaillées sur l’ensemble du flux de travail et du service distant et vous permettent également de définir tous les composants dans Microsoft Azure.
Utiliser l’URL du site web de SharePoint proxy web pour vous authentifier SharePoint
Dans cette option, lorsque le flux de travail démarre, vous passez l’URL du site web de l’application au service que le flux de travail appelle. Le service transmet l’URL du site web du SharePoint proxy web. Le SharePoint web proxy utilise l’URL du site web de SharePoint pour renvoyer un jeton d’accès. Ensuite, le proxy web SharePoint le jeton d’accès aux en-têtes http avant d’appeler la mise à jour SharePoint données.
- Cette approche ne nécessite pas de transmettre le jeton de contenu du flux de travail au service web.
Quand est-elle adaptée ?
Lorsque vous souhaitez que la communication SharePoint se produise au niveau du serveur.
Prise en main
L’exemple suivant montre comment utiliser l’URL du site web de SharePoint et le proxy web SharePoint pour s’authentifier SharePoint et mettre à jour SharePoint données.
Pour plus d’informations sur l’appel de proxy web SharePoint, voir la section Call Web Api service via le proxy web dans workflow.CallServiceUpdateSPViaProxy (exemple PnP O365).
Les autres sections de l’exemple WORKFLOW.CallServiceUpdateSPViaProxy (exemple PnP O365) fournissent des informations détaillées sur l’ensemble du flux de travail et du service distant, ainsi que sur la configuration de tous les composants dans Microsoft Azure.
Voir la requête d’un service distant à l’aide du proxy web dans SharePoint 2013 (article MSDN) pour plus d’informations sur le proxy web SharePoint web.
Liens connexes
- SharePoint d’objet de flux de travail 2013 (article MSDN)
- Messages d’erreur courants SharePoint développement de flux de travail (article MSDN)
- Utiliser l’interop de flux SharePoint 2013 (article MSDN)
- Développer SharePoint flux de travail 2013 à l’aide Visual Studio (article MSDN)
- Mise en service de site (SharePoint recette de add-in)
- Créer une application SharePoint flux de travail à l’aide Visual Studio 2012 (article MSDN)
- How to: Create SharePoint 2013 Workflows using Visual Studio (MSDN Article)
- Procédure : créer et déployer des actions personnalisées de flux de travail (article MSDN)
- How to: Create Custom SharePoint Server 2013 Workflow Forms with Visual Studio 2012 (MSDN Article)
- Interroger un service distant à l’aide du proxy web dans SharePoint 2013 (article MSDN)
- Modules (SharePoint Recette de modules)
- Mise en service de site (SharePoint recette de add-in)
- Articles de référence sur la page https://aka.ms/OfficeDevPnPGuidance
- Références dans MSDN sur la page https://aka.ms/OfficeDevPnPMSDN
- Vidéos sur la page https://aka.ms/OfficeDevPnPVideos
Exemples PnP
- Workflow.Activities (exemple PnP O365)
- Workflow.CustomEvents (exemple PnP O365)
- Workflow.CustomTasks (exemple PnP O365)
- Workflow.CallCustomService (exemple PnP O365)
- Workflow.CallServiceUpdateSPViaProxy (exemple PnP O365)
- Exemples et contenu dans Microsoft 365 et pratiques PnP (Patterns and Practices)
S’applique à
- Office 365 multi-locataire (MT).
- Office 365 dédiés (D)
- SharePoint 2013 en local