U-Office Force X 連接器技術手冊¶
概要¶
U-Office Force X 連接器是用來連接 UOF X 伺服器並取得某種特定資料使用,系統內有各種不同的運行資料,隨著使用更高版本的 UOF X,可以讀取更多支援的資料內容。
對於組織而言,無須開發商的支援,利用連接器就可直接使用 UOF X 提供的基礎資料,讓報表維護者自行設計組織專用的報表,搭配各種豐富的資料展示元件,完成以往曠日廢時難以達成的任務。
此份文件旨在說明 U-Office Force X 連接器與 UOF X 伺服器 Public API 之間的通訊內容定義,文件內容隨時會因為 UOF X 版本升級而擴充。
參數與查詢¶
連接器需要輸入一些參數才能正確的取出特定的資料,根據不同的 ModuleCode 對應到系統的不同模組,每個模組需要輸入的參數略有不同,返回的資料也都不一樣。
所有參數列舉如下:
- SiteUrl :
UOF X 站台的 api 站台網址,需先確認 UOF X 站台可以正常登入使用 - CompanyCode :
用來區分不同分公司的代號,輸入不同的公司代號,則能取用不同公司的資料,當然你也必須擁有那間公司的管理權限 - ModuleCode :
模組代碼,用來告訴 API 目前將取用的模組 - FeatureType :
功能代碼,用來告訴 API 目前將取用的功能,通常與 ModuleCode 匹配為一組,不同的組別代表執行不同的查詢功能,返回不同的資料集 - DataKey :
資料識別碼,用來告訴 API 資料集的某種特徵,通常用於資料過濾 - DataKey2 :
資料識別碼2,用來告訴 API 資料集的其他特徵,通常用於資料的二次篩選之用 - Status :
狀態碼,較常使用於資料狀態篩選 - StartTime :
開始時間,當資料集有時間特性,有些查詢可以使用此欄位標示資料的開始時間,做為資料篩選 - EndTime :
結束時間,當資料集有時間特性,某些查詢使用此欄位標示資料的結束時間,做為資料篩選之用 - RequestHeaderName1 :
呼叫時,一併送出的 Request 自訂表頭1 的名稱,通常用來通過特定防火牆之用 - RequestHeaderValue1 :
呼叫時,一併送出的 Request 自訂表頭1 的內容,通常用來通過特定防火牆之用 - RequestHeaderName2 :
呼叫時,一併送出的 Request 自訂表頭2 的名稱,通常用來通過特定防火牆之用 - RequestHeaderValue2 :
呼叫時,一併送出的 Request 自訂表頭2 的內容,通常用來通過特定防火牆之用
當我們需要取得某種查詢的資料,必須仔細選取不同的 ModuleCode 與 FeatureType 組合,藉此定位合適的查詢功能,目前支援的查詢功能與參數搭配如下 :
組織查詢¶
輸入欄位說明¶
- ModuleCode :
- 請輸入
org
- 請輸入
- FeatureType :
- 查詢部門資料,請輸入
department - 查詢人員資料,請輸入
employee - 查詢部門與人員資料全部資料,無須輸入值
- 查詢部門資料,請輸入
- DataKey :
- 若FeatureType 沒有輸入值,即表示查詢部門與人員資料,無須輸入值
- 若FeatureType =
department,請輸入你所要取得部門的 [部門代號] - 若FeatureType =
employee,請輸入你所要取得人員的 [帳號]
- DataKey2 :
- 未使用,無須輸入值
- Status : 帳號狀態
- 若FeatureType 沒有輸入值,即表示查詢所有人員資料,無須輸入值
- 若FeatureType =
department,查詢 啟用 部門,請輸入1;查詢 停用 部門請輸入0 - 若FeatureType =
employee,查詢 啟用 帳號,請輸入1;查詢 停用 帳號請輸入0
- StartTime : 建檔日期
- 不過濾建檔日期,無須輸入值
- 取得申請時間在 [StartTime] 之後(含)的表單資料,請輸入[StartTime]
- EndTime :
- 不過濾申請時間,無須輸入值
- 取得申請時間在 [EndTime] 之前(含)的表單資料,請輸入[EndTime]
| 查詢功能 | ModuleCode | FeatureType | DataKey | DataKey2 | Status | StartTime | EndTime | 查詢結果 |
|---|---|---|---|---|---|---|---|---|
| 查詢所有部門與員工資訊 | org | [EMPTY] | [EMPTY] | [EMPTY] | [EMPTY] | [EMPTY] | [EMPTY] | department,employee |
| 查詢部門資訊 | org | [EMPTY] department |
[EMPTY] [departmentCode] |
[EMPTY] | [EMPTY] 0 => Disabled 1 => Enabled |
[EMPTY] [StartTime] |
[EMPTY] [EndTime] |
department |
| 查詢員工資訊 | org | [EMPTY] employee |
[EMPTY] [employeeCode] |
[EMPTY] | [EMPTY] 0 => Disabled 1 => Enabled |
[EMPTY] [StartTime] |
[EMPTY] [EndTime] |
employee |
Note
上述資料,標示為 [EMPTY] 代表為空字串,意義為不過濾欄位內容的意思Note
[StartTime] 與 [EndTime] 為 DateTime 的形式,其格式為yyyy/MM/dd HH:mm:ss(Ex: 2024/10/15 15:30:52)
Department Table Schema¶
- Parent Code :
上層部門代碼 - Department Code :
部門代號,此欄位為單一分公司內的唯一值 - Department Name :
部門名稱 - Department Status :
部門的啟用狀態,1 代表啟用,0 代表已停用 - Remark :
備註
【 Department Table Example 】
| Parent Code | Department Code | Department Name | Department Status | Remark |
|---|---|---|---|---|
| PRES | President | 1 | 總經理室 | |
| PRES | ADMIN | Administration | 1 | 行政部 |
| PRES | SECPOOL | Secretarial Pool | 1 | 秘書室 |
| PRES | HR | HR Department | 1 | 人力資源部 |
【 Structure diagram 】
Employee Table Schema¶
- Account :
帳號 - Name :
員工名稱 - Department Code :
所隸屬的部門代碼 - Status :
員工資料的啟用狀態,1 代表啟用,0 代表停用
【 Employee Table Example 】
| Account | Name | Department Code | Status |
|---|---|---|---|
| Johnny | Johnny | HR | 1 |
| Amy | Amy | HR | 1 |
| Kevin | Kevin | ADMIN | 1 |
| Sophia | Sophia | ADMIN | 1 |
| Candy | Candy | SECPOOL | 1 |
| Robert | Robert | PRES | 1 |
【 Structure diagram 】
President (PRES)
└── Robert
Administration (ADMIN)
├── Kevin
└── Sophia
Secretarial Pool (SECPOOL)
└── Candy
HR Department (HR)
├── Johnny
└── Amy
表單查詢¶
輸入欄位說明¶
- ModuleCode :
- 請輸入
bpm
- 請輸入
- FeatureType :
- [Empty] 未使用
- DataKey :
- [Empty] 未使用
- DataKey2 :
- [EMPTY] 未使用
- Status :表單狀態
- 查詢 簽核中 的表單,請輸入
簽核中orProcessing - 查詢 已結案 的表單,請輸入
已結案orCompleted - 查詢簽核結果為 同意 的表單,請輸入
同意orApprove - 查詢簽核結果為 否決 的表單,請輸入
否決orReject - 查詢簽核結果為 作廢 的表單,請輸入
作廢orCancel - 查詢流程 異常 的表單,請輸入
異常orException - 查詢所有狀態的表單,無須輸入值
- 查詢 簽核中 的表單,請輸入
- StartTime :
- 不過濾申請時間,無須輸入值
- 取得申請時間在 [StartTime] 之後(含)的表單資料,請將[StartTime] 以日期格式寫入
yyyy/MM/dd HH:mm:ss(Ex: 2024/10/15 15:30:52)
- EndTime :
- 不過濾申請時間,無須輸入值
- 取得申請時間在 [EndTime] 之前(含)的表單資料,請輸入[EndTime] 以日期格式寫入
yyyy/MM/dd HH:mm:ss(Ex: 2024/10/31 15:30:52)
- EndTime :
Query Result Table Schema¶
- 表單編號 :
- 表單的編號,每一張表單流程啟動的唯一編號,每張表單一定會有這個欄位
- _Ver :
- 表單版本,不同的表單都可以擁有不同的版本,表單內容是依附在不同的表單版本之下。
- _Applicant :
- 申請者,申請表單人員的在系統中設定的名稱
- _ApplicationDate :
- 申請時間,申請表單的時間
- _State :
表單狀態,根據流程進行的程度,表單狀態會有所不同,其列舉如下 :- 簽核中 => 表單流程還在進行中,尚未結案
- 同意 => 表單流程已結束,簽核結果為同意
- 否決 => 表單流程已結束,簽核結果為否決
- 作廢 => 表單流程已結束,簽核結果為作廢
- 異常 => 表單發生異常,需要管理者介入處理
- 其他表單欄位...
- 除了表單編號的其他欄位,會排列在以上的欄位後面顯示出來
Note
工作流程(BPM) 的查詢功能會將表單轉成資料表的形式,如果有一張表單如下 :
使用 UOF X 連接器將會得到以下的兩個資料表 :
BusinessTrip:
| 表單編號 | _Ver | _Applicant | _ApplicationDate | _State | OccurrenceDate | Objective | Remark | Spent |
|---|---|---|---|---|---|---|---|---|
| 2502000007 | 1 | User1 | 2025/½ 10:21 | 同意 | 2025/½ | 參加AI教育訓練 |
BusinessTrip_Spent:
| 表單編號 | _Ver | _Applicant | _ApplicationDate | _State | SpentItem | Cost | Description |
|---|---|---|---|---|---|---|---|
| 2502000007 | 1 | User1 | 2025/½ 10:21 | 同意 | 搭高鐵 | 1200 | 高雄到台北 |
| 2502000007 | 1 | User1 | 2025/½ 10:21 | 同意 | 計程車 | 250 | 台北車站到會場 |
| 2502000007 | 1 | User1 | 2025/½ 10:21 | 同意 | 捷運 | 100 | 會場到車站 |
| 2502000007 | 1 | User1 | 2025/½ 10:21 | 同意 | 搭高鐵 | 1200 | 台北到高雄 |
Note
當表單有明細欄位時,我們將會得到一個額外的資料表,其名稱為 [表單名稱]_[明細欄位] ,其內容只包含明細欄位的內容,以這個例子來說,明細欄位的資料表名稱就是 BusinessTrip + _Spent
注意事項¶
- 連接器查詢表單的時候會將結果轉成資料表,系統只會取出第一個同名表單,所以在設計表單的時候,盡量排除同名的情況, 對於同一張表單的欄位,也不允許同名的情況,其他的同名欄位將被忽略。
- 連接器查詢表單時,系統會在資料表中額外產生這些欄位 : _Ver,_Applicant,_ApplicationDate,_State ,這些不存在於表單的欄位, 是從流程本身的屬性所擷取出來,讓使用者可以識別每一個流程之用,因為欄位名稱不能重複,所以設計表單時必須排除這些名稱。
- 連接器所查詢到的資料表規格,是最新已公開版本的表單內容,其他較舊的表單版本內容只要欄位名稱相同,也會被擷取出來。
