电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

预警插件——消息解析插件使用说明

来源:金蝶云社区作者:金蝶2024-09-237

预警插件——消息解析插件使用说明

为针对不同的业务场景提供定制化的预警功能,平台提供了预警插件机制,使用者可以通过编写插件对预警监控过程进行干预,从而实现使用定制化预警功能。下图为预警平台插件设置入口在新增/编辑业务预警对象页面。 ![0109d30c339b5e62424096e1901ae4cb9d03.webp](https://vip.kingdee.com/download/0109d30c339b5e62424096e1901ae4cb9d03.webp) 预警平台提供了单据、基础资料的默认消息解析插件DefaultBillMessageCompiler,但是该插件中的模板数据只能来源于指定的单据和基础资料,如若想在消息中添加一些来源于其他单据的数据,可以通过自定义消息解析插件来达到预期的效果。 ## 业务场景 某企业需要对商品库存进行低库存的预警,在预警触发后以特定消息格式发送。 ## 实现方案 编写消息解析插件,实现IEarlyWarnMessageCompiler接口。框架通过上下文将预警数据、模板传递给接口,用户在接口中获取当前预警的数据,从库存批次表中获取出对应批次的信息,用户构建所需要的预警信息即可。 ## 代码示例 ``` /** *在用户信息表中获取用户工号和姓名,同时自定义一个字段,在预警通知中展示对应内容。 */ public class MessageCompilerDemo implements IEarlyWarnMessageCompiler { /** * 构建单个消息 * @param expression 表达式 * @param fields 参数列表 * @param data 数据 * @param context 预警引擎执行上下文 * @return */ @Override public String getSingleMessage(String expression, List<String> fields, DynamicObject data, EarlyWarnContext context) { if (expression == null || data == null){ return ""; } Map<String, String> map = new HashMap<>(); for (String field : fields) { String value = ""; if ("customField".equals(field)){ value = "自定义字段:负责人请抓紧时间处理"; }else { String[] arr = StringUtil.split(field, "."); Object objValue = getValue(data, arr); value = objValue == null?"" : objValue.toString(); } map.put(field,value); } StringTemplateParser parser = new StringTemplateParser(); return parser.parse(expression,name->map.get(name)); } private String getValue(DynamicObject data, String[] arr) { if(null == arr || arr.length == 0){ return ""; } Object obj = data.get(arr[0]); if(obj instanceof DynamicObject){ return getValue((DynamicObject)obj, Arrays.copyOfRange(arr, 1, arr.length)); } return StringUtil.toSafeString(obj); } /** * 构建合并消息(同构建单个消息的原理一样) * @param expression 表达式 * @param fields 参数列表 * @param context 预警引擎执行上下文 * @return */ @Override public String getMergeMessage(String expression, List<String> fields, EarlyWarnContext context) { return null; } /** * 例子:如果预警数据中包含附件内容,也可以用邮件的方式发送附件 * 构建单条消息邮件发送方式的附件内容 * @param data 数据 * @param context 预警引擎执行上下文 * @return */ public MessageAttachment getSingleEmailMessageAttachment(DynamicObject data, EarlyWarnConte

预警插件——消息解析插件使用说明

为针对不同的业务场景提供定制化的预警功能,平台提供了预警插件机制,使用者可以通过编写插件对预警监控过程进行干预,从而实现使用定制化...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信