SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

i042416發表於2020-01-16

這個系列的第一篇文章, SAP FSM 學習筆記(一) : 使用API消費FSM的資料,我們學習瞭如何使用SAP FSM提供的nodejs SDK,第二篇文章  SAP FSM 學習筆記(二) : SAP FSM的微信接入,介紹瞭如何使用微信這個平臺,透過nodejs SDK去消費SAP FSM的API.

從本文開始,我們就會真正地呼叫SAP FSM API,在系統裡建立一些資料。我們採用“上門安裝服務”這個場景來說明,假設客戶購買了某公司的某產品,希望透過微信來預約某個時段的上門安裝服務。

本文標題提到的“客戶預約”其實不太準確,這個詞雖然最容易被終端使用者所接受,但SAP FSM實際沒有直接的客戶預約模型,而是透過Service Call和Activity,以及ServiceAssignment三者聯合起來表述的。

從微信公眾號裡點選“預約”按鈕之後,我們開發的前端應用會自動定位出當前使用者的地理位置:武侯花園人民政府,同樣我們也提供了允許客戶手動修改地址的功能,如下圖預約地址欄位尾部的字元2,就是Jerry為了測試手動修改的功能而故意新增上去的。

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

維護手機號和希望上門安裝的具體時間段,然後就可以從下拉選單裡選擇該時間段內可以提供服務的安裝技師。這裡我們選擇名叫李小剛的技師:

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

點選確定按鈕,執行在微信裡的前端應用就透過我們開發的後臺服務,向SAP FSM發起API呼叫。

先看最後的結果:我們在微信裡收到了公眾號推送的通知訊息,告訴我們預約已成功。

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

點選這條訊息可以檢視預約詳情:

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

待李小剛動身前往客戶途中,我們還能在微信裡檢視李小剛的實時位置共享資訊,這是透過SAP FSM提供的技師位置服務加上我們的少許自開發實現的效果。

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

本文只會概括性地介紹如何用API呼叫的方式在SAP FSM裡實現客戶預約功能。至於技師位置實時共享等效果,留待本系列後續分享。

我們在微信開發者工具裡重複上述步驟,觀察請求明細:

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

這個url指向我們開發的一個後臺服務,/ticket/後面跟著的一串數字與字母組合是Jerry的個人微信open ID,13911111111是我預約時留下的手機號,手機號後面一長串包含%的片段,是預約時留下地址經過url encode後的結果。

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

請求正文裡包含了微信裡填入的全部預約資訊,和李小剛在FSM裡的GUID. CustomerID,則是前端應用透過我的微信open ID呼叫微信API獲取到的暱稱,Jerry Wang. “上門安裝機械臂”,是我們為了demo方便,硬編碼的一個預約標題。

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

API呼叫成功後,返回一個ID給消費端,這個ID代表了SAP FSM裡成功建立的預約記錄。

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

下面我們到SAP FSM里根據這些GUID,去詳細檢視API到底在系統裡生成了哪些記錄。

首先, 如果一個微信使用者在SAP FSM裡不存在對應的Business Partner記錄,是無法進行業務流程的,因此我們的後臺服務實現裡,會首先檢測該微信使用者在SAP FSM裡是否存在對應的BP記錄,如果沒有,就自動建立一個。

關於SAP產品的客戶模型設計的更多介紹,參考Jerry這篇文章: Jerry眼中的SAP客戶資料模型

下圖是Jerry的個人微訊號在SAP FSM裡生成的對應BP記錄,Additional name即是我微訊號的open ID,我們的原型開發裡,透過微訊號的open ID同SAP FSM BP模型的Additional name這一對欄位來維護微信使用者和SAP FSM BP一一對應的關係。這個BP的ID為36,記錄下來後面會用到。

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

而我們在微信預約頁面選擇的技師李小剛,在微信開發者工具裡觀察到其GUID為2E9BC784D477CA3DD048E593D853CFF1,這也正是李小剛在SAP FSM裡的明細頁面列表url的片段之一:

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

而SAP FSM API返回的ID:B0555705B9EC41009739D0111E16CC91,在系統裡實際上是一條Service Call記錄的GUID,這條Call的ID為175,服務的客戶ID是Jerry Wang,Code為36,即前面提到的基於微訊號open ID自動建立的客戶記錄。

這個Service Call有一個同名的Activity,編號為205.

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

在SAP FSM的Activities頁面可以查到這條編號為205的記錄,其所屬的Service Call為175,即上圖顯示的Call內容。

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

Service Call和Activities建立之後,排程員就可以相應地派工,然後李小剛就可以動身出發了。下圖顯示的李小剛在系統中被分配了多個安裝任務,這是Jerry反覆測試時建立的資料,其中任務顯示上標有的白色小旗,代表任務已完成。

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

排程員選擇一條我剛剛在微信裡建立的預約,點選Release Assignments, 即可完成派工。

SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約

在我們的後臺服務實現裡,使用SAP FSM nodejs SDK,依次呼叫了Service Call,Activity的建立API來建立對應的記錄。同時安裝技師和安裝任務的分配關係,是透過建立一個新的ServiceAssignment物件來維護的。

這三個API的說明在SAP FSM官方網站上有文件:

docs.coresystems.net/de

這個系列的後續文章會繼續向大家介紹SAP FSM,感謝閱讀。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2673569/,如需轉載,請註明出處,否則將追究法律責任。

相關文章