«Скрипт» (ScriptBlock). Блок предназначен для выполнения произвольного программного кода.
Свойства блока
Свойство |
Описание |
---|---|
Заголовок (Title) |
Отображается в схеме процесса |
Описание (Description) |
Поясняющий текст, который отображается на панели настроек блока на схеме варианта процесса. ПРИМЕЧАНИЕ. В прикладном коде свойство доступно только для чтения |
Выходные свойства блока
Свойство |
Описание |
---|---|
Результат выполнения (ExecutionResult) |
Результаты выполнения блока. Значение по умолчанию: Success (Успешно). <Результат выполнения> – произвольный результат, добавленный разработчиком |
Серверные события блока
Событие |
Назначение |
Аргументы события |
---|---|---|
Выполнение (<Имя блока>Execute) |
Выполнение произвольного программного кода. Событие выполняется на сервисе выполнения блоков схем задач (WorkflowBlockService) при обработке блока |
_obj – задача, в рамках которой обрабатывается блок. _block – блок, в рамках которого выполняется событие. _block.ProcessStagesDisplayMode – режим отображения блока в этапах процесса. Возможные значения: •Show – пока не выполнен. Блок отображается, если он выполняется в текущий момент или будет выполняться в дальнейшем; •ShowInWork – в работе. Блок отображается, если он выполняется в текущий момент; •Hide – никогда. Блок скрыт. Изменять режим отображения рекомендуется в веб-клиенте через свойство блока Отображать в этапах процесса |
Пример. Выдача прав на вложения исполнителю
public virtual void MyScriptBlockExecute()
{
// Выдать права на вложения исполнителю.
var documents = _obj.Attachments.ToList();
Functions.MyTask.GrantAccess(documents, _obj.Performer);
}
Клиентские события блока
Событие |
Назначение |
Аргументы события |
---|---|---|
Обновление блока (<Имя блока>RefreshBlock) |
Задание логики для отображения свойств блока в зависимости от условий. Выполняется при открытии схемы процесса в редакторе и изменении свойств блока |
_block – блок, в рамках которого выполняется событие. _block.<название свойства>.Value – значение свойства. _block.<название свойства>.IsEmpty() – проверить, заполнено ли свойство. _block.<название свойства>.IsExpression() – проверить, является ли свойство вычисляемым выражением. _block.State.Properties.<название свойства>.<состояние> – состояние свойства. Возможные значения: •isVisible – видимое; •isEnabled – доступное; •isRequired – обязательное. _block.ProcessStagesDisplayMode – режим отображения блока в этапах процесса. Возможные значения: •Show – пока не выполнен. Блок отображается, если он выполняется в текущий момент или будет выполняться в дальнейшем; •ShowInWork – в работе. Блок отображается, если он выполняется в текущий момент; •Hide – никогда. Блок скрыт. Изменять режим отображения рекомендуется в веб-клиенте через свойство блока Отображать в этапах процесса |
Пример. Отображение выпадающего списка в зависимости от того, установлен ли флажок
public virtual void AssignmentBlockRefresh()
{
// Если флажок PropertyBool установлен, то отобразить выпадающий список PropertyEnum
if (_block.PropertyBool.Value == true)
{
_block.State.Properties.PropertyEnum.IsVisible = true;
}
// Если флажок PropertyBool снят, то скрыть выпадающий список PropertyEnum
if (_block.PropertyBool.Value == false)
{
_block.State.Properties.PropertyEnum.IsVisible = false;
}
Logger.Error("AssignmentBlockRefresh");
}
© Компания Directum, 2025 |