You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在APEX Workflows中启动子流程?能否通过API调用实现?

在APEX Workflows中启动子流程与API触发执行方案

一、工作流设计器内启动子流程

虽然每个工作流只能有一个Start元素,但你可以通过子流程调用(Subprocess Call)组件在主流程中触发子流程:

  • 在工作流设计器的组件面板中找到Subprocess Call,拖拽到主流程的合适节点(比如某个任务完成后)
  • 配置组件属性:选择要调用的目标子流程,设置输入参数映射(将主流程变量传递给子流程)
  • 主流程执行到该组件时,会自动启动对应的子流程实例,并维护父子流程的关联关系

二、API编程方式启动工作流执行

完全可以通过API触发工作流(包括子流程),Oracle APEX提供了APEX_WORKFLOW包,类似APEX_APPROVAL的使用方式,核心是START_WORKFLOW过程:

示例代码

DECLARE
    l_instance_id NUMBER;
BEGIN
    -- 启动指定子流程实例
    l_instance_id := APEX_WORKFLOW.START_WORKFLOW(
        p_workflow_name    => 'EMP_ONBOARDING_SUBFLOW', -- 替换为你的子流程名称
        p_workflow_version => NULL, -- 传入NULL将使用最新版本的工作流
        p_initiator        => 'JOHN_DOE', -- 启动工作流的用户
        p_parameters       => apex_t_varchar2(
            'EMP_ID:12345',
            'DEPT:ENGINEERING'
        ) -- 子流程所需的输入参数,格式为"参数名:值"
    );

    DBMS_OUTPUT.PUT_LINE('子流程实例已启动,ID: ' || l_instance_id);
END;
/

关键注意事项

  • 调用用户需要拥有APEX_WORKFLOW_USER角色或对应的工作流操作权限
  • 输入参数必须与目标子流程定义的输入参数匹配,否则会触发参数校验错误
  • 可以使用APEX_WORKFLOW.GET_WORKFLOW_INSTANCE(p_instance_id => l_instance_id)查询子流程的执行状态

内容的提问来源于stack exchange,提问作者Chadmerdinger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:22:13