Cloud for Customer里新的Lead UI对Mashup集成的支持原理
我们在SAP Cloud for Customer UI里可以看见Lead和SalesLead两个UI,其中后者被SAP标记为deprecated状态:
Leads才是SAP推荐使用的UI,Lead TI页面的模型路径:
app.component=/BYD_COD/SalesOnDemand/Marketing/Prospect/COD_Mkt_Prospect.TI.uicomponent&h=804e169d5b2010a24a896d7377401d5e&g=b0080adad96bea4e5aea4e8c96c22cdf
同deprecated状态的Sales Lead UI相比,只有新Lead UI controller里才存在支持Mashup集成的outport,如下图所示:
该outport指向的PortType Package所reference的Lead_info, 正是在Lead TI页面的tab里通过Key User Tool添加Mashup时在port binding列下方看到的Lead Info:
我们在SAP Cloud for Customer上创建Mashup时,会选择port binding:
点了F4之后,看到的这些列表里的数据:
从Chrome开发者工具里能观察到这些数据是通过HTTP请求从后台返回的:
选中Lead_Info后:能看到Lead_Info这个inport提供的所有字段,这些字段又是另外一个HTTP调用取回的,其响应如下:
点击url后,
navigationProcessor负责这次跳转:
oTarget变量内容如下:
使用ControllerFactory创建Embedded Component:
在navigationProcessor里有一个专门的方法用于处理
inscreen_dataflow:
screen到Embedded Component的跳转,当然是方法_inscreenToEC完成:
在这个方法里,拿到inport并fire之,以完成C4C UI到Mashup的参数传递:
在inportAdapter.js里,根据事件对象解析出需要传递给Mashup的参数:
SAP Cloud for Customer里的product list创建:
我创建一个ID为161的product list,维护三个product进去:
三个product ID如下:
找到该product list对应的UI:COD_ProductList_OWL
这个UI对应的后台BO为ProductBusinessPartnerRelation:
新建一个C4C OData服务,取名productListOData:
BO选择刚才在UI designer里找到的ProductBusinessPartnerRelation:
选中BO之后,接下来选择BO节点,从Root出发:
对于该OData的权限控制,选择Produt Lists视图:
使用OData服务通过一次http调用,同时返回该product list包含的三个product:
https://my592.c4c.saphybriscloud.cn/sap/c4c/odata/cust/v1/productlistodata/ProductBusinessPartnerRelationCollection?filter=ID eq '161'&expand=ProductBusinessPartnerRelationProduct
我在C4C系统里添加的三个产品,包含在OData响应结构的ProductBusinessPartnerRelationProduct节点里:
展开这个子节点下面的三个对象,分别对应着product list里的三个产品:
- 点赞
- 收藏
- 关注作者
评论(0)