釘釘已經成爲很多企業日常工作必備的交流軟件,知行軟件也在釘釘通知上做出了一些努力,利用知行之橋的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系統進行數據收發時,可以及時在釘釘羣組中收到通知消息,確保信息能夠得到及時處理,提高響應效率。