发送钉钉消息
访问路径:数据功能 -> 企业微信 -> 发送钉钉消息
功能简述
基于钉钉服务平台向特定用户或群组发送自定义消息,或文件。消息内容以JSON格式编辑,具体可以参考对应消息的模版案例。在使用前,需要在数据信息中注册相应的钉钉服务信息,可以参考 统一数据模型 中钉钉应用的注册方式。
支持的消息类型有:
- 文本消息/Text
- Markdown消息/Markdown
- 链接消息
- OA消息
- 卡片消息
- 仅发送文件/Only File
消息附件
消息附件支持将流程中创建的报表文件,或本地文件作为媒体文件嵌入到消息中。在发送消息前,系统会先将提供的附件上传至钉钉平台,并获取相应的media_id,这些信息可以通过在消息体中预置的任务临时变量
来获取。如:<tsk:media_hamster_user_guid_pdf_id/>
。
例如:
文件名 | 文件类型 | 任务临时变量 | 任务临时变量 |
---|---|---|---|
hamster user guid.dpf | 文件 | <tsk:media_hamster_user_guid_pdf_id/> | |
hamster.png | 图片 | <tsk:media_hamster_png_id/> |
注:
- 文件名中的空格、连字符、点号、左右大小括号,均会被替换成下划线
_
,并在尾部添加_id
标识media_id,或添加_url
标识图片url地址。
消息推送
系统支持单笔消息推送和批量消息推送功能。
- 单笔消息推送
基于钉钉消息页签中配置的消息格式和内容进行单条发送。 - 批量消息推送
如果在任务脚本
中配置了的查询语句,系统将按该脚本查询出来的结果,批量的轮询替换消息体里面的变量占位符,并依次推送消息。同时,脚本返回的记录集中各个字段信息,可以通过数据变量的模式,在消息内容中被引用。如:上述脚本查询返回的是还没有完成的,且本次会被发送任务清单,清单里面的字段可以被按数据变量的模式进行引用:select user_id, task_id from biz.task_list where task_status<>'completed'
<db:user_id/>
,<db:task_id/>
。
状态更新
系统在善后脚本
页签中提供了一个在批量消息推送模式下,更新每条消息推送后状态的功能脚本。该脚本会在每条消息推送后被执行,可用于记录当前消息的推送状态,方便后续统计推送的进度,或在失败后重新推送。
为了实现这个功能,系统在每条消息推送完成后,会将当前记录的状态信息通过任务临时变量
的模式反馈给操作人员,操作人员只需要将这些任务级变量名占位符嵌入到该脚本中,即可实现捕获每条记录状态的目的。系统反馈的变任务变量有:
任务变量 | 功能描述 | 案例 |
---|---|---|
errcode | 任务状态,0为成功 | <tsk:errcode/> |
errmsg | 错误信息 | <tsk:errmsg/> |
request_id | 工作消息请求ID | <tsk:request_id/> |
task_id | 工作消息创建的异步发送任务ID | <tsk:task_id/> |
message_id | 群组消息ID | <tsk:message_id/> |
target_object_id | 消息接收者ID | <tsk:target_object_id/> |
agent_id | 消息推送应用Id | <tsk:agent_id/> |
例如:在返回的errCode不为0时,标识为失败,已方便下次重新推送。
update biz.task_list
set task_status=case when '<tsk:errcode/>'='0' then 'completed' else 'failed' end, err_msg='<tsk:errmsg/>'
where user_id='<db:user_id/>'
注意:上述脚本中用到了任务脚本的<db:user_id/>
数据查询变量,从而可以获取当前发送的消息对应数据查询中的特定用户id。