控制器的onExit事件(?)中的元数据不可用

2020-09-09 02:33发布

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

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


专家您好,

尝试在详细信息控制器的onExit函数中使用一些代码,以调用函数导入,当用户从此处按下顶部主启动板按钮时,该函数将"释放"我的记录。 虽然当时一切似乎都可用(错误后检查快照),但我调用了函数import,但出现以下错误:

未捕获(已承诺)TypeError:无法读取未定义的属性'_getFunctionImportMetadata'
     在评估时(在evalModuleStr评估(jquery.sap.global-dbg.js:3315),<匿名>:2607:463)
     在评估时(在evalModuleStr(jquery.sap.global-dbg.js:3315),<匿名>:2603:192中评估)
 (匿名)@ VM32:2607
 (匿名)@ VM32:2603
 Promise.then(异步)
 r._processRequest @ VM32:2603
 r.callFunction @ VM32:2607
 (匿名)@ Object.controller.js?eval:205
 onExit @ Object.controller.js?eval:202
 a.fireEvent @ EventProvider-dbg.js:229
 a.fireEvent @ Element-dbg.js:593
 (匿名)@ ManagedObjectMetadata-dbg.js:426
 c。退出@ VM32:917
 f.exit @ VM32:954
 h.destroy @ ManagedObject-dbg.js:2270
 a.destroy @ Element-dbg.js:555
 b.destroy @ Control-dbg.js:602
 f.destroy @ VM32:960
 销毁@ VM32:1111
 c._destroyCreatedInstances @ VM32:531
 c.destroy @ VM32:530
 销毁@ Component.js?eval:302
 s @ VM32:86
 d.exit @ VM32:91
 h.destroy @ ManagedObject-dbg.js:2270
 a.destroy @ Element-dbg.js:555
 b.destroy @ Control-dbg.js:602
 h.destroyAggregation @ ManagedObject-dbg.js:1974
 j @ VM33:1326
 退出@ VM33:1343
 A.退出@ VM33:1861
 h.destroy @ ManagedObject-dbg.js:2270
 a.destroy @ Element-dbg.js:555
 b.destroy @ Control-dbg.js:602
 onAfterNavigate @ VM33:1861
 p @ jquery-dbg.js:497
 a.fireEvent @ EventProvider-dbg.js:229
 a.fireEvent @ Element-dbg.js:593
 (匿名)@ ManagedObjectMetadata-dbg.js:426
 (匿名)@ VM33:2722
 sap.ushell.ui.launchpad.ViewPortContainer._handleViewPortTransition @ VM33:2730
 sap.ushell.ui.launchpad.ViewPortContainer._setCurrentlyDisplayedControl @ VM33:2724
 sap.ushell.ui.launchpad.ViewPortContainer.navTo @ VM33:2722
 _handleEmbeddedNavMode @ VM33:1861
 (匿名)@ VM33:1861
 p @ jquery-dbg.js:3187
 添加@ jquery-dbg.js:3246
 导航@ VM33:1861
 _initiateApplication @ VM33:1861
 (匿名)@ VM33:1861
 p @ jquery-dbg.js:3187
 添加@ jquery-dbg.js:3246
 doHashChange @ VM33:1861
 p @ jquery-dbg.js:497
 sap.ushell.services.ShellNavigationHashChanger.treatHashChanged @ VM33:2188
 执行@ VM32:3214
 派遣@ VM32:3217
 派遣@ VM32:3216
 (匿名)@ VM32:3204
 我@ VM32:3204 

我的模型似乎仍然如调试器所建议的那样(请参阅下文),并且当我使用后退按钮导航到该代码(应该成为通用功能,在此处复制用于测试目的)时,它运行得很好 我的主要观点。 当然,后端方法不会被调用。 代码附在末尾。 有什么想法吗?

 onExit:function(){
 var oParamModel = this.getView()。getModel(" Global");
 var oModel = this.getView()。getModel();
 如果(oParamModel.getProperty("/img/RecordUnlocked")=== true){
 var unlockOnExit =新的Promise(function(resolve,reject){
 oParamModel.setProperty("/img/RecordUnlocked",true);
 var sAgreement = oParamModel.getProperty("/img/AgreementID");
 oModel.callFunction("/img/Agreement_Unlock",{
 方法:" GET",
 urlParameters:{
 " Agreement_Code":协议
 },
 成功:函数(oData,响应){
 resolve(oData);
 },
 错误:function(oError){}
 });
 });

 var callFetch = function(){
 unlockOnExit
 .then(函数(已实现){
 })
 .catch(函数(错误){

 });
 };

 callFetch();
 }
 },

(164.1 kB)

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

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


专家您好,

尝试在详细信息控制器的onExit函数中使用一些代码,以调用函数导入,当用户从此处按下顶部主启动板按钮时,该函数将"释放"我的记录。 虽然当时一切似乎都可用(错误后检查快照),但我调用了函数import,但出现以下错误:

未捕获(已承诺)TypeError:无法读取未定义的属性'_getFunctionImportMetadata'
     在评估时(在evalModuleStr评估(jquery.sap.global-dbg.js:3315),<匿名>:2607:463)
     在评估时(在evalModuleStr(jquery.sap.global-dbg.js:3315),<匿名>:2603:192中评估)
 (匿名)@ VM32:2607
 (匿名)@ VM32:2603
 Promise.then(异步)
 r._processRequest @ VM32:2603
 r.callFunction @ VM32:2607
 (匿名)@ Object.controller.js?eval:205
 onExit @ Object.controller.js?eval:202
 a.fireEvent @ EventProvider-dbg.js:229
 a.fireEvent @ Element-dbg.js:593
 (匿名)@ ManagedObjectMetadata-dbg.js:426
 c。退出@ VM32:917
 f.exit @ VM32:954
 h.destroy @ ManagedObject-dbg.js:2270
 a.destroy @ Element-dbg.js:555
 b.destroy @ Control-dbg.js:602
 f.destroy @ VM32:960
 销毁@ VM32:1111
 c._destroyCreatedInstances @ VM32:531
 c.destroy @ VM32:530
 销毁@ Component.js?eval:302
 s @ VM32:86
 d.exit @ VM32:91
 h.destroy @ ManagedObject-dbg.js:2270
 a.destroy @ Element-dbg.js:555
 b.destroy @ Control-dbg.js:602
 h.destroyAggregation @ ManagedObject-dbg.js:1974
 j @ VM33:1326
 退出@ VM33:1343
 A.退出@ VM33:1861
 h.destroy @ ManagedObject-dbg.js:2270
 a.destroy @ Element-dbg.js:555
 b.destroy @ Control-dbg.js:602
 onAfterNavigate @ VM33:1861
 p @ jquery-dbg.js:497
 a.fireEvent @ EventProvider-dbg.js:229
 a.fireEvent @ Element-dbg.js:593
 (匿名)@ ManagedObjectMetadata-dbg.js:426
 (匿名)@ VM33:2722
 sap.ushell.ui.launchpad.ViewPortContainer._handleViewPortTransition @ VM33:2730
 sap.ushell.ui.launchpad.ViewPortContainer._setCurrentlyDisplayedControl @ VM33:2724
 sap.ushell.ui.launchpad.ViewPortContainer.navTo @ VM33:2722
 _handleEmbeddedNavMode @ VM33:1861
 (匿名)@ VM33:1861
 p @ jquery-dbg.js:3187
 添加@ jquery-dbg.js:3246
 导航@ VM33:1861
 _initiateApplication @ VM33:1861
 (匿名)@ VM33:1861
 p @ jquery-dbg.js:3187
 添加@ jquery-dbg.js:3246
 doHashChange @ VM33:1861
 p @ jquery-dbg.js:497
 sap.ushell.services.ShellNavigationHashChanger.treatHashChanged @ VM33:2188
 执行@ VM32:3214
 派遣@ VM32:3217
 派遣@ VM32:3216
 (匿名)@ VM32:3204
 我@ VM32:3204 

我的模型似乎仍然如调试器所建议的那样(请参阅下文),并且当我使用后退按钮导航到该代码(应该成为通用功能,在此处复制用于测试目的)时,它运行得很好 我的主要观点。 当然,后端方法不会被调用。 代码附在末尾。 有什么想法吗?

 onExit:function(){
 var oParamModel = this.getView()。getModel(" Global");
 var oModel = this.getView()。getModel();
 如果(oParamModel.getProperty("/img/RecordUnlocked")=== true){
 var unlockOnExit =新的Promise(function(resolve,reject){
 oParamModel.setProperty("/img/RecordUnlocked",true);
 var sAgreement = oParamModel.getProperty("/img/AgreementID");
 oModel.callFunction("/img/Agreement_Unlock",{
 方法:" GET",
 urlParameters:{
 " Agreement_Code":协议
 },
 成功:函数(oData,响应){
 resolve(oData);
 },
 错误:function(oError){}
 });
 });

 var callFetch = function(){
 unlockOnExit
 .then(函数(已实现){
 })
 .catch(函数(错误){

 });
 };

 callFetch();
 }
 },

(164.1 kB)
付费偷看设置
发送
3条回答
xfwsx85
1楼-- · 2020-09-09 03:09

问题似乎是启动板实现(不是通过门户网站实现的经典类型),它会生成异常(按下启动板按钮会触发此处退出-我应该从一开始就提及它,但在出现以下情况时未建立连接) 我提交了问题。)

奄奄一息的小鱼
2楼-- · 2020-09-09 03:14

嗨,

我不确定,但是问题可能出在调用函数(callFunction)到处理请求的那一刻之间,模型被破坏了。

您使用什么版本的ODataModel?

也许可以在BreakData函数和callFunction中的ODataModel-dbg.js中放置断点,以查看是否在之前以及通过什么调用了destroy函数。

此致

Fabrice

木偶小白
3楼-- · 2020-09-09 03:23

@ Fabrice Podevin :谢谢你的建议。 我正在运行OData V2,但这不是我的问题,该模型仍然有效。 问题似乎是启动板实现(不是通过门户网站实现的经典类型)会生成异常(按下启动板按钮会触发此处退出-我应该从头开始提及它,但是在提交提交时未建立连接) 题)。 这是Web IDE测试(可以正常运行)和后端之间的重要区别。

一周热门 更多>