• 开源OA开发平台最新教程:新版消息配置


    o2oa/o2server从7.2.0版本开始可以对消息和通道进行配置

    消息(message)是指服务器在运行中由不同事件产生不同的消息内容,不同的事件产生不同的消息,目前支持的事件类型有52种,以及自定义消息类型. 消息通道是指如何处理产生的消息。

    下面以创建待办为例说明消息处理机制。

    类型(消息类型)

    o2oa/o2server服务器内的消息类型是内置编码实现完成的,7.2.0版本支持以下52种事件类型以及自定义消息类型:

    • application_create:创建应用
    • application_update:更新应用
    • application_delete:删除应用
    • process_create:创建流程
    • process_update:更新流程
    • process_delete:删除流程
    • activity_message:有新的工作通过消息节点
    • work_to_workCompleted:工作完成转已完成工作
    • work_create:创建工作
    • work_delete:删除工作
    • workCompleted_create:创建已完成工作
    • workCompleted_delete:删除已完成工作
    • task_to_taskCompleted:待办完成转已办
    • task_create:创建待办
    • task_delete:删除待办
    • task_urge:待办即将过期催办
    • task_expire:待办过期
    • task_press:待办提醒
    • taskCompleted_create:已办创建
    • taskCompleted_delete:删除已办
    • read_to_readCompleted:待阅转已阅
    • read_create:待阅创建
    • read_delete:待阅删除
    • readCompleted_create:已阅创建
    • readCompleted_delete:已阅删除
    • review_create:创建参阅
    • review_delete:删除参阅
    • meeting_invite:会议邀请
    • meeting_delete:会议删除
    • meeting_accept:会议邀请接受
    • meeting_reject:会议邀请拒绝
    • attachment_create:创建附件
    • attachment_delete:删除附件
    • attachment_share:附件分享
    • attachment_shareCancel:附件取消分享
    • attachment_editor:附件可编辑设置
    • attachment_editorCancel:附件可编辑取消
    • attachment_editorModify:附件可编辑修改
    • calendar_alarm:日历通知
    • custom_create:自定义消息创建
    • teamwork_taskCreate:工作管理任务创建
    • teamwork_taskUpdate:工作管理任务更新
    • teamwork_taskDelete:工作管理任务删除
    • teamwork_taskOvertime:工作管理任务超时
    • teamwork_chat:工作管理聊天
    • cms_publish:内容管理发布
    • cms_publish_to_creator:内容管理发布创建者通知
    • bbs_subjectCreate:论坛创建贴子
    • bbs_replyCreate:论坛创建回复
    • mind_fileSend:脑图文件发送
    • mind_fileShare:脑图文件分享
    • im_create:IM 聊天消息发送
    • custom_:自定义消息

    自定义消息类型

    以 custom_开始的消息类型被识别为自定义消息.

    通道

    o2oa/o2server服务器消息通道是用于处理接收到的消息内容,7.2.0版本设计以下通道来处理消息:

    ws:webSocket消息发送. pmsinner:推送消息. calendar:日历 dingding:钉钉 welink:华为welink zhengwudingding:政务钉钉 qiyeweixin:企业微信 mpweixin:微信公众号 kafka:kafka消息队列 activemq:activemq消息队列 restful:restful调用 mail:邮件发送 api:系统内部借口调用 jdbc:jdbc写入 table:自建表 hadoop:dfs写入

    消息产生后将被送到通道进行消费处理.

    默认配置

    默认情况下对部分消息(如:task_create:创建待办)等类型和通道进行了配置,默认情况下已经实现了待办的通知等功能.大部分消息都会通过默认配置自动处理.

    默认配置会将创建待办消息通过webSocket,pmsinner,dingding,welink,zhengwudingding,qiyeweixin,mpweixin进行发送.

    后续演示几种典型的消息使用场景

    场景:创建待办消息进行邮件通知

    1. 新建一个邮件通道

    选择"邮件",进行smtp配置,图片给出腾讯企业邮配置样例,设置通道的名称为"consumer_mail"

    3.添加通道,将刚刚创建的通道添加到task_create消息类型中

    至此,当有待办创建时将调用consumer_mail通道通过邮件的smtp服务发送邮件通知给待办人.后面将进一步设置邮件过滤和邮件内容.

    如果需要进行条件过滤,譬如不给"张三"用户发送邮件通知,那么可以通过过滤脚本来实现。

    return message.person.indexOf("张三")>-1;

    返回值 true 表示需要进行处理, false 不进行处理.message 消息体根据不同的时间类型来自不同的消息,其内容和格式不同.具体格式内容可以通过print语句查看。

    完成过滤后再来对消息体内容进行定制,通过创建加载器来实现。

    1. /*
    2. *message 对象是消息体,有脚本执行上下文环境环境自动注入,其中有四个字段
    3. message.title: 标题
    4. message.person: 发送对象
    5. message.type: 消息类型,task_create
    6. message.body: 消息体,类型是task_create的消息中消息体是json格式存储的task(待办)数据
    7. return 返回的message对象
    8. */
    9. message.title = "您有一份标题为:"+message.body.title+"的待办需要处理。";
    10. return message;

    通过加载器定制邮件内容。

    场景2:工作完成后将数据写入到数据库表

    工作流转完成后尝试将部分数据写入到制定的数据库表中

    ·先准备一个数据库并创建一个表,表中定义id,title,total字段。

    创建一个jdbc(数据库表)通道

    我们先创建一个jdbc的通道,指向testdb数据库的workdata表.

    创建一个加载器来设定写入的内容

    1. var id = message.body.work;
    2. var resp = this.applications.getQuery("x_processplatform_assemble_surface", "data/work/"+ id);//根据workid获取到业务数据data
    3. var data = JSON.parse(resp.toString()).data
    4. //修改body属性同步到数据库表中
    5. message.body.id = message.body.id;
    6. message.body.title = data.$work.title;
    7. message.body.total = data.total;
    8. return message;

    在类型(workCompleted_create)中选择添加通道consumer_jdbc

    至此就完成了将数据同步到数据库的配置。

    通道配置说明

    下面对6中非默认通道进行说明.

    kafka

    将消息推送到kafka队列中,配置参数说明:

    • bootstrapServers:服务器地址
    • topic:消息类别
    • securityProtocol:安全协议
    • saslMechanism:SASL认证机制
    • username:用户名
    • password:密钥

    activemq

    将消息推送到activemq队列,配置参数说明:

    • url: 消息队列地址
    • queueName: 队列名称
    • username: 用户名
    • password: 密码

    restful

    调用restful服务,配置参数说明:

    • url: restful调用地址
    • method: 调用方法get,post,put,delete.
    • internal: 是否是系统内调用,如果是系统内调用将强制带上服务器标识以通过啊权限认证.

    mail

    调用smtp服务器发送邮件,配置参数说明:

    • host: smtp服务器地址
    • port: smtp服务端口,默认465
    • sslEnable: smtp传输是否启用ssl加密
    • auth: 是否启用用户认证
    • from: 邮件发送人
    • password: smtp登录密码

    jdbc

    调用数据库链接,将数据写入数据库表,配置参数说明:

    • driverClass: jdbc驱动类
    • url: jdbc地址
    • catalog: 编目
    • schema: 数据库
    • table: 数据库表
    • username: 用户名
    • password: 密码

    hadoop

    将数据写入hadoop文件系统,配置参数说明

    • fsDefaultFS: hadoop服务地址。
    • path: 写入目录。
    • username: 指定系统账户。

    (转自公众号:浙江兰德网络)

  • 相关阅读:
    java restfull请求方式 (get、post、put 、delete、patch)
    MySQL 如何避免克隆失败后再次初始化
    vuex 模拟异步调用
    什么是微网格?微网格规划应考虑哪些因素?
    【多光谱与高光谱图像融合:金字塔混洗Transformer】
    笙默考试管理系统-MyExamTest----codemirror(26)
    2023年【道路运输企业安全生产管理人员】考试题库及道路运输企业安全生产管理人员模拟考试题库
    【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
    CMS getshell
    基于SSM的在线电影管理系统
  • 原文地址:https://blog.csdn.net/liyi_hz2008/article/details/126783565