数据管理DMS除了手机短信、邮件、钉钉信息、钉钉机器人Webhook等消息通知方式外,支持使用自定义Webhook通知。

配置介绍

配置个人信息时,在Webhook文本框中,输入URL地址,并在通知方式中,勾选Webhook

配置自定义webhook

更多信息,请参见配置个人信息

事件说明

当DMS中有消息通知时,系统会将消息通知发送到您指定的URL地址,发送的POST请求内容如下所示。

请求头

DMS-Event: Message Hook

请求体参数

参数 数据类型 描述
submitterUid String 提交人的UID。
submitterName String 提交人名称。
category String 功能模块:工单、任务编排、数仓开发等。
module String 业务类型:权限申请、数据变更、结构设计、数据导出等。
event String 具体事件:待审批、执行成功、执行失败等。
taskId String 工单ID或任务流ID。
taskName String 任务名称。
eventTime String 事件时间。
message String 系统内置消息文本。
receivers 对象数组 接收人对象数组,可能返回多个接收人信息。
uid String 接收人的UID,该参数为接收人对象的成员。
name String 接收人名称,该参数为接收人对象的成员。

请求体示例

{
    "submitterName":"xxx",
    "submitterUid":"167382665015xxxx",
    "category":"工单",
    "event":"预检查失败",
    "message":"【DMS数据管理】尊敬的客户:xxx用户提交的工单-数据变更,预检查校验不通过,可前往工单内检查后重新提交,请确认!",
    "module":"数据变更",
    "receivers":[
    {
        "name":"xxx1",
        "uid":"167382665015xxxx"
    },
    {
        "name":"xxx2",
        "uid":"167382665016xxxx"
    }]
}

响应体示例

{"root":"","success":true}                   //成功
{"root":"error message","success":false}     //失败

Webhook接收端例子

您可以通过如下方式,创建一个简单的Echo脚本,测试、查看Webhook的执行效果。

  1. 将如下脚本保存成print_http_body.rb。
    require 'webrick'
    server = WEBrick::HTTPServer.new(:Port => ARGV.first)
    server.mount_proc '/' do |req, res|
      puts req.body
    end
    trap 'INT' do
      server.shutdown
    end
    server.start
  2. 选择未被使用的端口(比如8000),并启动脚本:ruby print_http_body.rb 8000
  3. 新版DMS控制台上,配置Webhook的URL地址,例如http://my.host:8000/。具体操作,请参见配置个人信息
    当触发支持HTTP Basic Authentication的服务器时, 允许在URL中添加用户名和密码进行访问,Webhook示例如下:
    http://userName:password@my.host:8080/project/test-job
  4. 在DMS中提交数据变更工单,具体操作,请参见普通数据变更,您的服务端将会收到DMS发来的消息通知。

    如下为通知示例:

    {"category":"工单","event":"预检查失败","message":"【DMS数据管理】尊敬的客户:xxx 用户提交的 工单-数据变更,
    预检查校验不通过,可前往工单内检查后重新提交,请确认!","module":"数据变更","receivers":[{"name":"xxx","uid":"1673826650152166"}],
    "submitterName":"xxx","submitterUid":"1673826650152166"}
    127.0.0.1 - - [20/Apr/2021:20:07:47 CST] "POST / HTTP/1.1" 200 0