笔者最近参与了一个项目,需要将 SAP Analytics Cloud 和 SAP Cloud for Customer 进行集成。这里笔者通过本文将项目中获得的一些开发经验分享出来,希望对相关从业者有所帮助。
什么是 SAP Analytics Cloud 和 SAP Cloud for Customer?
SAP Analytics Cloud 解决方案将 SAP Business Intelligence、增强和预测分析以及规划能力,结合到一个统一的云环境中。作为 SAP Business Technology Platform(SAP 业务技术平台)的分析层,它支持企业范围内的高级业务分析功能。
SAP Cloud for Customer 解决方案通过在前台和后台解决方案之间发送和接收业务数据,并提供客户的单一视图,从而帮助企业高效地管理其日常销售(Sales)和服务(Service)交互,分为 SAP Sales Cloud 和 Service Cloud 两大模块。

项目背景在笔者之前的 InfoQ 文章
如何使用 Mashup 技术在 SAP Cloud for Customer 页面嵌入自定义 UI
已经介绍过。我们给汽车销售开发了一个微信小程序,在使用过程中会在SAP Cloud for Customer里生成Lead数据。我们希望使用SAP Analytics Cloud对C4C里这些Leads数据做各种分析和预测,以帮助该销售更有效地完成其销售目标。

从SAP Analytics Cloud 官网得知,Analytics Cloud同提供数据源的SAP其他产品或第三方系统建立连接,有Live Data Connections和Import Data Connections两种,二者最大区别就在于前者没有数据复制(Replication), 而后者存在类似SAP ERP和SAP CRM之间的数据复制。

两种连接类型的支持矩阵表明,SAP Cloud for Customer只支持通过Import Data Connections的方式,同SAP Analytics Cloud集成。

因为二者都通过公有云的方式部署,因此也无需使用SAP Cloud Connector进行内外网穿越了。

在SAP Analytics Cloud里新建一个connection:

在Acquire Data里选择SAP Cloud Platform Analytics:

Data Service URL维护如下:https://<host name>.c4c.saphybriscloud.cn/sap/byd/odata/cc_home_analytics.svc
SAP Cloud for Customer系统的Analytics模型,通过上面这个URL暴露给SAP Analytics Cloud使用。

连接建立后,基于该连接开启一个新的Model创建任务,选择SAP Cloud for Customer Analytics:

SAP Analytics Cloud的Model是基于Query的,所以先创建一个Query:

点击Next后,SAP Analytics Cloud会从SAP Cloud for Customer读取Query列表信息:

稍等片刻,SAP Cloud for Customer的Report模型就被读取出来,显示在SAP Analytics Cloud的Query列表里。因为SAP Analytics Cloud作为一个Analytics Hub,不可能知道Cloud for Customer应用比如Sales,Service,Marketing这些领域数据的存储明细,所以通过这些充当代理角色的C4C Report,去完成数据读取的任务。

每一个出现在上图对话框列表内的Query都对应着C4C系统Business Analytics(工作中心)的Design Reports(工作中心视图)里的一个Report, 命名规范为"RP<C4C Report ID>Q000<数字>QueryResults". 其中C4C Report ID可以在C4C系统里找到。

假设SAP C4C发布的标准Report不能满足我项目的实际需求,我可以基于Sales Lead(CODLEAHB)这个C4C的标准Data Source,自己新建一个Report.

点击New Report:

维护Name为Zjerryc4cLeadReport:

选中默认的两个Key Figure,Counter和Today,因为我希望创建的这个Report,能告诉我:到今天为止,C4C系统里一共存在多少个Lead,以及这些Lead的来源分布情况(通过Lead的Source字段区分)。

这个自定义的C4C Report创建完毕:

创建完毕后,对其进行简单的测试:

因为没有选择任何限制条件,所以该Report显示的Counter值为当前系统里全部的Lead个数:5837. 点击漏斗图标,打开Source字段的帮助对话框:

选择Z01代表的Wechat Social Channel:

得到意料之中的结果:6.

这和OWL查询出的结果一致。

C4C的Report创建好之后,就可以在SAP Analytics Cloud的Query列表里检索出来并选择:

在SAP Analytics Cloud里可以选择C4C 自定义Report里所有支持的Characteristics作为SAP Analytics Cloud模型的选择条件。下图的Incremental Load工作原理和SAP CRM中间件的Delta Download类似,不在本文讨论范围之内。

定义好SAP Analytics Cloud Model的选择条件之后,数据同步工作就开始了。

待数据全部从SAP C4C同步到SAP Analytics Cloud之后,提示信息显示总共5837条记录导入成功:

SAP Analytics Cloud Model基于这批导入的数据自动进行创建。

接下来,就是SAP Analytics Cloud的常规操作了,即基于模型创建Story,进行各种图表的展示,具体步骤请参考SAP Analytics Cloud的帮助文档。
下图是C4C系统全部的Lead按照其Source字段进行区分而显示出的分布情况,可以看到来自Campaign的Lead最多,而通过Wechat Social Channel创建的Lead最少。

可以在SAP Analytics Cloud里切换不同的图表来显示这些Lead的来源分布情况:


总结
本文分享了笔者在实际项目中,需要将 SAP Analytics Cloud 和 SAP Cloud for Customer 这两款 SaaS 软件,通过二者开箱即用的集成模块,进行数据复制和同步的业务需求和详细的技术实现,希望对相关从业者有所帮助。
原网站版权声明
本文为[InfoQ]所创,转载请带上原文链接,感谢
https://xie.infoq.cn/article/db1bf8fa3775ef2ff18c4d5af