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 如以下代码所示:
PluginWorkflowClient
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
参数
示例
Trigger
触发器基类,用于扩展自定义触发器类型。
useVariables如果没有设置,则代表该类型触发器不提供取值功能,在流程的节点中无法选取触发器的上下文数据。
Instruction
指令基类,用于扩展自定义节点类型。
相关类型
useVariables如果没有设置,则代表该节点类型不提供取值功能,在流程的节点中无法选该类型节点的结果数据。如果结果值是单一的(不可选),则返回一个可以表达对应信息的静态内容即可(参考:运算节点源码)。如果需要可选(如一个 Object 中的某个属性),则可以自定义对应的选择组件输出(参考:新增数据节点源码)。Component节点自定义渲染组件,当默认节点渲染不满足时可以完全覆盖替代使用,进行自定义节点视图渲染。例如要针对分支类型的开始节点提供更多操作按钮或其他交互,则需要使用该方法(参考:并行分支源码)。useInitializers用于提供初始化区块的方法,例如在人工节点中可以根据上游节点初始化相关用户区块。如果提供了该方法,则会在人工节点界面配置中初始化区块时可用(参考:新增数据节点源码)。isAvailable主要用于判断节点是否可以在当前环境中可以被使用(添加)。当前环境包括当前工作流、上游节点和当前分支索引等。

