【问题标题】:SAPUI5. My Inbox. Attachments asynchronous updateSAPUI5.我的收件箱。附件异步更新
【发布时间】:2020-11-11 23:12:29
【问题描述】:

我使用 SAP 标准库:Inbox。

在库类S3.controller 中通过点击附件图标是onTabSelect 事件执行,女巫使

this.fnDelegateAttachmentsCreation();
this.fnFetchDataOnTabSelect("Attachments");
this.fnHandleAttachmentsCountText("Attachments");
this.fnHandleNoTextCreation("Attachments");
break;

fnFetchDataOnTabSelect 进行异步调用。在此调用期间,fnHandleAttachmentsCountText 已经执行,因此附件计数的更新发生在附件请求准备好之前。就附件请求准备就绪而言,没有执行标题更新。

屏幕截图上是 AttachmentCountText“附件 (1/1)”,它来自之前选择的项目。 应该是“附件 (2/2)”。

此外,如果响应来得太快,则在收到请求的答复后,视图更改为加载视图。 如果附件列表是从请求回调中更新的,则不应第二次更新。

这里好像有东西正在加载,但是请求已经完成了。

如何扩展收件箱,在请求准备好后更新附件标题和内容?

使用 SAPUI5-版本:1.71.4

【问题讨论】:

  • 我无法对S3.controller进行更改
  • 澄清一下:您没有扩展 MyInbox,而是通过语义对象 WorkflowTask 和操作 display 在 Launchpad 中访问它?
  • @MrNajzs,没有。我扩展了我的收件箱。我在webapp/view 文件夹中有S3Custom.controller.js 和其他一些扩展名
  • 为了清楚起见:您正在扩展"My inbox" (version SAP S/4HANA 1909 FPS02),对吗?
  • MyInbox - 是的,但是什么版本 - 我目前不知道,但我认为它应该是最新版本。

标签: sapui5 sap-fiori


【解决方案1】:
  • 您正在使用标准 bsp 应用程序ca_fiori_inbox
  • 您没有使用自定义编码创建应用程序ca_fiori_inbox 的扩展项目?

如果是这种情况,则说明 SAP 提供的标准应用程序存在错误。 SAP 发布所谓的注释,以修复其标准应用程序中的错误。

您可以通过交易SNOTE在您的系统中导入笔记。可以向贵公司的 SAP 基础管理员寻求帮助。

以下注释准确描述了您的问题


如果您已经扩展了 SAP 标准应用程序 (MyInbox) 而不使用标准应用程序中的ExtensionPoints 代码更改将不会影响您的自定义扩展。

当覆盖控制器方法时,它之前提供的任何功能都不再可用。同样,将来对原始控制器方法实现所做的任何更改都不会反映在自定义控制器中。

在这种情况下,您仍然可以实现注释并检查标准控制器与系统上的自定义控制器的更改,并更改自定义编码中的相应行。

不要修复 SAP 编码。报告它并获得修复。


注释2873960 更正了abap 类中的编码,而不是bsp-application(ca_fiori_inbox) 中的编码。因此,请务必导入注释并检查它是否解决了您的问题。

【讨论】:

  • 感谢您的评论。不幸的是2873960已经导入,但是2901520中描述的问题没有解决,2901520不适合导入
【解决方案2】:

我其实不知道这个应用程序是如何工作的,但我想试一试。

因为它是一个异步函数,你也可以一直等待函数直到它完成。所以在你的情况下,你可以尝试在函数前面设置一个 await 关键字。

await fnFetchDataOnTabSelect("Attachments");

现在它将在这个位置等待,直到它完成函数调用,然后才会调用下一个函数。除此之外,您还需要将上层函数onTabSelect 设置为async。所以最终它应该看起来像这样。

onTabSelect: async function() {
    // ...
    this.fnDelegateAttachmentsCreation();
    await this.fnFetchDataOnTabSelect("Attachments"); 
    this.fnHandleAttachmentsCountText("Attachments");
    this.fnHandleNoTextCreation("Attachments");
    // ...
}

虽然 Web IDE 可能会显示错误,但它确实有效,因为它是官方的 JavaScript API。

【讨论】:

  • 这只有在fnFetchDataOnTabSelect 会返回一个then-able 对象(例如Promise)时才有效。
猜你喜欢
  • 2011-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-20
  • 2012-07-19
  • 1970-01-01
  • 2012-11-28
相关资源
最近更新 更多