eas之手工发送消息


//以下是发送一个消息的核心片断,如果针对的是某组织批量发送,自己的需要取得组织的用户ID集合,然后构造receiver
SenderAgent senderAgent = SenderAgent.getSenderAgent();
Message message;
Locale[] lcla = getContextLocales(ctx);//获取ctx的语言信息列表
Locale locale = null;
message = MessageFactory.newMessage("kingdee.workflow");//生成一个消息对象
for (int j = 0, m = lcla.length; j < m; j++) {
//此处循环进行多语言消息的设置
locale = lcla[j];
message.setLocaleStringHeader("title","标题", locale);//设置消息标题
message.setLocaleStringHeader("sender","发送人" , locale);//设置发送人,属于文本,不是ID
message.setLocaleStringHeader("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", '4ff9eebb-0108-1000-e000-15acc0a813c813B7DE7F;4ff9eebb-0108-1000-e000-1db0c0a813c813B7DE7F'); //设置接收者,后面那参数是用户ID,多个ID可用分号";"分割
senderAgent.sendMessage(message); //发送消息

/**
* 获取ctx的语言信息列表
*
* @param ctx
* @return
*/
public static Locale[] getContextLocales(Context ctx) {
Locale[] locales = null;
SolutionInfo solu = MetaDataLoaderFactory.getLocalMetaDataLoader(ctx)
.getSolution();

if (solu != null) {
LanguageCollection langs = solu.getLanguages();
if (langs != null) {

locales = new Locale[langs.size()];

for (int i = 0; i < langs.size(); i++) {
locales[i] = langs.get(i).getLocale();
}
}
}

return locales;
}

/**
* 客户端自定义按钮
*/
private KDWorkButton b1;
@override
public void onLoad() throws Exception{
b1.addActionListener(new addActionListener(){
public void actionPerformed(ActionEvent e){
.........
}
})
}

posted @ 2019-06-26 08:05  一条有梦想的海洋咸鱼  阅读(290)  评论(0编辑  收藏  举报