400 likes | 409 Views
Автоматизация бизнес процессов на базе SharePoint Workflow 2010. Михаил Бондаревский Email: bondarevsky@gmail.com MCTS: MOSS, ASP.NET, WF, WCF, ADO.NET. План доклада. SharePoint Workflow 2010 – платформа для автоматизации бизнес-процессов Средства разработки
E N D
Автоматизация бизнес процессов на базе SharePoint Workflow 2010 Михаил Бондаревский Email: bondarevsky@gmail.com MCTS: MOSS, ASP.NET, WF, WCF, ADO.NET
План доклада • SharePoint Workflow 2010 – платформа для автоматизации бизнес-процессов • Средства разработки • Visio, SharePoint Designer, Visual Studio • Настройка стандартных рабочих процессов • Различные типы рабочих процессов • Визуализация хода выполнения • Модель внешних подключаемых сервисов
SharePoint WF 2010 – платформа для автоматизации бизнес процессов Человеческий фактор • задачи • столбец состояния, • история, • визуализация (новое!), • уведомления Workflow Foundation 3.5 SP1.NET Framework (не 4.0!) • SharePoint Workflow использует переработанный «движок» WF
SharePoint Workflow 2010способы расширения функциональность БраузерVisio SharePoint Designer Visual Studio
Стандартные рабочие процессы SharePoint • Сбор отзывов, Утверждение и другие • Тонкая настройка стандартных рабочих процессов c помощью • SharePoint Designer 2010 • Visual Studio 2010
Пример: авансовый отчет • Множество вариантов, но большинство следуют схожему сценарию • Сотрудники взаимодействуют со списком/библитекой документов SharePoint через завершение задач
Инструменты разработки рабочих процессов • Новый инструмент Visio 2010 • Существенные улучшения в SharePoint Designer • Двухстороння интеграция м/у Visio и SPD через единый формат обмена VWI • Импорт SPD WF в Visual Studio 2010
Visio 2010 • Позволяет создавать РП без детализации • Целевая аудитория – бизнес-аналитки • Доступны все поддерживаемые SPD действия в виде фигур (stencils) • Проверка схемы • Единый формат обмена м/у SPD
Visio: Фигуры (Stencils) • Действия рабочего процесса • Условия рабочего процесса
Формат Visio Workflow Interchange (VWI) • Формат обмена м/у Visio и SPD • *.vwi =Zip • workflow.vdx • workflow.xoml • [Content_Types].xml • workflow.xoml.rules
ДЕМО Создание рабочего процесса в Visio 2010
SharePoint Designer 2010 • Поддержка 3-х типов рабочего процесса • Новый редактор рабочего процесса • Новые действия (actions) и условия(conditions) • Кастомизация OOTB рабочих процессов • Импорт и экпорт в Visio • Экспорт как WSP-пакет
SPD: Новые действия и условия • Более 10 новых действий (codeplex ) • Lookup Manager of a User • Declare Record • Set Workflow Status • Check In/Out • Copy/Create List Item • … • 6 новых условий
SPD: редактор рабочего процесса • «Горячие» клавиши • Автодополнение • Интерактивная проверка ошибок
Visio Services: Визуализация • Статус рабочего процесса в графическом виде
Visio Services: добавление визуализации РП на страницу _controstemplate\WorkflowStatus.ascx <VisioWebControls:VisioWebAccess id="VisioWebAccess1" runat="server" webpart="true" height="400px"> <WebPart xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/WebPart/v2"> <Title>Workflow Visualization</Title> <Description></Description> <FrameType>Standard</FrameType> </WebPart> </VisioWebControls:VisioWebAccess>
ДЕМО Создание рабочего процесса в SharePoint Designer 2010
Visual Studio 2010 • Обновленный шаблон проекта • поддержка ASPX форм (Assoc, Init) • List/Site рабочий процесс • Новые типы активити • Импорт рабочего процесса как WSP
Рабочие процессы сайта • Контекст SPWeb • Активация • Через Site Actions • Объектная модель varassoc = spWeb.WorkflowAssoications.GetAssociationByName(“Demo Site WF”, CultureInfo.InvarianCulture); var result = spSite.WorkflowManager.StartWorkfow(null, assoc, String.Empty, SPWorkflowRunOptions.Synchronous);
ДЕМО Создание рабочего процесса в VS 2010
Инструменты разработки • Visio 2010 <-> SharePoint Designer 2010 • SharePoint Designer 2010 -> Visual Studio 2010
Событийная модель События,возникающие в течении ЖЦ РП Started, Completed… SPWorkflowEventReceiver базовый класс для обработки событий может быть зарегистр. site/list/content type Сценарии Вызвать вложенный РП Реализовать аудит
Взаимодействие с внешними системами Рабочий процесс Способы: • веб-сервисы и «Задачи» • модель внешних подключаемых сервисов (Новое!SharePoint 2010) SharePoint Внешняя система
SharePoint Workflow SharePoint Worker Process Вашрабочий процесс • SharePoint Activity Library Специфичный для SharePoint компонент Workflow Foundation • Base Activity Library Runtime Engine: базовые сервисы Scheduler Rules Tracking Runtime Services: специфичная реализация SharePoint БД содержимого Transactions Persistence Notifications Roles Tracking Messaging
External Data Exchange Service EDE сервис
EDE: Определение контракта [ExternalDataExchange] public interface IMyEDEService { void MessageOut(string msg); event EventHandler<MyEventArgs> MessageIn; } [Serializable] class MyEventArgs: ExternalDataEventArgs {}
EDE: Реализация сервиса Реализовать класс, производный от SPWorkflowExternalDataExchangeService, IMyEDEService public abstract class SPWorkflowExternalDataExchangeService { public virtual void AfterWorkflowRun(GuidinstanceId); public virtual void BeforeWorkflowRun(SPWorkflow workflow, IPendingWorkpendingWork); public abstract void CallEventHandler(Type eventType, string eventName, object[] eventData, SPWorkflow workflow, string identity, IPendingWorkworkHandler, object workItem); public abstract void CreateSubscription(MessageEventSubscription subscription); public abstract void DeleteSubscription(GuidsubscriptionId); public static void RaiseEvent(SPWeb web, GuidworkflowId, Type eventType, string eventName, object[] eventData); public static void RaiseEvent(SPWeb web, intuserId, GuidworkflowId, Type eventType, string eventName, object[] eventData, SPWorkflowRunOptionsrunOptions); public delegate void BatchOperation(System.Transactions.Transaction transaction, params object[] arguments); }
EDE: Модификация web.config <WorkflowServices> <WorkflowService Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Class="Microsoft.SharePoint.Workflow.SPWinOEWSSService"> </WorkflowService> <WorkflowService Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Class="Microsoft.SharePoint.Workflow.SPWinOETaskService"> </WorkflowService> <WorkflowServiceAssembly="Rusug.MyFirstPluggableWorkflowService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxx“ Class="Rusug.MyFirstPluggableWorkflowService"> </WorkflowService> </WorkflowServices>
EDE: Использование • CallExternalMethodActivityи HandleExternalMethodActivity • Утилита Wca.exe (.NET Framework)
«Папки» c рабочим процессом • Document Set – тип контента (производный от Folder) • Doc set поддерживает ассоциации РП
Вопросы • Email: bondarevsky@gmail.com