Type parameters
Hierarchy
- BaseItem<ProcessTaskData>
- ItemRef<ProcessTaskItem<Context>>
-
ProcessTaskItemRef<Context>
- ProcessTaskItem
Properties
Readonly code
Код приложения цели ссылки (код приложения).
Readonly data
Значения полей объекта.
Readonly fields
Описание полей объекта.
Readonly id
Идентификатор цели ссылки.
Readonly namespace
Пространство имен цели ссылки (код раздела приложения).
Methods
changeDueDate
-
Изменение времени выполнения задачи.
Установка новой даты выполнения задачи:
try { // Получаем комментарий из контекста процесса const comment = Context.data.comment; // Получаем ID задачи из контекста процесса const taskUUID = Context.data.taskid; let task = await System.processes._searchTasks().where(x => x.__id.eq(taskUUID)).first(); // Если задача не найдена, то выводим ошибку if (!task) { throw new Error('Задача не найдена'); } // Получаем текущую дату let newDueDate = new Datetime(); // Прибавляем один день newDueDate = newDueDate.addDate(0, 0, 1); await task.changeDueDate(newDueDate, comment); } catch (error) { // Процесс уже завершен, можно обработать исключение }
Parameters
-
dueDate: TDatetime
Новая дата завершения задачи.
-
Optional comment: undefined | string
Комментарий.
Returns Promise<void>
-
createReminder
-
Создание напоминания.
Пример поиска задачи и создания напоминания для неё:
// Получаем объект задачи let task = await System.processes._searchTasks().where(x => x.__id.eq(taskUUID)).first(); // Если объект задачи не найден, то заканчиваем выполнение сценария if (!task) { return; } // Получаем текущего пользователя const user = await System.users.getCurrentUser(); // Получаем текущую дату и прибавляем один день // Временная зона берётся из поля `System.timezones.current` let dateReminder = new Datetime(); dateReminder = dateReminder.add(new Duration(1, 'days')) // Создаём напоминание о задаче на следующий день await task.createReminder(dateReminder, user);
Parameters
-
date: TDatetime
Дата напоминания.
-
user: UserItemRef
Пользователь, которому создаем напоминание.
Returns Promise<ReminderItem>
Напоминание.
-
fetch
-
Запрос полных данных объекта-ссылки.
Returns Promise<ProcessTaskItem<Context>>
getExits
-
Получение вариантов выхода по задаче.
Поиск и завершение задачи:
try { // Получаем объект задачи let task = await System.processes._searchTasks().where(x => x.__id.eq(taskUUID)).first(); // Если объект задачи не найден, то заканчиваем выполнение сценария if (!task) { return; } // Получаем выходы для задачи const exits = await task.getExits(); // Завершаем задачу // Передаем идентификатор выхода и данные формы await task.submitTask(exits[0].id, {comment: 'Task completed'}); } catch (e) { // Процесс уже завершен, можно обработать исключение }
Returns Promise<TaskItemExit[]>
getPerformers
-
Метод получает список исполнителей задачи.
const instance = await task.getPerformers();
Returns Promise<UserItem[]>
Пользователи, выполняющие задачу.
getProcessInstance
-
Метод получает объект процесса.
const instance = await task.getProcessInstance();
Returns Promise<ProcessInstanceItem<Context>>
Процесс, в рамках которого запущена задача.
normalize
-
Удаление дублирующихся данных в массивах.
Выполнить удаление дубликатов в полях, в которых хранятся массивы ссылок на объекты системы (пользователи, файлы, элементы приложений, документы).
Этот метод, например, можно вызвать после массового изменения данных в объекте.
const app1 = await Context.data.app1.fetch(); const app2 = await Context.data.app2.fetch(); app1.data.executors.push(app2.data.executors); app1.normalize(); // Далее перебираем элементы нового массива app1.data.executors.forEach( ... );
Returns void
reassign
-
Переназначение задачи на одного или нескольких новых исполнителей.
Причина переназначения записывается в ленту задачи. Задачи ознакомления/cогласования и системные будут переназначены на первого пользователя, указанного в наборе новых исполнителей. Если экземпляр процесса завершен, или задача уже закрыта, то исполнение прерывается исключением.
В первом примере происходит переназначение задачи по ID из контекста на нового исполнителя в единственном числе.
async function reassign(): Promise<void> { // Идентификатор задачи для переназначения берем из контекста процесса const taskID = Context.data.TaskForReassignUUID; // Ищем задачу const task = await Application.processes._searchTasks().where(x => x.__id.eq(taskID)).first(); // Пользователя получаем из контекста const user = Context.data.NewPerformer; const comment = "Замена исполнителя"; await task.reassign(user, comment); }
Рассмотрим ещё один пример.
В этом примере происходит переназначение задачи по ID из контекста на пользователей из группы.
async function reassignMany(): Promise<void> { // Идентификатор задачи для переназначения берем из контекста процесса const taskID = Context.data.TaskForReassignUUID; // Ищем задачу const task = await Application.processes._searchTasks().where(x => x.__id.eq(taskID)).first(); // Идентификатор группы пользователя получаем из контекста const userGroupID = Context.data.groupUUID; // Ищем группу пользователей const userGroup = await System.userGroups.search().where(x => x.__id.eq(userGroupID)).first(); const newPerformers = <UserItemRef[]>await userGroup.users(); const comment = "Задаем на нескольких исполнителей"; await task.reassign(newPerformers, comment); }
Parameters
-
user: UserItemRef | UserItemRef[]
Ссылка на одного пользователя или набор ссылок на пользователей.
-
Optional comment: undefined | string
Причина переназначения задачи. Может быть указана пустая строка.
Returns Promise<void>
-
submitTask
-
Выполнение задачи.
Поиск и завершение задачи:
try { // Получаем объект задачи let task = await System.processes._searchTasks().where(x => x.__id.eq(taskUUID)).first(); // Получаем выходы для задачи const exits = await task.getExits(); // Передаем идентификатор выхода и данные формы await task.submitTask(exits[0].id, {comment: 'Task completed'}); } catch (e) { // Процесс уже завершен, можно обработать исключение }
Parameters
-
exitID: string
-
Optional data: Context
Returns Promise<void>
-
Объект задачи процесса