zoukankan      html  css  js  c++  java
  • Gemini.Workflow 双子工作流入门教程三:定义流程:流程节点、迁移条件参数配置

    简介:

    Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中。

    下面介绍本篇教程:定义流程:流程节点、迁移条件参数配置。

    一、普通节点介绍:

    先介绍这个,是因为普通节点,拥有所有的配置,其它类型的节点(会根据类型,隐藏或减少相应的配置)

    所以介绍这个,就等于把所有的可配置项都介绍完了。

    点击不同的地方,右侧会出现不同的配置项。 

    下面看普通节点的配置项:

    流程图属性: 

    步骤名称(这个是可以更改的,在表单上如果想通过API控制节点,一般也是通过节点名称控制,当然ID也可以)

    其它都是默认的即可。

    参与者属性 

    响应方式:(即有多个人可以参与待办)

    参与者设置,点击可以设置: 

    可以指定多种形式的参与者类型。

    上下级部门角色参与者:这个一般配合自循环节点使用。

    如果选择的是角色类型:还可以指定是否进一步根据组织部门进行过滤。

    组织部门的过滤类型:

    在表单页,也可以由系统提供的表单API控制参与者。

    退回方式:

     可以指定退回的类型。

     当退回方式,选择为:任意历史可退步骤时,

    默认是任意历史,如果要限制在某几个节点:可以在下面任意历史可退步骤指定节点名称,多个用逗号分隔。

     开关属性:

    除了此处,也需要总开关(流程图属性)已打开。

    路由属性 

    一般来说,路由属性是【发散网关节点、聚合网关节点】的专属属性。

    不过所有节点都集成这个属性,所以上篇对节点的介绍,才有那么一句话:

    发散类型: 

    可以指定只选择一条路线、任意路线、全部路线。

    当指定为全选时,即为特殊的会签类型(以前有会签分支,去掉了,简约才是硬道理)

    聚合类型:

    当类型为条件聚合时,由迁移条件决定。

    传阅方式: 

    当传阅类型为自动传阅时,可以设置自动传阅的用户。

    内嵌子流程设置: 

    点击,在弹出的窗口中,选择子流程即可。

    外嵌子流程设置: 

    配置名称为:类全名,程序集名称

    代码类继承自:ISubWorflow,示例代码:

        public class ISubWorkflowDemo : ISubWorkflow
        {
            string appID = "DB";
            public string Start(Choice parentChoice)
            {
                //Gemini.Workflow
                //后端提供的API代码,以WF开头
                //启动新的流程
                WorkflowContext startContext = WF.Context.GetOnNoInstance(appID);//启动HX定义的流程
                //指定新的流程的父流程ID(及所在的节点实例ID)
                startContext.Instance.MainInstanceID = parentChoice.Context.InstanceID.ToString();
                startContext.Instance.MainActivityInstanceID = parentChoice.Current.ActivityInstance.ActivityInstanceID.ToString();//
    
                startContext.Instance.InstanceTitle = "哥要启动一个新的工单了,快去待办看看吧!";
                Choice choice = new Choice() { Command = Command.Start, Context = startContext };
                choice.Current.UserList.Add(WF.User.Current);//发送给当前用户好了。
    
                if (WF.Run.Execute(choice))
                {
    
                    //启动后,返回新的工作流实例ID。
                    return startContext.Instance.InstanceID.ToString();
                }
                return "";
            }
    
    
    
            public bool Invalid(ActivityInstance parentActivityInstance)
            {
                //回收子流程
                WorkflowContext context = WF.Context.GetOnNoInstance(appID);
                context.Opinion = "父流程回收,子流程要作废了!";
                Choice choice = new Choice() { Command = Command.Invalid, Context = context };
                if (WF.Run.Execute(choice))
                {
                    return true;
                }
                return false;
            }
        }

    迁移条件: 

    当下一节点的聚合条件为:条件聚合时,迁移条件发生作用。

    1、指定是否必参与迁移:该分支是否必须到达。

    2、分组名:同名即为一组,同时约束同一组最少到达分支数(如果同一组,即设置了不同的到达分支数,默认取第一个)

    3、备注,用于描述迁移线的作用,(如果是和业务相关,则由业务表单控制)

    如: 

    上面的流程中,会根据业务条件决定不同的分支,流程图上只作备注,具体由业务表单控制,示例表单中的代码如下:

    <script defer="defer">
            //控制分支条件
            WF.Button.Submit.onBeforeExecute = function () {
                if (WF.Context.appID == "DC") {
                    if (parseInt($("#Amount").val()) > 50000) {
                        WF.Actor.hideActivity("可选:B");
                    }
                    else {
                        //WF.Actor.Internal.
                        WF.Actor.hideActivity("可选:A");
                        //同时控件节点B的用户修改为指定的名称。
                        WF.Actor.setActivityUser("可选:B", "admin");
                    }
                }
            }
        </script>

    保存流程:

    流程设计好后,只需要点一下保存: 

    演示地址:

    http://aries.cyqdata.com

  • 相关阅读:
    Qt之QLineEdit
    Redis与Java
    Qt之属性系统
    Qt之Meta-Object系统
    设计模式(八)外观模式
    Qt之QRadioButton
    Qt之QSystemTrayIcon
    Redis与Java
    JSP公用COMMON文件
    eclipse远程调试Tomcat方法[转]
  • 原文地址:https://www.cnblogs.com/cyq1162/p/10895484.html
Copyright © 2011-2022 走看看