API скриптов¶
В данном разделе представлена информация о свойствах и методах, которые могут использоваться при написании сценариев.
Доступные свойства:
-
Сontext
- контекст выполнения в обработчике WorkflowEngine.// Меняем у экземпляра процесса имя Context.ProcessInstance.Name = "New name for process";
-
DbScope
- объект, обеспечивающий доступ к базам данных.// Создаем новое подключение к базе по другому connectionString using (dbScope.CreateNew("SomeConnectionString)) { ... }
-
Container
- IoC-контейнер для получения любых необходимых зависимостей в рамках системы.// Резолвим объект из Unity-контейнера Container.Resolve<IRoleRepository>();
-
ValidationResult
- результат валидации. В него можно записывать данные, которые будут отображены пользователю после выполнения обработки.// Добавляем в результат валидации ответ обработки ValidationResult.AddInfo(this, "Some process answer");
-
Session
- сессия текущего пользователя.// Получаем из сессии имя текущего сотрудника var userName = Session.User.Name;
-
StoreCardObject
- объект карточки, в контексте сохранения которой происходит обработка процесса.// Получаем задание из карточки, переданной из клиента, которое было завершено StoreCardObject.Tasks.FirstOrDefault(x => x.Action == CardTaskAction.Completed);
-
CardObject
- объект карточки, в контексте которой происходит выполнение процесса. Данный объект содержит экземпляр карточки после основного сохранения и будет сохранен по окончанию обработки в случае, если в нем есть изменения. Данное свойство устарело, рекомендуется использовать методGetCardObjectAsync
.// Проверяем, есть ли в карточке файлы if (CardObject.Files.Count > 0) { ... }
-
CardID
- идентификатор карточки, в контексте которой происходит выполнение процесса. -
Card
- представление строковых секций карточки посредством dynamic-полей. Данное свойство устарело, рекомендуется использовать методGetCardAsync
.// Устанавливаем в секцию DocumentCommonInfo в поле Amount значение 10000 Card.DocumentCommonInfo.Amount = 10000;
-
Tables
- представление коллекционных секций карточки посредством dynamic-полей. Данное свойство устарело, рекомендуется использовать методGetTablesAsync
.// Возвращает список строк в секции OutgoingRefDocs Tables.OutgoingRefDocs.Count
-
Tasks
- список текущих активных заданий в контексте обработки. Список никогда не равен null. Через данное свойство списком можно также управлять.// Устанавливаем во все новые задания значение в определенное поле foreach(var task in Tasks) { if(task.State == CardRowState.Inserted) { task.Card.Sections["MagicSection"].RawFields["MagicNumber"] = 42; } }
-
Task
- возвращает первое задание из списка текущий активных заданий. Возвращает null, если список пустой. Может использоваться, например, для получения данных завершаемого пользователем задания, т.к. это задание добавляется вTasks
первым.// Записываем в сигнал комментарий завершаемого задания if(Task != null) { Signal.Comment = Task.Section["KrTask"].RawFields.TryGet<string>("Comment"); }
-
FileContainer
- контейнер с файлами карточки, в контексте которой происходит работа с процессом. Данное свойство устарело, рекомендуется использовать методGetFileContainerAsync
.// Добавляем файл в карточку с именем Test.txt и текстом "Новый файл" FileContainer .BuildFile("Test.txt") .SetContentText("Новый файл", System.Text.Encoding.Default) .AddWithNotification();
-
Action
- представление параметров текущего действия посредством dynamic-полей.// Устанавливаем в текущем действии в параметр SomeParam строковое значение "Value" Action.SomeParam = "Value";
-
ActionObject
- объект текущего действия. Имеет типWorkflowActionStateStorage
.// записываем в переменную идентификатор текущего действия var actionID = ActionObject.ID;
-
ActionHash
- параметры текущего действия в виде структурыIDictionary<string, object>
.// Устанавливаем в текущем действии в параметр SomeParam строковое значение "Value" ActionHash["SomeParam"] = "Value";
-
Node
- представление параметров текущего экземпляра узла посредством dynamic-полей.// Устанавливаем в текущем узле в параметр SomeParam строковое значение "Value" Node.SomeParam = "Value";
-
NodeObject
- объект текущего экземпляра узла. Имеет типWorkflowNodeStateStorage
.// записываем в переменную идентификатор текущего узла var nodeID = NodeObject.ID;
-
NodeHash
- параметры текущего экземпляра узла в виде структурыIDictionary<string, object>
.// Устанавливаем в текущем узле в параметр SomeParam строковое значение "Value" NodeHash["SomeParam"] = "Value";
-
Process
- представление параметров текущего экземпляра процесса посредством dynamic-полей.// Устанавливаем в текущем процессе в параметр SomeParam строковое значение "Value" Process.SomeParam = "Value";
-
ProcessObject
- объект текущего экземпляра процесса. Имеет типWorkflowProcessStateStorage
.// записываем в переменную идентификатор текущего процесса var processID = ProcessObject.ID;
-
ProcessHash
- параметры текущего экземпляра процесса в виде структурыIDictionary<string, object>
.// Устанавливаем в текущем процессе в параметр SomeParam строковое значение "Value" ProcessHash["SomeParam"] = "Value";
-
Signal
- представление параметров текущего сигнала посредством dynamic-полей.// Устанавливаем в текущем сигнале в параметр SomeParam строковое значение "Value" Signal.SomeParam = "Value";
-
SignalObject
- объект сигнала, который в данный момент обрабатывается.// Устанавливаем в текущем сигнале тип сигнала CustomSignalType SignalObject.Type = "CustomSignalType";
-
SignalHash
- параметры текущего сигнала в виде структурыIDictionary<string, object>
.// Устанавливаем в текущем сигнале в параметр SomeParam строковое значение "Value" SignalHash["SomeParam"] = "Value";
-
Cancel
- значение типа bool, которое определяет, нужно ли остановить обработку текущего сигнала.// Отменяет обработку сигнала Cancel = true;
Доступные методы:
-
GetCardObjectAsync
- метод для получения объекта карточки, в контексте которой происходит выполнение процесса. Данный метод возвращает экземпляр карточки после основного сохранения, а все изменения данного экземпляра будут сохранены по окончанию обработки.// Проверяем, есть ли в карточке файлы var cardObj = await this.GetCardObjectAsync(); if (cardObj.Files.Count > 0) { ... }
-
GetCardAsync
- метод возвращает представление строковых секций карточки посредством dynamic-полей.// Устанавливаем в секцию DocumentCommonInfo в поле Amount значение 10000 (await GetCardAsync()).DocumentCommonInfo.Amount = 10000;
-
GetTablesAsync
- метод возвращает представление коллекционных секций карточки посредством dynamic-полей.// Возвращает список строк в секции OutgoingRefDocs (await GetTablesAsync()).OutgoingRefDocs.Count
-
GetFileContainerAsync
- метод возвращает контейнер с файлами карточки, в контексте которой происходит работа с процессом.// Добавляем файл в карточку с именем Test.txt и текстом "Новый файл" (await GetFileContainerAsync()) .BuildFile("Test.txt") .SetContentText("Новый файл", System.Text.Encoding.Default) .AddWithNotification();
-
SetMainCard(Guid cardID)
- метод для установки основной карточки процесса по ее ID.var amount = Card.DocumentCommonInfo.Amount; // вернет сумму из текущей карточки, к которой относится процесс SetMainCard(someCardID); // устанавливаем новую карточку как текущую var amount2 = Card.DocumentCommonInfo.Amount; // вернет сумму из другой карточки с идентификатором someCardID, к которой теперь относится процесс
-
GetTask(Guid taskID)
- метод для получения объекта задания по его ID из карточки. Если задание не найдено, метод вернет null.// Получаем родительское задание для текущего задания в контексте обработки, если для него есть родительское задание if (Task?.ParentRowID.HasValue) { var parentTask = GetTask(Task.ParentRowID); }
-
AddInfo(string text)
- метод для добавления сообщения в ValidationResult с уровнем Info.// Добавляем сообщение в ValidationResult AddInfo("Text to user");
-
AddInfo(string format, params object[] args)
- метод для добавления сообщения с форматом в ValidationResult с уровнем Info. -
AddWarning(string text)
- метод для добавления сообщения в ValidationResult с уровнем Warning. -
AddWarning(string format, params object[] args)
- метод для добавления сообщения с форматом в ValidationResult с уровнем Warning. -
AddError(string text)
- метод для добавления сообщения в ValidationResult с уровнем Error. -
AddError(string format, params object[] args)
- метод для добавления сообщения с форматом в ValidationResult с уровнем Error.
API скриптов в условиях для тайлов¶
В связи с тем, что проверка условий на доступ к тайлам осуществляется вне контекста выполнения обработки процесса, API скриптов в условиях для тайлов упрощено.
Доступные свойства:
-
DbScope
- объект, обеспечивающий доступ к базам данных. -
Container
- IoC-контейнер для получения любых необходимых зависимостей в рамках системы. -
Session
- сессия текущего пользователя. -
CardObject
- объект карточки, в контексте которой происходит выполнение нажатия кнопки. Не задан для тайлов запуска глобального процесса. -
CardID
- идентификатор карточки, в контексте которой происходит выполнение процесса. Не задан для тайлов запуска глобального процесса. -
Card
- представление строковых секций карточки посредством dynamic-полей. Не задан для тайлов запуска глобального процесса. -
Tables
- представление коллекционных секций карточки посредством dynamic-полей. Не задан для тайлов запуска глобального процесса.