SAP FSM 学习笔记(三) 在微信里发起SAP FSM客户预约
這個系列的第一篇文章,SAP FSM 學(xué)習(xí)筆記(一) : 使用API消費(fèi)FSM的數(shù)據(jù),我們學(xué)習(xí)了如何使用SAP FSM提供的nodejs SDK,第二篇文章 SAP FSM 學(xué)習(xí)筆記(二) : SAP FSM的微信接入,介紹了如何使用微信這個平臺,通過nodejs SDK去消費(fèi)SAP FSM的API.
從本文開始,我們就會真正地調(diào)用SAP FSM API,在系統(tǒng)里創(chuàng)建一些數(shù)據(jù)。我們采用“上門安裝服務(wù)”這個場景來說明,假設(shè)客戶購買了某公司的某產(chǎn)品,希望通過微信來預(yù)約某個時段的上門安裝服務(wù)。
本文標(biāo)題提到的“客戶預(yù)約”其實(shí)不太準(zhǔn)確,這個詞雖然最容易被終端用戶所接受,但SAP FSM實(shí)際沒有直接的客戶預(yù)約模型,而是通過Service Call和Activity,以及ServiceAssignment三者聯(lián)合起來表述的。
從微信公眾號里點(diǎn)擊“預(yù)約”按鈕之后,我們開發(fā)的前端應(yīng)用會自動定位出當(dāng)前用戶的地理位置:武侯花園人民政府,同樣我們也提供了允許客戶手動修改地址的功能,如下圖預(yù)約地址字段尾部的字符2,就是Jerry為了測試手動修改的功能而故意添加上去的。
維護(hù)手機(jī)號和希望上門安裝的具體時間段,然后就可以從下拉列表里選擇該時間段內(nèi)可以提供服務(wù)的安裝技師。這里我們選擇名叫李小剛的技師:
點(diǎn)擊確定按鈕,運(yùn)行在微信里的前端應(yīng)用就通過我們開發(fā)的后臺服務(wù),向SAP FSM發(fā)起API調(diào)用。
先看最后的結(jié)果:我們在微信里收到了公眾號推送的通知消息,告訴我們預(yù)約已成功。
點(diǎn)擊這條消息可以查看預(yù)約詳情:
待李小剛動身前往客戶途中,我們還能在微信里查看李小剛的實(shí)時位置共享信息,這是通過SAP FSM提供的技師位置服務(wù)加上我們的少許自開發(fā)實(shí)現(xiàn)的效果。
本文只會概括性地介紹如何用API調(diào)用的方式在SAP FSM里實(shí)現(xiàn)客戶預(yù)約功能。至于技師位置實(shí)時共享等效果,留待本系列后續(xù)分享。
我們在微信開發(fā)者工具里重復(fù)上述步驟,觀察請求明細(xì):
這個url指向我們開發(fā)的一個后臺服務(wù),/ticket/后面跟著的一串?dāng)?shù)字與字母組合是Jerry的個人微信open ID,13911111111是我預(yù)約時留下的手機(jī)號,手機(jī)號后面一長串包含%的片段,是預(yù)約時留下地址經(jīng)過url encode后的結(jié)果。
請求正文里包含了微信里填入的全部預(yù)約信息,和李小剛在FSM里的GUID. CustomerID,則是前端應(yīng)用通過我的微信open ID調(diào)用微信API獲取到的昵稱,Jerry Wang. “上門安裝機(jī)械臂”,是我們?yōu)榱薲emo方便,硬編碼的一個預(yù)約標(biāo)題。
API調(diào)用成功后,返回一個ID給消費(fèi)端,這個ID代表了SAP FSM里成功創(chuàng)建的預(yù)約記錄。
下面我們到SAP FSM里根據(jù)這些GUID,去詳細(xì)查看API到底在系統(tǒng)里生成了哪些記錄。
首先, 如果一個微信用戶在SAP FSM里不存在對應(yīng)的Business Partner記錄,是無法進(jìn)行業(yè)務(wù)流程的,因此我們的后臺服務(wù)實(shí)現(xiàn)里,會首先檢測該微信用戶在SAP FSM里是否存在對應(yīng)的BP記錄,如果沒有,就自動創(chuàng)建一個。
關(guān)于SAP產(chǎn)品的客戶模型設(shè)計(jì)的更多介紹,參考Jerry這篇文章:Jerry眼中的SAP客戶數(shù)據(jù)模型。
下圖是Jerry的個人微信號在SAP FSM里生成的對應(yīng)BP記錄,Additional name即是我微信號的open ID,我們的原型開發(fā)里,通過微信號的open ID同SAP FSM BP模型的Additional name這一對字段來維護(hù)微信用戶和SAP FSM BP一一對應(yīng)的關(guān)系。這個BP的ID為36,記錄下來后面會用到。
而我們在微信預(yù)約頁面選擇的技師李小剛,在微信開發(fā)者工具里觀察到其GUID為2E9BC784D477CA3DD048E593D853CFF1,這也正是李小剛在SAP FSM里的明細(xì)頁面列表url的片段之一:
而SAP FSM API返回的ID:B0555705B9EC41009739D0111E16CC91,在系統(tǒng)里實(shí)際上是一條Service Call記錄的GUID,這條Call的ID為175,服務(wù)的客戶ID是Jerry Wang,Code為36,即前面提到的基于微信號open ID自動創(chuàng)建的客戶記錄。
這個Service Call有一個同名的Activity,編號為205.
在SAP FSM的Activities頁面可以查到這條編號為205的記錄,其所屬的Service Call為175,即上圖顯示的Call內(nèi)容。
Service Call和Activities創(chuàng)建之后,調(diào)度員就可以相應(yīng)地派工,然后李小剛就可以動身出發(fā)了。下圖顯示的李小剛在系統(tǒng)中被分配了多個安裝任務(wù),這是Jerry反復(fù)測試時創(chuàng)建的數(shù)據(jù),其中任務(wù)顯示上標(biāo)有的白色小旗,代表任務(wù)已完成。
調(diào)度員選擇一條我剛剛在微信里創(chuàng)建的預(yù)約,點(diǎn)擊Release Assignments, 即可完成派工。
在我們的后臺服務(wù)實(shí)現(xiàn)里,使用SAP FSM nodejs SDK,依次調(diào)用了Service Call,Activity的創(chuàng)建API來創(chuàng)建對應(yīng)的記錄。同時安裝技師和安裝任務(wù)的分配關(guān)系,是通過創(chuàng)建一個新的ServiceAssignment對象來維護(hù)的。這三個API的說明在SAP FSM官方網(wǎng)站上有文檔:
https://docs.coresystems.net/dev-index.html
這個系列的后續(xù)文章會繼續(xù)向大家介紹SAP FSM,感謝閱讀。
要獲取更多Jerry的原創(chuàng)文章,請關(guān)注公眾號"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的SAP FSM 学习笔记(三) 在微信里发起SAP FSM客户预约的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: USB引脚及定义_u盘引脚数据线接线图(
- 下一篇: 国内最好用的dns地址_dns的服务器地