Fiori Elements使用参数的CDS视图

2020-09-16 01:43发布

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

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


我在这里疯了...我希望有人能给出答案。

我已经定义了带有参数的CDS视图。 下面的部分清单。 此视图在Eclipse中进行了很好的测试。

当我在FIORI ELEMENTS LIST REPORT中使用此视图时,将忽略参数。 SelectionField批注似乎仅用作过滤器(基于未经参数测试的其他视图)

有人知道如何将SelectionFields作为参数传递给子视图吗? 我尝试了(p_gjahr:$ projection.gjahr ...),这是语法错误。 还是我缺少一些"参数注释"?

再次:CDS视图可以在Eclipse中找到,CDS视图的定义是正确的……只是参数似乎被oData忽略了(或者甚至被Firoi Elements忽略了)。

注意:我需要将参数传递给表函数...,因此我需要参数。

前端服务器:SAP_ABA 750.007 SAP_UI 751.002

ECC:SAP_ABA 750.009

谢谢

蒂姆

 

(25.8 kB)

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

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


我在这里疯了...我希望有人能给出答案。

我已经定义了带有参数的CDS视图。 下面的部分清单。 此视图在Eclipse中进行了很好的测试。

当我在FIORI ELEMENTS LIST REPORT中使用此视图时,将忽略参数。 SelectionField批注似乎仅用作过滤器(基于未经参数测试的其他视图)

有人知道如何将SelectionFields作为参数传递给子视图吗? 我尝试了(p_gjahr:$ projection.gjahr ...),这是语法错误。 还是我缺少一些"参数注释"?

再次:CDS视图可以在Eclipse中找到,CDS视图的定义是正确的……只是参数似乎被oData忽略了(或者甚至被Firoi Elements忽略了)。

注意:我需要将参数传递给表函数...,因此我需要参数。

前端服务器:SAP_ABA 750.007 SAP_UI 751.002

ECC:SAP_ABA 750.009

谢谢

蒂姆

 

(25.8 kB)
付费偷看设置
发送
5条回答
三十六小时_GS
1楼-- · 2020-09-16 02:32

使用标准fiori元素功能尚不支持传递参数。 您需要使用扩展名来传递参数。

我在"使用SAP Fiori元素开发应用程序->列表报告和对象页面->扩展生成的列表报告和对象页面->将自定义字段添加到智能过滤器栏"下的UI5文档中发现了隐藏的解决方案思想。

您可以在出口" onBeforeRebindTableExtension"中填写参数。 在列表报告调用odata服务之前,将调用此扩展名。 在出口处,您可以删除过滤器,添加其他过滤器,还可以添加参数。 文档中的以上示例使用自定义过滤器字段填充字段。

通过使用" setTableBindingPath"替换用于选择节点数据的URL来完成传递参数。 这里是我的示例的退出:

 sap.ui.controller(" Test_Parameter.ext.controller.ListReportExt",{
 onBeforeRebindTableExtension:function(oEvent){
 var oSmartTable = oEvent.getSource();
 var oSmartFilterBar = this.byId(oSmartTable.getSmartFilterId());
 var vCategory;
 如果(sap.ui.comp.smartfilterbar.SmartFilterBar的oSmartFilterBar实例){
//自定义过滤器
 var oCustomControl = oSmartFilterBar.getControlByKey(" readMode");
 如果(sap.m.ComboBox的oCustomControl实例){
 vCategory = oCustomControl.getSelectedKey();
 开关(vCategory){
 情况" X":
 ---> oSmartTable.setTableBindingPath("/img/MYNODE('" + vCategory +"')/Set");
 打破;
 情况" R":
 oSmartTable.setTableBindingPath("/img/MYNODE('" + vCategory +"')/Set");
 打破;
 默认:
 打破;
 }
 }
 }
 }
 
DafaDDDa
2楼-- · 2020-09-16 02:46

你好,

我可以使用扩展名添加自定义字段。 但是,就像在CDS中一样,我已经使用注释定义了几个选择字段。 CDS注释生成的UI现在不再起作用。 我怀疑这是因为Fiori Elements实际上带有ParameterSet注释(它也是由OData发布生成的)。

我需要做任何特殊的设置吗?

葫芦娃快救爷爷
3楼-- · 2020-09-16 02:39

因此,我不确定我是否完全了解您在上面所做的工作。

如果我想将p_gjahr传递到下面的CDS视图。

首先,我需要在FioriElement屏幕上获得GJAHR,我认为您已经在上面进行了描述,并展示了如何从扩展中提取此值并将其放入变量vGjahr。

第二,我需要在下面的CDS消耗视图中将vGjahr传递给p_gjahr。 如上所述,如果我拥有vGJAHR,则下面的绑定是什么样的?

 oSmartTable.setTableBindingPath(??)

对不起,我是JS领域的新手,并且不确定绑定的工作方式是如何填充CDS参数...也许您是在解释它,而不是真正理解它。

谢谢

蒂姆

Baoming ROSE
4楼-- · 2020-09-16 02:48

蒂莫西嗨,

您是否设法从Fiori Elements应用程序中填写CDS参数?

宇峰
5楼-- · 2020-09-16 02:46

我没有。 我"认为"我现在知道如何了,但是却从未解决过,因为我做了我需要做的大量嵌套CDS视图的工作...

一周热门 更多>