在EAS中使用代码发送消息

		// 以下是发送一个消息的核心片断,如果针对的是某组织批量发送,
		//自己的需要取得组织的用户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);// 设置发送人,属于文本,不是ID
		message.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"));// TODO

messageInfo.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);







  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值