首页 > 其他分享 >关于 SAP UI5 MessageProcessor 消息创建的问题

关于 SAP UI5 MessageProcessor 消息创建的问题

时间:2023-03-08 11:38:02浏览次数:39  
标签:MessageProcessor MessagePopover 绑定 sap ui 消息 UI5 message SAP

我们在单步调试 SAP UI5 OData 模型或者 JSON 模型初始化代码时,都会发现 sap.ui.model.Model 构造函数调用了其基类 MessageProcessor 的构造函数,如下图所示:

MessageProcessor 是 SAP UI5 统一存储和管理各种类型的 Message 的实现类之一。

以下是在 SAP UI5 里手动创建消息或扩展框架提供的消息传递功能的一些方法:

  • 可以通过中央 sap.ui.core.message.MessageManager API 手动创建自定义消息。 对于这些手动创建的消息,应用程序必须确保适当的消息生命周期。

  • 对于自定义目标格式,可以使用自定义消息处理器。 自己的消息处理器要继承类sap.ui.core.message.MessageProcessor。

  • 如果使用的后端以特殊方式提供消息,可以使用自己的sap.ui.core.message.MessageParser 实现。

Message Model

通过调用 getMessageModel() 方法从消息管理器中检索消息模型。可以直接在应用程序中使用它,也可以将它用作参考实现。

可以像使用任何其他模型一样使用消息模型将聚合绑定到根路径(/),例如列表中的项目,并添加过滤器和排序器。 /集合中的每个项目都代表一个 sap.ui.core.message.Message 对象,因此可以绑定到为此类对象指定的所有属性。 MessagePopover 控件用于向用户显示消息。

示例代码如下:

// "Button" required from "sap/m/Button"
// "MessagePopover" required from "sap/m/MessagePopover"
// "MessagePopoverItem" required from "sap/m/MessagePopoverItem"

var oMessagePopoverButton = new Button({
    text: "Show MessagePopover",
    type: "Accept",
    press: function() {
        oMP.openBy(this);
    }
});

var oMP = new MessagePopover({
    items: {
        path:"message>/",
        template: new MessagePopoverItem({ description: "{message>description}", type: "{message>type}", title: "{message>message}"})
    }
});

oMP.setModel(sap.ui.getCore().getMessageManager().getMessageModel(),"message");

oMessagePopoverButton.placeAt("content");

OData V2 Messages

OData V2 消息要么由 sap.ui.model.odata.ODataMessageParser 自动创建并由 sap.ui.model.odata.v2.ODataModel 处理,要么可以由应用程序手动创建。

这些消息的目标可以为空。 在这种情况下,消息没有特定目标并且与整个应用程序相关。如果设置了目标,则它必须对应于绑定路径,然后使用该路径将消息传播到相应的绑定。如果这些绑定属于实现 refreshDataState 函数的控件,则该控件能够对数据状态更改做出反应。

标签:MessageProcessor,MessagePopover,绑定,sap,ui,消息,UI5,message,SAP
From: https://blog.51cto.com/jerrywangsap/6107937

相关文章

  • SAP专精特新芯片电子行业线上直播峰会
    强调创新,既有内生的动力,也受外部环境的倒逼。作为高科技产业领域的“明珠”,我国的芯片电子产业历经过野蛮生长,见证了集成别人技术,没有自己的知识,就只能蜷缩于中低端产品线,成......
  • golang jenkinsapi 批量构建jenkins job
    golang批量构建jenkinsjob   py批量构建jenkinsjob是,若job在某个floder下面则无法调用,目前测试发现只要job在jenkins根目录下才可调用,不够灵活。golang则没有这......
  • SAP Memory & ABAP Memory
    1、先弄清ExternalSession和InternalSession区别:ExternalSession:当user登陆SAP后,就开启了一个userlogonsession。当user退出所有sapwindow,就结束了这个userl......
  • 诚邀报名 | SAP 乘云而上私享会-上海站
     在快速发展中,您的业务与组织是否发生了明显变化? 您是否在思考云转型与数字化转型带来的业务价值? 进入受限制的“客户特定维护”阶段会带来风险吗? 哪些保驾护航服......
  • SAP 邮件配置 & 发送demo
    一、 修改参数(RZ11)SMTP协议标准端口号为25,部分服务器25端口已被占用,也可以使用其他端口,例如25000,25$$。$$为实例号执行事务码RZ11,修改参数is/SMTP/virt_host_0=*:25;......
  • sap -文本编辑器
    DATA:ok_codeTYPEsy-ucomm,save_okTYPEsy-ucomm.DATA:init.DATA:containerTYPEREFTOcl_gui_custom_container.DATA:editorTYPEREFTOcl_gui_texted......
  • [ChatGPT 勘误] SAP ABAP 里 cl_r3standard_persistence 的用途?
    首先看ChatGPT的回答:这答案完全不正确。在SAPABAP中,cl_r3standard_persistence是一个用于管理ABAP数据库操作的类。它提供了一系列静态方法,用于执行与ABAP数据......
  • [ChatGPT 勘误]SAP ABAP 里 CL_WB_ED_ENHANCEMENT_HANDLER 的用途介绍
    以下是ChatGPT关于CL_WB_ED_ENHANCEMENT_HANDLER的介绍:在ABAP中,CL_WB_ED_ENHANCEMENT_HANDLER是一个用于管理ABAP代码增强(CodeEnhancement)的类。ABAP代码增强......
  • SAP PP
    1、BOM组件特殊获取方式: 若BOM中某组件标记为供应商提供,则系统不会产生该物料的相关需求;若BOM中某组件标记为虚拟件,如半成品标记为虚拟件,则一般来说系统将不会产生该......
  • SAP S/4HANA Cloud的功能亮点以及大中型企业为何更倾向选择它
    SAP-SystemApplicationsandProducts,是一家来自德国的大型跨国软件公司,成立于1972年。作为全球企业管理和协同化商务解决方案供应商,世界第三大独立软件供应商和全球第二......