• 在实践中不断总结和提升


    最近有好几个客户都提出,需要实现在上一个流程节点办理的时候,由用户去选择下一步任务的执行人。

    这种需要在我们的工作流系统中,早就有相关的实现。是在下一步节点任务的参与人先设置一个虚拟的审核人checker。然后用户在上一个节点办理的时候,将选择的用户id存到这个checker中,再将这个checker以变量的形式送到流程引擎中,流程引擎在创建下一步任务的时候,就将用户选择的人生成到任务的参与人了。也可以多选,多选的用户id以逗号分隔的方式存到checker变量中,选择后的值为 USR_0000001,USR_0000002,USR_0000003... 这样。


    但是又有客户提出,需要在上一个节点办理的时候,由用户去选择下一步骤任务的执行人,并且这个选择范围是在流程设计器中圈定,如审核报销单的时候,审核人必须是部门经理,再在每个流程实例运行的时候,由上一步填写人提交的时候,去选择一个部门经理来审核。

    这种需求还是按上面那种方式来处理,在下一步节点任务参与人先设置一个虚拟的审核人checker,然后在上一步节点办理的表单中,选择下一步任务的参与人列表,只列出部门经理来。这样也能达到客户的要求。

    但是,又有客户提出了,圈定的范围必须要在流程设计器中定义任务的时候,先圈定好,在上一步节点办理的表单中,读出这个范围,再由用户去选择,这样就不必在表单中固定好选择范围

    这种需求我们现在的产品中没有,客户是上帝,提出的又是合理的需求,我们必须要想想怎样去实现了.....

    开始总想着在流程设计器任务节点属性中,加上定义范围的功能,但这样太繁琐了,要定义任务参与人,又要定义任务可选择的范围,而且可能是按用户,按角色,按群组等等。。。。。太繁琐了,不是好方案

    应该借助任务参与人的这个范围,而且客户提出的也是,在任务定义的时候,定义的任务参与人就是可选择的范围,增加表来存储用户的选择结果也不是好的方案,会使得得复杂和繁琐。

    还是利用一个临时变量appoint_nexttask_operator来处理又简单又能解决问题,在上一步节点的办理表单中,读出下一步任务节点的参与人列表(利用流程引擎的API来获取),将用户选择的结果存到appoint_nexttask_operator这个变量中,将此变量送到流程引擎中,流程引擎在生成任务之前,先判断这个变量是否有值,有值,就将此变量中的值生成到任务参与人,没有则用流程定义时的参与人。也可以多选,用逗号分隔。

    ^_^,这样,也不用额外增加定义的表等,就能完美的解决这个需求了,读出下一步任务节点的参与人,我们利用api写一个通用的方法,在表单中只要调用进来,就可以了。

    在定义的时候,可以加用户,角色等

    在第一个节点办理的表单中,读出任务定义的参与人

    选择后,就是下一步的审核人了。

  • 相关阅读:
    【转载】Visual Studio2017中如何设置解决方案中的某个项目为启动项目
    【转载】通过百度站长平台提交网站死链
    【转载】通过搜狗站长平台提交网站域名变更后的文章地址
    【转载】通过搜狗站长平台手动向搜狗搜索提交死链
    【转载】通过搜狗站长平台手动向搜狗搜索提交文章加快收录
    【转载】Visual Studio中WinForm窗体程序如何切换.NET Framework版本
    【转载】Visual Studio2017如何设置打包发布的WinForm应用程序的版本号
    【转载】通过搜狗站长平台查看网站的搜狗流量及搜索关键字
    【转载】Visual Studio2017如何打包发布Winform窗体程序
    【转载】通过百度站长平台查看网站搜索流量及关键字
  • 原文地址:https://www.cnblogs.com/webreport/p/2523738.html
Copyright © 2020-2023  润新知