Нажмите или перетащите для изменения размеров
Примеры использования

Данный раздел содержит несколько примеров, призванных помочь в понимании логики работы механизмов построения рабочих процессов. Для того чтобы ускорить знакомство с модулем Графический построитель бизнес-процессов рекомендуем загрузить пробный рабочий процесс по следующей ссылке DeskWork BP demonstration. Данный пример РП позволяет ознакомиться с:

  • работой большинства доступных активностей

  • работой (созданием) переменных рабочего процесса

  • созданием ветвлений для параллельного выполнения нескольких задач

  • созданием условий переходов с помощью редактора переходов

Для того чтобы приступить к знакомству с данным рабочим процессом необходимо:

  1. Установить DeskWork 2015Q1 for SharePoint Foundation 2013 / SharePoint Server 2013

  2. На портале перейти в список\библиотеку на котором(-й) будет развернут рабочий процесс. Открыть панель инструментов (Ribbon) --> Параметры рабочих процессов --> Создать рабочий процесс в графическом построителе DeskWork.

  3. Выполнить импорт загруженного рабочего процесса.

Пример 1. Использование кнопок перехода

Пример иллюстрирует логику работы механизма ветвления рабочего процесса. На одном шаге сотрудник принимает определенное решение, решение определяется нажатием одной из кнопок на форме задачи. Далее рабочий процесс идет по марштуру, определяемому нажатой кнопкой.

wf 2 example 1 Editor

Форма задачи Утверждение плана с двумя кнопками перехода ("Принять" и "Отклонить";) - выделены красной областью под цифрой "2". Кнопка на панели инструментов для быстрого добавления новой кнопки перехода на форму выделена областью под цифрой "1" (для каждой кнопки необходимо задать его имя и отображаемый текст).

wf 2 example 1 Trigger Task

На форме задачи пользователь увидит 2 кнопки: Принять и Отклонить.

wf 2 example 1 Task Form

После принятия решения ответственным сотрудником (Принять либо Отклонить) рабочий процесс пойдет по одной из веток (с подписью trigger="Принять" либо trigger="Отклонить"), см. скриншот "Пример 2".

В окне свойств ветки (соединения Активностей) в поле Условие перехода введен текст, изображенный на скриншоте ниже.

Как описано в разделе Рабочая область, условие для ветки программируется в окне ее свойств (доступ двойным кликом ЛКМ на линии соединения).

wf 2 example 1 Transition Form

Также дополнительную справочную информацию о формате описания условий переходов можно получить, если навести курсор мыши на значок wf 2 Property Help.

Примечание Примечание

В данном примере не было необходимости использовать Активности Ветвление и Слияние (описанные в разделе Список активностей), т.к. исполнение РП проходило только по одной ветке, и не было необходимости дожидаться завершения исполнения всех веток для окончания РП.

Пример 2. Получение руководителей пользователей с помощью активности «Внешний метод» ( «Softilne.Portal.Workflow.ContactList.dll» )

Пример иллюстрирует использование активности «Внешний метод» для подключения сторонней библиотеки «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

После того как библиотека была скачана необходимо:

  1. Добавить библиотеку «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.

  2. Выполнить команду «iisreset». Пуск –-> Выполнить –-> iisreset.

Использование библиотеки в рабочем процессе.

  1. Переменные пользователей (руководителей которых нужно получить) должны начинаться с:

    uuu_1_ваш_текст

    uuu_2_ваш_текст

    ...

    uuu_n_ваш_текст

  2. Переменные руководителей (переменные куда сохраняются руководители указанных пользователей) должны начинаться с:

    ppp_1_ваш_текст

    ppp_2_ваш_текст

    ...

    ppp_n_ваш_текст

  3. Переменная руководителя для инициатора процесса:

    manager_ваш_текст

  4. Поля активности «Внешний метод»:

    Полное имя типа: Softilne.Portal.Workflow.ContactList.Contact, Softilne.Portal.Workflow.ContactList, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6a602b7545c58250, processorArchitecture=MSIL

    Имя метода: Copy

wf 2 example 2 Editor

Создадим несколько переменных:

wf 2 example 2 Var
  • uuu_1_user и uuu_2_user с указанием пользователей у которых нужно получить руководителей;

  • ppp_2_manager и ppp_2_manager для записи в них руководителей указанных выше пользователей;

  • manager_initiator для записи руководителя инициатора рабочего процесса.

Заполним поля в активности «Внешний метод»:

wf 2 example 2 pluggable

На форме задачи Список руководителей отобразим значения всех переменных:

wf 2 Example 2 User Task 1

После запуска РП на форме задачи мы увидим руководителей, которые указаны у пользователей в «Адресной книге»:

wf 2 example 2 Task Form
Пример 3. Получение имен пользователей по их логинам с помощью активности «Внешний метод» ( «Softline.Extensions.dll» )

Пример иллюстрирует использование активности «Внешний метод» для подключения сторонней библиотеки «Softline.Extensions.dll» которая позволяет получать имена пользователей по их логинам указанным в переменных рабочего процесса.

Примечание Примечание

Скачать библиотеку «Softline.Extensions.dll» можно по следующей ссылке: http://deskwork.ru/download/Softline.Extensions.dll

После того как библиотека была скачана необходимо:

  1. Добавить библиотеку «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.

  2. Выполнить команду «iisreset». Пуск –-> Выполнить –-> iisreset.

Использование библиотеки в рабочем процессе.

  1. Переменные типа "Пользователь" (логины пользователей у которых нужно получить имена) должны начинаться с:

    ulogin_1_ваш_текст

    ulogin_2_ваш_текст

    ...

    ulogin_n_ваш_текст

  2. Переменные типа "Однострочный текст" (переменные куда сохраняются имена пользователей) должны начинаться с:

    uname_1_ваш_текст

    uname_2_ваш_текст

    ...

    uname_n_ваш_текст

  3. Поля активности «Внешний метод»:

    Полное имя типа: Softilne.NameResolver, Softline.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6a602b7545c58250

    Имя метода: Resolve

wf 2 example 3 Editor

Создадим две переменные:

wf 2 example 3 Var
  • ulogin_1 с указанием логина пользователя у которого нужно получить имя и затем сохранить его в другой переменной;

  • uname_1 для записи имени указанного выше пользователя;

Заполним поля в активности «Внешний метод»:

wf 2 example 3 pluggable

На форме активности "Отправить E-mail" используем созданные переменные:

wf 2 example 3 Email
Пример 4. Использование активности «Слияние»

Пример иллюстрирует логику работы активности «Слияние» в зависимости от работы входящих в нее веток выполнения рабочего процесса.

wf 2 linetypes

Сценарий поведения 1:

Активность слияние, перед переходом на следующих шаг рабочего процесса, всегда ожидает завершения работы всех входящих в активность ветвей рабочего процесса.

wf 2 joinsample 1

Пояснение к рисунку выше:

Переход на финальную активность “FinishActivity1” не будет выполнен до тех пор, пока не будет завершена входящая ветвь с активностью “UserTaskActivity1

wf 2 joinsample 2

Пояснение к рисунку выше:

Переход на следующую активность “UserTaskActivity2” будет выполнен, так как завершены все входящие ветви “UserTaskActivity1” и “UserTaskActivity2”

Сценарий поведения 2:

Активность слияние, перед переходом на следующий шаг рабочего процесса, анализирует логику работы всех входящих в активность ветвей и при условии, что по логике одна или несколько ветвей не должны выполняться, продолжает работу и переходит на следующий шаг рабочего процесса.

wf 2 joinsample 3

Пояснение к рисунку выше:

Переход на финальную активность “FinishActivity1” будет выполнен, так как значение переменной “Сумма=300000”, не удовлетворяет условию “Сумма> 500000“ и перехода на активность “UserTaskActivity1” не произойдет. Ветвь с активностью “UserTaskActivity1” не может быть завершена, в соответствии с логикой работы ветви. Остальные входящие ветви завершены.

wf 2 joinsample 4

Пояснение к рисунку выше:

Переход на финальную активность “FinishActivity1”, не будет выполнен, до тех пор, пока не будет выполнена входящая ветвь с активностью “A4”. Остальные входящие ветви не могут быть завершены так как на них не будет осуществлен переход в соответствии с логикой процесса.

Сценарий поведения 3:

Активность слияние, перед переходом на следующих шаг рабочего процесса, анализирует логику работы всех входящих в активность ветвей, а также наличие циклически повторяющихся итераций и при условии, что по логике необходимо обязательное завершение цикла, ожидает завершение ветви с циклом и переходит на следующий шаг рабочего процесса.

wf 2 joinsample 5

Пояснение к рисунку выше:

Переход на финальную активность “FinishActivity1” не будет выполнен, до тех пор, пока не будет завершена ветвь с активностью “UserTaskActivity1”. Завершение ветви, зависит от результата полученного в ходе выполнения активности “UserTaskActivity1” (до тех пор, пока не будет “Да”), в свою очередь зависящего от результата циклически вызываемой активности UserTaskActivity2.

Сценарий поведения 4:

В рабочих процессах допускается последовательное использование нескольких активностей слияние, которые могут использовать описанные выше сценарии и их комбинации в зависимости от логики завершения, входящих в активность слияние ветвей.

wf 2 joinsample 6

Пояснение к рисунку выше:

Переход на финальную активность “FinishActivity1”, будет выполнен в случае завершения, входящих в активность “A12” ветвей “П18”, “П19” (см сценарий 1).

Переход на активность “A12” с активности “A10” (завершение ветви “П18”), будет выполнен в случае завершения входящей в активность “A10” ветви “П8”, так как входящие ветви “П11”, “П16”, не могут быть завершены по логике построения рабочего процесса. (см сценарий 2)

Переход на активность “A12” с активности “A11” (завершение ветви “П19”), будет выполнен в случае завершения входящей в активность “A11” ветви “П15”, так как входящие ветви “П12”, “П17”, не могут быть завершены по логике построения рабочего процесса. (см сценарий 2)

Пример 5. Получение текущей даты\времени с помощью активности «Внешний метод» ( «Softline.Workflow.External.CurrentDateTime.dll» )

Пример иллюстрирует использование активности «Внешний метод» для подключения сторонней библиотеки «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

После того как библиотека была скачана необходимо:

  1. Добавить библиотеку «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.

  2. Выполнить команду «iisreset». Пуск –-> Выполнить –-> iisreset.

Использование библиотеки в рабочем процессе.

  1. Переменная типа "Дата" ( в которой будет сохраняться текущая дата и время ):

    ext_current_datetime

  2. Поля активности «Внешний метод»:

    Полное имя типа: Softline.Workflow.External.CurrentDateTime, Softline.Workflow.External.CurrentDateTime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6a602b7545c58250

    Имя метода: Copy