SAP 業務技術平台(BTP) Workflow(工作流)功能介紹


這是 Jerry 2021 年的第 45 篇文章,也是汪子熙公眾號總共第 322 篇原創文章。

所謂工作流,是一種用於業務流程自動化的工具,由一系列步驟、任務或事件組成。

作為世界企業管理軟件巨頭,SAP 自然也有自己的工作流解決方案。歷史最悠久最經典的,當然就是 SAP ABAP Workflow.

SAP CRM 一個經典的工作流用例,就是客戶給某呼叫中心對應的郵箱地址發送一封郵件:

通過 SAP CRM 后台創建的工作流,該郵件的發送,會觸發呼叫中心自動創建一條對應的條目,供座席處理:

以及 SAP Cloud for Customer 里的工作流:

前一篇文章 SAP 業務技術平台(BTP)上的 Business Rules Service 使用介紹,我們已經使用了 SAP BTP Cockpit Boosters 中的 Set up account for Workflow Management, 快速完成了在 SAP Business Technology Platform(下文簡稱 SAP BTP)上使用 Workflow 功能所需的配置。

該文章還介紹了如何一步步創建 SAP Business Rules 以及如何使用 HTTP POST 的方式,去調用該 Rule Service.

本文我們從 SAP API Hub 導入一個 SAP 發布的標准 Business Rules, 使用這個標准 Rules 來學習 SAP BTP Workflow 的用法。

進入 Manage Projects 應用,選擇 Import Project from API Business Hub:

要從 API Business Hub 導入內容到 SAP BTP,需要首先在 SAP BTP 配置一個指向 API Hub 的邏輯系統,命名為 JerryAPIHub,包含一個 Destination:

Destination 名稱為 BUSINESSRULES_APIHUB,這個 Destination 的名稱在 SAP BTP Cockpit 里,選擇 Basic Authentication 方式,輸入登錄 API Hub 的用戶名和密碼。

Destination 及邏輯系統創建完畢后,就可以從 API Hub 導入 SAP 標准發布的 Business Rule 了,名為 Equipment Determination Business Rules:

導入該 Rules 后,將其部署到 Cloud Runtime,這樣其才能被本文后續創建的 Workflow 應用,通過 HTTP POST 方式消費。

這個 Business Rule 用於新員工入職場景(onboarding),可以根據員工模型上某些字段,決定出其應該使用什么型號的電腦設備(Equipment).

接下來,我們可以使用 Business Application Studio,開發一個 Workflow 應用。

關於這個 SAP BTP 開發工具的更多介紹,參考我的文章:SAP 新一代全棧開發工具:SAP Business Application Studio.

從 SAP Github 下載一個 Reference Workflow 應用到本地,再將其導入到 SAP Business Application Studio 中。

這是一個 SAP BTP MTA(Multi-Target Application)應用,更多細節參考我的文章:SAP雲平台里的三叉戟應用

這個應用的核心邏輯實現在文件 onboard.workflow 中,下面簡要介紹其關鍵步驟。

Prepare Rules Payload:類型為 Script Task 的任務,其實現位於工程 scripts 文件夾下的 PrepareRulesPayload.js 文件里。

該任務的后續任務 Determine Equipment,我們會通過 HTTP Post 消費剛剛部署在 SAP BTP Cloud Runtime 上的 Business Service,因此需要在這個 Script Task 內進行一些簡單的編碼,組裝 HTTP Post 遠程調用 Business Service 所需的輸入參數:

Determine Equipment:這是一個 Service Task,通過 Restful API 方式調用 Destination BUSINESS_RULE 指向的 Business Service.

Destination 這些字段的詳細維護方式,在 Jerry 前一篇文章 SAP 業務技術平台(BTP) 上的 Business Rules Service 使用介紹 已經詳細介紹過。

這個 Restful API 調用的輸出,存儲在名為 EquipmentsInfo 的 Data Object 里:

Change or Confirm Equipment: 這是一個 User Task,用戶可以對調用 Business Rule 返回的結果包含的設備信息,進行調整和確認。這個任務的 UI,實現在文件夾 forms 的 ConfirmOrChangeEquipment.form 文件里。用戶確認之后,進入下一步審批流程:

Approve Equipment:這也是一個 User Task,需要用戶手動點擊 Approve 或 Reject,進行電腦設備的批准或者拒絕。

將該應用 build 之后,生成一個 archive 文件,再將該文件使用右鍵菜單進行部署:

最后,我們來測試一下這個 Workflow 應用的運行效果。進入 Configure Visibility Scenarios 應用,創建一個新的 Scenario. Process Visibility Scenario 用於接收工作流事件,提供了可視化界面供用戶瀏覽工作流的執行明細。

將我們之前導入到 SAP Business Application Studio 里的 id 為 onboard 的 Workflow 模型,導入到這個 Scenario 里來,能看到其步驟內所有的事件和上下文。

下面我們手動觸發這個工作流應用,觀察其執行細節。進入應用 Monitor Workflows:

選擇 Start New Instance,創建一個新的工作流實例:

因為之前我在 SAP Business Application Studio 里進行 Workflow 建模時,曾經指定其 Start Event 支持 Sample Context,並配置了一個 json 文件作為 Sample Data:

所以每當創建新的 Workflow 實例時,其輸入數據可以從 Sample Data 里自動帶出來。選擇 Start New Instance and Close:

回到 Fiori Launchpad,此時我的收件箱 Inbox 里,新增了一個條目:

這背后其實發生了很多事情:Workflow 應用里 Determine Equipment Service Task 得到執行,通過 HTTP POST,消費部署在 SAP BTP 上的 Business Rules Service,后者根據我們在 Start New Instance 里傳入的 Sample Data,返回自動決定出的設備明細。

下圖就是之前 Workflow 應用建模里的 User Task 的運行時界面。列表顯示的內容,就是上圖 HTTP POST 返回的 EquipmentsInfo 數據。這里我瀏覽這些返回結果,確認無誤后,點擊 Confirm 按鈕,進入工作流下一個步驟即審批流程。

在審批流程,我可以選擇 Approve 或者 Reject:

在 Monitor Workflows Instances 應用里,可以查看到目前為止該工作流任務的執行細節:

比如能觀察到使用 HTTP Post 調用 SAP BTP Business Service 的 endpoint,和花費的時間:

至此,SAP Business Technology Platform 上的工作流使用介紹完畢。感謝閱讀。

更多閱讀

更多Jerry的原創文章,盡在:"汪子熙":


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM