在EAS中使用代码发送消息

来源:互联网 发布:sql语句时间比较 编辑:程序博客网 时间:2024/05/01 16:14

// 以下是发送一个消息的核心片断,如果针对的是某组织批量发送,
//自己的需要取得组织的用户ID集合,然后构造receiver

//SenderAgent senderAgent = SenderAgent.getSenderAgent();Sender senderAgent = MessageSender.getInstance();Message message;// Locale[] lcla = getContextLocales(ctx);//获取ctx的语言信息列表// getContextLocales方法找不到Locale locale = ctx.getLocale();message = MessageFactory.newMessage("kingdee.workflow");// 生成一个消息对象// for (int j = 0, m = lcla.length; j < m; j++) {// //此处循环进行多语言消息的设置// locale = lcla[j];message.setLocaleStringHeader("title", title, locale);// 设置消息标题message.setLocaleStringHeader("sender", sender, locale);// 设置发送人,属于文本,不是IDmessage.setLocaleStringHeader("body", body, locale);// 设置消息体内容,根据具体业务自己设定// }message.setIntHeader("type", MsgType.NOTICE_VALUE);// 设置消息类型为通知message.setIntHeader("bizType", MsgBizType.OFFICE_VALUE);// 业务类型设置为工作流// 设置任务状态,此处是通知消息,所以设置空message.setIntHeader("sourceStatus", MsgSourceStatus.EMPTY_VALUE);// 设置消息优先级,自己根据需要设定相应的级别message.setIntHeader("priority", MsgPriority.MIDDLE_VALUE);message.setStringHeader("databaseCenter", ctx.getAIS());// 得到数据中心message.setStringHeader("solution", ctx.getSolution());// 设置解决方案 // 设置接收者,后面那参数是用户ID,多个ID可用分号";"分割message.setStringHeader("receiver", receiver);senderAgent.sendMessage(message); // 发送消息
调用例子:String title="";    String body = "";    if(flag)    title= vslnm+", "+voyno+", "+cntt+"已经通过经营核算,生成运费通知单";    else{    title= vslnm+", "+voyno+", "+cntt+"未通过核算,并且退回给操作";    body ="回退原因:"+ reason;    }    UserInfo currentUser = (UserInfo) ctx.get(SysContextConstant.USERINFO);    String sender = currentUser.getName();    String receiver = info.getCreator().getId().toString();    try {    if(!CheckUtil.empty(receiver)&&!CheckUtil.empty(title))//调用发送消息方法_sendNotice(ctx,title,sender,body,receiver);    } catch (Exception e) {throw e;}    }



第二种方式:
public  static void sendWorkFlowMessage(Context ctx,String Receiver,String Body,String title,String sender)         {                   SenderAgent senderAgent = SenderAgent.getSenderAgent();                   senderAgent.start();                   Message message=null;                   java.util.Locale[] lcla = getContextLocales(ctx);//获取ctx的语言信息列表                   java.util.Locale locale = null;                   message = MessageFactory.newMessage("kingdee.workflow");//生成一个消息对象                                      for (int j = 0, m = lcla.length; j < m; j++) {                            //此处循环进行多语言消息的设置                            locale = lcla[j];                            message.setLocaleStringHeader("title",title, locale);//设置消息标题                            message.setLocaleStringHeader("sender",sender , locale);//设置发送人,属于文本,不是ID                            message.setLocaleStringHeader("body", Body,locale);//设置消息体内容,根据具体业务自己设定                   }                                      message.setIntHeader("type", MsgType.NOTICE_VALUE);//设置消息类型为通知                   message.setIntHeader("bizType", MsgBizType.WORKFLOW_VALUE);//业务类型设置为工作流                   message.setIntHeader("sourceStatus", MsgSourceStatus.EMPTY_VALUE);//设置任务状态,此处是通知消息,所以设置空                   message.setIntHeader("priority", MsgPriority.MIDDLE_VALUE);//设置消息优先级,自己根据需要设定相应的级别                   message.setStringHeader("databaseCenter", ctx.getAIS());//得到数据中心                   message.setStringHeader("solution", ctx.getSolution());//设置解决方案                    message.setStringHeader("receiver",Receiver); //设置接收者,后面那参数是用户ID,多个ID可用分号";"分割                   senderAgent.sendMessage(message); //发送消息//              senderAgent.stop();                  }

第三种方式:

String title = "xx单:" + editData.getNumber() + "申请包材编码";String body = title + ",详细信息请查看 包材编码维护。";BMCMessageInfo messageInfo = new BMCMessageInfo();messageInfo.setTitle(title);messageInfo.setBody(body);messageInfo.setReceiver(editData.getCreator().getString("id"));// TODOmessageInfo.setType(MsgType.NOTICE); // 通知消息messageInfo.setBizType(MsgBizType.URGENT); // 消息类型 - 催办messageInfo.setSender("系统");messageInfo.setPriority(MsgPriority.MIDDLE);// 消息级别messageInfo.setSendTime(new Timestamp(new Date().getTime()));messageInfo.setOrgType(OrgType.NONE);messageInfo.setOrgID("11111111-1111-1111-1111-111111111111CCE7AED4");IObjectPK messageId = BMCMessageFactory.getRemoteInstance().save(messageInfo);


	
				
		
原创粉丝点击