Рабочие процессы, действия, события и формы в модели надстроек SharePoint
Сводка
Подход, который вы используете для реализации рабочих процессов и связанных с ними компонентов, в новой модели надстроек SharePoint отличается от подхода к коду полного доверия. В типичном сценарии с кодом полного доверия (FTC) или решением фермы рабочие процессы и связанные с ними компоненты были созданы с помощью кода на стороне сервера и развернуты через решения SharePoint. Рабочие процессы и связанные с ними компоненты выполнялись на сервере SharePoint.
В сценарии модели надстройки SharePoint рабочие процессы и связанные с ними компоненты разрабатываются с помощью кода, который выполняется на удаленных серверах. Рабочие процессы и связанные с ними компоненты регистрируются в службе рабочих процессов, но весь код выполняется на удаленных серверах.
Руководящие принципы высокого уровня
Как правило, мы хотели бы предоставить следующие высокоуровневые рекомендации по созданию рабочих процессов и связанных с ними компонентов в новой модели надстройки SharePoint.
- Рабочие процессы программной части недоступны в Office 365 клиентах или в модели надстройки SharePoint в целом.
- Весь код, связанный с рабочими процессами и связанными с ними компонентами, должен размещаться во внешней веб-службе, работающей на удаленном сервере.
Параметры для создания пользовательских рабочих процессов и связанных с ними компонентов
У вас есть несколько вариантов создания пользовательских рабочих процессов и связанных с ними компонентов.
- Создание пользовательских рабочих процессов
- Создание настраиваемых действий рабочего процесса
- Создание пользовательских событий рабочего процесса
- Создание настраиваемых форм рабочего процесса
Создание пользовательских рабочих процессов
В этом параметре пользовательские рабочие процессы создаются, развертываются и связаны с хост-сайтом в SharePoint.
- Пользовательские рабочие процессы можно создавать с помощью Visual Studio или SharePoint Designer.
- См. статью Разработка рабочих процессов SharePoint 2013 с помощью Visual Studio (статья MSDN), в которой описаны оба варианта и описаны преимущества и недостатки каждого из них.
- Пользовательские рабочие процессы могут быть развернуты и связаны с хост-сайтом в SharePoint несколькими способами.
- Рабочие процессы, созданные в Visual Studio, автоматически упаковываются в компоненты для развертывания.
- Рабочие процессы, созданные в конструкторе SharePoint, должны быть экспортированы и импортированы, чтобы развернуть их с сервера разработки на рабочем сервере.
- Рабочие процессы также могут быть развернуты и связаны с хост-сайтом в SharePoint с помощью шаблона удаленной подготовки. Дополнительные сведения о шаблоне удаленной подготовки см. в статье Подготовка сайта (рецепт надстройки SharePoint ).
В следующем примере кода показано, как использовать CSOM для подготовки рабочего процесса и списки, поддерживающие рабочий процесс.
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;
}
Для каких случаев он подходит?
Если вам нужно создать пользовательские рабочие процессы с кодом за ними, этот параметр подходит.
Начало работы
В следующих статьях показано, как создавать пользовательские рабочие процессы.
- Создание приложения рабочего процесса SharePoint с помощью Visual Studio 2012 (статья MSDN)
- Практическое руководство. Создание рабочих процессов SharePoint 2013 с помощью Visual Studio (статья MSDN)
Создание настраиваемых действий рабочего процесса
В этом параметре пользовательские действия рабочего процесса создаются и развертываются в SharePoint.
- Пользовательские действия рабочего процесса можно создавать с помощью Visual Studio.
- Пользовательские действия рабочих процессов могут не создаваться с sharePoint Designer.
- Пользовательские действия рабочих процессов могут использоваться в SharePoint Designer после их развертывания в среде SharePoint.
Для каких случаев он подходит?
Когда необходимо реализовать рабочие процессы в бизнес-процессах, требования которых не удовлетворяются готовыми библиотеками действий рабочих процессов в SharePoint Designer
Начало работы
В следующей статье показано, как создать пользовательское действие рабочего процесса с помощью Visual Studio.
Workflow.Actions (пример O365 PnP) включает несколько настраиваемых действий рабочего процесса, созданных с помощью Visual Studio. В нем также показано, как использовать настраиваемые действия рабочего процесса в рабочем процессе.
Создание пользовательских событий рабочего процесса
В этом параметре пользовательские события рабочего процесса создаются и развертываются в SharePoint.
- Пользовательские события рабочего процесса можно создавать с помощью Visual Studio.
- Пользовательские события рабочего процесса могут не создаваться с sharePoint Designer.
- Пользовательские события рабочего процесса могут использоваться в SharePoint Designer после их развертывания в среде SharePoint.
Для каких случаев он подходит?
Когда необходимо реализовать рабочие процессы в бизнес-процессах, требования которых требуют, чтобы рабочие процессы ждали пользовательского события, прежде чем продолжить.
Начало работы
В примере Workflow.CustomEvents (O365 PnP) показано, как создать рабочий процесс, который ожидает, пока пользователь не срабатывает, прежде чем продолжить. В ней также показано, как использовать клиентскую объектную модель JavaScript (JSOM) для диспетчера служб рабочих процессов для создания пользовательского события.
Создание настраиваемых форм рабочего процесса
В этом параметре создаются и развертываются настраиваемые формы рабочих процессов в SharePoint.
- Настраиваемые формы рабочих процессов можно создавать с помощью Visual Studio.
- Пользовательские формы рабочих процессов не могут создаваться с sharePoint Designer.
- Пользовательские формы рабочих процессов можно использовать в SharePoint Designer после их развертывания в среде SharePoint.
Для каких случаев он подходит?
Когда необходимо реализовать рабочие процессы в бизнес-процессах, для которых требуются настраиваемые формы.
Начало работы
В следующей статье показано, как создать настраиваемые формы сопоставления и запуска рабочих процессов и использовать их в рабочем процессе.
В разделе Workflow.CustomTasks (пример O365 PnP) показано, как создавать настраиваемые формы задач и инициации и использовать их в рабочем процессе.
Параметры обновления данных SharePoint из пользовательского рабочего процесса
У вас есть несколько вариантов обновления данных SharePoint из пользовательского рабочего процесса.
- Используйте маркер контекста и URL-адрес веб-надстройки для проверки подлинности в SharePoint.
- Используйте веб-URL-адрес надстройки и веб-прокси SharePoint для проверки подлинности в SharePoint.
Использование маркера контекста и URL-адреса веб-надстройки для проверки подлинности в SharePoint
В этом варианте вы передаете маркер контекста и URL-адрес веб-сайта надстройки из рабочего процесса в службу, которую рабочий процесс вызывает через заголовки HTTP. Служба использует маркер контекста и URL-адрес веб-надстройки для проверки подлинности в SharePoint и возврата маркера доступа перед обновлением данных SharePoint.
- Этот подход требует передачи маркера содержимого из рабочего процесса в веб-службу.
Для каких случаев он подходит?
Если требуется, чтобы обмен данными с SharePoint происходил на уровне клиента.
Начало работы
В следующем примере показано, как использовать маркер контекста и ВЕБ-URL-адрес надстройки для проверки подлинности в SharePoint и обновления данных SharePoint.
Дополнительные сведения о передаче маркера контекста и ВЕБ-URL-адреса надстройки из рабочего процесса в службу см. в разделе CallCustomService (пример O365 PnP).
В других разделах readME Workflow.CallCustomService (пример O365 PnP) содержатся подробные сведения обо всем рабочем процессе и удаленной службе, а также показано, как настроить все компоненты в Microsoft Azure.
Использование веб-URL-адреса надстройки и веб-прокси SharePoint для проверки подлинности в SharePoint
В этом параметре при запуске рабочего процесса вы передаете ВЕБ-URL-адрес надстройки из рабочего процесса службе, которую вызывает рабочий процесс. Служба передает URL-адрес веб-надстройки веб-прокси SharePoint. Веб-прокси SharePoint использует URL-адрес веб-сайта надстройки для проверки подлинности в SharePoint и возврата маркера доступа. Затем веб-прокси SharePoint добавляет маркер доступа к заголовкам HTTP, прежде чем выполнять вызов для обновления данных SharePoint.
- Этот подход не требует передачи маркера содержимого из рабочего процесса в веб-службу.
Для каких случаев он подходит?
Если требуется, чтобы обмен данными с SharePoint происходил на уровне сервера.
Начало работы
В следующем примере показано, как использовать ВЕБ-URL-адрес надстройки и веб-прокси SharePoint для проверки подлинности в SharePoint и обновления данных SharePoint.
Дополнительные сведения о вызове веб-прокси см. в разделе Вызов службы веб-API в файле README Workflow.CallServiceUpdateSPViaProxy (пример O365 PnP).
В других разделах в файле README Workflow.CallServiceUpdateSPViaProxy (пример O365 PnP) содержатся подробные сведения обо всем рабочем процессе и удаленной службе, а также показано, как настроить все компоненты в Microsoft Azure.
Дополнительные сведения о веб-прокси SharePoint 2013 см. в статье Запросы к удаленной службе с помощью веб-прокси SharePoint 2013 (статья MSDN).
См. также
- Объектная модель рабочих процессов SharePoint 2013 (статья MSDN)
- Распространенные сообщения об ошибках при разработке рабочих процессов SharePoint (статья MSDN)
- Использование взаимодействия рабочих процессов для SharePoint 2013 (статья MSDN)
- Разработка рабочих процессов SharePoint 2013 с помощью Visual Studio (статья MSDN)
- Подготовка сайта (рецепт надстройки SharePoint)
- Создание приложения рабочего процесса SharePoint с помощью Visual Studio 2012 (статья MSDN)
- Практическое руководство. Создание рабочих процессов SharePoint 2013 с помощью Visual Studio (статья MSDN)
- Практическое руководство. Создание и развертывание пользовательских действий рабочего процесса (статья MSDN)
- Практическое руководство. Создание пользовательских форм рабочих процессов SharePoint Server 2013 с помощью Visual Studio 2012 (статья MSDN)
- Запрос удаленной службы с помощью веб-прокси в SharePoint 2013 (статья MSDN)
- Модули (рецепт надстройки SharePoint)
- Подготовка сайта (рецепт надстройки SharePoint)
- Статьи руководства на https://aka.ms/OfficeDevPnPGuidance
- Ссылки в MSDN на https://aka.ms/OfficeDevPnPMSDN
- Видео на https://aka.ms/OfficeDevPnPVideos
Образцы PnP
- Workflow.Actions (пример O365 PnP)
- Workflow.CustomEvents (пример O365 PnP)
- Workflow.CustomTasks (пример O365 PnP)
- Workflow.CallCustomService (пример O365 PnP)
- Workflow.CallServiceUpdateSPViaProxy (пример O365 PnP)
- Примеры и содержимое в Microsoft 365 Patterns and Practices (PnP)
Область применения
- Office 365 Multi Tenant (MT)
- Office 365 Dedicated (D)
- Локальное развертывание SharePoint 2013