第十四章 PROC處理程序實作第十四章 PROC處理程序實作\14-2 以PROC設計自動起單

14-2 PROC設計自動起單

 

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的陣列為循環,如果rows10筆資料,就會循環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並不需要傳遞參數,所以 [參數] 不用設定;[模式] 可以選每月/每周/每天/間隔,這裡選擇每天執行;[時間] 則代表甚麼時候要執行,可以設定一個或多個時段來執行。

存檔之後,不用等到上面所設定的時間到了才可以驗證,可以透過下圖的【測試】功能即可驗證結果,如果設定沒有錯誤,即可自動呈送未審的出貨單,如下的上呈成功的訊息。


 

Top of Page