Примеры использования |
Данный раздел содержит несколько примеров, призванных помочь в понимании логики работы механизмов построения рабочих процессов. Для того чтобы ускорить знакомство с модулем Графический построитель бизнес-процессов рекомендуем загрузить пробный рабочий процесс по следующей ссылке DeskWork BP demonstration. Данный пример РП позволяет ознакомиться с:
работой большинства доступных активностей
работой (созданием) переменных рабочего процесса
созданием ветвлений для параллельного выполнения нескольких задач
созданием условий переходов с помощью редактора переходов
Для того чтобы приступить к знакомству с данным рабочим процессом необходимо:
Установить DeskWork 2015Q1 for SharePoint Foundation 2013 / SharePoint Server 2013
На портале перейти в список\библиотеку на котором(-й) будет развернут рабочий процесс. Открыть панель инструментов (Ribbon) --> Параметры рабочих процессов --> Создать рабочий процесс в графическом построителе DeskWork.
Выполнить импорт загруженного рабочего процесса.
Пример иллюстрирует логику работы механизма ветвления рабочего процесса. На одном шаге сотрудник принимает определенное решение, решение определяется нажатием одной из кнопок на форме задачи. Далее рабочий процесс идет по марштуру, определяемому нажатой кнопкой.
Форма задачи Утверждение плана с двумя кнопками перехода ("Принять" и "Отклонить";) - выделены красной областью под цифрой "2". Кнопка на панели инструментов для быстрого добавления новой кнопки перехода на форму выделена областью под цифрой "1" (для каждой кнопки необходимо задать его имя и отображаемый текст).
На форме задачи пользователь увидит 2 кнопки: Принять и Отклонить.
После принятия решения ответственным сотрудником (Принять либо Отклонить) рабочий процесс пойдет по одной из веток (с подписью trigger="Принять" либо trigger="Отклонить"), см. скриншот "Пример 2".
В окне свойств ветки (соединения Активностей) в поле Условие перехода введен текст, изображенный на скриншоте ниже.
Как описано в разделе Рабочая область, условие для ветки программируется в окне ее свойств (доступ двойным кликом ЛКМ на линии соединения).
Также дополнительную справочную информацию о формате описания условий переходов можно получить, если навести курсор мыши на значок .
Примечание |
---|
В данном примере не было необходимости использовать Активности Ветвление и Слияние (описанные в разделе Список активностей), т.к. исполнение РП проходило только по одной ветке, и не было необходимости дожидаться завершения исполнения всех веток для окончания РП. |
Пример иллюстрирует использование активности «Внешний метод» для подключения сторонней библиотеки «Softilne.Portal.Workflow.ContactList.dll» которая позволяет получать руководителей пользователей (добавленных в Адресную книгу) указанных в переменных рабочего процесса.
Примечание |
---|
Скачать отдельно библиотеку «Softilne.Portal.Workflow.ContactList.dll» можно по следующей ссылке: http://deskwork.ru/download/Softilne.Portal.Workflow.ContactList.dll Скачать проект Visual Studio по следующей ссылке: http://deskwork.ru/download/Softilne.Portal.Workflow.ContactList.zip |
После того как библиотека была скачана необходимо:
Добавить библиотеку «Softilne.Portal.Workflow.ContactList.dll» в глобальный кэш сборок (Global Assembly Cache).
Примечание |
---|
В Windows Server 2008R2 используя проводник Windows скопировать библиотеку в папку C:\Windows\assembly\ на сервере где установлен DeskWork. В Windows Server 2012 используя программу Gacutil.exe (gacutil.exe /i Softilne.Portal.Workflow.ContactList.dll) установить библиотеку в глобальный кэш сборок (Global Assembly Cache) на сервере где установлен DeskWork. |
Выполнить команду «iisreset». Пуск –-> Выполнить –-> iisreset.
Использование библиотеки в рабочем процессе.
Переменные пользователей (руководителей которых нужно получить) должны начинаться с:
uuu_1_ваш_текст
uuu_2_ваш_текст
...
uuu_n_ваш_текст
Переменные руководителей (переменные куда сохраняются руководители указанных пользователей) должны начинаться с:
ppp_1_ваш_текст
ppp_2_ваш_текст
...
ppp_n_ваш_текст
Переменная руководителя для инициатора процесса:
manager_ваш_текст
Поля активности «Внешний метод»:
Полное имя типа: Softilne.Portal.Workflow.ContactList.Contact, Softilne.Portal.Workflow.ContactList, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6a602b7545c58250, processorArchitecture=MSIL
Имя метода: Copy
Создадим несколько переменных:
uuu_1_user и uuu_2_user с указанием пользователей у которых нужно получить руководителей;
ppp_2_manager и ppp_2_manager для записи в них руководителей указанных выше пользователей;
manager_initiator для записи руководителя инициатора рабочего процесса.
Заполним поля в активности «Внешний метод»:
На форме задачи Список руководителей отобразим значения всех переменных:
После запуска РП на форме задачи мы увидим руководителей, которые указаны у пользователей в «Адресной книге»:
Пример иллюстрирует использование активности «Внешний метод» для подключения сторонней библиотеки «Softline.Extensions.dll» которая позволяет получать имена пользователей по их логинам указанным в переменных рабочего процесса.
Примечание |
---|
Скачать библиотеку «Softline.Extensions.dll» можно по следующей ссылке: http://deskwork.ru/download/Softline.Extensions.dll |
После того как библиотека была скачана необходимо:
Добавить библиотеку «Softline.Extensions.dll» в глобальный кэш сборок (Global Assembly Cache).
Примечание |
---|
В Windows Server 2008R2 используя проводник Windows скопировать библиотеку в папку C:\Windows\assembly\ на сервере где установлен DeskWork. В Windows Server 2012 используя программу Gacutil.exe (gacutil.exe /i Softline.Extensions.dll) установить библиотеку в глобальный кэш сборок (Global Assembly Cache) на сервере где установлен DeskWork. |
Выполнить команду «iisreset». Пуск –-> Выполнить –-> iisreset.
Использование библиотеки в рабочем процессе.
Переменные типа "Пользователь" (логины пользователей у которых нужно получить имена) должны начинаться с:
ulogin_1_ваш_текст
ulogin_2_ваш_текст
...
ulogin_n_ваш_текст
Переменные типа "Однострочный текст" (переменные куда сохраняются имена пользователей) должны начинаться с:
uname_1_ваш_текст
uname_2_ваш_текст
...
uname_n_ваш_текст
Поля активности «Внешний метод»:
Полное имя типа: Softilne.NameResolver, Softline.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6a602b7545c58250
Имя метода: Resolve
Создадим две переменные:
ulogin_1 с указанием логина пользователя у которого нужно получить имя и затем сохранить его в другой переменной;
uname_1 для записи имени указанного выше пользователя;
Заполним поля в активности «Внешний метод»:
На форме активности "Отправить E-mail" используем созданные переменные:
Пример иллюстрирует логику работы активности «Слияние» в зависимости от работы входящих в нее веток выполнения рабочего процесса.
Сценарий поведения 1:
Активность слияние, перед переходом на следующих шаг рабочего процесса, всегда ожидает завершения работы всех входящих в активность ветвей рабочего процесса.
Пояснение к рисунку выше:
Переход на финальную активность “FinishActivity1” не будет выполнен до тех пор, пока не будет завершена входящая ветвь с активностью “UserTaskActivity1
Пояснение к рисунку выше:
Переход на следующую активность “UserTaskActivity2” будет выполнен, так как завершены все входящие ветви “UserTaskActivity1” и “UserTaskActivity2”
Сценарий поведения 2:
Активность слияние, перед переходом на следующий шаг рабочего процесса, анализирует логику работы всех входящих в активность ветвей и при условии, что по логике одна или несколько ветвей не должны выполняться, продолжает работу и переходит на следующий шаг рабочего процесса.
Пояснение к рисунку выше:
Переход на финальную активность “FinishActivity1” будет выполнен, так как значение переменной “Сумма=300000”, не удовлетворяет условию “Сумма> 500000“ и перехода на активность “UserTaskActivity1” не произойдет. Ветвь с активностью “UserTaskActivity1” не может быть завершена, в соответствии с логикой работы ветви. Остальные входящие ветви завершены.
Пояснение к рисунку выше:
Переход на финальную активность “FinishActivity1”, не будет выполнен, до тех пор, пока не будет выполнена входящая ветвь с активностью “A4”. Остальные входящие ветви не могут быть завершены так как на них не будет осуществлен переход в соответствии с логикой процесса.
Сценарий поведения 3:
Активность слияние, перед переходом на следующих шаг рабочего процесса, анализирует логику работы всех входящих в активность ветвей, а также наличие циклически повторяющихся итераций и при условии, что по логике необходимо обязательное завершение цикла, ожидает завершение ветви с циклом и переходит на следующий шаг рабочего процесса.
Пояснение к рисунку выше:
Переход на финальную активность “FinishActivity1” не будет выполнен, до тех пор, пока не будет завершена ветвь с активностью “UserTaskActivity1”. Завершение ветви, зависит от результата полученного в ходе выполнения активности “UserTaskActivity1” (до тех пор, пока не будет “Да”), в свою очередь зависящего от результата циклически вызываемой активности UserTaskActivity2.
Сценарий поведения 4:
В рабочих процессах допускается последовательное использование нескольких активностей слияние, которые могут использовать описанные выше сценарии и их комбинации в зависимости от логики завершения, входящих в активность слияние ветвей.
Пояснение к рисунку выше:
Переход на финальную активность “FinishActivity1”, будет выполнен в случае завершения, входящих в активность “A12” ветвей “П18”, “П19” (см сценарий 1).
Переход на активность “A12” с активности “A10” (завершение ветви “П18”), будет выполнен в случае завершения входящей в активность “A10” ветви “П8”, так как входящие ветви “П11”, “П16”, не могут быть завершены по логике построения рабочего процесса. (см сценарий 2)
Переход на активность “A12” с активности “A11” (завершение ветви “П19”), будет выполнен в случае завершения входящей в активность “A11” ветви “П15”, так как входящие ветви “П12”, “П17”, не могут быть завершены по логике построения рабочего процесса. (см сценарий 2)
Пример иллюстрирует использование активности «Внешний метод» для подключения сторонней библиотеки «Softline.Workflow.External.CurrentDateTime.dll» которая позволяет получать текущую дату и время в процессе выполнения рабочего процесса.
Примечание |
---|
Скачать библиотеку «Softline.Workflow.External.CurrentDateTime.dll» можно по следующей ссылке: http://deskwork.ru/download/Softline.Workflow.External.CurrentDateTime.dll Скачать пример рабочего процесса демонстрирующего использование указанной библиотеки можно по следующей ссылке: http://deskwork.ru/download/Softline.Workflow.External.CurrentDateTime.zip |
После того как библиотека была скачана необходимо:
Добавить библиотеку «Softline.Workflow.External.CurrentDateTime.dll» в глобальный кэш сборок (Global Assembly Cache).
Примечание |
---|
В Windows Server 2008R2 используя проводник Windows скопировать библиотеку в папку C:\Windows\assembly\ на сервере где установлен DeskWork. В Windows Server 2012 используя программу Gacutil.exe (gacutil.exe /i Softline.Extensions.dll) установить библиотеку в глобальный кэш сборок (Global Assembly Cache) на сервере где установлен DeskWork. |
Выполнить команду «iisreset». Пуск –-> Выполнить –-> iisreset.
Использование библиотеки в рабочем процессе.
Переменная типа "Дата" ( в которой будет сохраняться текущая дата и время ):
ext_current_datetime
Поля активности «Внешний метод»:
Полное имя типа: Softline.Workflow.External.CurrentDateTime, Softline.Workflow.External.CurrentDateTime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6a602b7545c58250
Имя метода: Copy