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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM