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

如何在SAP Cloud for Customer页面嵌入自定义UI

阅读更多

最近Jerry所在的团队在做一个智能名片的项目,销售代表可以使用微信小程序创建智能名片,发布一些促销信息,分享到微信平台上(朋友圈或微信群)。点击名片的人可以浏览该销售负责售卖的商品,查看商品的参数等各种明细信息,并可以同名片绑定的智能机器人进行简单的对话,询问本次促销活动的更多信息。

假设一位汽车销售负责销售如下三款汽车,这些汽车作为产品主数据维护在C4C系统中。

汽车销售在智能名片的微信小程序里基于Mini Cooper这款车创建了一个促销活动,分享到微信平台。

其他人点击进入后,点击聊天按钮,可以同配置好的SAP Conversation AI进行对话,了解更多关于Mini Cooper的详情。

智能名片会把这个对Mini Cooper感兴趣的人的微信用户信息提取出来,在C4C系统里创建一个新的Lead数据。同时我们会把用户同SAP Conversation AI的对话记录采集下来,待收集到规模可观的数据之后,进行大数据分析,采取人工智能等工具推算出最可能购买这款车型的潜在用户,最后出一个报表显示在C4C系统里供该汽车销售查看。

我们开发一个新的应用,进行大数据分析和潜客分析的报表,部署在SAP云平台上,然后将这个自开发应用的UI嵌入到C4C.

我采用的C4C嵌入自开发应用的技术是Mashup(混搭),C4C的Mashup框架源自SAP Business by Design, 诞生距今已经有十多年历史了。技术虽然老,然而在实现自开发UI嵌入这些需求时非常好用。

Jerry最近在使用Mashup完成C4C嵌入自开发UI时遇到一些问题,期间得到了同事Xu Boris的大力支持,这里表示感谢。本文把遇到的问题记录下来,方便我以后查看。

先看下实现效果。打开Lead明细页面,当前Lead的ID会自动被传到嵌入的自定义页面里,并完成展示逻辑。这个例子里我用微软的bing搜索来扮演第三方应用的角色,Lead ID 25225自动传入到bing的页面并自动完成搜索。

可以从这个视频里查看到动态效果:

自开发页面的嵌入,技术上是通过iframe标签实现的:

在C4C的Mashup Authoring里创建一个新的HTML Mashup:

需要指定Port Binding. 我第一次使用Mashup时,对下面这段帮助文档的文字看得似懂非懂,后来熟悉了才懂得,Port Binding即一个个容器,每个容器包含了一系列输入字段。因为Mashup总是要通过iframe嵌入到标准页面上的,而标准页面上字段的值,就通过这些输入参数传递到Mashup里。

假设我想把Lead页面的LeadID传到Mashup里,就在Mashup创建页面选择Lead Info这个Inport里的LeadID字段。

然后把这个LeadID字段绑定到bing搜索的输入参数q即可。

在创建Mashup页面里,选择的Port Binding名叫Lead Info,里面包含的输入参数是在哪里定义的?

打开这个名叫COD_globalmashupporttypes的模型,其类型称为port type, 其实就是一个包,包含了C4C标准支持的所有Mashup输入参数容器。

持续往下拖,我例子里使用的LeadInfo里的LeadID字段就定义在这里。

下一步把创建好的Mashup配置到Lead明细页面里。注意到C4C里存在Sales Leads和Leads两个工作中心视图:

前者(Sales Lead)及对应的OData服务已经被标注成Deprecated,因此我们先将Mashup配置到后者Leads视图上。

在Key User Tool的Adaptation模式下,点击Add按钮,

选择之前创建好的Mashup模型,就能将其添加到C4C标准页面了。

注意,并不是任意创建的Mashup都能添加到任意的C4C页面(我称其为宿主页面)。换言之,仅当宿主页面UI模型存在一个Outport,其指向的Port Binding,和某个Mashup创建时基于的Port Binding一致的时候,后者才能够通过Key User Tool的方式,被嵌入到前者中。

对于Leads明细页面COD_Mkt_Prospect来说,它存在一个Outport,指向Lead_Info——正好是我创建的Mashup基于的Port Binding,因此我可以在Lead页面上直接用Key User Tool添加创建好的Mashup.

如果由于种种原因,不得不使用处于Deprecated状态的Sales Lead,就会遇到一个问题:因为其UI模型COD_MarketingLead并不存在任何一个指向Lead_Info的Outport,因此无法直接通过Key User Tool将Mashup添加到C4C UI上。

此时我们可以转换思路,使用SAP C4C的Cloud Application Studio来完成Mashup的嵌入需求。C4C的Embedded Component(下文简称EC)作为可以装载其他UI控件的可重用UI组件,当然也能放置一个Mashup于其内。因此,我们将创建好的HTML Mashup放置到一个EC内,再将该EC嵌入到C4C标准页面即可。

这种方式和Key User Tool比较,缺陷在于从宿主UI到EC,以及从EC到Mashup的参数传递需要应用开发人员自己搞定,步骤稍嫌繁琐一些。以LeadID这个参数为例,需要先从C4C标准UI传递到EC,再从EC传递到Mashup.

C4C UI组件跳转时的参数传递通过一对Outport和Inport来完成,跳转的发起方维护Outport,将参数传递到跳转目的地UI维护的Inport中去。在跳转的发起方里维护跳转关系,将其Outport同跳转目的地的Inport配对,也称为绑定。

下图蓝色的图例,代表为了完成参数从C4C UI经由EC最终传递到Mashup,所需要创建的Outport和Inport.

详细开发步骤如下:

(1) 创建一个新的EC,稍后我们会把HTML Mashup放置到这个EC里去。但是在此之前,首先要完成C4C UI到EC的LeadID参数传递。

创建一个名叫fromLeadTI的Inport,定义一个参数objectID, 绑定到EC模型的leadID字段上。如此一来,我们将该EC添加到Lead页面时,将Lead页面的Outport的leadID绑定到该EC创建的Inport的leadID字段,完成从C4C页面到EC的参数传递。

(2) 创建一个新的Port Type AICardPortTypePackage,在Inport里定义一个参数SalesLeadID,这个参数完成从EC到Mashup的LeadID传递任务。

接着创建一个自定义Port Binding,将刚刚创建的Port Type里声明的包含SalesLeadID输入参数的inport暴露出来,供Mashup使用。

(3) 创建一个新的HTML Mashup,使用第二步创建的自定义Port Binding:

如此一来,Mashup就能使用自定义Port Binding里暴露出来的SalesLeadID这个输入参数了:

将其绑定到bing搜索的url参数q上去,至此Mashup的配置完毕。

(4) 在UI Designer里将该EC添加到Lead页面去:

我们在第一步里不是给EC创建了一个Inport,参数为objectID么?将EC添加到C4C Lead UI后,将Lead UI Outport的SalesLeadID绑定到EC Inport的objectID, 这就实现了从C4C UI到EC的参数传递。

(5) 最后要完成从EC到Mashup的参数传递。因此在EC里创建一个Outport,将SalesLeadID传递给第二步创建的Port Type Package里包含的自定义Port Binding里去。因为我创建的Mashup正是基于这个自定义Port Binding,所以能够使用从EC传递过来的数据。

最后一个步骤,将Mashup拖拽到这个EC里:

将EC Outport的SalesLeadID绑定到Mashup Inport的同名参数上,完成从EC到Mashup的参数传递。

至此这种通过Cloud Application Studio的Mashup开发配置方式就介绍完了。虽然稍显繁琐一些,但较之Key User Tool来说更加通用,我用这种方法也成功地完成了工作中的开发任务。

感谢阅读。

0
1
分享到:
评论

相关推荐

    The SAP Cloud for Customer OData API Developer’s Guide com.zip

    8. **扩展与自定义**:SAP Cloud for Customer允许开发者创建自定义OData服务和实体,这部分会指导如何实现这一功能,以及如何将自定义逻辑融入API。 9. **最佳实践与示例**:文档会包含大量代码示例,展示如何在...

    C4CODATAAPIDEVGUIDE:《 SAP Cloud for Customer OData API开发人员指南》以最方便开发人员的格式补充了SAP Cloud for Customer OData API参考(稍后将提供一个链接)的用法详细信息和示例。 此外,它还涵盖了已知的限制和局限性

    SAP Cloud for Customer OData API开发人员指南《 SAP Cloud for Customer OData API开发人员指南》以最方便开发人员的格式补充了《 的用法细节和SAP Cloud for Customer OData API示例。 此外,它还涵盖了SAP Cloud...

    SAP Cloud for Customer 的 Gmail-crx插件

    此扩展程序连接到SAP Cloud for Customer解决方案,并在向潜在客户和客户发送电子邮件时提供了所有相关信息的快速视图,并允许您链接电子邮件对话,查看联系信息以及创建新的机会,任务和访问,全部直接来自Gmail。...

    cloud-c4s-cti-integration:集成SAP Cloud for Service的示例代码SAP Cloud for Customer Telephony集成

    重要通知此公共存储库是只读的,不再维护。用于计算机电话集成的SAP Service Cloud示例小部件描述这... SAP Cloud for Customer是SAP Service Cloud的付费产品。 没有可用的演示。 在C4C中登录的用户应为其分配Live Act

    赢得更多客户 Cloud for Customer

    SAP Cloud for Customer方案

    SAP Cloud for Analytics for Planning

    SAP Cloud for Analytics for Planning 是SAP公司针对企业规划领域推出的一款云分析产品。它基于SAP Analytics Cloud (SAC),集成了SAP Business Planning and Consolidation (SAP BPC) 的功能,旨在为企业提供一个...

    SAP Cloud for Customer Gmail Add-in-crx插件

    此扩展将Gmail连接到SAP Cloud for Customer解决方案,并在电子邮件潜在客户和客户时快速查看所有销售信息,并允许您链接电子邮件对话,搜索重复的联系人,并创建新的领导,机会,任务。和访问,直接来自Gmail。SAP ...

    teched2020-DEV161:DEV161-在SAP Cloud Platform上使用自定义UI扩展SAP S4HANA

    DEV161-使用SAP Business Technology平台上的自定义UI扩展SAP S / 4HANA 描述 该存储库包含SAP TechEd 2020会议的资料,称为DEV161-使用SAP Business Technology Platform上的自定义UI扩展SAP S / 4HANA 。 概述 ...

    SAP Cloud Platform Connectivity

    SAP Cloud Platform Connectivity提供了在不同环境(如Cloud Foundry和Neo)中连接到外部资源的能力。它的主要目标是提供一种安全、高效的方式,让基于SAP Cloud Platform的应用程序与传统系统(如ERP、CRM系统)或...

    This project contains sample applications for SAP Cloud Ap.zip

    【描述】"This project contains sample applications for SAP Cloud Ap"指出,这个项目提供了SAP Cloud Platform的实例应用,用于演示和学习如何在该平台上进行开发。这些示例应用可能涵盖了各种业务场景,例如流程...

    SAP GUI for windows 800/8..00 内含SAP GUI for windows 800 Patch5 补

    SAP GUI for windows 800安装包,内含SAP GUI for windows 800 Patch5 补丁SAP GUI for windows 800安装包,内含SAP GUI for windows 800 Patch5 补丁SAP GUI for windows 800安装包,内含SAP GUI for windows 800 ...

    17 SAP S4HANA Cloud Integration.pdf

    在集成的客户生态系统的示例中,提到了SAP Cloud Platform、SAP Cloud Identity (SCI) for SSO、SAPS/4HANA Cloud的客户景观。这里可能包含了从Starter System到Quality System再到最终的Productive System的各个...

    UIPATH机器人实现登录SAP的功能

    结合提供的压缩包文件“填写参数.png”和“SAP系统登录”,我们可以推测其中可能包含了UiPath设计的工作流截图和具体步骤说明,用于指导如何在UiPath Studio中创建一个项目,定义活动来模拟SAP登录。在实际操作中,...

    SAP UI5 文档

    在UI部分,文档涵盖了SAP UI5应用程序的初始设置和教程,包括为应用程序准备结构化组件和描述符。模型视图控制器(MVC)架构模式的使用被详细介绍,以及如何通过片段来重用UI组件,以及HTML和XML模板的使用。还包括...

    SAP Cloud Platform Introduction

    SAP Cloud Platform还包括了SAP HANA服务(SAPHANA Service),这个服务允许用户在云中使用SAP HANA数据库,SAP HANA是一个高性能的数据库,特别适合于处理大量数据的实时分析。 整体而言,SAP Cloud Platform是一...

    SAP S4 HANA On-Premise和S4 HANA Cloud

    9. 开发方式:On-Premise使用ABAP在GUI客户端开发,Cloud在SAP Cloud Platform上开发,支持UI5等现代技术。 10. 系统架构:On-Premise有多层环境,如开发、测试和生产环境,Cloud则简化为测试和生产系统。 对于期望...

    SAP UI5 Reference for SAP HANA

    文档《SAP UI5 Reference for SAP HANA》提供了关于如何在SAP HANA平台上开发和运行SAP UI5应用程序的详细指南。它包含多个章节,涵盖了从安装SAP UI5应用程序工具到支持应用程序国际化、本地化、测试,以及最终在...

    SAP 权限检查 (通过自定义函数进行控制检查)

    SAP 权限检查(通过自定义函数进行控制检查) 在 SAP 系统中,权限检查是一项重要的安全机制,用于控制用户对系统资源的访问权限。通过自定义函数进行控制检查,可以更好地实现权限管理。下面将详细介绍权限检查的...

    SAP S/4 HANA Cloud - SAP Cloud Security&Support; Framework

    SAP S/4 HANA Cloud是SAP公司推出的一套集成化的企业资源规划云解决方案,它基于S/4 HANA平台,旨在为各种规模的企业提供实时的数据处理和业务分析功能。而SAP Cloud Security & Support Framework则是SAP为了保障其...

Global site tag (gtag.js) - Google Analytics