全部文档
文档中心工作流使用手册关联元素UX参考案例

参考案例

常见案例需求及对应配置。


实现需求的配置方式有多种,本文档仅提供参考,可在理解后拓展出其他配置方式。

需求:

  • UX中的【指标卡】控件可以展示【我的任务】和【待认领的任务】的数量

  • 无需区分工作流元素,统计所有工作流的数量

此方式需要注册DeepModel组件。


Step1:进入deep_model_console,添加工作流对象组


Step2:添加分析查询-我的任务

  • 若没有此功能,请将组件部署的版本升级到最新版,或采用【查询器】功能替代(那么后续UX中的数据源类型需要选择【自定义查询-DeepQL】,查询器如何使用请参考DeepModel组件文档)

  • 查询对象:DFTask

  • 分析维度:.task_status

  • 度量:DFTask对象,计数

  • 过滤条件:任务状态在进行中,且,执行人等于当前用户 或 执行人的用户组中的用户等于当前用户

    • 当前用户的JS表达式需要替换为【space+您的空间编码+::current_user_id】

    • 获取空间编码的方式之一:F12进入开发者工具,刷新平台中任一标签页,切至【网络】标签,选择任一行数据,查看【标头-请求标头】中的Space值

Copy
    .task_status 等于 InProgress
且	(
    .assignee.system_user.user_id 等于 global spacenbjoip::current_user_id
    或
    .assignee.system_group.user.user_id 等于 global spacenbjoip::current_user_id
    )

Step3:添加分析查询-待认领的任务

  • 同Step2,仅改变了过滤条件:任务状态在进行中,且,执行人为空,且,候选人等于当前用户 或 候选人的用户组中的用户等于当前用户

Copy
    .task_status 等于 InProgress
且	
    .assignee 为空
    (
    .candidate.system_user.user_id 等于 global spacenbjoip::current_user_id
    或
    .candidate.system_group.user.user_id 等于 global spacenbjoip::current_user_id
    )

Step4:在UX中添加数据源

  • 数据源类型为【对象分析查询】

  • 分别将前两步添加的分析查询都添加为数据源

Step5:在UX中添加指标卡控件

  • 分别关联对应的数据源,添加的指标数字关联的属性为count_of_DFTask

Step1:新建python元素,用作UX中的数据源


Copy
from deepfos.lib.deepux import Struct, Integer, as_datasource
from deepfos.element.workflow import WorkFlow
import pandas as pd

class Data(Struct):
    my_task_num: Integer
    claim_task_num: Integer

@as_datasource(struct=Data)

def main(p1, p2):
    # 指定任意一个存在的工作流元素编码
    flow = WorkFlow('budget_Status_MultiSubprocess')

    # 我的任务(不分工作流元素,返回所有我的任务)
    my_task = flow.list_my_task(status=None, as_dataframe=False)
    my_task_num = len(my_task)

    # 待认领的任务(不分工作流元素,返回所有待认领的任务)
    claim_task = flow.list_claim_task(as_dataframe=False)
    claim_task_num = len(claim_task)

    df = pd.DataFrame({
        'my_task_num': [my_task_num],
        'claim_task_num': [claim_task_num],
    })
    return df

关于UX组件中的python数据源详细介绍,请查看UX相关文档:https://docs.deepfos.com/component/deepux/function/datasource#python-dataframe

Step2:在UX中添加数据源


数据源类型为【自定义查询-python】

Step3:在UX中添加指标卡控件

  • 关联python数据源,添加的指标数字关联的属性分别为my_task_numclaim_task_num

需求:


自定义流程实例列表,仅可查看流程详情,详情包含流程记录流程图

配置步骤:

  1. 前提:注册DeepModel组件,工作流组件部署的环境变量 EXPORT_DATASOURCE_MODE=MODEL

  2. 进入deep_model_console,添加工作流对象组

  3. 新建UX页面,用来展示流程实例详情

    1. 选择空白模板

    2. 添加变量proc_id

    3. 添加【流程记录】、【流程图】控件,控件中的流程实例ID配置项都设置为【UX变量-proc_id】

  4. 新建UX页面,用来展示流程实例列表

    1. 可选择模板【基于业务模型/对象】-【清单表(上下)】

    2. 数据源选择对象DFProcess

    3. 按需配置查询区域

    4. 按需优化过滤条件

    5. 添加操作列按钮,用来跳转流程实例详情页面

    6. 按钮事件配置【跳转内部页面】,跳转目标是此前配置的流程实例详情页面,跳转参数的值赋数据源的proc_inst_id

  5. 效果展示

  6. 拓展:结合清单表控件其他功能、UX中其他控件(例如边栏布局对象数据选择器等),丰富并优化流程实例列表。

业务场景:


填报表单后,提交,在提交前二次确认,防止用户未保存/计算表单。

核心配置:

任务处理控件的完成任务前节点添加动作【二次确认弹窗】


效果:

拓展场景1:多个任务节点都使用这同一个待办界面,但只有某些节点需要弹出此二次弹窗(例如只有第一个填报节点需要)。


核心配置:

  1. UX添加变量pop(自定义变量编码即可)

  2. 需要二次弹窗的节点,跳转待办页面的参数加上pop,赋值"true"

  3. 二次确认弹窗的运行条件配置$var.pop == "true"

效果:

思路拓展:


灵活运用二次确认弹窗的运行条件,还可以运用此UX控件中其他数据进行条件编写,例如当前处理节点=预算员提交当前部门=财务部······

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send