UOFX Connector 技術手冊¶
概要¶
UOFX Connector 是用來連接 UOFX 伺服器並取得某種特定資料使用,系統內有各種不同的運行資料,隨著使用更高版本的 UOFX,可以讀取更多支援的資料內容。
對於組織而言,無須開發商的支援,就可以使用基礎的資料,在 PowerBI Desktop 上面執行各種資料運算、統計、報表製作等等靈活的運用。
此份文件旨在說明 UOFX Connector 與 UOFX 伺服器 Public API 之間的通訊內容定義,文件內容隨時會因為 UOFX 版本升級而擴充。
參數與查詢¶
UOFX Connector 所需要的參數有好幾個,只有 SiteUrl 為必填欄位,這是指向 UOFX 站台的資料提供 API 的網址,還有 CompanyCode 大部分的情況為必填,這是公司代碼,也跟連接器的串接金鑰有關。
所有欄位的大概意義列舉如下:
- SiteUrl :
UOFX 站台的 api 站台網址,需先確認 UOFX 伺服器可以正常登入使用 - CompanyCode :
用來區分不同分公司的代號,輸入不同的公司代號,則能取用不同公司的資料,當然你也必須擁有那間公司的管理權限 - ModuleCode :
模組代碼,用來告訴 API 目前將取用的模組 - FeatureType :
功能代碼,用來告訴 API 目前將取用的功能,通常與 ModuleCode 匹配為一組,不同的組別代表執行不同的查詢功能,返回不同的資料集 - DataKey :
資料識別碼,用來告訴 API 資料集的某種特徵,通常用於資料過濾 - DataKey2 :
資料識別碼2,用來告訴 API 資料集的其他特徵,通常用於資料的二次篩選之用 - Status :
狀態碼,較常使用於資料狀態篩選 - StartTime :
開始時間,當資料集有時間特性,有些查詢可以使用此欄位標示資料的開始時間,做為資料篩選 - EndTime :
結束時間,當資料集有時間特性,某些查詢使用此欄位標示資料的結束時間,做為資料篩選之用
當我們需要取得某種查詢的資料,必須仔細選取不同的 ModuleCode 與 FeatureType 組合,藉此定位合適的查詢功能,目前支援的查詢功能與參數搭配如下 :
組織查詢¶
查詢功能 | 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 :
表單狀態
- 簽核中 or Processing => 查詢簽核中的表單
- 已結案 or Completed => 查詢已結案的表單
- 同意 or Approve => 查詢簽核結果為同意的表單
- 否決 or Reject => 查詢簽核結果為否決的表單
- 作廢 or Cancel => 查詢簽核結果為作廢的表單
- 異常 or Exception => 查詢流程異常的表單
- [EMPTY] => 查詢所有狀態的表單
- StartTime :
- [EMPTY] => 不過濾申請時間
- [StartTime] => 取得申請時間在 [StartTime] 之後(含)的表單資料
- EndTime :
- [EMPTY] => 不過濾申請時間
- [EndTime] => 取得申請時間在 [EndTime] 之前(含)的表單資料
Query Result Table Schema¶
- 表單編號 :
- 表單的編號,每一張表單流程啟動的唯一編號,每張表單一定會有這個欄位
- _Ver :
- 表單版本,不同的表單都可以擁有不同的版本,表單內容是依附在不同的表單版本之下。
- _Applicant :
- 申請者,申請表單人員的在系統中設定的名稱
- _ApplicationDate :
- 申請時間,申請表單的時間
- _State :
表單狀態,根據流程進行的程度,表單狀態會有所不同,其列舉如下 :- 簽核中 => 表單流程還在進行中,尚未結案
- 同意 => 表單流程已結束,簽核結果為同意
- 否決 => 表單流程已結束,簽核結果為否決
- 作廢 => 表單流程已結束,簽核結果為作廢
- 異常 => 表單發生異常,需要管理者介入處理
- 其他表單欄位...
- 除了表單編號的其他欄位,會排列在以上的欄位後面顯示出來
Note
工作流程(BPM) 的查詢功能會將表單轉成資料表的形式,如果有一張表單如下 :
使用 UOFX 連接器將會得到以下的兩個資料表 :
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 ,這些不存在於表單的欄位, 是從流程本身的屬性所擷取出來,讓使用者可以識別每一個流程之用,因為欄位名稱不能重複,所以設計表單時必須排除這些名稱。
- 連接器所查詢到的資料表規格,是最新已公開版本的表單內容,其他較舊的表單版本內容只要欄位名稱相同,也會被擷取出來。