Этот класс содержит методы, которые позволяют управлять рабочими процессами и их компонентами, такими как действия, переходы и другие.
Чтобы создать экземпляр класса SimpleWorkflow, передайте в конструктор ID рабочего процесса, как в примере ниже
This server-side class provides methods and public functions that allow operating with workflows and theirs components, such as activities, transitions, and other.
To create an instance of the SimpleWorkflow class, follow the example below:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | SimpleWorkflow() |
---|
linenumbers | true |
---|
|
const simpleWorkflow = new SimpleWorkflow('159491114038814558'); |
Параметры:
NameTypeMandatory | Default ValueОбязательный | Значение по умолчанию |
---|
workflowId |
IntegerNNULL cancel(current)
This method allows cancelling all active contexts of the current recordИспользуйте этот метод, чтобы отменить все активные контексты текущей записи.
Параметры:
NameTypeMandatory | Default ValueОбязательный | Значение по умолчанию |
---|
current | SimpleRecord object |
YN ReturnВозвращаемое значение:
TypeDescriptionThis method does not return a valueМетод не возвращает значение. |
ExampleПример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | cancel() |
---|
linenumbers | true |
---|
|
const simpleWorkflow = new SimpleWorkflow('159491114038814558');
if (simpleWorkflow.hasActiveContexts(current)) {
simpleWorkflow.cancel(current);
} |
copy()
This method copies the workflow with creating a version in the Checked Out state and after that returns a copied workflow.
Return:
Type | Description |
---|
SimpleRecord object or NULL | This method returns NULL if the new SimpleWorkflow object has been created without specifying the workflowId parameter; otherwise, it returns an object of the Workflow (wf_workflow) table (of a SimpleRecord type). |
Если для рабочего процесса были созданы подпроцессы, используйте следующий скрипт, чтобы отменить все контексты рабочего процесса и все связанные с ним подпроцессы:
Code Block |
---|
language | js |
---|
theme | Confluence |
---|
title | Пример |
---|
linenumbers | true |
---|
|
const currentDocId = ss.getDocIdByIds(current.sys_db_table_id, current.sys_id);
const wfContext = new SimpleRecord('wf_context');
wfContext.addQuery('related_record_id', currentDocId);
wfContext.addQuery('active', true);
wfContext.orderBy('sys_id');
wfContext.selectAttributes(['workflow_version_id']);
wfContext.query();
const doesActiveWfExist = wfContext.getRowCount() > 0;
while (wfContext.next()) {
const simpleWorkflow = new SimpleWorkflow(wfContext.workflow_version_id.getValue('workflow_id'));
if (simpleWorkflow.hasActiveContexts(current)) {
simpleWorkflow.cancel(current);
}
}
if (doesActiveWfExist) {
ss.addInfoMessage('Все контексты отменены');
ss.setRedirect();
} |
copy()
Используйте этот метод, чтобы скопировать рабочий процесс. При этом создается версия процесса в статусе Заблокировано, после чего метод возвращает скопированный рабочий процесс.
Возвращаемое значение:
Тип | Описание |
---|
SimpleRecord object | Метод возвращает null, если объект SimpleWorkflow был создан без указания параметра workflowId. Метод возвращает объект SimpleRecord таблицы Рабочий процесс(wf_workflow). |
ПримерExample:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | copy() |
---|
linenumbers | true |
---|
|
const workflow = new SimpleWorkflow('159491114038814558');
const copiedWorkflow = workflow.copy();
const simpleWorkflow = new SimpleWorkflow(copiedWorkflow.sys_id); |
delete()
This method deletes the workflow and all its elements.
Return:
Type | Description |
---|
Boolean | This method returns 'true' if the workflow has been successfully deleted; otherwise, it returns 'false'. |
Используйте этот метод, чтобы удалить рабочий процесс и все его элементы.
Возвращаемое значение:
Тип | Описание |
---|
Boolean | При успешном удалении процесса метод возвращает true. В случае неудачи метод возвращает false. |
ПримерExample:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | delete() |
---|
linenumbers | true |
---|
|
const simpleWorkflow = new SimpleWorkflow('159491114038814558');
const copiedWorkflow = simpleWorkflow.copy();
const simpleWorkflow = new SimpleWorkflow(copiedWorkflow.sys_id);
if (simpleWorkflow.delete()) {
ss.info('WorkflowРабочий процесс deletedудален!');
} |
hasActiveContexts(current)
This method checks the current record if there are any active workflow contexts presented or notИспользуйте данный метод, чтобы проверить текущую запись на наличие активных контекстов рабочего процесса.
Параметры:
NameTypeMandatory | Default ValueОбязательный | Значение по умолчанию |
---|
current | SimpleRecord object |
YN ReturnВозвращаемое значение:
TypeDescriptionThis method returns 'true' if the active workflow context presents; otherwise, it returns 'false'. | Если контекст активного рабочего процесса найден, метод возвращает значение true. Если такой контекст отсутствует, метод возвращает false. |
ПримерExample:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | hasActiveContext() |
---|
linenumbers | true |
---|
|
const simpleWorkflow = new SimpleWorkflow('159491114038814558');
if (simpleWorkflow.hasActiveContexts(current)) {
simpleWorkflow.cancel(current);
} |
revival(executingActivity, current)
This method restarts the workflow starting with the activity specified.
Используйте этот метод, чтобы перезапустить рабочий процесс для указанной записи.
Info |
---|
Метод работает только если контекст рабочего процесса и выполняющееся действие не находятся в статусе Завершен. Добавляйте это условие к вашим скриптам, когда используете этот метод. |
Параметры:
NameTypeMandatory | Default ValueОбязательный | Значение по умолчанию |
---|
executingActivity | SimpleRecord object |
YNНет |
current | SimpleRecord object |
YN ReturnВозвращаемое значение:
TypeDescriptionWorkflow Context Описание |
---|
SimpleRecord object |
This method returns an object of the Метод возвращает объект SimpleRecord таблицы Контекста рабочего процесса (wf_context |
) table (of a SimpleRecord type ExampleПример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | revival() |
---|
linenumbers | true |
---|
|
const current = new SimpleRecord('task');
current.get('164579976616724057');
const approval = new SimpleRecord('sys_approval');
approval.get('164625329711023536');
const activityexecutingActivity = new SimpleRecord('wf_executing_activity');
executingActivity.get(approval.getValue('wf_executing_activity_id'));
const context = new SimpleRecord('wf_context');
context.get(executingActivity.getValue('context_id'));
if (context.getValue('state') == 'finished' || executingActivity.getValue('state') == 'finished') {
ss.info(`Перезапуск выполняющегося действия ${executingActivity.sys_id} и текущего контекста рабочего процесса ${current.getTableName()}:${current.sys_id} невозможен из-за того, что выполняющееся действие или контекст рабочего процесса уже завершены`);
} else {
const workflow = new SimpleWorkflow();
workflow.revival(activityexecutingActivity, current);
} |
start(current)
Use this method to start the workflow. The method starts only the workflows where the Condition Type is set to ManualИспользуйте метод, чтобы запустить рабочий процесс. При помощи этого метода можно запустить только рабочие процессы, в которых Тип условия указан как Ручной.
Параметры:
NameTypeMandatory | Default ValueОбязательный | Значение по умолчанию |
---|
current | SimpleRecord object |
YN ReturnВозвращаемое значение:
TypeDescriptionОписание |
---|
SimpleRecord object |
or NULLThis method returns NULL in the cases listed below: - the new SimpleWorkflow object has been created without specifying the workflowId parameter;
- there are no workflow versions created by the current user.
Otherwise, it returns an object of the Workflow Context (wf_context) table (of a SimpleRecord type). | | В случае успеха метод возвращает объект SimpleRecord таблицы Контекст рабочего процесса (wf_context). Метод возвращает null в следующих случаях: - новый объект SimpleWorkflow был создан без указания параметра workflowId.
- нет версий рабочего процесса, созданных текущим пользователем.
|
ПримерExample:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | start() |
---|
linenumbers | true |
---|
|
const simpleWorkflow = new SimpleWorkflow('159491114038814558');
const context = simpleWorkflow.start(current);
if (context.state === 'finished') {
ss.info('WorkflowРабочий процесс finishedзавершен!');
} |
startSubflow(executingActivity, current, workflowId)
This method allows starting a sub-workflow by executing activityИспользуйте этот метод, чтобы запустить подпроцесс путем выполнения действия.
Параметры:
NameTypeMandatory | Default ValueОбязательный | Значение по умолчанию |
---|
executingActivity | SimpleRecord object |
YNНет |
current | SimpleRecord object |
YNIntegerYN ReturnВозвращаемое значение:
TypeDescription object or NULL | Метод возвращает объект SimpleRecord таблицы Контекст рабочего процесса |
This method returns NULL if there are no workflow versions created by the current user; otherwise, it returns an object of the Workflow Context table (of a SimpleRecord type). Метод возвращает значение null, если нет версий рабочего процесса, созданных текущим пользователем. |
ExampleПример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | startSubflow() |
---|
linenumbers | true |
---|
|
;
(
(current, activity) => {
const wfActivitySubflow = new SimpleRecord('wf_activity_subflow');
wfActivitySubflow.get(activity.getValue('activity_id'));
const workflowManager = new SimpleWorkflow();
const subflowContext = workflowManager.startSubflow(activity, current, wfActivitySubflow.getValue('workflow_id'));
ss.info(subflowContext.state);
}
)(current, activity); |