Skip to main content

发送钉钉消息

访问路径:数据功能 -> 企业微信 -> 发送钉钉消息

功能简述

基于钉钉服务平台向特定用户或群组发送自定义消息,或文件。消息内容以JSON格式编辑,具体可以参考对应消息的模版案例。在使用前,需要在数据信息中注册相应的钉钉服务信息,可以参考 统一数据模型 中钉钉应用的注册方式。

支持的消息类型有:

  • 文本消息/Text
  • Markdown消息/Markdown
  • 链接消息
  • OA消息
  • 卡片消息
  • 仅发送文件/Only File

DingTalk

消息附件

消息附件支持将流程中创建的报表文件,或本地文件作为媒体文件嵌入到消息中。在发送消息前,系统会先将提供的附件上传至钉钉平台,并获取相应的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。