PASEartInstance 物件
一個窗體的實例 (instance) 對象,亦即正在執行或是歷史窗體的對象。
完整屬性及方法
回傳值/對象 | 函式 (數據型態 參數) | 說明 |
---|---|---|
String | getID() | 取得窗體實例編號 |
String | getMyID() | 取得窗體實例流水號 |
String | getName() | 取得窗體名稱 |
String | getTaskNote() | 取得窗體編號 |
PASEartState | getArtState() | 取得窗體實例目前狀態 |
String | getAppValue(String key) | 取得窗體實例中某個欄位數據 |
HashMap | getAppDataMap() | 取得窗體實例的所有欄位數據 |
流程數據對象使用範例
var task = Form.getCurrentTask(); // 先取得目前的 Task 對象 var mbrID = task.getMemberID(); // 取得執行此工作的員工編號 var aInstance = task.getArtInstance(); // 從 task 對象取得目前的窗體實例對象 aInstance // 若窗體中有一欄位「姓名」,即可以 getAppValue(欄位名) 取得欄位數據 var name = aInstance.getAppValue("姓名"); var price = aInstance.getAppValue("金額"); var state = aInstance.getArtState().getName(); // 回傳如:"初始化"
範例:取得窗體流水號
在流程設計師的【文件設置】的【文件信息設置】中,可以設置窗體流水號的編碼原則,在每張窗體開啟時即給予唯一的流水號,但系統無法自動將流水號放入窗體中,須透過 script 寫入:
var task = Form.getCurrentTask(); var aInstance = task.getArtInstance(); var formID = aInstance.getMyID(); // 回傳經過設置的編碼原則產生之流水號 Form.setValue("流水號", formID);
範例:取得參考窗體的窗體數據
在流程設計時,若在同一個流程中有兩種以上的窗體,較晚執行的窗體即可在「執行時機」中設置參考窗體,將參考窗體設置為較先執行的窗體,而透過 script,即可在窗體中取得參考窗體的數據。
假設一流程由申購人填寫申購單,經主管審核後即交由採購填寫採購單,若希望採購單的數據可以從申購單而來,可以在採購單的 preAction 初始化中撰寫以下 script:
{初始化: var task = Form.getCurrentTask(); // 取得參考窗體的對象集合 refArtSet,為一 Vector 對象,若在執行時機僅設置申購單,則 Vector 對象僅存一筆數據 var refArtSet = task.getRefArtifactList(); if (refArtSet.size() > 0){ var refArt = refArtSet.get(0); // 取得申購單對象 var price = refArt.get("金額"); // 取得申購單中欄位「金額」的數據 var amount = refArt.get("數量"); // 取得申購單中欄位「數量」的數據 Form.setValue("金額", price); Form.setValue("數量", amount); } }