Fiori-函数导入后重新绑定订单项

2020-09-16 20:24发布

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

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


专家您好,

我面临着一个新挑战,"将列表与BackEnd中的更新数据绑定在一起"。 我有一个列表报告和对象页面(OP)。

在我的OP中。 我向功能导入添加了自定义操作链接。 此函数调用后端并获取更新的数据。

这是我的问题,如何将新数据刷新/重新绑定到我的LineItem?

版本1.38

这是我的注释文件


下面的一些代码

 OnActionItemsRefresh:function(oEvent){
 var oBindingContext = oEvent.getSource()。getBindingContext();
 var sObjectPageData = oBindingContext.getModel()。getProperty(oBindingContext.getPath());
 var vFunctionName ="/img/ActionItemsRefresh";
 var mParameters = {
 " INVOICE":sObjectPageData.Invoiceid,
 " FISCALYEAR":sObjectPageData.Fiscalyearid
 };


//var oData = this.extensionAPI.invokeActions(vFunctionName,this.extensionAPI.getSelectedContexts(),mParameters);
 var that = this;


 尝试{
 oBindingContext.getModel()。callFunction(vFunctionName,{
 方法:" GET",
 urlParameters:mParameters,
 成功:函数(oData,响应){
//console.log(oData.results);
 that.extensionAPI.rebind(" InvoiceItems");
 },
 错误:function(oError){
//console.log(oError);
 }
 });
 } catch(ex){
//console.log(ex);
 }
 }
 

如果您有任何建议或答案?

非常感谢!!

(27.6 kB)

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

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


专家您好,

我面临着一个新挑战,"将列表与BackEnd中的更新数据绑定在一起"。 我有一个列表报告和对象页面(OP)。

在我的OP中。 我向功能导入添加了自定义操作链接。 此函数调用后端并获取更新的数据。

这是我的问题,如何将新数据刷新/重新绑定到我的LineItem?

版本1.38

这是我的注释文件


下面的一些代码

 OnActionItemsRefresh:function(oEvent){
 var oBindingContext = oEvent.getSource()。getBindingContext();
 var sObjectPageData = oBindingContext.getModel()。getProperty(oBindingContext.getPath());
 var vFunctionName ="/img/ActionItemsRefresh";
 var mParameters = {
 " INVOICE":sObjectPageData.Invoiceid,
 " FISCALYEAR":sObjectPageData.Fiscalyearid
 };


//var oData = this.extensionAPI.invokeActions(vFunctionName,this.extensionAPI.getSelectedContexts(),mParameters);
 var that = this;


 尝试{
 oBindingContext.getModel()。callFunction(vFunctionName,{
 方法:" GET",
 urlParameters:mParameters,
 成功:函数(oData,响应){
//console.log(oData.results);
 that.extensionAPI.rebind(" InvoiceItems");
 },
 错误:function(oError){
//console.log(oError);
 }
 });
 } catch(ex){
//console.log(ex);
 }
 }
 

如果您有任何建议或答案?

非常感谢!!

(27.6 kB)
付费偷看设置
发送
3条回答
95年老男孩
1楼 · 2020-09-16 20:55.采纳回答

最后,在克里斯蒂安的帮助下,我做到了。 在我的代码下方,以帮助他人。

 OnActionItemsRefresh:function(oEvent){
//一些var以获得LineItems的ID,实体的绑定和键
         var vTableId = oEvent.getSource()。getParent()。getParent()。getId();
 var oBindingContext = oEvent.getSource()。getBindingContext();
 var sObjectPageData = oBindingContext.getModel()。getProperty(oBindingContext.getPath());
//创建一个过滤器以应用ActionRefresh
 var aFilters = [];
 var oFilter = new sap.ui.model.Filter(" Invoiceid",sap.ui.model.FilterOperator.EQ,sObjectPageData.Invoiceid);
 aFilters.push(oFilter);
 oFilter = new sap.ui.model.Filter(" Fiscalyearid",sap.ui.model.FilterOperator.EQ,sObjectPageData.Fiscalyearid);
 aFilters.push(oFilter);
 oFilter = new sap.ui.model.Filter(" Actionrefresh",sap.ui.model.FilterOperator.EQ,"'X'");
 aFilters.push(oFilter);

//应用过滤器并让后端工作!
 this.byId(vTableId).getTable()。getBinding(" items")。filter(new sap.ui.model.Filter(aFilters,true));
 }

 

谢谢!!

路亽曱_Ryan
2楼-- · 2020-09-16 20:48

谢谢克里斯蒂安,但我尝试从注释刷新LineItem上的绑定,现在语法getBinding(" items")无效:/

我还在努力。

再次感谢您的帮助:)

Violet凡
3楼-- · 2020-09-16 20:29

刷新列表的一种简单方法是:

 this.byId(" iList")。getBinding(" items")。refresh(); 

一周热门 更多>