Gemini.Workflow 雙子工做流入門教程三:定義流程:流程節點、遷移條件參數配置

簡介:

Gemini.Workflow 雙子工做流,是一套功能強大,使用簡單的工做流,簡稱雙子流,目前配套集成在Aries框架中。後端

下面介紹本篇教程:定義流程:流程節點、遷移條件參數配置。app

1、普通節點介紹:

先介紹這個,是由於普通節點,擁有全部的配置,其它類型的節點(會根據類型,隱藏或減小相應的配置)框架

因此介紹這個,就等於把全部的可配置項都介紹完了。ide

點擊不一樣的地方,右側會出現不一樣的配置項。 spa

下面看普通節點的配置項:設計

流程圖屬性: 

步驟名稱(這個是能夠更改的,在表單上若是想經過API控制節點,通常也是經過節點名稱控制,固然ID也能夠)3d

其它都是默認的便可。code

參與者屬性 

響應方式:(即有多我的能夠參與待辦)

參與者設置,點擊能夠設置: 

能夠指定多種形式的參與者類型。blog

上下級部門角色參與者:這個通常配合自循環節點使用。繼承

若是選擇的是角色類型:還能夠指定是否進一步根據組織部門進行過濾。

組織部門的過濾類型:

在表單頁,也能夠由系統提供的表單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;
        }
    }

遷移條件: 

當下一節點的聚合條件爲:條件聚合時,遷移條件發生做用。

一、指定是否必參與遷移:該分支是否必須到達。

二、分組名:同名即爲一組,同時約束同一組最少到達分支數(若是同一組,即設置了不一樣的到達分支數,默認取第一個)

三、備註,用於描述遷移線的做用,(若是是和業務相關,則由業務表單控制)

如: 

上面的流程中,會根據業務條件決定不一樣的分支,流程圖上只做備註,具體由業務表單控制,示例表單中的代碼以下:

<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

相關文章
相關標籤/搜索