带有后端调用的SAPUI5启动板注销事件
因此,我发现SAP Launchpad容器API提供了一个选项来注册注销事件,并返回一个承诺()。 不幸的是,在实现之后,我发现UI5版本必须是1.81或更高版本,参数bAsync才能工作。在我的项目中,我们是1.78,所以对我没有承诺 有什么问题吗 我想在上述注销事件中进行后端调用。这不起作用,因为据我所知,在调试过程中,启动板会在注销事件“完成”后销毁所有内容(=事件中的每一行代码都已完成,忽略子函数)。超时等不起作用,因为他们的调用也会在代码处理完成后进行,这意味着调用被删除 我试过什么带有后端调用的SAPUI5启动板注销事件,sapui5,launchpad,Sapui5,Launchpad,因此,我发现SAP Launchpad容器API提供了一个选项来注册注销事件,并返回一个承诺()。 不幸的是,在实现之后,我发现UI5版本必须是1.81或更高版本,参数bAsync才能工作。在我的项目中,我们是1.78,所以对我没有承诺 有什么问题吗 我想在上述注销事件中进行后端调用。这不起作用,因为据我所知,在调试过程中,启动板会在注销事件“完成”后销毁所有内容(=事件中的每一行代码都已完成,忽略子函数)。超时等不起作用,因为他们的调用也会在代码处理完成后进行,这意味着调用被删除 我试过什么
- 没有子函数的即时后端调用->由于与上面相同的原因无法工作
- 无限循环,直到后端调用被处理->堆栈溢出
- 在严格模式下使用timeout/await->await循环时,由于上述问题,超时无法工作
- 暂停代码进程,直到后端调用完成
- 使用完全不同的方法让我的逻辑处理注销(例如,完全自定义注销)
- 在这里询问进一步的想法
有人知道如何解决这个问题吗?提前非常感谢。由于代码格式不正确(我找不到原因),提交我的答案时出现了一些问题。所以我决定引用它,只是为了让提交的答案有效 好的,我已经找到了解决办法。这可能不是问题所在 从技术上讲,这是最好的,但效果很好,而且看起来很干净。 这来自s4/Hana系统,因此可能不是通用解决方案 (例如)它不考虑在左侧窗格中进行日志记录。 在我的启动板中不存在) 我做了什么 而不是将我的个人逻辑附加到Fiori注销事件 用我的个人逻辑创建了一个自定义注销按钮,后跟 正在调用SICF注销节点 我是怎么做到的
- 创建启动板插件
- Component.js:添加具有自定义注销功能的新标题项
- style.css:在桌面(\uu list0…)和移动(\uu list1…)中隐藏原始注销按钮(logoutBtn),以防止跳过我的逻辑 通过默认注销注销
var oRenderer = sap.ushell.Container.getRenderer("fiori2");
oRenderer.addHeaderEndItem("sap.ushell.ui.shell.ShellHeadItem", {
id : "logoutButton",
icon : "sap-icon://log",
tooltip : this.getModel("i18n").getResourceBundle().getText('btnLogoutTooltip'),
text : this.getModel("i18n").getResourceBundle().getText('btnLogoutText'),
ariaLabel : this.getModel("i18n").getResourceBundle().getText('btnLogoutAriaLabel'),
press : this._logout.bind(this),
}, true, false);
_logout : function(){
this._callMyStuff();
window.location.href = "/sap/public/bc/icf/logoff";
}
#__list0-7-logoutBtn {
display: none;
}
#__list1-7-logoutBtn {
display: none;
}