Jerry眼中的SAP客户数据模型

本文对比分析了SAP旗下八款产品的客户模型设计,包括SAPCRM、SAPCRMFiori、SAPHybrisCloudforCustomer等。通过实际案例介绍了各产品中客户数据的组织形式和技术实现细节。

本文Jerry将介绍八款SAP产品中的客户模型。希望您在阅读完本文之后,能对SAP客户模型设计的思路有一个最最粗浅的了解。

由于Jerry水平和精力所限,本文不会详细阐述这些产品里的客户模型设计细节,而是介绍了一种方法,如果您对这些模型设计感兴趣,可以按照该方法自行深入研究。

  • SAP CRM
  • SAP CRM Fiori
  • SAP Hybris Cloud for Customer
  • SAP S/4HANA On Premise
  • SAP S/4HANA On Cloud
  • SAP Hybris Enterprise Commerce Platform
  • SAP Hybris Revenue Cloud
  • SAP Hybris Engagement Center

除SAP S/4HANA On Cloud之外,其他七款产品在SAP成都研究院均存在对应的开发团队。如果您对这些产品有进一步的问题需要咨询,欢迎留言。

SAP CRM

可以按照客户的类型是Corporate或Individual来搜索。在SAP的很多产品里,这两种类型的客户共用同一个技术模型,通过模型上某个类型字段进行区分。本文只着重介绍Corporate Account。

1240

下图是SAP CRM里某个Corporate Account明细页面的抬头区域。

1240

客户明细页面的抬头区域下部由若干可以通过点击小三角符号来展开的区域组成。SAP的技术文档里称这些区域为Assignment Block。

1240

如何查看SAP CRM的客户模型呢?在上图客户页面按F2,会显示如下弹出窗口,显示该页面实现的BSP应用视图名称为BP_HEAD/BPHEADOverview。

1240

在BSP开发工具里打开该视图,能看到每一个Assignment Block的技术明细。

1240

假设我想深究下图名为Address的Assignment block实现明细,在上图中得知其BSP实现为BP_ADDR/CorpAccountAddresses。在开发工具里打开此视图,找到地址数据是来自模型节点BuilAddress。

1240

1240

这个BuilAdress节点是SAP CRM客户模型的子节点。SAP很多产品都有所谓Business Object(下文简称BO)的概念,这些模型从技术上来说是一棵树,由若干节点组成,节点与节点之间存在父子关系或者跳转关系。每个节点由若干字段组成,这些节点组成的模型,再加上节点上定义的一系列能够执行的动作(action)就构成了一个BO,实际上是sap对某一业务流程及参与实体的高度抽象的产物。

1240

CRM客户模型的底层数据库表:BUT000。用于区分Corporate还是Individual Account的字段名称: TYPE。

1240

通过模型单元测试工具,能够清楚地看到客户的地址信息是维护在节点BuilAddress里的。下图是CRM Business Object测试工具截图,左上显示了该模型的节点集合,左下显示了当前选中节点为BuilAddress,右边区域显示了这个节点所有字段的内容。

1240

SAP CRM Fiori

前一章节介绍里使用CRM Web Client UI打开了一个Corporate客户。这里用SAP CRM Fiori再次打开它。

1240

可以看出CRM Fiori和CRM UI显示的思路类似,都是把抬头类型的信息和各个维度的明细信息分开显示。同CRM相比,稍稍不同的是CRM Fiori的客户明细页面并不像CRM那样,各个维度的数据从上到下依次全部显示在一个页面上。因为要照顾到使用平板电脑或者手机访问系统的Fiori用户,所以CRM Fiori页面上只会显示某一维度的客户数据。不同维度的数据展示通过下拉菜单来切换。

1240

例如选中Marketing Attributes维度后,在Chrome开发者工具里能观察到一个HTTP请求,观察其路径发现CRM_BUPA_ODATA,这其实是OData服务的技术名称。

1240

在网关系统根据该服务名称搜索,能查到提供该OData服务的后台服务器。

1240

让我们再来重温我的公众号文章SAP Fiori应用的三种部署方式里提到的这张架构图。网关服务器就是下图红色方框的ABAP Frontend Server,而OData服务的实现位于后台服务器,如下图蓝色方框所示。

1240

SAP Hybris Cloud for Customer

工作中心视图Accounts和Individual Customers分别对应了SAP CRM里的Corporate Account和Individual Account。

1240

页面风格和SAP CRM稍有不同,但是思路一致:客户的抬头信息显示在页面左部,其他维度的信息显示在页面右部。每个维度的信息通过不同的标签页进行切换。

1240

使用我公众号文章Jerry和您聊聊Chrome开发者工具提到的技巧找到客户明细页面的UI模型地址:

/BYD_COD/SalesOnDemand/Account/UI/COD_Account_TI.TI.uicomponent

在Cloud Application Studio里打开该UI模型,点击Data Model即可查看C4C客户模型的设计明细。

1240

这里可以看出C4C的客户模型仍然是一个BO,位于命名空间http://sap.com/xi/AP/FO/BusinessPartner/Global。

1240

该命名空间内部还包含一些其他BO,例如Customer和Employee。

1240

这几个模型有什么区别和联系?借用面向对象程序设计的思路来解释C4C里客户模型的设计:类似面向对象编程语言里的父类一样,Business Partner这个BO定义了一些最基本最通用的字段,如下图正中的虚线框所示:Generic Attribute,Addresses和Relationships。其他模型Customer,Employee和Supplier,则在这些通用字段基础上定义了一些新的字段。对于Customer模型,其区别于Business Partner模型之处就在于需要维护一些和销售相关的信息,比如销售数据,销售区域和销售线索。对于Employee,关注点则在于工作地址,工作部门,领导等信息。

借用面向对象编程语言的继承概念,C4C的Customer和Employee BO继承了Business Partner BO上定义的通用字段,同时本身又定义了新的字段,这些字段将其自身和其他BO从业务上区分开来。

1240

作为一款云解决方案,您可以通过一些非常简易的步骤,在短短几分钟之内通过OData Service或者Web Service,实现您的第三方应用和C4C客户模型的各种交互。例如您可以将C4C的客户数据暴露出来供第三方应用读取,或者通过第三方应用对C4C客户数据进行写操作。

1240

1240

SAP S/4HANA On Premise

在SAP R/3里,创建不同角色的业务伙伴需要使用不同的事务码:

1240

这些模型在SAP全球客户多年使用过程中,暴露出一些局限性和不足,例如一个Customer/Vendor只能维护一套地址信息;没有角色的概念,一个业务伙伴没法维护成既是Customer又是Vendor;没办法维护一些和时间相关的属性。

这些不足到了S/4HANA得到了妥善解决。在S/4HANA里,所有不同类型的业务伙伴使用统一的Business Partner模型。R/3的Customer和Vendor使用各自的模型和数据库表,到了S/4HANA,这些模型统一成Business Partner,通过BP Role来区分其角色,底层的数据库表也统一使用Business Partner的数据库表。

1240

客户数据的创建也统一使用事务码BP来完成。R/3那些五花八门的业务伙伴创建的事务码全部标注成Obsolete。一旦执行,会自动重定向到事务码BP去。

1240

为了确保大量源自R/3的基于Customer/Vendor旧模型的应用能够继续工作,S/4HANA引入了Customer Vendor Integration(CVI)的概念,简单地说即每次S/4HANA应用使用新的Business Partner对应的API进行写操作时,数据不仅仅存储到新的Business Partner模型的对应的数据库表里,同时仍然会存储一份到旧的数据模型表里,如下图所示:

1240

关于CVI的更多介绍,请参考博客:

SAP S/4HANA on Cloud

和S/4HANA On Premise使用的客户模型相同,例如下图ID为1010的客户明细数据,

1240

通过OData服务MD_CUSTOMER_MASTER从ABAP服务器读取。

1240

切换标签页时,会触发该标签页对应的明细数据读取请求。

1240

每个标签页对应客户模型上的一个子节点。通过Chrome开发者工具查看请求结果字段即可了解到该子节点上建模了哪些字段。

1240

SAP Hybris Enterprise Commerce Platform

Hybris ECP backoffice里也存在Customer和Employee模型。因为是backoffice的使用场景,所以和前文介绍的SAP CRM和SAP C4C不同,这里的客户页面还包含一些其他维度的信息维护,比如密码策略和密码重置功能。

1240

Hybris的模型定义很有意思,定义在xml文件里。在Hybris文件夹\bin\platform\ext\core\resources下面有core-items.xml:

1240

该xml文件定义了Customer这个模型是另一个模型User的扩展,具体扩展的字段名称为customerID。

1240

在执行命令ant build后,会自动生成一个以Model结尾的.java文件,位于文件夹\bin\platform\bootstrap\gensrc\de\hybris\platform\core\model:

1240

查看CustomerModel.java,发现xml文件第1757行定义的code Customer出现在了Java文件的第40行,xml文件第1763行为Customer模型定义的新字段customerID, 出现在Java文件的第43行。

1240

而User模型的实现文件UserModel.java和CustomeModel.java位于同一个文件夹。打开UserModel.java, 发现它又是扩展自模型PrincipalModel。

1240

这个扩展关系也是在core-items.xml里定义的。

1240

同理,User模型较之Principal模型,新定义的字段如下图attributes标签里所示:

1240

按照同样的逻辑再从Principal往上追溯,可以得到完整的类型继承链:

Customer->User->Principal->GenericItems->LocalizableItem->ExtensibleItem->Item。

由此得知Hybris的类型系统,对于Customer和User这些业务模型的关系描述采用的是继承的思路,而ABAP Dictionary里的类型模型则采用的是组合的思路。若干业务上相关的字段被放到一个结构体里,若干结构体再组合(include)成一个规模更大的结构体,最终形成一个给外界消费的结构体。

1240

SAP Hybris Revenue Cloud

SAP Revenue Cloud是SAP最近发布的一款云解决方案。该方案能动态地规划、创新和调整系统,从云端自动管理和配置定价,报价,计费和订购等流程,从而超越报价到收款流程,通过变革实现盈利。

点击Customer tile查看客户主数据:

1240

客户明细页面是典型的Master Detail风格。

1240

从Chrome开发者工具里发现明细页面加载时,会有一个请求向后台读取40个客户的抬头信息:客户ID,客户类型和客户名称,显示在左边的Master List区域内。

1240

选中Master List里某个客户,会触发另一个HTTP请求向后台读取选中客户的明细:分别是客户地址,客户联系人和客户市场信息。这三类明细分别是Revenue Cloud客户模型的三个子节点,通过expand指令读取。

1240

在Chrome开发者工具里展开节点即可查看该节点的字段。例如地址节点包含的字段如下:

1240

这些数据请求由部署在SCP上基于Java实现的Revenue Cloud微服务负责响应并返回给UI5前台。

SAP Hybris Engagement Center

SAP Hybris Engagement Center是SAP新一代全渠道呼叫中心SaaS产品。在坐席和客户的交互场景里,坐席需要在最短的时间内搜索出系统里存在的客户或完成新客户的创建工作。

1240

实际上Engagement Center里的Corporate客户模型上的字段一个屏幕就能够全部显示出来,如下图所示:

1240

客户明细页面渲染之前,所需要的数据通过如下HTTP请求读取:

1240

通过expand指令在一个请求里将客户模型的抬头信息及地址信息一并取回。观察HTTP请求的响应结构,得知Engagement Center的客户模型里,地址信息维护在子节点Addresses上。

1240

从响应结构也能看出地址和客户角色都支持维护多个记录,这个观察结果也和UI上提供的功能一致。

1240

这篇文章简要介绍了SAP几款产品中客户模型的建模情况。通过SAP不同产品里客户数据模型的比较,我们了解到这些模型的复杂程度随使用场景的不同而有所区别。您也可以按照本文介绍的使用Chrome开发者工具这一方法,自行研究您感兴趣的SAP产品里的模型设计。甚至,您可以用同样的方法看看Salesforce的客户模型是怎样设计的。

感谢阅读。

1240

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

1240

1240

转载于:https://www.cnblogs.com/sap-jerry/p/8969509.html

本书共分为3部分,第一部分详细介绍了企业业务工程的原理、目的和帮助实现的信息技术,并讨论了业务蓝图、R/3参考模型和按需求设置;第二部分在销售、生产、采购、控制、财务、人力资源以及资产管理方面提供了大量的方案和实例,说明R/3系统在业务领域中的作用;第三部分描述了R/3系统的体系结构、框架、基础系统和业务工程。 本书适用于希望了解企业业务过程优化处理、实施SAP R/3系统的专业咨询顾问和用户以及企业管理人员、商学院的教师和学生。 目录 第一部分 业务工程 第1章 业务工程和企业优化 3 1.1 业务工程的重要性 4 1.2 业务工程原理 4 1.3 业务工程的目的 4 1.4 业务工程的优点 5 1.5 使用信息技术的业务工程 6 1.6 信息技术的集成 7 1.7 信息技术的发展 8 1.8 客户机/服务器技术 9 1.9 客户机/服务器技术的优点 10 1.10 SAP和客户机/服务器技术 11 1.11 小结 12 第2章 业务蓝图 14 2.1 业务蓝图的优缺点 15 2.2 R/3蓝图的常规设计 16 2.3 R/3蓝图的中心点 17 2.4 事件驱动的过程链方法(EPC) 17 2.5 描述复杂的业务过程 19 2.5.1 采购墨粉 20 2.5.2 招收新雇员 21 2.5.3 计划一次研讨会 21 2.6 R/3参考模型的EPC方法和视点 25 2.6.1 参考模型视图??汽车交易 25 2.6.2 组件模型??发生了什么事情 27 2.6.3 组织模型??谁执行这项任务 28 2.6.4 数据模型??需要什么 28 2.6.5 交互模型??公司的各个模型如何交互 31 2.7 小结 32 第3章 按需求配置 34 3.1 标准软件的实现问题 35 3.2 与业务蓝图的映射 36 3.3 用红线给蓝图做标记 37 3.4 扩展业务过程设计 38 3.5 实施个案研究 39 3.5.1 假想的例子 39 3.5.2 实例1??Schwarzkopf 40 3.5.3 实例2??Conoco有限公司 41 3.6 小结 42 第二部分 过程设计 第4章 价值链的思考 45 4.1 价值链原则 46 4.2 R/3和价值链 47 4.3 价值链的思考 48 4.3.1 价值链示例1??复印机的定货到交货 49 4.3.2 价值链示例2??Applied Micro Circuits公司(AMCC) 49 第5章 销售后勤 51 5.1 标准订单处理方案 51 5.1.1 邮寄活动处理 53 5.1.2 销售活动处理 54 5.1.3 客户RFQ处理 57 5.1.4 客户报价单处理 57 5.1.5 标准订单处理 58 5.1.6 交货处理 59 5.1.7 存储物料的交货处理 61 5.1.8 帐单处理 61 5.2 合同处理 61 5.3 第三方订单处理 63 5.4 寄存库存处理 63 5.5 现金订单处理 64 5.6 紧急订单处理 65 5.7 分散运输 65 5.8 销售和分销示例 66 5.8.1 Micrografix Corporation 66 5.8.2 Jet Aviation 67 第6章 生产后勤 68 6.1 批量生产 68 6.1.1 销售和经营计划处理 72 6.1.2 需求管理 72 6.1.3 物料需求计划 73 6.1.4 生成和执行生产订单 74 6.2 重复式制造 75 6.3 订货型生产 75 6.4 流程式制造 76 6.5 项目相关的"按订单设计" 77 6.6 接收生产货物的质量管理 78 6.7 生产后勤示例??Autodesk Incorporated 78 第7章 采购后勤 80 7.1 处理库存物料方案 80 7.1.1 物料需求计划 84 7.1.2 对库存物料的请求的处理 85 7.1.3 处理发给供应商的RFQ 85 7.1.4 供应商报价单处理 86 7.1.5 库存物料的采购订单处理 86 7.1.6 收货处理 87 7.2 处理消耗物料 87 7.3 寄存库存管理 88 7.4 转包合同订单处理 90 7.5 库存转储处理 91 7.6 外部服务管理 91 7.7 物料管理示例 92 7.7.1 Chevron Corporation 92 7.7.2 Westcoast Energy公司 93 第8章 外部会计 95 8.1 供应商处理 95 8.1.1 供应商主记录处理 97 8.1.2 供应商发票处理 99 8.1.3 预付款 99 8.1.4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值