物联网重用控制的doReload

2020-09-07 12:34发布

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

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


大家好,

我们在UI5应用程序中使用了一堆IoT重用控件(主要是测量值和传感器图表),并希望实现实时更新页面。中,您可以找到这些控件的文档 一个名为 doReload()的操作。

我尝试使用如下所示的doReload,以便它在调用onInit之后每隔几秒钟运行一次:

 onInit:function(){
   this.updateMeasuredValues()
 },

 updateMeasuredValues:function(){
     setInterval(function(){
         var mValues = this.getView()。byId(" measuredValues0");
         mValues.doReload();  } .bind(this),3000);

 } 

不幸的是,这些函数在运行时抛出此错误:

 IoTMeasuredValues.js?eval:4
 未捕获的TypeError:无法在f.doReload读取未定义的属性" getParameter"
 (IoTMeasuredValues.js?eval:4)在f.eval(Main.controller.js?eval:31)

我了解这些函数需要带有参数的某种对象,但是文档没有提供任何进一步的信息。

有人以前使用过doReload()函数,可以给我一些建议吗?

干杯

保罗

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

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


大家好,

我们在UI5应用程序中使用了一堆IoT重用控件(主要是测量值和传感器图表),并希望实现实时更新页面。中,您可以找到这些控件的文档 一个名为 doReload()的操作。

我尝试使用如下所示的doReload,以便它在调用onInit之后每隔几秒钟运行一次:

 onInit:function(){
   this.updateMeasuredValues()
 },

 updateMeasuredValues:function(){
     setInterval(function(){
         var mValues = this.getView()。byId(" measuredValues0");
         mValues.doReload();  } .bind(this),3000);

 } 

不幸的是,这些函数在运行时抛出此错误:

 IoTMeasuredValues.js?eval:4
 未捕获的TypeError:无法在f.doReload读取未定义的属性" getParameter"
 (IoTMeasuredValues.js?eval:4)在f.eval(Main.controller.js?eval:31)

我了解这些函数需要带有参数的某种对象,但是文档没有提供任何进一步的信息。

有人以前使用过doReload()函数,可以给我一些建议吗?

干杯

保罗

付费偷看设置
发送
3条回答
clever101
1楼 · 2020-09-07 12:57.采纳回答

保罗,

如果您在源代码中查看调试器,则可以打开IoTChart.js文件。 在这里,您将看到IoTChart控件确实具有doReload功能。 如下所示:

 doReload:function(e){
             this.bChartInit =!0,
             this.bReload =!0;
             var t,i,s = null,a = null;
             如果(this.removeNewPropertySetTypes(),
             this.bAddEventOnChartFlag吗?  this.bShowMultipleMeasuringPoints =!0:(this.aPSTAgg = [],
             this.removeAllEvents(),
             this.bShowMultipleMeasuringPoints =!1),
             !this.bReloadEventOnChart && this.getEventsVisible()||  (this.bShowMultipleMeasuringPoints =!1),
             this.bReloadEventOnChart =!1,
             this.bAddEventOnChartFlag =!1,
             s = e.getParameter吗?  e.getParameter(" context"):e.context){
                 如果(s.getPath){
                     如果(this.oData = s.getModel()。getProperty(s.getPath()),
                     t = this.oData.ThingId,
                     this.oData.namedPST && this.oData.propertyName)
                         我= this.oData.namedPST,
                         一个= this.oData.propertyName;
                     否则,如果(s.getPath()。match("/img/Event")){
                         var n = this.oData.Property.split("/");
                         i = n [1],
                         a = n [2]
                     }
                 }其他
                     s.thingId?  (t = s.thingId,
                     我=名为PST
                     a = s.propertyName):s.getParameter(" thingData")&&(t = s.getParameter(" thingData")。ThingId);
                 如果(this.setAssetId(t,!0),
                 i && a){
                     var o = {
                         sPropertySetTypeName:i,
                         sPropertyName:一个
                     };
                     this.aPSTAgg = [o]
                 }
                 this._setUserSettings()
             }
         },

 

您会看到以下行:

 s = e.getParameter吗?  e.getParameter(" context"):e.context)

想要读取事件的上下文参数。 只需将其作为参数传递给doReload函数,您的数据就应该更新。

希望这会有所帮助。

亲切的问候,

能不能别闹
2楼-- · 2020-09-07 13:00

非常感谢干。 我可以根据您的建议收集更多信息,但是从源代码中的注释中我得出结论,该功能尚未实现。 doreload-implentation-fehlt.png

haha101010
3楼-- · 2020-09-07 12:38

嗨,保罗,

很高兴您找到了原因。

同时,您可以通过odata服务获取数据并将其存储到JSON模型中。 接下来,将其绑定并显示在Viz框架图中。 最后,在setInterval中,您再次获取数据,完成后,更新模型并绑定Viz框架图。

一种解决方法。

亲切的问候,

一周热门 更多>