开发者社区> jerrywangsap> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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/dev-index.html

这个系列的后续文章会继续向大家介绍SAP FSM,感谢阅读。

本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux面试必考-IO文件重定向及管道深入讲解| 学习笔记
快速学习 Linux面试必考-IO文件重定向及管道深入讲解
22 0
Linux面试必考-IO文件重定向及管道深入讲解| 学习笔记
快速学习 Linux面试必考-IO文件重定向及管道深入讲解
6 0
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
10 0
CSAPP学习笔记 - 计算机的概览
CSAPP学习笔记 - 计算机的概览
63 0
万字长文|Hadoop入门笔记(附资料)
大数据迅速发展,但是Hadoop的基础地位一直没有改变。理解并掌握Hadoop相关知识对于之后的相关组件学习有着地基的作用。本文整理了Hadoop基础理论知识与常用组件介绍,虽然有一些组件已经不太常用。但是理解第一批组件的相关知识对于以后的学习很有帮助,未来的很多组件也借鉴了之前的设计理念。
82 0
基于ECS搭建FTP服务学习笔记
基于ECS搭建FTP服务学习笔记
186 0
戴尔PowerEdge R430 机架式服务器 安装ubuntu server 14.04.1 LTS 64 位
硬件配置: 服务编号:5Z04X72 软件配置 1、Ubuntu 系统下载地址: https://certification.ubuntu.com/certification/hardware/201412-16241/ 2、uiso9_cn_9.
2123 0
redo日志文件学习笔记(一)
关于redo日志文件,今天因为要做redo日志的在线迁移,所以特意做了个简单的总结。1. 如果要把redo的切换信息显示到alert日志中,需要设置个参数。 Oracle Database 11g Enterprise Edition Release 11.
1133 0
+关注
文章
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载