`
JerryWang_SAP
  • 浏览: 1029494 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

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官方网站上有文档:

docs.coresystems.net/de

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

0
0
分享到:
评论

相关推荐

    FSM有限状态机模拟例程

    - 自动化测试:FSM可以用于创建测试脚本,模拟用户交互,验证系统功能。 5. FSM的表示方法: - 状态图(State Diagram):用图形方式直观展示状态和转换。 - 状态转移表(State Transition Table):表格形式列...

    fsm.rar_FSM_firmware_sw_viewz8y

    标题中的“fsm.rar_FSM_firmware_sw_viewz8y”暗示了这是一个关于FSM(Finite State Machine,有限状态机)的固件(firmware)软件(sw)开发的资源包,其中可能包含了针对Z8Y系列芯片或系统的具体视图(view)。在...

    fsm.zip_FSM实例_fsa_fsm例子

    1. **状态(State)**:FSM由一系列的状态组成,每个状态代表了系统的一种特定情况或行为。 2. **事件(Event)**:事件触发状态之间的转换,通常是外部输入或内部条件改变。 3. **转换(Transition)**:当一个事件...

    三段fsm设计

    在Verilog中设计有限状态机(FSM)是数字电路设计中的一个基本而重要的步骤。FSM可以用于实现许多硬件设计的功能,如数据路径控制、系统行为建模等。设计FSM主要分为两大类:摩尔状态机(Moore Machine)和米利状态...

    fsm_hello_fsm_hello_FSM_

    标题中的"fsm_hello_fsm_hello_FSM_"似乎是一个与有限状态机(Finite State Machine,FSM)相关的项目或文件命名约定,其中"hello"可能代表一个示例或特定的模块,而"FSM"是有限状态机的缩写。在描述中,我们只有一...

    FSM.rar_FSM

    2. **初始状态**:FSM开始时所处的状态。 3. **终态/接受状态**:满足特定条件后,FSM进入这些状态,表示某个任务完成或某种条件达成。 4. **转换函数/规则**:定义了在接收到特定输入时,状态如何从一个转移到另一...

    fsm.rar_FSM_FSM code in vhdl_FSM vhdl

    3. **输入变量**:FSM根据这些变量的值来决定下一个状态。 4. **状态转移表**:列出所有可能的状态转换,包括当前状态、输入和下一个状态。 5. **状态转移图**:可视化地表示状态转移表,便于理解和设计。 6. **输出...

    otg_fsm.rar_FSM_otg

    在USB OTG系统中,FSM(Finite State Machine,有限状态机)扮演着关键角色,用于管理OTG设备之间的角色切换和通信流程。`otg_fsm.rar_FSM_otg`这个标题暗示了我们讨论的是关于ChipIdea USB IP核心中的OTG FSM驱动...

    FSM 有限状态机 verilog

    在Verilog中,Moore FSM的实现通常有三种编码风格,即一段式、二段式和三段式。这些编码风格的主要区别在于如何分配Next state logic和Output logic的职责,以及如何处理状态寄存器的更新。 对于Moore FSM的各种...

    FSM.rar_FSM_FSM状态机_FSM规范_三段式状态机_状态机

    在这个压缩包“FSM.rar”中,包含了一个特别规范化的FSM状态机模板,它采用了三段式描写方式,这使得逻辑表达更加清晰,易于理解和使用。 首先,我们要理解什么是FSM。状态机是一种模型,它由一组状态、一个初始...

    FSM.rar_FSM_How To Write It

    标题中的"FSM.rar_FSM_How To Write It"表明这是一个关于有限状态机(Finite State Machine, FSM)的教程资源,可能包含如何设计和编写FSM的详细指导。描述中的"it explains how to write the state machines"进一步...

    FSM有限状态机demo

    2. 初始状态:FSM开始时的状态,通常是状态集中的一个元素。 3. 状态转换:当特定事件发生或满足特定条件时,系统从一个状态转移到另一个状态的过程。每个转换通常与一个输入事件相关联,并且可能包含一些附加行为或...

    FSM-clifford

    ### 关于FSM设计的深度解析:FSM-clifford #### 核心知识点概览 在《FSM-clifford》这篇经典论文中,作者Clifford E. Cummings深入探讨了有限状态机(FSM)的设计技巧,尤其是在合成优化与无毛刺输出方面。论文...

    有限状态机FSM在PLD中的实现分析.pdf

    本文讨论了在可编程逻辑器件(PLD)中实现FSM的分析,特别是通过VHDL语言的描述和在EMP7032可编程逻辑器件上的合成特性进行了研究。 首先,FSM可以分为两种主要类型:摩尔型(Moore)和米利型(Mealy)。这两种类型...

    fsm_love:lua (Löve2D) 的准系统 FSM 实现

    fsm_love 克里斯蒂安·詹森 有限状态机 (fsm) 的便捷实现。 用法: 将其包含在您的项目中: fsm = require "fsm" 创建: fsm.createMachine() -> machine returns an empty FSM fsm.createState([name]) -> ...

    fsm.zip_FSM_FSM example_zip

    5. **初始状态(Initial State)**:FSM开始执行时的状态。 6. **接受状态(Accepting States)**:某些FSM有特殊的状态,达到这些状态意味着某个任务完成或者某种条件被满足。 在"FSM_example.zip"中,我们可以...

    FSM状态机的设计规则

    在实际设计中,FSM 状态机的输出可以通过寄存器寄存一下,消除毛刺,这将另外需要一个 always 块,也就是状态机三个 always 块的写法。这种方法可以确保状态机的输出是稳定的和可靠的。 FSM 状态机设计规则是指在...

    fsm.zip_FSM

    标题 "fsm.zip_FSM" 暗示了这是一个与有限状态自动机(FSM)相关的项目,其中包含了使用awk脚本来生成C语言代码的工具。让我们深入了解一下这个主题。 有限状态自动机(FSM)是一种计算模型,它由一组状态、一个...

    FSM状态机verilog实现

    #### 三、FSM在Verilog中的实现 Verilog是一种硬件描述语言(HDL),广泛用于数字电路的设计和验证。使用Verilog实现FSM的关键在于正确地定义状态和状态之间的转换规则。下面我们将逐步解析如何使用Verilog来实现FSM...

Global site tag (gtag.js) - Google Analytics