- Главная [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
__id
Идентификатор экземпляра.
Readonly code
Код приложения цели ссылки (код приложения).
Readonly data
Значения полей объекта.
Readonly fields
Описание полей объекта.
Readonly id
Идентификатор цели ссылки.
Readonly namespace
Пространство имен цели ссылки (код раздела приложения).
Methods
fetch
Запрос полных данных объекта-ссылки.
Returns Promise<ProcessInstanceItem<Context>>
getParent
Метод получает родительский экземпляр процесса.
В компании в рамках процесса могут быть запущены подпроцессы. При работе с подпроцессом можно получить родительский процесс, в рамках которого был запущен данный процесс.
const parentProcess = await instance.getParent();
Returns Promise<ProcessInstanceItem<Context> | undefined>
Родительский процесс, если он существует.
getTemplate
Метод получает шаблон процесса.
Метод позволяет получить шаблон, на основе которого создан экземпляр процесса. Шаблон содержит поля контекста. Данные поля и их типы необходимо учитывать при запуске процесса и при работе с полями текущего экземпляра.
Например, поля, ссылающиеся на приложение, могут содержать в себе
Namespace
иcode
приложения, на которое ссылаются.В примере указан процесс, который содержит в поле
application
ссылку на приложениеdogovor
в разделеdocuments
. Зная данную информацию, возможно получить доступ к приложениям черезNamespace
.// `instance` — переменная, содержащая данные запущенного экземпляра процесса const template = await instance.getTemplate(); // Извлекаем из шаблона поле, привязанное к приложению const applicationField = template.context['application']; if (!applicationField) { throw new Error('Поле приложения не найдено'); } // После извлечения приложения возможно выполнять поиск, создание и другие операции const app = Namespace.app[applicationField.data.code];
Returns Promise<ProcessTemplate<Context>>
Шаблон процесса.
getTimer
Метод получает действующий таймер процесса.
Метод вернёт экземпляр действующего таймера по идентификатору блока, к которому принадлежит таймер. Идентификатор блока можно скопировать на форме настроек блока Таймер. Это обычный UUID, записанный в виде строки. Если процесс на диаграмме ещё не дошёл до таймера или уже прошёл его, то метод вернёт
undefined
.// `instance` — переменная, содержащая данные запущенного экземпляра процесса const timer = await instance.getTimer('идентификатор блока'); if (timer) { // Активный таймер найден — можно действовать }
Parameters
timerOwnerId: string
Returns Promise<ProcessTimer | undefined>
Действующий таймер, если он запущен.
getTimers
Метод получает все действующие таймеры процесса.
Метод возвращает массив экземпляров действующих таймеров. Если при вызове метода в экземпляре процесса не окажется действующих таймеров, то вернётся пустой массив.
// `instance` — переменная, содержащая данные запущенного экземпляра процесса const timers = await instance.getTimers();
Returns Promise<ProcessTimer[]>
Действующие таймеры.
interrupt
Метод позволяет прервать экземпляр процесса.
Если экземпляр процесса завершен или в текущий момент исполняет активный блок, то метод прерывается исключением.
В примере отображено прерывание процесса в том случае, если в поле
someError
в контексте содержится ошибка.if (Context.data.someError !== '') { try { await process.interrupt(Context.data.someError) } catch (e) { // Процесс уже завершен, можно обработать исключение } }
Parameters
comment: string
Returns Promise<void>
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
setResponsible
Метод позволяет изменить ответственного за экземпляр процесса.
В примере выполняется изменение ответственного с использованием данных из контекста:
user
— поле типа Пользователи;comment
— строка, записанная в контекст.const user = Context.data.newResponsible; const comment = Context.data.comment; await processInstance.setResponsible(user, comment);
Parameters
responsible: UserItemRef
Optional comment: undefined | string
Returns Promise<void>
updateContext
Метод изменяет контекст экземпляра процесса.
Если экземпляр процесса завершён или в текущий момент исполняет активный блок, то метод прерывается исключением. В случае успешного выполнения изменяется контекст процесса, и метод отрабатывает без исключений.
В примере контекст содержит номер договора, полученный из внешнего источника, например, с помощью запроса. Метод позволяет установить полученный номер в контекст стороннего процесса.
async function updateContext(): Promise<void> { try { // Получаем номер контракта из контекста const contractNumber = Context.data.contructid // Запись процесса `newprocess` в переменную `processTemplate` const processTemplate = Application.processes.incomecontract; // Идентификатор экземпляра процесса берем из контекста процесса const instanceUUID = Context.data.instanceUUID; // Ищем экземпляр процесса const process = await processTemplate._searchInstances().where(x => x.__id.eq(instanceUUID)).first(); // Комментарий для обновления получаем из контекста процесса const comment = Context.data.comment; // Новое значение номера договора const context = {contract: contractNumber}; // Обновление контекста await process?.updateContext(context, comment); } catch (e) { // Процесс уже завершен, можно обработать исключение } }
Parameters
context: Context
comment: string
Returns Promise<void>
Properties
Methods