【如何用 Webhook 隨時接收 OmniBPM 系統中流程執行的狀況】

(0 comments)

OmniBPM 系統中可以設定 webhook 與外部的系統串接,利訊 webhook 的功能外部系統可以即時接收由 OmniBPM 系統主動推送的流程進度更新與文件內容。

產生金鑰

請參考Blog post: 如何用 Restful API 從外部開始執行 OmniBPM 流程取得金鑰。金鑰會用來做為 webhook 內容簽章的私鑰來使用。

 

設定 Webhook

先到外部連結與資料庫設定

 

 

從這邊可以選擇要建立 webhook 的流程, webhook 要觸發的流程節點, 觸發的時機

觸發的流程節點可以選擇"不指定", 那就表是觸發的時機是以整個流程執行的狀況為單位

觸發的時機則有"進入", "完成", "退回"三種時機

 

選擇好了 webhook 觸發條件以後,新增webhook就可以開始編輯webhook了。

Webhook的內容需要設定的是webhook的名稱 ( 方便自已記憶 ),POST的URL ( 這邊用 http://requestb.in 做測試用 ),再來可以設定POST body的內容

Post body會是以JSON的型式POST到指定的URL。JSON中出現的欄位可以自行增加和客製。

另外POST body中會有一個 _event_info 的資訊,基本上就包含了整個流程和文件的內容。但是還是在這邊提供POST body設計的模式,方便存取文件內的欄位資訊。

 

設定好了以後試跑相關的流程,就會收到webhook的POST。

內容簽章

為了保證webhook的內容正確性和不可變造性,我們會使用金鑰做簽章,放在HTTP header中的

Omnibpm-Webhook-Signature

欄位。簽章的方法是

hmac(sha256, post_data).hexdigest()

也就是post內容以sha256做hmac的結果。

 

 

Currently unrated

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required