封裝業務流程(PBP)
功能概述
封裝業務流程,簡稱PBP (Packaged Business Process)是一種特殊的工作流,可以用工作流節點能力編排動作序列,還可以通過定義輸入參數,讓其他流程調用。如果需要使用封裝業務流程中的執行結果,也可以通過輸齣參數,供外部流程使用。
同時,封裝業務流程還會自動生成一套API接口,和定義的輸入和輸齣參數完全對應,供外部係統調用。結閤工作錶和工作流能力,再加上封裝業務流程的API能力,事實上企業擁有瞭一個可以自由組閤的API中心,實現瞭可組閤企業架構(Composable Architect)。
封裝業務流程産品理念來自Gartner提齣的Packaged Business Capabilities框架。和經典的PBC概念不同的是,PBP這樣的可組閤應用架構並不依賴前後臺分離加微服務(microservice)的原生開發過程,它能夠零代碼實現同等的效果。
特點和價值
1、沒有特定數據源,通過定義輸入參數來建立觸發。
2、可被組織內的所有流程調用,最大化流程復用價值。
3、具備API能力,供外部係統使用,實現自由組閤的業務流程。
哪些場景適閤使用封裝業務流程
1、可復用的通用業務處理能力
場景1:商品的庫存更新
庫存的更新涉及多種場景,如商品的銷售齣庫、采購入庫、退貨入庫、盤點等等,在執行庫存更新時,往往隻需要知道是哪個倉庫的,什麼商品、齣入庫類型、齣入庫數量就可以直接更新庫存瞭。因此可以將更新庫存這部分邏輯放在封裝業務流程中完成,銷售齣庫、采購入庫等工作流隻需傳入對應的參數,就可以直接完成庫存的更新,無需每個工作流都寫一遍更新庫存的邏輯。
場景2:獲取手機號歸屬地
多個業務錶需要記錄手機號,如銷售綫索、客戶聯係人、員工檔案等等,需要知曉手機號歸屬地。可以通過Webhook節點,調用第三方服務獲取到手機號,並返迴歸屬地信息。將這部分功能放在封裝業務流程中,每個工作錶觸發的流程直接調用即可。像這種通過Webhook或代碼塊實現的通用數據處理能力,非常適閤作為封裝業務流程,供所有流程調用。
2、多業務對象的API接口服務
場景:外部係統通過API查詢多錶數據
例如,外部係統需要查詢訂單數據,主要信息是:
- 訂單錶數據(訂單名稱、訂單總額、付款日期)
- 訂單明細錶數據(産品名稱、數量、單價、小計)
如果通過工作錶API查詢,需要調用兩次API,而且返迴的結果字段比較多,無法隻返迴需要的字段內容。同時,對於查詢狀態的提醒無法自定義。
如果使用封裝業務流程的API接口,隻需傳入訂單編號,觸發流程後,通過查詢數據節點逐步查詢訂單和明細數據,根據不同的查詢結果,利用分支自定義查詢狀態消息,最終通過輸齣參數返迴。
3、標準規範化的業務流程
場景1: 統一管理的財務支付流程
如果公司對財務支付流程要求統一規範化管理,在各類業務活動執行後,和支付相關的流程都需統一調用支付流程,財務隻需在一個應用或流程中處理,那麼很適閤通過PBP來管理支付流程,例如,在付款申請或報銷申請通過後,進入財務支付流程(PBP),財務付款後,並上傳付款憑證等信息,再反寫到付款申請單中。
場景2:新員工入職流程
根據員工的部門和職位,自動發送員工手冊和物品領用清單、根據郵箱或手機號,運維開通各種軟件賬號清單等等,待一係列任務完成後,將結果發送給員工。 將以上任務放在封裝業務流程中,可以方便管理企業流程,幫助企業流程規範化。
4、需要在應用首頁一鍵點擊或掃碼觸發的流程
場景: 設備維修後,維修人員在自定義頁麵中直接點擊按鈕啓動掃碼,掃描設備碼並觸發PBP,PBP中根據傳遞進來的設備碼查詢相關設備和維修工單,然後分彆修改為正常狀態。
配置示例
我們通過幾個案例的介紹,逐步講解PBP中相關知識點:
示例1.利用封裝業務流程實現庫存更新,供相關齣入庫業務流程調用
1.1梳理PBP的4要素
在設置流程前,我們需要梳理齣PBP需要的四個要素
輸入參數
更新庫存時,我們需要知道更新對象和數量,以及齣入庫類型(入庫是增加庫存,齣庫是減少庫存)。因此流程需要知道商品編號、齣入庫類型、和數量,這個3個信息就是我們需要的參數。
需要定義的輸入參數有:産品編號 、齣入庫類型和齣入庫數量
如果您的商品是多倉庫管理,還需要知道是哪個倉庫齣入庫操作,也需要一個輸入參數:倉庫信息。這裏我們為瞭快速示例、不再增加此參數。
流程編排
觸發流程後,通過相關節點進行編排,完成指定商品的庫存更新。
輸齣參數
在庫存更新場景中,隻需正常執行更新庫存操作即可,不需要任何結果通知的返迴,因此不需要定義輸齣參數。我們會在後麵的場景示例中介紹輸齣參數的配置。
是否啓用API
由於本功能僅在本平臺內使用,無需開啓API能力。
1.2新建封裝業務流程
進入應用的工作流模塊,依次點擊 封裝業務流程 > 新建封裝業務流程
雖然PBP可被組織內所有應用的工作流調用,但依然歸屬在一個應用下管理。
1.3定義輸入參數
什麼是參數,簡單來說就是你需要外麵傳遞給你的信息,但是這個信息你需要提前約束好。
例如名稱和格式, 名稱用來區分不同的信息對象,格式用來保證傳遞進來的內容符閤規範。
如果在處理業務時,有些信息是必要的,不然無法執行,則可以設定為 必填。
同時,建議充分描述參數說明,這樣對方在調用PBP傳參數時更加清晰。
在本場景中,需要定義的參數( 名稱、格式類型、是否必填和說明)如下:
商品編號、文本類型、必填、說明(需要齣入庫商品的編號)
進齣庫類型、數值類型、必填、 說明(0代錶入庫,1代錶齣庫)
數量、數值類型、必填
流程的觸發曆史列錶中,觸發的數據顯示的是標題參數的內容。
支持的輸入參數類型
- 文本
- 數值
- 人員
- 組織角色
- 部門
- 其中成員、部門、組織角色傳遞的是對象,不是文本。
- 日期時間
- 附件
- 普通數組和對象數組
- 代碼塊輸齣的數組,需通過JSON解析後纔能選擇為輸入參數
數組結構示範
普通數組
["張三","李四"]
對象數組
[{"name":"張三","age":20},{"name":"李四","age":30}]
如果您有一段JSON數組,則可以粘貼生成參數。
1.4配置工作流的相關節點
通過相關功能節點的編排實現具體的庫存更新邏輯。
重點介紹:節點如何使用輸入參數值
在定位具體商品的庫存記錄時,需要使用傳遞進來的商品ID,獲取單條數據節點中的條件值選擇輸入參數即可。
其他節點不再贅述。
1.5配置輸齣參數
前麵我們已經梳理好,無需輸齣參數,點擊輸齣參數節點後、刪除空白參數並保存節點。
1.6修改流程名稱並發布
修改流程名稱,便於日常管理和方便外部流程調用時識彆,
發布流程後,纔可被調用。
其他流程如何調用PBP
PBP發布後,其他需要更新庫存的業務流程都可以直接調用PBP,我們以采購入庫流程中,采購入庫明細調用PBP為例進行介紹。
入庫流程中獲取到多條入庫記錄後(獲取多條數據節點),即可調用"更新庫存PBP"。
1)添加“調用業務流程” 節點
2)選擇更新庫存PBP
3)選擇執行方式(執行單次還是多次)
此處和子流程節點功能相同,本案例中,需要多個商品的入庫記錄同時更新庫存,因此選擇執行多次。同時,執行的次數要基於多條數據的數據量。
由於每個商品的庫存更新互不影響,可以選擇並行執行。
PBP多次執行時,可接收多少行數據
不同的配置,執行次數有不同的限製,主要有以下兩種。
執行次數按字段值或固定值,則按實際次數執行,沒有限製
執行次數選擇為根據多條記錄數據行數
如果PBP的輸入參數任意一個使用瞭多條數據節點(從工作錶中獲取)中值,最多100行
- 數據是工作錶數據纔限製100條, 如果數據來著代碼塊、API等則不限製。
如果PBP的輸入參數都沒有使用多條數據節點中的字段值,最多1萬行。
4)設置PBP的傳入參數
這裏顯示的參數,就是PBP流程定義的傳入參數。
商品編號和入庫數量是需要從節點對象中選擇對應的字段,
因為本次流程是入庫流程,齣入庫類型可以寫為固定值0。在齣庫相關的流程中,則寫為1。
5)發布流程並測試
6)開啓API
本流程無需開啓API,不再詳述,具體開啓API介紹,請參考示例3
開啓API入口如下圖:
示例2.通過封裝業務流程實現獲取手機號歸屬地的功能,供所有流程調用
2.1梳理PBP的4個要素
輸入參數 隻需傳入手機號即可
流程編排 獲取到手機號以後,通過發送API請求節點,利用外部服務API獲取到手機號歸屬地。
輸齣參數 將獲取到的歸屬地信息(省、市、縣)輸齣。
啓用API 由於本功能一般在平臺內使用,無需開啓API。
2.2創建封裝業務流程
進入應用的工作流模塊,依次點擊 封裝業務流程 > 新建封裝業務流程
2.3配置輸入參數
隻需定義一個手機號參數即可。
2.4配置工作流的相關節點
本場景實現比較簡單、隻需通過發送API請求節點獲取手機號歸屬地信息。
2.5配置輸齣參數
根據實際需要、可以將歸屬地的省市拼接後作為一個參數輸齣,可以直接寫入到工作錶的“地區”字段中。
注意省份和城市之間的連接符號 /,不然無法寫入到地區字段中。
2.6修改流程名稱並發布
其他流程調用PBP
例如,在綫索聯係人新增時觸發的流程中,調用查詢手機號PBP,獲取手機號歸屬地。
執行方式 由於是查詢當前新增的聯係人歸屬地,因此隻會執行單次。
業務流程執行完畢後,再開始下一個節點
如果流程中後麵的節點需要使用PBP的輸齣參數,則一定要勾選,錶示等待PBP執行完畢再開始執行後續節點。
輸入參數 即查詢誰的手機號,選擇觸發節點的手機號即可。
後麵節點如何使用PBP執行參數
如果無法選擇PBP的輸齣參數,錶示沒有勾選"業務流程執行完畢後,再開始下一個節點"
配置完成,發布流程測試即可
示例3.通過PBP的API接口實現外部係統對訂單數據的查詢
外部係統通過訂單編號,查詢到訂單的客戶公司、訂單額、付款日期,以及訂單明細(産品名稱、單間、數量、小計)等個彆信息。
3.1梳理PBP的4要素
輸入參數
隻需一個參數,即訂單編號,格式文本、必填。
流程編排
觸發流程後,通過相關節點進行編排,完成指定商品的庫存更新。
獲取單條數據節點 根據訂單編號找到對應的訂單記錄
獲取多條數據節點 根據訂單記錄,獲取訂單下的明細數據。
代碼節點 例用代碼節點,將訂單明細數據組裝為數組
輸齣參數
- 客戶公司(文本)
- 訂單金額(數值)
- 付款日期(文本)
- 訂單明細(數組)
是否啓用API
本流程主要供外部係統調用,需要開啓API接口功能
3.2創建業務封裝流程
進入應用的工作流模塊,依次點擊 封裝業務流程 > 新建封裝業務流程
3.3配置輸入參數
隻需定義一個訂單編號即可。
3.4編排工作流節點
根據業務需求,需要逐步獲取訂單記錄和訂單明細數據,而訂單明細是多行數據,因此需要利用代碼塊將其轉換為數組。
具體節點配置如下:
3.5配置輸齣參數
根據前麵的梳理,隻需定義4個輸齣參數即可。
3.6修改流程名稱並發布
3.7啓用API能力
進入流程配置 > 平臺API能力 ,開啓或關閉當前流程的API能力
1)API請求地址
自動為當前流程生成瞭一個API地址,如:https://api.mingdao.com/workflow/hooks/******2YzQzNDVlZDM0YzBhNDRiMWU0
請求地址中支持繼續拼接子路徑,如接口功能是獲取訂單信息的,可以拼接上GetOrderinfo,對於開發者便於識彆。但是實際執行時依然隻有前麵自動生成的部分有效。
2)請求鑒權認證
有使用應用授權和無需授權兩種方式, 使用應用授權時,調用API時,參數中需要appKey和sign 兩個參數, 無需授權方式則不需要這兩個參數。
3)定義API中的請求參數(輸入參數)
PBP中的參數名稱可以是中文,在平臺內部方便識彆和使用,但是在API中,參數名不支持中文,因此我們需要再次定義“彆名”,方便外部係統使用。
如果有彆名,API參數中的參數名顯示為彆名
如果沒有彆名,則顯示為參數名,如果含有中文,在使用時可能會齣錯。
4)選擇響應方式
支持5種響應方式
僅專業版、旗艦版和私有部署版支持直接返迴結果給請求地址, 其他版本需通過迴調地址接受返迴參數。
如果需要返迴參數給請求地址,PBP流程中不能包含調用業務流程、審批、填寫、延時、子流程等不確定處理時長類的節點。
5)配置響應參數
和請求參數相同,支持設置英文名稱和參考值。
6)查看API文檔
通過應用的API接口,可以看到應用下所有可用的API接口,包括封裝業務流程的API接口。當然,您也可以通過下麵快速查看。
在API接口中說明中,給齣來示例代碼,可以直接復用測試。
- appkey和sign不要更改,直接使用。
示例4. 通過PBP統一管理公司財務支付流程
如果公司對財務支付流程要求統一規範化管理,在各類業務活動執行後,和支付相關的流程都需統一調用支付流程,財務隻需在一個應用或流程中處理,那麼很適閤通過PBP來管理支付流程,例如,在付款申請或報銷申請通過後,進入財務支付流程(PBP),財務付款後,並上傳付款憑證等信息,再反寫到付款申請單中。
4.1梳理PBP的4個要素
輸入參數
由於需要財務在一個流程(業務錶)中操作,財務在支付時需要以下信息:客戶/個人名稱、賬號信息、支付日期、支付金額、為瞭查看原始記錄,還需要知曉原記錄的URL等等。為瞭便於示範,我們精簡一下,隻需必填的幾個字段。
支付標題 文本、必填
賬號信息 文本、必填
支付金額 數值、必填
支付日期 文本、必填
原記錄URL 文本、必填
同時,需要新增一張工作錶《財務支付》,用來存儲這些信息,並且財務上傳憑證時,填寫到此錶的記錄中。錶中除瞭上麵的參數,還需要一個“支付憑證”的附件字段。
流程編排
根據傳入的參數,嚮《財務支付》錶中新增一條記錄,字段值選擇對應的輸入參數即可。
然後通過“填寫”節點嚮財務人員發齣提醒,等待完成支付並上傳憑證。
輸齣參數
由於需要獲取支付憑證等信息,返迴參數不支持附件字段,因此我們需要返迴一個記錄ID,供原業務流程查找定位到此支付記錄,然後使用憑證字段。
記錄ID, 選擇支付記錄的記錄ID
是否啓用API
暫不需要
4.2創建封裝業務流程
進入應用的工作流模塊,依次點擊 封裝業務流程 > 新建封裝業務流程
4.3設置輸入參數
4.4配置工作流
1)嚮財務支付錶中新增一張記錄
2)填寫節點通知財務辦理支付
4.5輸齣參數
根據前麵的梳理,隻需輸齣支付記錄的記錄ID內容記錄。
4.6修改流程名稱並發布
發布後,流程纔能被外部流程調用。
外部流程如何調用PBP並使用輸齣參數
我們以付款申請流程為例,當付款申請審批通過後,調用統一支付業務流程PBP,等待財務執行完畢,自動將憑證信息寫入到申請記錄中。
1) 通過“調用業務流程” 節點調用PBP
選擇PBP後,選擇參數對應的字段
2) 通過“獲取單條數據”節點,定位到財務填寫的支付記錄。
如果無法選擇PBP的輸齣參數,勾選“等待業務流程執行完畢後,再開始下一個節點”即可。
3)將支付記錄的憑證信息寫入到付款申請記錄
到此流程配置完畢,您可以提交一個付款申請進行測試。
示例5、自定義頁麵中點擊按鈕後通過掃描設備碼,自動完成維修工單
5.1梳理PBP的4個要素
輸入參數 :設備碼,文本類型,必填。隻需通過設備碼識彆齣設備記錄。
流程編排 :通過設備碼查找到對應的設備記錄和維修工單,然後分彆將狀態改為正常或維修完成。
輸齣參數 :無需返迴任何信息,不定義。
是否啓用API: 無API需求,不配置。
5.2創建封裝業務流程
進入應用的工作流模塊,依次點擊 封裝業務流程 > 新建封裝業務流程
5.3設置輸入參數
隻需設置1個設備碼參數即可。
5.4業務流程配置
根據業務需要,需要通過兩個“獲取單條數據”節點,分彆獲取到設備記錄和維修記錄。然後通過兩個更新節點分彆修改狀態。
5.5輸齣參數
無需輸齣參數,刪除已有參數後保存即可。
5.6修改流程名稱並發布
流程發布後纔能被調用。
自定義頁麵按鈕如果調用PBP
進入自定義的配置頁麵,配置快捷按鈕。如下圖配置:
1、選擇相關按鈕後,開始配置此按鈕的相關動作。
2、點擊按鈕觸發,啓動掃碼功能
也可以直接觸發封裝業務流程,本場景需要有明確的操作對象,因此需要掃碼後再調用PBP。
3、選擇碼類型
支持二維碼和條形碼,本場景我們以二維碼為例)
4、記錄連接
如果二維碼的內容是某條記錄鏈接,則做什麼操作,我們選擇 “無”,不做任何動作。
5、其他連接
如果二維碼的內容是其他類型的鏈接,則做什麼操作,我們選擇 “無”,不做任何動作。
6、文本
如果二維碼內容是一段文本,則做什麼操作。設備碼是一串文本,符閤我們的需求,我們選擇識彆齣瞭設備碼後調用封裝業務流程。
7、選擇對應的PBP
8、選擇輸入參數的值,即掃碼結果
以上配置結束後,保存頁麵。然後在APP中點擊按鈕掃碼測試。
文檔問題反饋
文檔中是否有錯彆字、內容過期、難以理解等問題? 點此給我們反饋吧