当前位置: 代码迷 >> 综合 >> 金蝶EAS,消息中心,即时消息,发送通知
  详细解决方案

金蝶EAS,消息中心,即时消息,发送通知

热度:82   发布时间:2023-11-23 14:29:41.0

业务场景:用于在金蝶EAS客户端消息中心中的即时消息。

通过代码可以给特定用户发送通知消息,用户登录系统后在消息中心可以查看到。

 

 
  1. /**

  2. * 系统通知,用于后台

  3. * @param ctx 上下文

  4. * @param sender 发送人(用户名称)

  5. * @param title 消息标题

  6. * @param body 消息内容

  7. * @param receiver 接收人(用户主键,多个时用分号分割)

  8. *

  9. */

  10. public static void notice(Context ctx, String sender, String title, String body, String receiver){

  11.  
  12. SenderAgent service = SenderAgent.getSenderAgent();

  13. Message message = MessageFactory.newMessage("kingdee.workflow");

  14. Locale[] locales = getContextLocale(ctx);

  15. for(int i = 0; i < locales.length; i++){

  16. // 此处循环设置多语言消息

  17. Locale locale = locales[i];

  18. message.setLocaleStringHeader("sender", sender, locale); //发送人名称

  19. message.setLocaleStringHeader("title", title, locale); //消息标题

  20. message.setLocaleStringHeader("body", body, locale); //消息内容

  21.  
  22. }

  23. message.setIntHeader("type", MsgType.NOTICE_VALUE); //消息类型,通知

  24. message.setIntHeader("bizType", MsgBizType.XITONGOFFICE_VALUE); //业务类型

  25. message.setIntHeader("sourceStatus", MsgSourceStatus.EMPTY_VALUE); //任务状态

  26. message.setIntHeader("priority", MsgPriority.HIGH_VALUE); //优先级

  27. message.setStringHeader("databaseCenter", ctx.getAIS()); //数据中心

  28. message.setStringHeader("solution", ctx.getSolution()); //解决方案

  29. message.setStringHeader("receiver", receiver); //接收人

  30.  
  31. service.sendMessage(message);

  32.  
  33. }

  34.  
  35. /**

  36. * 系统通知,用于后台

  37. * @param ctx 上下文

  38. * @param sender 发送人(用户名称)

  39. * @param title 消息标题

  40. * @param body 消息内容

  41. * @param receiver 接收人(用户主键,多个时用分号分割)

  42. *

  43. */

  44. public static void notice(Context ctx, String sender, String title, StringBuffer body, String receiver){

  45.  
  46. SenderAgent service = SenderAgent.getSenderAgent();

  47. Message message = MessageFactory.newMessage("kingdee.workflow");

  48. Locale[] locales = getContextLocale(ctx);

  49. for(int i = 0; i < locales.length; i++){

  50. // 此处循环设置多语言消息

  51. Locale locale = locales[i];

  52. message.setLocaleStringHeader("sender", sender, locale); //发送人名称

  53. message.setLocaleStringHeader("title", title, locale); //消息标题

  54. message.setLocaleStringHeader("body", body.toString(), locale); //消息内容

  55.  
  56. }

  57. message.setIntHeader("type", MsgType.NOTICE_VALUE); //消息类型,通知

  58. message.setIntHeader("bizType", MsgBizType.XITONGOFFICE_VALUE); //业务类型

  59. message.setIntHeader("sourceStatus", MsgSourceStatus.EMPTY_VALUE); //任务状态

  60. message.setIntHeader("priority", MsgPriority.HIGH_VALUE); //优先级

  61. message.setStringHeader("databaseCenter", ctx.getAIS()); //数据中心

  62. message.setStringHeader("solution", ctx.getSolution()); //解决方案

  63. message.setStringHeader("receiver", receiver); //接收人

  64.  
  65. service.sendMessage(message);

  66.  
  67. }