SAP CRM和Cloud for Customer的扩展字段元数据

举报
汪子熙 发表于 2022/02/27 20:08:45 2022/02/27
【摘要】 CRM在product search & search result上创建了一个extension field:根据这个FE能够搜索出对应的product:后台用tcode AXTSHOW查询生成的FE的metadata: C4COpportunity Header上创建一个FE: Jerry Opp Extension在后台opportunity root node上找到该FE:YT42...

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即可按照我们期望的工作。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。