在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); // 发送消息
- <pre name="code" class="java">调用例子:
- 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;
- }
- }
- </pre><br>
- <br>
- <br>
- 第二种方式:
- <pre></pre>
- <pre name="code" class="java"><pre name="code" class="java">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();
- }</pre><br>
- 第三种方式:
- <pre></pre>
- <pre name="code" class="java"><p style="color: rgb(105, 105, 105); font-family: Arial; "></p><pre name="code" class="csharp">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);</pre><br>
js
浙公网安备 33010602011771号