PROC可以配合EEPCloud的工作流程,進行自動起單的動作(系統自動呈送表單,啟動工作流程)。我們就以 [出貨申請流程] 為例,來設計自動起單,PROC的設計內容如下:
通常 [出貨申請] 都是透過使用者以 [出貨單] 輸入的方式來啟動流程,但如果出貨單的資料是透過介接或轉入而來的單據,就無法由使用者輸入方式呈送,此時就需要以PROC來進行自動化呈送。設計步驟如下:
Step1> 新增一個PROC,命名為 "啟動出貨流程",並在 [開始] 設定變數,在Field設定Var
= ret 和 Value = '',然後在 [結束] 中 設定ReturnVar = ret,此變數用來傳回呈送流程的結果或錯誤訊息。
[開始]
[結束]
Step2> 拖入一個 [sql查詢] 活動,Title設定為"查詢未審核出貨單"並設定CommandText如下:
SELECT 出貨單.* FROM 出貨單 where FlowFlag=''
此代表取出FlowFlag為空白的出貨單資料,代表該資料是透過介接或其他系統轉入的資料。
Var設定為"rows",代表取出的資料將存到這個變數上。因為SQL沒用到'@'變數,所以Parameters不用設定。
Step3> 拖入一個 [循環]
活動於 [sql查詢] 下方,如下的屬性設定:
LoopArrayVar: 代表循環的陣列變數,這裡下拉選擇為rows,代表以rows的陣列為循環,如果rows有10筆資料,就會循環10次。
LoopObjVar: 可以指定循環內的一個變數,代表從LoopArrayVar中取出一筆資料(對象)。此設定為row即代表Foreach (var row in rows) 的意思。
Step4> 在循環內拖入一個 [流程觸發]
活動,拖入時須在 [循環] 活動邊框顯示紅色時放開滑鼠即可。如下:
接著設定流程觸發的屬性,如下:
Title: 設定活動的顯示標題,這裡設定為"出貨申請流程觸發"。
FlowName: 指要觸發的工作流程名稱,可以下拉選擇一個已經存在的工作流程,這裡選擇"出貨申請流程"。
FormName: 工作流程所對應的表單,可以下拉選擇一個已經存在的表單名稱,請選擇"出貨單"這個RWD表單。
RemoteName: 可以選擇表單所對應的Server端主表的資料源,請選擇"出貨單.出貨單"。
Keys: 用來設定主資料表的鍵值欄位(工作流需要知道Key的欄位),這裡Title
& Field 都設定為 "出貨單號"
這個欄位。
RowVar: 指要觸發工作流程的資料來源,請選擇一個變數(內有一筆資料),這裡設定row變數。
MessageVar: 觸發工作流程後,成功會傳回的傳送給下個對象的訊息,失敗也會有錯誤訊息,這裡可設定一個變數記錄此訊息。因為
[流程觸發] 放在循環迴圈中,此變數指會記錄最後一個訊息,如果要紀錄多個訊息,可以用另一個變數進行累加。
Step5> PROC程序,除了使用前端的JS來呼叫執行外,也可以透過【排程設定】來自動定時執行,在EEPCloud中,打開 [工具] / [排程設定],並按下【新增】來增加一個排程,如下:
接著,如下畫面,設定 [名稱]
為"自動觸發出貨申請流程",[程序] 則可以開窗選擇,排程可以選擇PROC或是Server Method,這裡選擇 PROC裡的"啟動出貨流程";因為這個PROC並不需要傳遞參數,所以 [參數] 不用設定;[模式] 可以選每月/每周/每天/間隔,這裡選擇每天執行;[時間]
則代表甚麼時候要執行,可以設定一個或多個時段來執行。
存檔之後,不用等到上面所設定的時間到了才可以驗證,可以透過下圖的【測試】功能即可驗證結果,如果設定沒有錯誤,即可自動呈送未審的出貨單,如下的上呈成功的訊息。
Related Topics