封裝業務流程(PBP)
一、功能概述
封裝業務流程(Packed Business Process),簡稱PBP,是一種特殊類型的工作流,可用於設定帶有節點的一系列操作,也可由其他具有定義的輸入參數的工作流呼叫。封裝的業務流程中的執行結果也可以透過輸出參數供外部工作流使用。
同時,封裝後的業務流程也會自動產生一組API,對應外部系統定義的輸入輸出參數。有了工作表和工作流,再加上打包的業務流程的API,實際上企業就擁有了一個靈活的API中心,實現了可組合的架構師。
封裝業務流程(PBP)的概念來自於Gartner所提出的封裝業務能力(PBC)架構。與經典的PBC概念不同,PBP這樣的可組合應用架構不依賴原生的前後端分離加微服務的開發流程,無需程式碼即可實現。

二、特點和價值
- 沒有特定的資料來源,由定義的輸入參數觸發。
- 它可以被組織中的所有工作流呼叫。
- 具備與外部系統的API能力,實現業務流程的自由組合。
三、範例介紹
1. 可複用的通用業務處理能力
1.1 更新庫存
庫存更新涉及多種場景,如銷售、出庫、採購、退貨、在庫等。因此,您可以設定一個封裝好的業務流程來做到這一點,透過銷售與出庫、採購與入庫的工作流傳入對應的參數,就可以完成庫存更新,而無需編寫以下邏輯:再次更新每個工作流的庫存。
1.2 取得電話號碼歸屬地
有些工作表資料了手機號碼,例如通訊錄、員工管理工作表等,你需要知道手機號碼屬於哪裡。您可以透過Webhook節點呼叫第三方服務取得手機號碼並返回地點。像這樣透過Webhook或程式碼區塊實現的通用資料處理能力,理想情況下設定為打包的業務流程,供所有工作流呼叫。
2. 多種業務物件API接口服務
2.1 透過外部系統API查詢多個工作表的資料
例如外部系統需要查詢訂單資料,包括:
- 訂單工作表中的資料(訂單名稱、金額、付款日期)
- 訂單詳細資料工作表中的資料(產品名稱、數量、單價、小計)
如果透過工作表API查詢資料,需要呼叫兩次API,回傳的結果欄位較多,不可能只傳回必填欄位。同時,查詢狀態的提醒無法自訂。
如果選擇封 裝業務流程的API,只需要傳入訂單號,觸發流程後會透過查詢資料節點逐級查詢訂單和明細資料,並自訂分行查詢狀態根據不同的查詢結果,最終透過輸出參數傳回。
3. 標準規範的業務流程
3.1 支付流程統一管理
如果企業需要對支付流程進行統一、規範的管理,那麼非常適合透過PBP來管理支付流程。例如,支付申請或報銷申請審核通過後,進入支付流程(PBP),支付完成並上傳支付憑證後,再寫回支付申請。
3.2 新進員工入職流程
根據員工所屬部門、職位,自動向員工發送員工手冊、申領物品清單,維運人員根據郵箱或手機號碼為其開設軟體帳號等。將以上設定為打包的業務流程,有助於流程規範化。
4. 應用首頁
情境:設備維修後,維修人員可以點擊自訂頁面中的按鈕開始掃碼,掃描設備碼並觸發PBP,PBP將根據掃碼的設備資訊查詢相關設備和維護工單。 。
設定舉例
透過以下幾個範例了解有關 PBP 的更多詳細資訊:
四、範例:利用封裝業務流程實現庫存更新,供相關出入庫業務流程調用
1. 整理PBP四要素
在設定流程之前,我們需要先整理PBP所需的四個要素。
-
輸入參數
更新庫存時,您需要知道更新的物件和數量,以及在庫或在庫外。所以需要產品ID、是否增加庫存、減庫存、數量,這三個資訊就是需要的參數。
要定義的輸入參數有:産品編號 、出入庫類型和出入庫數量。
如果產品是多倉庫管理的,還需要弄清楚是哪個倉庫,還需要一個輸入參數,倉庫資訊。為快速透過範例進行了解,不會新增此參數。
-
工作流設定
當工作流被觸發時,透過相關節點和操作更新指定產品的庫存。
-
輸出參數
更新庫存時,不需要傳回任何結果,因此不需要定義輸出參數。
-
是否開啟API能力
無需啟用 API 功能,因為它僅在 HAP 平台內可用。
2. 新建封裝業務流程
進入應用的工作流,然後按一下封裝業務流程(PBP)> 建立新封裝業務流程(+Create New PBP) 。

雖然 PBP 可以由組織中所有應用中的工作流調用,但它們仍然在一個應用中進行管理。
3. 定義輸入參數
什麼是參數?簡單來說,就是需要從外部傳遞給你的訊息,但是你需要事先進行約束。
例如名稱和格式,名稱用於區分不同的資訊物件,格式用於確保傳入的內容符合規範。
如果處理時需要某些訊息,可以設定為必填。
同時建議對參數描述進行完整編輯,以便對方在呼叫PBP傳入參數時一目了然。
本例需要定義的參數(名稱、格式、是否必需、 描述)如下:
- 產品 ID(Product ID)、文字、必填、描述
- 出庫/入庫(Type),數量,必填,描述(0為入庫,1為出庫)
- 數量(Quantity)、數量、必填

在流程的觸發歷史資料中,觸發的資料顯示為標題參數。
3.1 支援的輸入參數類型
- 文字
- 數值
- 人員
- 組織角色
- 部門
- 對人員和部門來說,傳遞的是物件,而不是文字。
- 日期時間
- 附件
- 普通陣列和物件陣列
- 對於程式碼區塊輸出的陣列,需要先進行JSON解析,然後才能選擇作為輸入參數。
3.2 陣列結構
-
普通陣列
[“A”,“B”]
-
物件陣列
[{“姓名”:“A”,“年齡”:20},{“姓名”:“B”,“年齡”:30}] -
如果您有 JSON 陣列,可以貼上它來產生參數。

4. 設定工作流的相關節點
庫存更新的邏輯是透過相關節點的設定來實現的。

亮點:如何在節點中使用輸入參數值
尋找商品的庫存資料時,需要使用傳入的商品ID,在【取得單一資料】節點中選擇條件值的輸入參數。

5. 設定輸出參數
我們之前已經整理好了,不需要輸出參數。按一下【輸出參數】節點,然後刪除空白參數並儲存節點。

6. 修改工作流名稱並發佈
- 修改工作流名稱,方便管理,也方便外部流程呼叫。
- 工作 流發佈後才能呼叫。

7. 其他流程如何調用PBP
PBP發佈後,涉及庫存更新的其他工作流可以調用PBP。以下是如何在購買工作流中呼叫 PBP 的範例。
在採購流程中,當您取得多個入庫資料時(【取得多個資料】節點),可以呼叫「更新庫存」PBP。
7.1 新增【呼叫封裝業務流程】節點

7.2 選擇【更新庫存】PBP

7.3 執行方式(執行一次/執行多次)
這與子流節點中的類似。本例中需要更新多個入庫資料的庫存,所以這裡選擇【多次執行】。同時,執行次數應根據多個資料對像中的資料量而定。
由於各個商品的庫存更新不會互相影響,因此可以選擇並行執行。


多次執行PBP可以接收多少行資料
不同設定的執行時間有不同的限制。主要有以下兩個。
-
如果選擇[基於欄位值] ,則依照實際執行次數執行,沒有限制。

-
如果選擇【基於多個資料對像中的資料量】
-
如果 PBP 的任何傳遞參數使用來自多個資料的欄位值,則最多為 100 行。
-
如果 PBP 的傳遞參數均不使用來自多個資料的欄位值,則最多可達 10,000 行。

-
7.4 設定傳遞PBP輸入參數
這裡顯示的參數是PBP中定義的輸入參數。
產品ID和入庫數量是從節點物件中選擇的對應欄位。
因為是入庫流程,所以類型(入庫/出庫)可寫成固定值0。

7.5 發佈和測試
7.6 啟用API功能
此過程無需開啟API能力。
啟用API:

五、範例:通過封裝業務流程實現取得手機號歸屬地的功能,供所有流程調用
1. 整理PBP四個要素
- 輸入參數:電話號碼。
- 工作流設定:取得電話號碼後,為外部服務的API新增【傳送API請求】節點,取得電話號碼歸屬地。
- 輸出參數:輸出所獲得的資訊(縣市、區鄉鎮)。
- 啟用API功能:無需啟用API功能,此功能僅在HAP平台內可用。
2. 創建封裝業務流程
進入應用的工作流模組,然後按一下封裝業務流程(PBP)> 建立新封裝業務流程(+Create New PBP) 。

3. 設定輸入參數
只需定義電話號碼的參數即可。

4. 設定工作流相關節點
本例中,您只需新增【傳送API請求】節點即可取得電話號碼所屬地點。

5. 設定輸出參數
根據您的需要,您可以將地區和城市作為一個參數串聯輸出,也可以直接寫入工作表的「地區/城市」欄位中。

注意地區和城市之間的/,否則不會寫入地區/城市欄位。
6. 修改工作流名稱並發佈

7. 其他工作流調用PBP
例如,在新增潛在聯絡人時觸發的工作流中,會呼叫 PBP 來取得電話號碼所屬的位置。

-
執行方法:由於是查詢新增的聯絡人電話歸屬地,所以執行一次。
-
業務流程執行完畢後,啟動下一個節點
如果後續節點需要使用PBP的輸出參數,一定要勾選,表示等待PBP執行完畢再開始執行後續節點。
-
輸入參數:只需選擇觸發節點中的電話即可。
後續節點如何使用PBP參數

如果您無法選擇PBP的輸出參數,表示您沒有勾選【業務流程完成後,進入下一個節點】。
發佈工作流並進行測試。
六、範例:通過PBP的API接口實現外部系統對訂單資料的查詢
外部系統可依訂單號碼查詢客戶公司、訂單金額、付款日期以及訂單明細(產品名稱、價格、數量、小計)。
1. 整理PBP的四個要素
-
輸入參數
- 只需要一個參數:訂單號碼(文字,必填)。
-
工作流設定
觸發工作流後,透過節點和作業更新指定產品的庫存。
- 【取得單一資料】節點:根據訂單號碼取得對應的訂單。
- 【取得多筆資料】節點:根據訂單資料取得訂單明細。
- [程式碼區塊]節點:將訂單詳細資料轉換為陣列。
-
輸出參數
- 客戶公司(文字)
- 訂單金額(數值)
- 付款日期(文字)
- 訂單詳細資料(陣列)
-
啟用API功能
此PBP是面向外部系統的,因此需要啟用API能力。
2. 創建封裝業務流程
進入應用的工作流,然後按一下封裝業務流程(PBP)> 建立新封裝業務流程(+Create New PBP) 。

3. 設定輸入參數
只需定義一個訂單號碼參數即可。
