PROC可以配合EEPCloud的工作流程,進行自動起單的動作(系統自動呈送表單,啟動工作流程)。我們就以 [出貨申請流程]為例,來設計自動起單,PROC的設計內容如下:
通常 [出貨申請]都是透過使用者以 [出貨單]輸入的方式來啟動流程,但如果出貨單的資料是透過介接或轉入而來的單據,就無法由使用者輸入方式呈送,此時就需要以PROC來進行自動化呈送。設計步驟如下:
Step1>新增一個PROC,命名為"啟動出貨流程",並在[開始] 中設定一個ret 變數,此變數用來傳回呈送流程的結果或錯誤訊息。
Step2>拖入一個[sql查詢]活動,Title設定為"查詢未審核出貨單"並設定CommandText如下:
SELECT 出貨單.* FROM 出貨單 where
FlowFlag='' AND 出貨日期
此代表取出FlowFlag為空白的出貨單資料,代表該資料是透過介接或其他系統轉入的資料。
Var設定為"Row",代表取出的資料將存到這個變數上。因為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的欄位),這裡可選擇"出貨單號"這個欄位。
RowVar: 指要觸發工作流程的資料來源,請選擇一個變數(內有一筆資料),這裡選擇Row變數。
MessageVar: 觸發工作流程後,成功會傳回的傳送給下個對象的訊息,失敗也會有錯誤訊息,這裡可設定一個變數記錄此訊息。因為[流程觸發]放在循環迴圈中,此變數指會記錄最後一個訊息,如果要紀錄多個訊息,可以用另一個變數進行累加。
Step5>PROC程序,除了使用前端的JS來呼叫執行外,也可以透過【排程設定】來自動定時執行,在EEPCloud中,打開 [工具] / [排程設定],並按下【新增】來增加一個排程,如下:
接著,如下畫面,設定[名稱]為"自動觸發出貨申請流程",[程序]則可以開窗選擇,排程可以選擇PROC或是Server Method,這裡選擇PROC裡的"啟動出貨流程";因為這個PROC並不需要傳遞參數,所以[參數]不用設定;[模式]可以選每月/每周/每天/間隔,這裡選擇每天執行;[時間]則代表甚麼時候要執行,可以設定一個或多個時段來執行。
存檔之後,不用等到上面所設定的時間到了才可以驗證,可以透過下圖的【測試】功能即可驗證結果,如果設定沒有錯誤,即可自動呈送未審的出貨單,如下的上呈成功的訊息。
Related Topics