SEGW项目与自定义UI5 App中的智能表的链接/绑定注释

2020-08-20 05:56发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好乡亲, 我已经使用JS视图...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好乡亲,

我已经使用JS视图创建了一个自定义UI5应用程序(版本-1.44.12),并添加了一个智能表格(sap.ui.comp.smarttable),该表格可从oData-SEGW项目创建的服务中获取其数据。 现在,当我使用属性" initiallyVisibleFields"并传递字段名称(列)时,从WebIDE运行具有这些字段(列)的应用程序时,表已成功显示。

但是,我不想使用" initiallyVisibleFields"属性,并且想要实现相同的目标,即使用oData注释获取字段(列)。

因此,我创建了SEGW-注释项目(用于引用服务的注释模型),从而引用了我的父oData-SEGW服务并为特定实体类型(com.sap.vocabularies.Common.v1,com.sap.vocabularies)创建了注释 .UI.v1-关于导入词汇表的行项目和数据字段),生成了此项目,然后对其进行了注册。 在/IWFND/MAINT_SERVICE中成功注册并且URI正常工作。

"注释":[" ZXXXXXX_ANNO_MDL"]

" ZXXXXXX_ANNO_MDL":

{

" uri":" ZXXXXXX_ANNO_MDL.xml",

" type":" ODataAnnotation",

"设置":

{" localUri":" ZXXXXXX_ANNO_MDL.xml"}

}


现在,当我运行我的应用程序时,出现以下错误-"没有为您的表选择任何列。在执行搜索之前,请确保至少显示一列。"

似乎问题在于智能表无法识别此注释文件(已导入)以用于构建和显示订单项。 同样在网络标签中,我看不到该注释文件被调用。

请提出您宝贵的意见和反馈。

预先感谢!

Pravesh

付费偷看设置
发送
5条回答
何必丶何苦呢
1楼 · 2020-08-20 06:35.采纳回答

尝试了一种解决方法,而不是从后端导入注释文件或在WebIDE modeler中创建本地注释文件,而是直接在控制器onInIt函数中的模型本身中提供了我的后端注释服务uri。

var oModel =新的sap.ui.model.odata.v2.ODataModel(serviceUrl,{

annotationURI:["/img/sap/opu/odata/IWFND/CATALOGSERVICE; v = 2/Annotations(TechnicalName ='ZXXXXXXX',Version ='0001')/$ value/"]

});

然后将此模型设置为我的智能表(sap.ui.comp.smarttable)。

我可以在表中获取UI.LineItem和UI.DataField批注属性。

根据回答关闭此线程。

谢谢!

悻福寶寶
2楼-- · 2020-08-20 06:25

你好,Maxim,

感谢您的回复。

1。 导入注释文件时,将正确导入具有SEGW-oData Annotation项目(annotations-> vocabularies)中定义的Target,UI.LineItems和UI.DataField的Annotations,它们的导入方式与您共享的示例相同。

2。 我还尝试在WebIDE中创建本地注释文件(使用注释建模器)以用于相应的实体类型并更新清单文件。 但是,SmartTable不会从导入的以及本地注释文件中链接UI.LineItem和UI.DataField。

还要确保我的注释文件(后端)是否存在问题,我为相同的oData服务(数据提供者)使用"列表报告模板"创建了项目,系统会从引用的oData Annotation项目中提示注释文件到 此oData服务。 选择后端注释文件后,我能够在成功加载Table的情况下运行该应用程序,并根据注释文件中的属性显示列。 因此,同样适用于其他模板,而不适用于SAP UI5自定义应用程序。

我是小鹏鹏啊
3楼-- · 2020-08-20 06:39

使用注释显示列时,您需要确保用于表的实体集具有注释,如下所示:

 
 
 <收藏>
 
 (日期仅是示例)
 

 ....

 ....
 
 

 ->在要显示的每一列中添加记录
路亽曱_Ryan
4楼-- · 2020-08-20 06:25

您好Deepak,

感谢您的回复。 是的,我能够在注释文件中接收属性,这些注释文件已经明确导入了Target和在SEGW-oData Annotation项目中定义的UI.LineItems和Data字段。 但是,同样的方法不起作用,并且出现如下错误-

"没有为您的表选择任何列。执行搜索之前,请确保至少显示一列。"

还要确保我的注释文件(后端)是否存在问题,我为相同的oData服务(数据提供者)使用"列表报告模板"创建了项目,系统会从引用的oData Annotation项目中提示注释文件到 此oData服务。 选择后端注释文件后,我能够在成功加载Table的情况下运行该应用程序,并根据注释文件中的属性显示列。 因此,对于其他模板而言,这同样适用,对于SAP UI5自定义应用程序而言,则无法正常工作。

亦是此间程序员
5楼-- · 2020-08-20 06:35

您是否能够在导入的注释文件中找到属性。

一周热门 更多>