SAP FSM 學習筆記(三) : 在微信裡建立SAP FSM客戶預約
這個系列的第一篇文章, 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發起API呼叫。
先看最後的結果:我們在微信裡收到了公眾號推送的通知訊息,告訴我們預約已成功。
點選這條訊息可以檢視預約詳情:
待李小剛動身前往客戶途中,我們還能在微信裡檢視李小剛的實時位置共享資訊,這是透過SAP FSM提供的技師位置服務加上我們的少許自開發實現的效果。
本文只會概括性地介紹如何用API呼叫的方式在SAP FSM裡實現客戶預約功能。至於技師位置實時共享等效果,留待本系列後續分享。
我們在微信開發者工具裡重複上述步驟,觀察請求明細:
這個url指向我們開發的一個後臺服務,/ticket/後面跟著的一串數字與字母組合是Jerry的個人微信open ID,13911111111是我預約時留下的手機號,手機號後面一長串包含%的片段,是預約時留下地址經過url encode後的結果。
請求正文裡包含了微信裡填入的全部預約資訊,和李小剛在FSM裡的GUID. CustomerID,則是前端應用透過我的微信open ID呼叫微信API獲取到的暱稱,Jerry Wang. “上門安裝機械臂”,是我們為了demo方便,硬編碼的一個預約標題。
API呼叫成功後,返回一個ID給消費端,這個ID代表了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,記錄下來後面會用到。
而我們在微信預約頁面選擇的技師李小剛,在微信開發者工具裡觀察到其GUID為2E9BC784D477CA3DD048E593D853CFF1,這也正是李小剛在SAP FSM裡的明細頁面列表url的片段之一:
而SAP FSM API返回的ID:B0555705B9EC41009739D0111E16CC91,在系統裡實際上是一條Service Call記錄的GUID,這條Call的ID為175,服務的客戶ID是Jerry Wang,Code為36,即前面提到的基於微訊號open ID自動建立的客戶記錄。
這個Service Call有一個同名的Activity,編號為205.
在SAP FSM的Activities頁面可以查到這條編號為205的記錄,其所屬的Service Call為175,即上圖顯示的Call內容。
Service Call和Activities建立之後,排程員就可以相應地派工,然後李小剛就可以動身出發了。下圖顯示的李小剛在系統中被分配了多個安裝任務,這是Jerry反覆測試時建立的資料,其中任務顯示上標有的白色小旗,代表任務已完成。
排程員選擇一條我剛剛在微信裡建立的預約,點選Release Assignments, 即可完成派工。
在我們的後臺服務實現裡,使用SAP FSM nodejs SDK,依次呼叫了Service Call,Activity的建立API來建立對應的記錄。同時安裝技師和安裝任務的分配關係,是透過建立一個新的ServiceAssignment物件來維護的。
這三個API的說明在SAP FSM官方網站上有文件:
https:// docs.coresystems.net/de v-index.html
這個系列的後續文章會繼續向大家介紹SAP FSM,感謝閱讀。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2673569/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP FSM 學習筆記(二) : SAP FSM的微信接入筆記
- SAP FSM 學習筆記(一) : 使用API消費FSM的資料筆記API
- SAP FSM 學習筆記(四) : 現場服務技師使用的移動應用筆記
- FSM 設計模式學習設計模式
- FSM:The complete FSM
- SAP BW 學習筆記筆記
- SAP BASIS學習筆記(轉)筆記
- SAP學習筆記--整合與核算筆記
- SAP 學習日記
- Redis學習筆記(十) 客戶端Redis筆記客戶端
- MySQL學習筆記——建立與約束MySql筆記
- Design a Moore FSM
- Q6:FSM
- Q2a:FSM
- Q2a: FSM
- FSM:Enable shift register
- Q3a:FSM
- SAP Commerce Cloud SmartEdit 學習筆記Cloud筆記
- 在 SAP BTP 平臺 Neo 環境裡使用 SAP Cloud SDK 建立應用Cloud
- SAP ME學習筆記(六)搭建生產線筆記
- 轉:SAP學習筆記(from 神話blog)筆記
- 在SAP HANA Express Edition裡建立資料庫表Express資料庫
- Simple FSM 3(asynchronous reset)
- Simple FSM 3(synchronous reset)
- Q3b:FSM
- Open SAP 上 SAP Fiori Elements 公開課第一單元學習筆記筆記
- SAP筆記-啟動關閉SAP筆記
- 微信開發系列之九 - 在微信裡直接建立SAP C4C的社交媒體訊息
- Simple FSM1(asynchronous reset)
- Simple FSM1(synchronous reset)
- Simple FSM2(asynchronous reset)
- Simple FSM2(synchronous reset)
- Q2b:Another FSM
- Golang 學習筆記(一) - HTTP 客戶端 - 基礎Golang筆記HTTP客戶端
- 學習筆記:客戶端物件層次(一):BOM筆記客戶端物件
- Presto學習筆記——Go客戶端連線PrestoREST筆記Go客戶端
- Solidity語言學習筆記————32、建立合約Solid筆記
- SAP HANA Cloud 學習教程之一: 如何在 SAP BTP 上建立 SAP HANA Cloud 例項Cloud