列表流程(新)

场景描述

从业务数据中,打开页面,执行我的流程任务

实现思路

从39版本开始,流程提供了获取活动任务信息的方法。在流程的流转、回退等事件后,回写当前活动的任务信息到业务数据中,通过任务信息打开流程任务页面,如同从我的待办中打开一样。

实现步骤

1 在业务数据表上添加执行人和任务信息列

  • 执行人列用来存储人员id,多个人员id,用逗号分开,这一列用于过滤当前人需要处理的业务数据
  • 任务信息列用来存储任务信息,JSON数组格式,这一列用于打开流程任务页面

2 在流程的流转、回退等事件后回写执行人和任务信息数据

  • 在流程的流转、回退等事件后回写数据

  • 回写执行人和任务信息

  • 使用获取活动任务开头的函数,其中关于执行者有4个函数可以使用

任务信息的内容格式如下:

[
    {
        "sProcess": "/SA/wf/default/test_liucheng",
        "sStatusID": "tesExecuting",
        "sExecutorFID": "/nX51x4s33R5pOj3sH3W.ogn/nX51AMo33PhprP8JK2Q.dpt/nX51Db233W5mZ23zzd5.psm",
        "sActivity": "businessActivity2",
        "sName": "审批:流程",
        "sEURL": "/test/mobileapp/mobile/lc.w",
        "sExecutorFName": "/起步/开发部/zx",
        "id": "31F13E4D01EC40F49D21732EB9D88781",
        "sCURL": "/test/mobileapp/mobile/lc.w",
        "sData1": "C9F14324CCA000011E321AD1CAE01CBF"
    }
]

3 从业务数据打开流程任务页面

特别注意:

  • 当前执行者才能处理流程,因此必须注意非当前执行者不能打开流程任务页面
  • 由于获取活动任务开头的4个关于执行者的函数,具有去重功能,因此他们的值和任务信息中的值不一一对应
  • 如果任务信息中存在多条记录,需要通过sExecutorFID找到当前人对应的记录

在表格组件中显示业务数据,在行上显示去审批按钮,按钮的点击事件中把行数据做参数传递,然后代码中获取taskinfo

具体代码如下,引用流程组件的taskUtil.js,调用相关的API处理url后打开流程任务页面。

import taskUtil from "$UI/comp/wfmui/components/wfmui/js/taskUtil";
    onAuditBtnClick = ({row}) => (event) => {
        let taskInfo = row.taskinfo;//获取任务信息
        taskInfo = JSON.parse(taskInfo);//转JSON
        taskInfo = taskInfo[0];//示例代码,取第一条记录,实际中遍历任务信息,通过sExecutorFID找到当前人对应的记录
        taskUtil.executeAndOpenTask(taskInfo);//打开流程任务页面
    }

results matching ""

    No results matching ""

    results matching ""

      No results matching ""