SAP CRM和Cloud for Customer的扩展字段元数据
CRM
在product search & search result上创建了一个extension field:
根据这个FE能够搜索出对应的product:
后台用tcode AXTSHOW查询生成的FE的metadata:
C4C
Opportunity Header上创建一个FE: Jerry Opp Extension
在后台opportunity root node上找到该FE:YT42LIMGY_P000A867440A38A3
根据该name进行查询,得到查询结果: metadata以BO node的形式存储在这些子节点里。
在一个包含了list的XML视图里,使用SearchField标签页定义一个搜索按钮。点击之后,执行的事件处理函数为handleSearch:
<mvc:View controllerName="sapcp.cf.tutorial.app.controller.View1" xmlns:mvc="sap.ui.core.mvc" displayBlock="true" xmlns="sap.m">
<Shell id="shell">
<App id="app">
<pages>
<Page id="page" title="{i18n>title}">
<subHeader>
<Bar>
<contentLeft>
<SearchField search="handleSearch"/>
</contentLeft>
</Bar>
</subHeader>
<content>
<List id="List" items="{/Products}">
<ObjectListItem type="Navigation" press="handleListItemPress" title="{ProductName}" number="{= ((${UnitPrice} * 100) / 100).toFixed(2) }"
numberUnit="{i18n>currency}">
<attributes>
<ObjectAttribute text="{QuantityPerUnit}"/>
</attributes>
<firstStatus>
<ObjectStatus text="{= ${Discontinued}? 'Discontinued' : 'Available' }" state="{= ${Discontinued}? 'Error' : 'Success' }"/>
</firstStatus>
</ObjectListItem>
</List>
</content>
</Page>
</pages>
</App>
</Shell>
</mvc:View>
在视图的控制器里实现这个搜索函数:
sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/m/MessageBox"
], function (Controller, MessageBox) {
"use strict";
return Controller.extend("sapcp.cf.tutorial.app.controller.View1", {
onInit: function () {
},
// show in a pop-up which list element was pressed
handleListItemPress: function (oEvent) {
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
var selectedProductId = oEvent.getSource().getBindingContext().getProperty("ProductID");
oRouter.navTo("Detail", {
productId: selectedProductId
});
}
});
});
测试:
搜索能够按照期望的工作:
登录API Portal,创建一个新的API:
API Provider字段,选择之前创建好的API provider,SAPDeveloperSystemES5,点击Discover按钮后,能看到该Provider包含的API列表:
这里我们选择GWSAMPLE_BASIC,
选中后,URL字段会自动带出来:
保存之后,点击Deploy部署:
确保API处于Deployed状态。
点击Test面版,打开SAP API Portal自带的测试控制台,选择GWSAMPLE_BASIC,点击Send按钮,可以测试该API是否按照我们期望的工作。
收到401错误码,是因为我们测试时Authentication选择的是none,改成Basic Authentication,会弹出用户名和密码的输入对话框:
之后API即可按照我们期望的工作。
- 点赞
- 收藏
- 关注作者
评论(0)