钉钉已经成为很多企业日常工作必备的交流软件,知行软件也在钉钉通知上做出了一些努力,利用知行之桥的REST端口调用钉钉机器人API从而实现钉钉通知的功能,这样当客户在EDI系统上收到数据后,钉钉群组同时会发送通知消息,客户可以及时处理信息,提高效率。
一,创建钉钉机器人
钉钉的群组有一个自定义机器人的功能,可以利用这个功能来创建消息通知的钉钉机器人,实现钉钉通知。
1、打开群组设置,点击添加机器人。
2、选择自定义机器人
3、设置机器人姓名
这里可以进行自定义比如:【消息通知】。选择对应需要接收通知消息的群组,添加安全设置。如下图所示,这里是三选一,一般选择自定义关键字即可,注意这个关键字需要在REST端口传输的json文件中使用到。例如添加了一个自定义关键词:“收到”,则这个机器人所发送的消息,必须包含“收到”这个词,才能发送成功。
4、设置完成后机器人就会开始工作
需要注意的是,机器人的设置界面会有一个带有access_token的url,复制保存,在调用时需要用到这个带有access_token的url。
二 调用API
在知行之桥的REST端口设置带有access_token的url,方法为:POST 头部为Content_Type:application/json 另外需要注意的是:发起POST请求时,必须将字符集编码设置成UTF-8。
配置好这些,下一步就是在实际业务转换结束时生成一份json文件,这份json文件需要包括以下参数。
要实现钉钉通知,需要传输的json文件的格式如下所示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
{ "at": { "atMobiles": [ "180xxxxxx" ], "atUserIds": [ "user123" ], "isAtAll": false }, "text": { "content": "收到850收据@180xxxxxx " }, "msgtype": "text" } |
三 实现消息传输
1、钉钉通知-订单通知
如图所示,可以在知行之桥中搭建工作流,我们要完成的功能是:为一个Excel方案添加接收方向的钉钉通知demo。 在正常接收到X12报文,并将X12报文转换为XML后通过上图所示的Demo_Copy端口复制一份转换后的xml文件,得到两份相同的xml文件。一份按照正常的流程继续经Excel端口后再通过邮箱端口发送到客户邮箱,另一份来进行钉钉通知。
但是在进行钉钉通知之前,需要先经过一个Schedule端口进行几分钟的延时,以确保真实的数据完全进入到客户的邮箱后,再进行钉钉通知。完成Schedule端口延时之后经过Script端口,提取报文名称和主键信息,转为钉钉机器人可以读取的json文件,然后经过REST端口发送到钉钉群组,即可实现钉钉通知的功能。以下是几种钉钉通知的界面展示。
艾特到具体人的钉钉通知
艾特所有人的钉钉通知
不做任何艾特的文本消息通知
2、报错预警-AS2端口自动巡检
EDI对外的连接端口有时也会因为各种各样的情况出现问题,比如修改http为https后,出现设置的SSL证书问题,这样就会导致EDI环境挂掉,因此可以利用钉钉通知功能来进行自动巡检,当环境出现问题后,用户就可以及时知道并进行处理。 如上图所示,我们在知行之桥EDI系统上创建一个Script端口和AS2端口,利用Script端口来实现当AS2端口的出现问题时,及时进行钉钉通知,方便运维人员及时进行检查并纠正。 Script端口具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<rsb:set attr="check.sslcert" value="*"/> <rsb:set attr="check.url" value="AS2URL"/> <rsb:call op="httpGet" in="check"> <rsb:catch code="*"> <rsb:set attr="notify.url" value="【钉钉自定义机器人的url】"/> <rsb:setm item="notify"> url = 钉【钉自定义机器人的url】 postdata = {"at": {"atMobiles":\["【被@人的手机号】"\],"isAtAll":是【否@所有人,是为true,否为false】},"text": {"content":"业务警报:AS2端口无法访问,请马上检查![_message | def]"},"msgtype":"text"} contenttype = application/json </rsb:setm> <rsb:call op="httpPost" in="notify" /> </rsb:catch> </rsb:call> <rsb:set attr="o.FileName" value="[_|now]" /> <rsb:push item="o"/> |
其中,postdata里的内容就是调用钉钉机器人的json文件内容。 报警示例:
这样,通过REST端口调用钉钉通知的功能就可以实现,用户通过知行之桥EDI系统进行数据收发时,可以及时在钉钉群组中收到通知消息,确保信息能够得到及时处理,提高响应效率。