• 首页
  • 产品中心
    • 数式Oinone四大产品

      低代码开发平台无代码开发平台集成开发平台AI大模型开发
    • 数式Oinone体系能力

      用户与组织权限管理文件管理消息中心国际化业务审计
    • 数式Oinone核心产品特性

      低无一体面向软件公司场景无限制应用级扩容可分可合
  • 服务中心
    • 客户服务

      预约演示方案咨询私有部署找人定制
    • 开发者

      问答下载
    • Oinone学院

      社区学习

    《精讲面向软件公司的低代码平台——以Oinone为例》

  • 合作伙伴
    渠道申请伙伴名录专家库
  • 关于数式
0571-88757863

流程配置:项目中工作流引入和流程触发


一、使用工作流需要依赖的包和设置

(一)工作流需要依赖的模块

1、需在 pom.xml 中增加 workflow、sql-record 和 trigger 相关模块的依赖

  • workflow:工作流运行核心模块
  • sql-record:监听流程发布以后对应模型的增删改监听
  • trigger:异步任务调度模块
<dependency>
    <groupId>pro.shushi.pamirs.workflow</groupId>
    <artifactId>pamirs-workflow-api</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.workflow</groupId>
    <artifactId>pamirs-workflow-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-sql-record-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-trigger-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-trigger-bridge-tbschedule</artifactId>
</dependency>

2、在 application.yml 中增加对应模块的依赖以及 sql-record 路径以及其他相关设置

pamirs:
...

  record:
    sql:
      #改成自己路径
      store: /opt/pamirs/logs
...

  boot:
    init: true
    sync: true
    modules:
...
      - sql_record
      - trigger
      - workflow
...

  sharding:
    define:
      data-sources:
        ds:
          pamirs
      models:
        "[trigger.PamirsSchedule]":
          tables: 0..13

  event:
    enabled: true
    schedule:
      enabled: true
      # ownSign区分不同应用
      ownSign: demo
    rocket-mq:
      # enabled 为 false情况不用配置
      namesrv-addr: 192.168.6.2:19876
    trigger:
      auto-trigger: true

注:更多 YAML 配置请前往 Module API 查阅。

二、触发方式

(一)自动触发方式

在流程设计器中设置触发方式,如果设置了代码触发方式则不会自动触发

(二)代码调用方式触发

1、再流程设计器中触发设置中,设置为是否人工触发设置为是

2、查询数据库获取该流程的编码

3、在代码中调用

/**
     * 触发⼯作流实例
     */
private Boolean startWorkflow(WorkflowD workflowD, IdModel modelData) {
    WorkflowDefinition workflowDefinition = new WorkflowDefinition().queryOneByWrapper(
        Pops.<WorkflowDefinition>lambdaQuery()
        .from(WorkflowDefinition.MODEL_MODEL)
        .eq(WorkflowDefinition::getWorkflowCode, workflowD.getCode())
        .eq(WorkflowDefinition::getActive, 1)
    );
    if (null == workflowDefinition) {
        // 流程没有运⾏实例
        return Boolean.FALSE;
    }
    String model = Models.api().getModel(modelData);

    //⼯作流上下⽂
    WorkflowDataContext wdc = new WorkflowDataContext();
    wdc.setDataType(WorkflowVariationTypeEnum.ADD);
    wdc.setModel(model);
    wdc.setWorkflowDefinitionDefinition(workflowDefinition.parseContent());
    wdc.setWorkflowDefinition(workflowDefinition);
    wdc.setWorkflowDefinitionId(workflowDefinition.getId());
    IdModel copyData = KryoUtils.get().copy(modelData);
    // ⼿动触发创建的动作流,将操作⼈设置为当前⽤户,作为流程的发起⼈
    copyData.setCreateUid(PamirsSession.getUserId());
    copyData.setWriteUid(PamirsSession.getUserId());
    String jsonData = JsonUtils.toJSONString(copyData.get_d());
    //触发⼯作流 新增时触发-onCreateManual 更新时触发-onUpdateManual
    Fun.run(WorkflowModelTriggerFunction.FUN_NAMESPACE, "onCreateManual", wdc, msgId, jsonData);
    return Boolean.TRUE;
}
编辑此页
最近更新:2026/1/15 04:02
上一页
流程扩展:通过业务数据操作工作流程(催办、撤销等)
下一页
消息定制:如何推送自定义消息
默认页脚
Copyright © 2026 Mr.Hope