如何实现在代码发送消息时使用消息模板原创
14人赞赏了该文章
4,738次浏览
编辑于2022年07月05日 10:47:43
摘要由AI智能服务提供
本文描述了通过配置消息模板来实现办公用品领用申请单审核通过后的通知发送。需求要求通知内容可配置,尤其是领取地点常变。解决方案是在系统管理的消息平台中配置消息模板,审核时调用模板生成通知。具体实现包括新增消息场景、配置模板及在申请单审核通过后构造并发送消息。同时提供了开发环境和参考资料。
关键词:消息平台、消息模板
一、需求
单据(业务对象)审核时自动给申请人发送通知,通知内容经常可能会经常变化,所以希望实现通知内容的可配置性。比如办公用品领用申请单审核(手工点审核按钮)通过时需要给申请人发送领用通知。通知内容为:
XXX,您好!你的办公用品领用申请单已经审批通过,请您三天内到软件园A栋401领取!
其中领取地点“软件园A栋401”经常会发生变化,所以需要实现消息内容的可配置化。
二、思路与方案
系统管理-消息平台-消息模板可配置消息内容,且方便维护,所以可在审核办公用品领用申请单发送通知时调用消息模板来生成通知内容。
三、实现过程
1.新增消息场景,消息场景需要绑定具体的业务对象,消息场景需要给消息模板选择使用的。
图 1
2. 配置消息模板。
图 2
3. 办公用品领用申请单表单插件构造 MessageInfo对象时指定实体标识、单据id、消息模板场景等。
@Override public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) { // TODO Auto-generated method stub super.afterDoOperation(afterDoOperationEventArgs); if("audit".equals(afterDoOperationEventArgs.getOperateKey())) { if(afterDoOperationEventArgs.getOperationResult().isSuccess()) { List<Object> successPkIds=afterDoOperationEventArgs.getOperationResult().getSuccessPkIds(); for(Object pk:successPkIds) { DynamicObject object=BusinessDataServiceHelper.loadSingle(pk, "kded_officesuppliesbill"); DynamicObject applier=object.getDynamicObject("kded_applier"); MessageInfo message = new MessageInfo(); ArrayList<Long> receivers = new ArrayList<Long>(); receivers.add(applier.getLong("id")); message.setUserIds(receivers);//取领用申请人为消息接收人 message.setSenderId(Long.parseLong(RequestContext.get().getUserId()));//当前登录用户为消息发送人 message.setSendTime(new Date(System.currentTimeMillis())); message.setType(MessageInfo.TYPE_MESSAGE);//消息类型为通知 message.setEntityNumber("kded_officesuppliesbill"); message.setBizDataId(Long.valueOf(String.valueOf(pk))); //设置消息场景和设置消息模板二选一即可 message.setTplScene("kded_officesuppliesbill_audit");//设置消息场景,消息内容会根据消息场景找对应的消息模板构造消息 // message.setTemplateNumber("kded_officesuppliesbill_audit_message"); //设置消息模板编码 Long msgId = MessageCenterServiceHelper.sendMessage(message);//发送消息 } } } }
注意事项:如果是后台审核则不能直接在表单插件实现。
四、效果图
图 3
五、开发环境版本
V4.0.0.14
六、参考资料
赞 14
14人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读