Справочник API
Серверная часть
API, доступные в серверной части пакета, показаны в следующем коде:
PluginWorkflowServer
Класс плагина рабочего процесса.
Обычно во время выполнения приложения в любом месте, где доступен экземпляр приложения app, можно вызвать app.pm.get<PluginWorkflowServer>(PluginWorkflowServer), чтобы получить экземпляр плагина рабочего процесса (ниже — plugin).
registerTrigger()
Расширяет и регистрирует новый тип триггера.
Сигнатура
registerTrigger(type: string, trigger: typeof Trigger | Trigger })
Параметры
Пример
registerInstruction()
Расширяет и регистрирует новый тип узла.
Сигнатура
registerInstruction(type: string, instruction: typeof Instruction | Instruction })
Параметры
Пример
trigger()
Запускает конкретный рабочий процесс. В основном используется в пользовательских триггерах, чтобы запускать соответствующий рабочий процесс при срабатывании определённого пользовательского события.
Сигнатура
trigger(workflow: Workflow, context: any)
Параметры
context сейчас является обязательным параметром. Если его не передать, рабочий процесс не будет запущен.
Пример
resume()
Возобновляет ожидающий рабочий процесс по конкретной задаче узла.
- Возобновить можно только рабочий процесс в состоянии ожидания (
EXECUTION_STATUS.STARTED). - Возобновить можно только задачу узла в состоянии ожидания (
JOB_STATUS.PENDING).
Сигнатура
resume(job: JobModel)
Параметры
Передаваемый объект задачи обычно уже обновлён, и его status обычно изменён на значение, отличное от JOB_STATUS.PENDING, иначе ожидание продолжится.
Пример
Подробности см. в исходном коде.
Trigger
Базовый класс триггера, используется для расширения пользовательских типов триггеров.
on/off используются для регистрации и снятия обработчиков событий при включении и отключении рабочего процесса. Передаваемый параметр — экземпляр рабочего процесса, соответствующий триггеру, который можно обрабатывать в соответствии с конфигурацией. Некоторым типам триггеров с уже глобально прослушиваемыми событиями эти методы могут быть не нужны. Например, в триггере по расписанию можно зарегистрировать таймер в on и снять его в off.
Instruction
Базовый класс типов инструкций, используется для расширения пользовательских инструкций.
Связанные типы
Для getScope можно ориентироваться на реализацию узла «Цикл», которая используется для предоставления локальных переменных для ветвей.
EXECUTION_STATUS
Таблица констант статусов плана выполнения рабочего процесса, используется для идентификации текущего состояния соответствующего плана выполнения.
Кроме первых трёх, все остальные представляют неуспешное состояние, но используются для описания разных причин неуспеха.
JOB_STATUS
Таблица констант статусов задач узлов в рабочем процессе, используется для идентификации текущего состояния соответствующей задачи узла. Статус, сформированный узлом, также влияет на статус всего плана выполнения.
Клиентская часть
API, доступные в клиентской части пакета, показаны в следующем коде:
PluginWorkflowClientV2
Класс клиентского плагина рабочего процесса. Обычно получается через this.app.pm.get('workflow').
registerTrigger()
Регистрирует панель настройки для типа триггера.
Сигнатура
registerTrigger(type: string, trigger: typeof Trigger | Trigger): void
Параметры
registerInstruction()
Регистрирует панель настройки для типа узла.
Сигнатура
registerInstruction(type: string, instruction: typeof Instruction | Instruction): void
Параметры
registerInstructionGroup()
Регистрирует группу типов узлов. В NocoBase есть 4 группы по умолчанию:
'control': управление'collection': операции с коллекциями'manual': ручная обработка'extended': прочие расширения
Если нужно добавить другие группы, используйте этот метод для их регистрации.
Сигнатура
registerInstructionGroup(type: string, group: { label: string }): void
Параметры
Пример
isWorkflowSync()
Определяет, находится ли рабочий процесс в синхронном режиме.
Сигнатура
isWorkflowSync(workflow: object): boolean
Trigger
Базовый класс триггера, используется для расширения пользовательских типов триггеров.
Связанные типы
- Если
useVariablesне задан, этот тип триггера не предоставляет функцию получения значений, и контекстные данные триггера нельзя выбрать в узлах рабочего процесса.
Instruction
Базовый класс инструкций, используется для расширения пользовательских типов узлов.
Связанные типы
- Если
useVariablesне задан, этот тип узла не предоставляет функцию получения значений, и данные результата такого узла нельзя выбрать в узлах рабочего процесса. Если результат единственный (не выбирается), можно вернуть статическое содержимое с нужной информацией (см.: исходный код узла «Вычисление»). Если значение нужно выбирать (например, свойство объекта), можно настроить соответствующий компонент выбора (см.: исходный код узла «Запрос данных»). ComponentLoader— пользовательский компонент отображения узла. Если стандартного отображения недостаточно, его можно полностью переопределить для пользовательского рендеринга узла. Например, для узлов ветвящегося типа можно добавить дополнительный рендеринг ветвей (см.: исходный код узла «Условие»).isAvailableв основном определяет, можно ли использовать (добавить) узел в текущем окружен ии. Текущее окружение включает экземпляр плагина рабочего процесса, текущий рабочий процесс, вышестоящие узлы и индекс текущей ветви.
Компоненты ввода переменных
Рабочий процесс предоставляет набор компонентов ввода переменных, позволяющих пользователям выбирать переменные рабочего процесса в формах настройки узлов и триггеров.
WorkflowVariableInput
Поле ввода переменной с поддержкой выбора переменной и продолжения ввода текста. Подходит для однос трочных сценариев, требующих сочетания ссылок на переменные и произвольного текста.

Свойства
WorkflowVariableTextArea
Многострочное текстовое поле с поддержкой вставки ссылок на переменные в любую позицию курсора. Подходит для сценариев произвольного текста, таких как тело HTTP-запроса, шаблонный текст и т.д.

Свойства
Наследует остальные свойства от TextArea из antd (такие как autoSize, placeholder и т.д.).
WorkflowTypedVariableInput
Типизированный ввод с переключением между режимами «константа» и «ссылка на переменную». В режиме переменной можно только выбрать переменную; продолжение ввода после выбора недоступно. В режиме константы поддерживаются пять типов: string, number, boolean, date и object.

Свойства
Наследует остальные свойства от TypedVariableInput (за исключением внутренних extraNodes, metaTree, namespaces).
WorkflowVariableWrapper
Универсальная обёртка для подстановки различных компонентов ввода в различных контекстах. Например, когда одно и то же поле требует разных способов ввода в конфигурации триггера и в панели настройки узла, можно использовать этот компонент для оборачивания нативного элемента ввода в элемент с переключением режима переменной.
Свойства
Компоненты, связанные с коллекциями
Рабочий процесс также предоставляет набор вспомогательных компонентов, связанных с коллекциями:
CollectionCascader— каскадный селектор коллекций с поддержкой источников данныхAppendsSelect— селектор предзагрузки связанных полей (древовидный выбор)FieldsSelect— мультиселектор полей коллекцииSortFieldsInput— поле ввода для сортировкиPaginationFields— элементы формы для параметров пагинации

