封裝業務流程(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. 設定輸入參數
只需定義一個訂單號碼參數即可。
4. 設定工作流相關節點
節點設定如下:
5. 設定輸出參數
定義四個輸出參數。
6. 修改工作流名稱並發佈
7. 啟用API功能
進入【設定】> 【API能力】即可開啟或關閉。
7.1 API請求URL
系統會自動為工作流產生 API請求URL,例如: https://api.nocoly.com/workflow/hooks/******2YzQzNDVlZDM0YzBhNDRiMWU0 可以在請求位址中拼接子路徑,例如介面是用來取得訂單資訊的,可以拼接GetOrderinfo,方便開發者識別,但在實際實作中,仍然只是先前的自動產生有效的一部分。
7.2 請求授權認證
如果選擇【使用應用授權】,呼叫API時需要兩個參數appKey和sign;如果選擇【無需授權】,則不需要這兩個參數。
7.3 定義API中的請求參數(輸入參數)
PBP 中的參數名稱可以是中文以供內部使用,但需要定義別名才能在 API 中供外部系統使用。
- 如果有別名,則API參數中的參數名顯示為別名。
- 如果沒有別名,則顯示為參數名,如果包含中文,使用時可能會出錯。
7.4 選擇響應方式
它支援以下5種響應方式。
若需要向請求位址傳回參數,PBP中不能有【呼叫PBP】、【核准】、【填寫】、【延遲】、【子流程】等不確定的節點處理時間。
7.5 設定響應參數
與設定請求參數類似,支援設定英文名稱和範例值。
7.6 查看API文檔
查看並測試應用中所有可用的 API,包括 PBP 的 API。
提供的範例程式碼可以直接用於測試。
使用程式碼時無需修改appkey和sign 。
七、範例:通過PBP統一管理公司財務支付流程
如果需要對支付流程進行規範管理,例如支付請求或報銷請求被批准後,進入支付PBP,上傳支付憑證,然後寫回支付請求資料。
1. 整理PBP的四個要素
輸入參數
付款時需提供以下資訊:客戶/個人姓名、帳戶資訊、付款日期、金額,查看原始資料還需要原始資料的URL。為了簡單起見,僅需要以下欄位。
付款標題:文字,必填
帳戶資訊:文字,必填
金額:數值,必填
付款日期:文字,必填
原始資料的 URL:文字,必填
另外,建立一個付款工作表來儲存這些訊息,並將上傳的付款憑證寫入此工作表。除了上述參數外,還需要支付憑證的「文件」欄位。
工作流設定
- 根據提供的輸入參數將資料新增至付款工作表。
- 新增【填寫】節點,通知財務人員完成付款並上傳憑證。
輸出參數
由於需要支付憑證等資訊,但傳回參數不支援文件欄位,因此需要傳回一筆資料ID,以便原業務流程定位到這條支付資料並使用憑證欄位。
資料ID:選擇支付資料的資料ID。
啟用API功能
無需啟用。
2. 創建封裝業務流程
進入應用的工作流,然後按一下封裝業務流程(PBP)> 建立新封裝業務流程(+Create New PBP) 。
3. 設定輸入參數
4. 設定工作流相關節點
- 將新資料新增至付款工作表。
- 新增【填寫】節點,用於通知財務人員。
5. 設定輸出參數
輸出支付資料的資料ID。
6. 修改工作流名稱並發佈
工作流只有發佈後才能被外部呼叫。
7. 如何在工作流中呼叫PBP並使用輸出參數
以支付請求的流程為例,當支付請求被批准後,呼叫PBP,經財務人員操作後,自動將憑證資訊寫入請求資料中。
7.1 新增【呼叫PBP】節點
選擇 PBP 並選擇相應的參數欄位。
7.2 通過“取得單筆資料”節點,定位到財務填寫的支付資料
如果無法選擇PBP輸出參數,請勾選【等待業務流程完成後再啟動下一個節點】。
7.3 將憑證資訊寫入付款請求資料
設定完成,您可以提交付款請求進行測試。
八、範例:自定義頁面中點擊按鈕後通過掃描設備碼,自動完成維修工單
1. 整理PBP的四個要素
輸入參數:劃分程式碼、文字、必填。用於辨識設備資料。
工作流設定:透過設備程式碼尋找設備資料和維護工單,並將狀態變更為「正常」或「已完成」。
輸出參數:無需傳回任何資訊。
啟用 API 功能:不需要。
2. 創建封裝業務流程
進入應用的工作流,然後按一下封裝業務流程(PBP)> 建立新封裝業務流程(+Create New PBP) 。
3. 設定輸入參數
為設備程式碼設定一個參數。
4. 設定工作流相關節點
根據業務需求,新增兩個【取得單筆資料】節點來取得設備資料和維護資料,然後新增兩個【更新資料】節點來更新狀態。
5. 設定輸出參數
無需輸出參數,刪除現有參數並儲存。
6. 修改工作流名稱並發佈
工作流需要先發佈,然後才能呼叫。
7. 如何使用自訂頁面中的按鈕呼叫 PBP
進入自訂頁面的設定頁面,設定按鈕。
7.1 選擇按鈕並開始設定相關操作。
7.2 點選按鈕開始掃描程式碼。
也可以直接觸發PBP,但本例需要在呼叫PBP之前開始掃描。
7.3 選擇程式碼類型。
- 這裡以二維碼為例。
7.4 資料連結
- 如果二維碼是資料連結,請選擇“空”。
7.5 其他連結
- 如果二維碼是其他連結,請選擇“空”。
7.6 文字
- 設備程式碼是一串文字,選擇識別設備程式碼然後呼叫PBP。
7.7 選擇 PBP。
7.8 選擇輸入參數的值,即掃描結果。
儲存設定並點擊按鈕進行測試。
文檔問題反饋
文檔中是否有錯字、內容過期、難以理解等問題? 點此給我們反饋吧