邮件通知

代码示例

NotifyTest

import com.actionsoft.bpms.bpmn.engine.model.run.delegate.TaskInstance;
import com.actionsoft.bpms.server.UserContext;

public class NotifyTest {
    /**
     * 任务通知的方法
     *
     * @param uc 当前操作人的用户上下文对象
     * @param taskInst 接收人的任务实例
     * @param sender 任务发送人,即taskInst.getOwner()
     * @param target 任务接收人,即taskInst.getTarget()
     * @param param 发送的类型以及内容参数,格式:{"notifyType":"sms wx","notifyContent":"通知内容"},notifyType的内容是在参数中配置的对应的type
     * @return
     */
    public void notify(UserContext uc, TaskInstance taskInst, String sender, String target, String param) {
        int taskState = taskInst.getState(); //获取任务类型

        //    1:常规待办任务
        //    2:只读传阅任务【不影响流程推进】
        //    3:待办任务,从哪来回哪去
        //    4:只读等待任务,如等待作者修改
        //    9:系统通知任务【不影响流程推进】
        //    11:加签任务

        if(sender != target && taskState != 2 ){ //自己发给自己时不提醒、传阅任务不提醒 (可根据实际需求判断)

            JSONObject obj = null;
            String types = "";  //任务发送者选择的类型 ,多个空格隔开
            String content = "";  //通知内容
            try {
                obj = new JSONObject(param);
                types = obj.getString("notifyType");
                content = obj.getString("notifyContent");
                String[] type = types.split(" ");

                for(int i =0; i < type.length; i++){
                    if(type[i].equals("sms")){  //sms 为邮件通知应用参数` 通知类型(notifyType)`定义的type值

                        //此处调用相关类型的发送API方法
                        System.out.println("【" + sender + "】给手机号码 :" + UserContext.fromUID(target).getUserModel().getMobile() + " 发送内容为:" + content);

                    }
                }

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
}

将NotifyTest注册至PluginListener监听器

/**
 * 注册插件
 */
public class Plugins implements PluginListener{

    public List<AWSPluginProfile> register(AppContext arg0) {
        List<AWSPluginProfile> list = new ArrayList<AWSPluginProfile>();
        // 注册应用扩展点
        Map<String, Object> params2 = new HashMap<String, Object>();
        params2.put("notifyClass", NotifyTest.class.getName());
        list.add(new AppExtensionProfile("自定义任务提醒", "aslp://com.actionsoft.apps.addons.mail/registerApp", params2));
        return list;
    }
}

App Plugin

该实现类监听事件在AWS系统内仅需注册一次,则系统内所有应用任务办理时均可使用。



Seven
 010-62962343-690
 liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区