做发送工作任务到用户并允许用户直接打开单据进行操作
看了别人的文章
做出来一直有问题
并且文档写的也不太全
解决问题后记录一下
帮助后来的同仁们
下面直接放上我的消息处理的代码
所有需要注意的点我都写在注释里
希望可以帮助到你们
package nc.impl;
import nc.bs.framework.common.InvocationInfoProxy;
import nc.message.util.MessageCenter;
import nc.message.vo.MessageVO;
import nc.message.vo.NCMessage;
import nc.vo.pub.lang.UFDateTime;
/**
* 发送消息到NC消息中心工作任务测试
* @author conn
*
*/
public class WorkMessageServiceImpl {
public void MessageTest() {
NCMessage ncm = new NCMessage();
MessageVO mv = new MessageVO();
// 是否被删除 默认为false
// mv.setIsdelete(UFBoolean.FALSE);
// 是否已读 默认为false
// mv.setIsread(UFBoolean.FALSE);
// 是否已处理 默认为false
// mv.setIshandled(UFBoolean.FALSE);
// 消息发送类型 默认值为nc
// mv.setMsgtype("nc");
// 是否发送成功 默认为true
// mv.setSendstate(UFBoolean.TRUE);
// 详细内容
mv.setContent("请处理回款认领确认单");
// 内容格式 默认为text/plain
mv.setContenttype("Z");
// 存放位置 默认outbox outbox=发件箱 inbox=收件箱
mv.setDestination("inbox");
// 消息来源类型
// worklist 工作任务
// notice 通知消息
// pfbizmsg 回执消息
mv.setMsgsourcetype("worklist");
// 集团
mv.setPk_group("0001B710000000000DZK");
// 组织
mv.setPk_org("0001B710000000000DZK");
// 优先级 0=低 1=高 默认5
mv.setPriority(6);
// 接收人
mv.setReceiver("1001B71000000000CZDC");
// 获取当前登录用户
String userId = InvocationInfoProxy.getInstance().getUserId();
// 发送人
mv.setSender(userId);
// 发送时间
mv.setSendtime(new UFDateTime());
// 标题
mv.setSubject("回款认领确认单审批");
// 所属模块
mv.setDomainflag("tzsz");
// 当前日期七天后
UFDateTime endTime = new UFDateTime().getDateTimeAfter(7);
// 有效期
mv.setExpiration(endTime);
// 详细信息 想要打开下游单据必须要有的值
// 打开的单据主键@单据类型@单据号@功能节点
mv.setDetail("1001B71000000000LEKQ@SZ37@SZ372019060600000020@SZJ10801");
// 扩展属性表外键 理论上这里应该是pub_workflownote中的pk_checkflow 但这个单据是我自己开发的所以我放的下游单据的主键 暂时没发现问题
mv.setPk_detail("1001B71000000000LEKQ");
ncm.setMessage(mv);
MessageCenter mc = new MessageCenter();
try {
String[] sm = mc.sendMessage(new NCMessage[] {
ncm });
} catch (Exception e) {
e.printStackTrace();
}
}
}
姓 名:Conn
邮 箱:[email protected]
如果我有帮助到你 帮忙点个赞 谢谢
如果有问题 请联系我 我会尽力帮助你