消息
====

![](media/7d307a82bbb497af529d1581aa3eb9b9.png)

消息通知
--------

消息分报警消息、预警消息和通知消息，用户可以通过消息链接快速跳转到处理界面

**消息通知场景：**

1.会审订阅结果

![](media/3ebb841eee99b28a563508e99d30554a.png)

2.转交订阅结果

![](media/f67c051d74d8541a654ebb2c75204b5a.png)

3.重新设置参与人订阅结果

![](media/7a17ba7853cf6bcf11c858b394140100.png)

4.各个节点（审批节点、人工节点、会审节点、自动节点）的出口消息和入口消息

![](media/23558ba29c6096edc8f11bb136d75bc4.png)

5.消息节点消息

![](media/b203cfc2a721935195a4fb840997f693.png)

6.传阅、催办消息

![](media/f4c613351467a5fb17d251da49686002.png)

![](media/e02f9339162935c31dfcad798cae4eb6.png)

**预警消息场景：**

1.任务处理时限控制：任务过期之前或任务过期时发送预警消息

![](media/41537dbd42cf5a89ec5b4ad46a388a4b.png)

![](media/1783f5a3e9d3ef15b303eb582d389582.png)

**报警消息场景：**

1.流程挂起：给管理员发送错误消息

![](media/f340b16d8eae33fa93fc3300a64ecee3.png)

![](media/e226c9e37552a5cbb508ccc8b2cc148f.png)

2.任务处理时限控制：任务过期之后发送报警消息

![](media/56ea4f982b38cfdfb65df997c83303fb.png)

消息平台配置
------------

苍穹平台默认内置了三个消息渠道，分别是云之家、邮件、短信、钉钉、企业微信。可以在系统管理-\>消息平台-\>消息渠道进行禁用和启用，如图下图所示。禁用之后，苍穹的待办任务消息和普通消息都不会发送到相应的渠道。

![](media/7b2c102b31b6bf9f6ebb465bbacc57b4.png)

每个消息渠道可以自定义自己的参数，在消息渠道初始化时加载并且解析，如下图所示：

![](media/7a31497bf65a935004ad7fca107f8689.png)

支持设置相关的消息模板，如图下图所示，消息模板中可以选择表达式，选择单据上的某个字段。可以定义每个实体在某个消息渠道下的模板内容，比如系统默认内置了流程中待办任务对应的邮件模板。

![](media/85e6ad55dd8f5689e1fabc0458b104ae.png)

![](media/18b676bfb063e81f6f6bc4277dc16def.png)

消息中心应用开发手册V2.0：https://club.kdcloud.com/school/6110

待办消息与第三方APP集成
-----------------------

工作流中的待办任务，可以采取两种方式和第三方系统进行集成。

**第一种：通过API拉取苍穹待办**

 在客户的第三方列表界面调用苍穹工作流提供的待办/已办API查询某个人的待办列表，直接格式化融合显示，获取的结果中已经包含了苍穹审批界面的URL,可以直接打开URL进行审批。如果是在移动端进行显示，建议URL参数中增加&device=mob，如果是PC段建议增加参数&device=pc. 

拉取的方式不在第三方存储数据，数据量较大时，需要分页拉取。此种方式需要做单点登录工作，然后才能调用API拉取数据

    1. 拉取待办API: **getToHandleTasksByUserId **

       
调用方式：https://ierp.kingdee.com:2024/mainbiz/kapi/app/wf/getToHandleTasksByUserId?body={"start":0,"limit":10,"billno":"test","subject":"test","entityName":"test"}&access_token={access_token}

        参数示例说明：

        1）access_token:
某个用户的单点登录之后获取的token，拉取当前用户的待办任务。

        2）start/limit：从第几个开始，拉取多少个待办。

        3）billno: 根据单据编号查询

        4）subject：根据任务主题查询

        5）entityName：根据单据名称进行查询

        返回值为json，拉取的结果如下图：

![https://club.kdcloud.com/download?fileName=01008db0175189484545b60b203f6528fe96.png](media/ecf3471f9007e7eb5d1841a2a78d4483.png)

 

    2. 拉取已办任务API: **getHandledTasksByUserId**

       
调用方式：https://ierp.kingdee.com:2024/mainbiz/kapi/app/wf/getHandledTasksByUserId?body={"start":0,"limit":10,"billno":"test","subject":"test","entityName":"test"}&access_token={access_token}{access_token}

        参数示例说明：

        1）access_token:
某个用户的单点登录之后获取的token，拉取当前用户的待办任务。

        2）start/limit：从第几个开始，拉取多少个待办。

        3）billno: 根据单据编号查询

        4）subject：根据任务主题查询

        5）entityName：根据单据名称进行查询

        返回值为json，拉取的结果如下图：

![https://club.kdcloud.com/download?fileName=0100e7502a1b05034fa6bc4e9cdd48f8c27b.png](media/fda74500f54819ca5066d321ecb6a05d.png)

    3. 获取待办&已办的数量：**getTaskCountByType**

**     
 **调用方式：https://ierp.kingdee.com:2024/mainbiz/kapi/app/wf/getTaskCountByType?body={"type":"toHandle"}

        参数示例说明：

        1）type: toHandle表示待办任务数量/handled表示已办任务数量。

        返回值为json，拉取的结果如下图：

![https://club.kdcloud.com/download?fileName=0100620a25cbeca04c3e8b0cae7261a1ac16.png](media/cda6b52c57f32af846a76e82816dc654.png)

**第二种：通过扩展苍穹消息渠道推送待办**

   
 除了可以按照默认的渠道【云之家、短信、邮件】发送之外，也可以自定义和扩展消息渠道进行发送。自定义消息渠道需要一个实现类，在这个实现类中，处理待办相关内容。实现类需要继承：

kd.bos.workflow.engine.msg.handler.AbstractMessageServiceHandler

     此接口中的关键说明：

   
 1）MessageServiceConfig：为消息渠道中定义的渠道相关信息，包括渠道编码，渠道名称，是否启用，自定义参数等。

   
 2）createToDo：工作流中的待办任务创建之后，会调用此接口，将待办任务传递给响应的渠道做处理。

   
 3）dealToDo：工作流中将待办变成已办的时候，会调用此接口进行待办变已办的处理。

   
 4）deleteToDo：工作流中撤回，或者多人收到任务，其中一人审批，删除其他人的待办时，调用此接口。

     5）sendMessage：发送预警，通知，报警等消息时，调用此接口进行当前渠道处理。

   
 推送过去的待办消息，可以将消息存储到第三方的数据库中，也可以直接发送第三方的消息. 具体可以参考云之家的实现类（YunzhijiaServiceHandler）。

   
 所有的消息渠道在工作流引擎中均通过异步消息处理，如果失败，会重试三次，三次也失败会进入异常中心等待人工处理。消息的失败不会影响流程的流转，可以在流转日志中查看对应渠道的消息是否执行成功。

![https://club.kdcloud.com/download?fileName=0100c3c3a1a1cf0149aebebc4177d7beea52.png](media/6743b756e1ac855e22dbeec32fbd3826.png)

![https://club.kdcloud.com/download?fileName=01007ce48f16299e4b9793e3ecd837a729b8.png](media/4693fd1690f53cbae53364b70dbf1fb9.png)

点击某个流转日志进入，可以从相关数据中看到关键信息。state=NEW表示创建待办任务/DEAL表示待办变已办/DELETE表示删除待办。service=email表示当前这个消息是发送的邮件，email为消息渠道的编码。

   
 推送的消息也包含相关的URL信息，在第三方的APP中打开苍穹任务链接，需要先做单点登录，然后点击链接，直接打开苍穹的审批界面，支持打开移动端审批界面，也支持打开PC端审批界面。审批完成后，需要刷新待办列表。
