- Главная [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
- Начало работы
- Как решить вашу задачу
-
API
-
Типы объектов
- DispositionType
- ProcessInstanceState
- ProcessTaskState
- ApplicationItemRegistration
- ApplicationProjectItem
- ApplicationProjectItemRef
- ApplicationProjectPlanElementItem
- ApplicationProjectPlanElementItemRef
- BaseApplicationItem
- BaseApplicationItemRef
- BaseItem
- BaseItemData
- CurrentUserItem
- DirectoryData
- DirectoryItem
- EmployeeItemData
- EmployeeItemParams
- EmployeeItemProcesses
- FileData
- FileItem
- FileItemRef
- FileVersionData
- FileVersionItem
- ImageData
- ImageItem
- ImageItemRef
- InstanceAddr
- Item
- ItemData
- ItemRef
- MailMessageData
- MailMessageItem
- MailMessageItemRef
- OrganisationStructureData
- OrganisationStructureItem
- OrganisationStructureItemRef
- ParamsItem
- ProcessInstanceData
- ProcessInstanceItem
- ProcessInstanceItemRef
- ProcessTaskData
- ProcessTaskItem
- ProcessTaskItemRef
- ProcessTemplate
- ProcessTimer
- ReminderData
- ReminderItem
- ReplacementData
- ReplacementItem
- StatusHistoryData
- StatusHistoryItem
- StatusHistoryItemRef
- TaskItemExit
- UserData
- UserGroupData
- UserGroupItem
- UserGroupItemRef
- UserItem
- UserItemRef
- ApplicationItem
- ApplicationItemRef
- Типы данных
- Глобальные константы
- Работа с приложениями
- Веб-запросы
- Права доступа
- Документооборот
- Линии
- Виджет «Код»
- Подписи
- Рабочие календари
- Интеграция с IP-телефонией
- Интеграция с сервисами рассылок
-
Типы объектов
Объект задачи процесса
Type parameters
Context: ProcessContext
I: Item<ItemData>
I: Item<ItemData>
Hierarchy
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>
Properties
Methods