Запуск экземпляра бизнес-процесса

Далее приведён пример кода скрипта ("Конструктор скриптов"), определённого типа карточки, в котором из существующего шаблона создаётся, а затем запускает экземпляр бизнес-процесса. Шаблон бизнес-процесса имеет одну переменную (типа Строка), в которую передается отображаемое имя сотрудника, выполнившего запуск скрипта. Предполагается, что скрипт запускается из карточки типа "Документ".

private void Button_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) (1)
{
 Library library = new Library(base.Session); (2)

 Process template = library.GetProcess(new Guid("00000000-0000-0000-0000-000000000000")); (3)

 Process process = library.CreateProcess(template); (4)

 process.InitialDocument = base.CardData.Id.ToString("B"); (5)

 process.Variables[new Guid("00000000-0000-0000-0000-000000000001")].Value = (base.BaseObject as Document).MainInfo.Author.DisplayName; (6)

 process.Start(base.Session.Properties["AccountName"].Value.ToString(), library.Dictionary,  ExecutionModeEnum.Automatic, true); (7)
}
1 Создание экземпляра БП на основе существующего шаблона с его последующим запуском.
2 Инициализация объекта для работы с библиотекой карточкой СУБП.

userSession — пользовательская сессия.

3 Получение существующего шаблона бизнес-процесса . 00000000-0000-0000-0000-000000000000 — идентификатор шаблона бизнес-процесса.
4 Создание нового экземпляра бизнес-процесса.
5 Сохранение инициирующего документа.
6 Присвоение значения переменной бизнес-процесса. 00000000-0000-0000-0000-000000000001 — идентификатор переменной бизнес-процесса, может быть получен из шаблона БП при помощи утилиты Docsvision Explorer.

Поле "ID" в секции "Переменные" карточки БП, используемой в качестве шаблона.

7 Запуск экземпляра бизнес-процесса.

AccountName — учетная запись пользователя, от имени которого производится запуск БП.

Library — ссылка на справочники Workflow (Assemblies, Functions, Gates).

executionMode — режим исполнения процесса.

suppressExecuteModeCompution — флаг, позволяющий отложить вычисление режима исполнения процесса.

К скрипту требуется подключить дополнительные сборки:
  • DocsVision.Workflow.Objects.dll

  • DocsVision.Workflow.Interfaces.dll

Также необходимо добавить ссылку на пространство имён DocsVision.Workflow.Objects:
using DocsVision.Workflow.Objects;