如何扩展Fiori Standard App的ErrorHandler

2020-08-25 15:27发布

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

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


以下帖子中的

可能是我的问题的答案,但我没有看到它:使用通用ErrorHandler.js粘贴,同时允许每个请求进行自定义错误消息处理,并且没有双消息框

我正在扩展Fiori标准应用程序(具体来说是MyProfile),一切正常。 现在,客户希望根据网关发送的技术消息来显示特殊的错误消息。 因此,我尝试在 Component.js 中扩展ErrorHandler:

 jQuery.sap.declare(" com.company.hcm.fab.myprofile.ext.Component");
 jQuery.sap.require(" com.company.hcm.fab.myprofile.ext.controller.ErrorHandler");
 sap.ui.component.load({
     名称:" hcm.fab.myprofile",
     url:"/img/sap/bc/ui5_ui5/sap/hcmfab_prfl_mon"}); this.hcm.fab.myprofile.Component.extend(" com.company.hcm.fab.myprofile.ext.Component",{
     元数据:{
         manifest:" json" 
}, init:function(){ hcm.fab.myprofile.Component.prototype.init.apply(this,arguments);
this._oErrorHandler = new com.company.hcm.fab.myprofile.ext.controller.ErrorHandler(this);
}
});

然后按照显示的帖子中的理解方式扩展了 ErrorHandler.js

 sap.ui.define([
" hcm/fab/myprofile/controller/ErrorHandler",
" sap/m/MessageBox"
],函数(ErrorHandler,MessageBox){
"使用严格";

返回ErrorHandler.extend(" com.company.hcm.fab.myprofile.ext.controller.ErrorHandler",{
构造函数:function(oComponent){
this。 _oResourceBundle = oComponent.getModel(" i18n")。getResourceBundle();
this._oComponent = oComponent;
this._oModel = oComponent.getModel();
this._sErrorText = this._oResourceBundle.getText( " errorTitle");
this._oModel.attachRequestFailed(this._requestFailedHandler,this);
}, _requestFailedHandler:函数(oEvent){
var oParameters = oEvent.getParameters(); console.log(" now?",oResponse);
this._showServiceError(oParameters.response);
}
});
});

无论如何,我不仅会看到我的消息,而且仍然会看到来自标准应用程序中的ErrorHandler的消息。 有人有主意吗?

阐明我的想法:在我正在扩展的原始应用程序中,ErrorHandler在init-Method中初始化。 因此,如果我做对了,我必须完全重写/覆盖init-Method,或者找到一种方法来分离原始事件,然后可以扩展或重写ErrorHandler。 我更喜欢后面的选项,因为我不仅必须在此标准fiori应用程序中扩展ErrorHandler,而且还要扩展其他六个应用程序。 与总是重写ErrorHandler相比,总是重写init-method感觉更糟。

最诚挚的问候
Marco

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

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


以下帖子中的

可能是我的问题的答案,但我没有看到它:使用通用ErrorHandler.js粘贴,同时允许每个请求进行自定义错误消息处理,并且没有双消息框

我正在扩展Fiori标准应用程序(具体来说是MyProfile),一切正常。 现在,客户希望根据网关发送的技术消息来显示特殊的错误消息。 因此,我尝试在 Component.js 中扩展ErrorHandler:

 jQuery.sap.declare(" com.company.hcm.fab.myprofile.ext.Component");
 jQuery.sap.require(" com.company.hcm.fab.myprofile.ext.controller.ErrorHandler");
 sap.ui.component.load({
     名称:" hcm.fab.myprofile",
     url:"/img/sap/bc/ui5_ui5/sap/hcmfab_prfl_mon"}); this.hcm.fab.myprofile.Component.extend(" com.company.hcm.fab.myprofile.ext.Component",{
     元数据:{
         manifest:" json" 
}, init:function(){ hcm.fab.myprofile.Component.prototype.init.apply(this,arguments);
this._oErrorHandler = new com.company.hcm.fab.myprofile.ext.controller.ErrorHandler(this);
}
});

然后按照显示的帖子中的理解方式扩展了 ErrorHandler.js

 sap.ui.define([
" hcm/fab/myprofile/controller/ErrorHandler",
" sap/m/MessageBox"
],函数(ErrorHandler,MessageBox){
"使用严格";

返回ErrorHandler.extend(" com.company.hcm.fab.myprofile.ext.controller.ErrorHandler",{
构造函数:function(oComponent){
this。 _oResourceBundle = oComponent.getModel(" i18n")。getResourceBundle();
this._oComponent = oComponent;
this._oModel = oComponent.getModel();
this._sErrorText = this._oResourceBundle.getText( " errorTitle");
this._oModel.attachRequestFailed(this._requestFailedHandler,this);
}, _requestFailedHandler:函数(oEvent){
var oParameters = oEvent.getParameters(); console.log(" now?",oResponse);
this._showServiceError(oParameters.response);
}
});
});

无论如何,我不仅会看到我的消息,而且仍然会看到来自标准应用程序中的ErrorHandler的消息。 有人有主意吗?

阐明我的想法:在我正在扩展的原始应用程序中,ErrorHandler在init-Method中初始化。 因此,如果我做对了,我必须完全重写/覆盖init-Method,或者找到一种方法来分离原始事件,然后可以扩展或重写ErrorHandler。 我更喜欢后面的选项,因为我不仅必须在此标准fiori应用程序中扩展ErrorHandler,而且还要扩展其他六个应用程序。 与总是重写ErrorHandler相比,总是重写init-method感觉更糟。

最诚挚的问候
Marco

付费偷看设置
发送
2条回答
wang628962
1楼-- · 2020-08-25 15:47

任何更新,如何将标准ErrorHandler加载到Fiori List Report这样的标准模板中

灬番茄
2楼-- · 2020-08-25 15:45

抱歉,代码格式都正确,但是我似乎无法正确显示它...

一周热门 更多>