Ebaas

配置消息通知

May 21, 2020 | 0 Minute Read

消息通知有助于企业人员或部门的协同,提高工作效率。当重要事件发生时,系统可以以消息的方式主动推送通知给相关用户,从而获得及时的反应。消息通知在企业应用软件中的用途很多。

例如,在我们的“事务跟踪管理”系统中,当某个事务的状态变为“完成”时,我们可以使用消息的方式通知事务提交人,以便提交人及时查看事务的处理结果。这个教程,我们就介绍如何配置这个需求。

配置通知事务提交人消息

配置消息通知需要使用DesignStudio工具。

  • 打开DesignStudio工具 => 以admin用户登录到“事务跟踪管理”数据库;
  • 在左边导航栏选择“事务”数据类 => 右边选择“事件订阅”选项卡;
  • 点击“添加”按键,创建了一个“Subscriber1”的事件订阅器。见下图:

  • 选择“Subscriber”订阅器 => 在右边按照下表进行配置:
设置参数名 设置参数值 描述
名称 事务完成事件订阅器 订阅器的名称
事件名称 IssueFixed 所订阅的事件名称。该事件是在教程9.1创建的。
Url app.smartforms.ebaasform 查看产生事件的事务信息的Web界面模块的Url。这里使用的是表单界面
Url参数 {“schema”: msg.dbschema, “class”: msg.dbclass, “oid”:msg.oid} Web界面模块所需的参数,包括数据库,数据类和数据实例的内键
内容 关于{Subject}的事务已完成 发送消息的内容,其中{Subject}为变量,将被事务的主题所替代。内容将在界面显示
是否发送消息 True True表示事件发生时,发送消息通知给接收者
是否发邮件 False False表示不发送邮件
通知主题 您提交的事务已完成 发送消息的简短主题,将在界面显示
值为接收者的属性 提交人 指定“事务”的“提交人”属性的值为消息的接收者
值为发送者的属性 处理人 指定“事务”的“处理人”属性的值为消息的发送者。设置为可选。如果不选择,发送者默认为admin

配置图如下所示:

提示: 如果您没有按照前面工作流进行了配置,在‘事件名称’下拉菜单中不会有‘IssueFixed’的事件,请参看《教程9.1》创建该事件。


点击工具栏的“保存到数据库”图标将修改的模型保存到数据库。见下图:

测试消息通知

  • 同时打开两个浏览器连接到: http://localhost:8080;
  • 其中一个浏览器以demo1登陆(密码:888)。demo1用户的名称为:李晓明;
  • 另一个浏览器登录为用户demo2(密码:888)。demo2为吴敏;
  • 在demo2登陆的浏览器上点击首页上的“事务管理”菜单,进入”事务“二维表格界面;
  • 点击一条“提交人”为“李晓明”并且“状态”为“已指定”的事务数据实例,展开命令栏;
  • 点击“编辑”命令。见下图:

  • 在弹出的“事务”表单中,将“状态”值改为“完成” => 点击下方的“提交”按键。见下图:

这个操作会触发“IssueFixed”事件,从而执行“事务完成事件订阅器”。该订阅器的执行会向事务提交人“李晓明”发送消息。

  • 这时切换到demo1,即李晓明,登陆的浏览器。
  • 可以看到右上角出现收到消息的提示框,以及左上方的人头图标及包括数字(表示消息的数量)的红圈;
  • 点击人头图标,出现消息列表,其中第一条为前面操作所产生的事务完成消息。见下图:

  • 点击该条消息,在右边的主窗口中会显示该消息所对应的“事务”数据实例表单,显示事务的详细信息。见下图:

在这个表单中,可以对事务进行检查或修改,例如将状态改为“关闭”。