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

原文地址:https://www.cnblogs.com/cyq1162/p/10895484.html

时间: 2024-10-12 05:02:41

Gemini.Workflow 双子工作流入门教程三:定义流程:流程节点、迁移条件参数配置的相关文章

Gemini.Workflow 双子工作流入门教程四:流程应用

简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:定义流程:流程应用. 流程应用: 流程图设计好后,将下来就是创建一个流程应用: 点击添加: 起好应用名称,和别名,并在弹窗中选择流程定义: 同时设置好业务表单所在的路径: 系统是以Iframe的方式加载的表单,所以只支持页面类型. 权限设置与说明: 如果需要限制应用只能被某些角色使用,可以选择允许的角色(默认是所有拥有发起工单权限的角色都可以).

Gemini.Workflow 双子工作流入门教程一:定义流程:流程图属性

简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:流程定义:流程图属性. 步骤一:在流程管理的流程定义中,新增流程 步骤二:设置流程图属性,控制总开关: 流程图右侧,有些属性可以设置,这里设置的是总开头,流程节点有有相应的设置,只有满足总开关和流程节点同时打开,开关才有效. 下面介绍属性控制的地方: 1.是否显示流程图: 在流程办理界面中,右上角有个“查看流程图”按钮. 点击的话可以看到: 2.其

Gemini.Workflow 双子工作流正式上线(支持.NET Core)

接触工作流: 最早接触工作流,是在04年左右,那年,我创造了 Aries 框架的前身第一版框架,另一个同事,创造了工作流的第一版框架. 只是那时候,我并未参与工作流的核心设计,仅仅是帮写了个流程设计器,就是下图这个怀旧的样子: 然后提供一些(撤回.退回)回收算法的意见. 并提供:CYQ.Data 的源码作为底层数据层,那时候还没开源 CYQ.Data. 悲催的是,同事拿到 CYQ.Data 框架的源码,却把它打散了,没用MAction,只用MProc,并来了个二次封装,把sql语句搞了一堆配置的

jQuery 入门教程(三): Selectors

jQuery Selector 是jQuery库中非常重要的一个组成部分. jQuery Selector 用来选择某个HTML元素,其基本语句和CSS的选择器(Selector)是一样的,所有jQuery selector 都是以$()开始. 选择HTML标记 选择某个HTML元素的方法是直接使用该元素的标记名称,比如选择所有<p>元素 $("p") 下面的例子当用户点击一个按钮时,隐藏所有的<p>元素 $(document).ready(function()

PySide——Python图形化界面入门教程(三)

PySide——Python图形化界面入门教程(三) ——使用内建新号和槽 ——Using Built-In Signals and Slots 上一个教程中,我们学习了如何创建和建立交互widgets,以及将他们布局的两种不同的方法.今天我们继续讨论Python/Qt应用响应用户触发的事件:信号和槽. 当用户执行一个动作——点击按钮,选择组合框的值,在文本框中打字——这个widget就会发出一个信号.这个信号自己什么都不做,它必须和槽连接起来才行.槽是一个接受信号的执行动作的对象. 连接内建P

Elasticsearch入门教程(三):Elasticsearch索引&amp;映射

原文:Elasticsearch入门教程(三):Elasticsearch索引&映射 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbirdbest/article/details/79213163 索引概念简介 通常说的索引有两种词性,名称和动词. 动词索引indexing,索引一个文档,表示把一个文档存储到索引Index里,可以用来查询和检索,es采用倒排索引 名词索引index,

BootStrap入门教程 (三)

上讲回顾:Bootstrap的基础CSS(Base CSS)提供了优雅,一致的多种基础Html页面要素,包括排版,表格,表单,按钮等,能够满足前端工程师的基本要素需求. Bootstrap作为完整的前端工具集,内建了大量的强大优雅可重用的组件,包括按钮(Button),导航(Navigation),标签(Labels),徽章(Badges),排版(Typography),缩略图( thumbnails),提醒(Alert),进度条(progress bar),杂项(Miscellaneous).

无废话ExtJs 入门教程三[窗体:Window组件]

无废话ExtJs 入门教程三[窗体:Window组件] extjs技术交流,欢迎加群(201926085) 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/19

Git的入门教程&lt;三&gt;

Git 的入门教程<三> 4> git远程仓库的使用 续之前的(http://blog.csdn.net/xuheazx/article/details/43229781) 4.2 git远程服务器的搭建 我目前的服务器版本: Linux hehe.xu 2.6.32-358.el6.i686 #1 SMP Thu Feb 21 21:50:49 UTC 2013 i686 i686 i386 GNU/Linux 因为是为了做教程,所以采用的是虚拟机来进行搭建git服务器. 4.2.1