跳轉到

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

President (PRES)
├── Administration (ADMIN)
├── Secretarial Pool (SECPOOL)
└── HR Department (HR)

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

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 台北到高雄

BusinessTrip_Spent

Note
當表單有明細欄位時,我們將會得到一個額外的資料表,其名稱為 [表單名稱]_[明細欄位] ,其內容只包含明細欄位的內容,以這個例子來說,明細欄位的資料表名稱就是 BusinessTrip + _Spent

注意事項

  • 連接器查詢表單的時候會將結果轉成資料表,系統只會取出第一個同名表單,所以在設計表單的時候,盡量排除同名的情況, 對於同一張表單的欄位,也不允許同名的情況,其他的同名欄位將被忽略。
  • 連接器查詢表單時,系統會在資料表中額外產生這些欄位 : _Ver,_Applicant,_ApplicationDate,_State ,這些不存在於表單的欄位, 是從流程本身的屬性所擷取出來,讓使用者可以識別每一個流程之用,因為欄位名稱不能重複,所以設計表單時必須排除這些名稱。
  • 連接器所查詢到的資料表規格,是最新已公開版本的表單內容,其他較舊的表單版本內容只要欄位名稱相同,也會被擷取出來。