Client 端程式
概述
在 Agentflow 中,Client 端的腳本主要是在電子表單設計師中撰寫的。這些腳本用於控制表單的行為,通過與窗體組件的交互來實現各種業務邏輯。
窗體組件與方法概述
電子表單設計師提供了多種窗體組件,每種組件都支持不同的方法來觸發腳本。以下是常見窗體組件及其對應方法的介紹:
方法/對象 | action | item | ValueChanged | change | editingStopped |
---|---|---|---|---|---|
TextField | ◎ | ||||
CheckBox | ◎ | ||||
Button | ◎ | ◎ | ◎ | ||
RadioButton | ◎ | ◎ | |||
ComboBox | ◎ | ◎ | |||
List | ◎ | ◎ | |||
Table | ◎ | ◎ | |||
LayerPane |
LayerPane 特有的方法:preAction
、postAction
、okAction
、openFormAction
、closeFormAction
執行順序分別為:preAction -> openFormAction -> okAction -> closeFormAction -> postAction
方法解釋
方法名稱 | 解釋 |
---|---|
preAction |
開啟窗體時執行,主要是設置表單域預設值,可以依據窗體不同的狀態給予不同的執行行為。 |
postAction |
填寫窗體後按完成鍵時執行,可以依據窗體不同的狀態給予不同的執行行為。 |
okAction |
編輯窗體按完成鍵時執行,主要用來檢查字段數據是否符合結束條件。 |
openFormAction |
開啟窗體時執行。不過執行的次數不止一次,暫停後重新開啟也會執行。 |
closeFormAction |
關閉窗體時執行。不過執行的次數不止一次,暫停或是完成工作都會執行。 |
action |
在 TextField 中按 Enter 後執行,在其他的表單對象中則是 click (點擊)後執行。 |
Item |
若在對象中點選的數據改變,就會執行其中的 script。 |
valueChanged |
若在對象中點選該行的數據改變,就會執行其中的 script。 |
editingStopped |
在 Table 對象某一 cell 編輯結束後,就會執行其中的 script。 |
change |
若對象的狀態改變,就會執行其中的 script。 |
注意: 為了防止使用者第一次打開時關閉頁面而不保存,建議將 preAction
的內容全部改寫在 openFormAction
中。
LayerPane 組件方法的特殊性
LayerPane 組件提供了更強大的流程控制能力,允許您根據不同的流程狀態執行特定的腳本操作。這些狀態對應於流程中的文件狀態名稱。
例子 1: 使用 LayerPane 的 openFormAction 方法
以下是如何在 LayerPane 的 openFormAction
方法中初始化表單的例子:
{初始化: var task = Form.getCurrentTask(); var mID = task.getRealExecutor(); // 發送表單者的員工 ID var member = Client.getMemberByID(mID); // 獲取發送表單者的名字 Form.setValue("Name", member.getName()); // 填寫表單的 "Name" 欄位 var sRoleID = task.getRoleID(); // 獲取發送表單者的部門 ID var sRoleName = Client.getRole(sRoleID).getName(); // 獲取部門名稱 Form.setValue("Post", sRoleName); var sDepID = task.getDepartmentID(); // 獲取職務 ID var sDepName = Client.getDepartment(sDepID).getName(); // 獲取職務名稱 Form.setValue("Department", sDepName); }
在這個例子中,我們根據當前任務的上下文(如發送表單者的 ID、部門 ID、職務 ID 等)來初始化表單字段。
例子 2: 使用 LayerPane 的條件執行
LayerPane 還可以根據不同的流程狀態執行不同的腳本。例如:
{主管同意: var manager = Form.getValue("主管姓名"); // 執行與主管同意相關的邏輯 }
這裡的腳本只有在表單處於 “主管同意” 狀態時才會執行。
注意事項
為了防止使用者在首次打開表單時未保存就關閉頁面,建議將 preAction
的內容移至 openFormAction
中,確保所有初始化操作在表單每次打開時都能正確執行。