动态

详情 返回 返回

企業信息化目睹之怪現狀 - 低代碼實現串行流程 - 动态 详情

串行流程

串行流程屬於業務中比較簡單的場景,直線審批到底。

實現一個IT報修的流程,包含節點:1、直接負責人審批;2、IT人員修復(審批)

創建模板

創建一個名為itrepair的申請模板,填寫的流程編碼默認作為申請單號的前綴,如:itrepair-20220210-0001,點創建,進入下一步

流程定義

模型定義

點配置模型,填寫模型標識(表名)、描述;點添加數據增加模型字段,默認自帶的3個字段不能修改,

字段ID(字段名)、描述、是否必填(表單提交時驗證);點擊保存數據,該流程的關聯的模型創建成功。

可增加多個模型,完成後點下一步進入表單設計。

模型定義1

模型定義2

表單設計

點配置表單,填寫表單標識:itApply(表單名)、描述;選擇表單上需要顯示的按鈕(申請有:保存、提交;審批有:同意、拒絕、前加簽、轉派、協辦等),

點保存並設計表單,會創建這個表單並跳轉到表單設計器,加入控件並綁定模型字段到控件,保存後能在流程中使用

表單設計1

表單設計2

佈局,控件綁定字段(必填項必須有對應控件,字段不能重複綁定);高級控件設置數據源,見控件API

控件配置:

申請單號:IT報修主表/申請單編號 (數據接口 http://101.43.138.169:8880/api/common/billcode_gen/itrepair)
申請人:IT報修主表/申請人ID (數據接口 http://101.43.138.169:8880/api/user)
所在部門:IT報修主表/所在部門編碼 (數據接口 http://101.43.138.169:8880/api/user_dept_select)
手機:IT報修主表/報修人電話
工位位置:IT報修主表/報修人座位
問題描述:IT報修主表/問題

表單設計3

表單設計4

點擊保存,(以上是創建申請單,照此步驟原樣再創建一個itApprove的表單,選擇同意、拒絕按鈕供審批使用)點下一步進入流程設計

流程設計

點編輯流程圖跳轉到流程設計器頁面,開始畫流程圖:

1、必須有開始、結束節點; 2、開始節點一般會連接一個自動提交的任務節點; 3、綁定任務節點上的表單(上一步創建的); 4、編寫候選人腳本,返回候選人(之後的腳本都類似,可以封裝公共腳本或者拷貝現有的); 5、可以構造測試數據,點BUG按鈕測試返回的字符串(腳本目的是返回審批人ID),確認無誤後保存腳本;

設計完成後點擊保存流程圖。

流程設計1

流程設計2 - 步驟2

流程設計3 - 新增直接負責人腳本

流程設計4 - 編寫直接負責人腳本

assigneeDriectLeader_v1.0腳本內容:
let TaskCall=fn(ctx){
    let dept=ctx["args"]["fm_itrepair_info$dept_code"]
    let db=DbOpen(UC_DB_CONN_SELF);
    let rows=db.select("select * from ou_user_dept_post udp left join ou_post_info pi on udp.post_code=pi.code where pi.flag='leader' and dept_id=?",dept);
    if(type(rows)=="ERROR"){
        return "";
    }else{
        if(ctx["creator"] == rows[0]["user_id"].tostring()){
            let rows=db.select("select * from ou_user_dept_post udp left join ou_post_info pi on udp.post_code=pi.code where pi.flag='leader' and dept_id=(select parent_id from ou_dept_info where id=?)",dept);
            return rows[0]["user_id"].tostring();
        }else{
            return rows[0]["user_id"].tostring();
        }
    }
}

測試數據
{"creator":"7","args":{"fm_itrepair_info$dept_code":"7"}}

注:任務候選人腳本約定説明參考候選人腳本約定

流程設計5 - 創建IT操作員腳本

流程設計6 - 編寫IT操作員腳本

流程設計7

assigneeItOperator_v1.0腳本內容:
let TaskCall=fn(ctx){
    let db=DbOpen(UC_DB_CONN_SELF);
    let rows=db.select("select * from ou_user_dept_post udp left join ou_post_info pi on udp.post_code=pi.code where pi.flag='it'");
    if(type(rows)=="ERROR"){
        return "";
    }else{
        return rows[0]["user_id"].tostring();
    }
}

測試數據
{}

注:任務候選人腳本約定説明參考候選人腳本約定

發佈流程

表單、流程審計完成後點擊發布流程,流程將以新版本發佈,itrepair就能在流程申請中可用了。

流程設計8

流程設計9

Add a new 评论

Some HTML is okay.