CData Sync の処理結果を MS Teams に通知する

by 杉本和也 | October 4, 2021

f:id:sugimomoto:20211004144851p:plain

こんにちは。CData Software Japan リードエンジニアの杉本です。

前回の記事で CData Sync のジョブ結果を Slack に通知する方法を紹介しました。

www.cdatablog.jp

今回はこちらを使っている人も多いであろう Microsoft のコラボレーションツール Teams に処理結果を通知する方法を紹介したいと思います。

MS Teams 側に Incoming Webhook のエンドポイントを準備する

まずは前回と同様にIncoming Webhookのエンドポイントを準備しましょう。

投稿したいチャネルのコネクタ画面に移動して、「Incoming Webhook」を構成します。

f:id:sugimomoto:20211004144321p:plain

Incoming Webhookの名前とアイコンを設定し登録しましょう。

f:id:sugimomoto:20211004144341p:plain

これでIncoming WebhookのURLを取得できるので、この値を元にCData Syncの設定を追加します。

f:id:sugimomoto:20211004144411p:plain

Sync に Post-Job イベントを追加する

MS Teams の Webhook URLを取得したら、そのURLを用いてPost-Job イベントのスクリプトを作成します。

cdn.cdata.com

「http」という変数にそれぞれパラメータを設定して「httpPost」というオペレーションメソッドにその変数を渡すことで、APIリクエストが実行されます。

今回も私が簡単な雛形を作っているので、これを利用してみましょう。

https://XXXX.webhook.office.com/webhookb2/XXXX@XXXX/IncomingWebhook/XXXXX/XXXXX"/> 」の部分だけ、作成したWebhook URLに差し替えてみてください。



  
  
  
  
  
  







## Results




[_input.temp]
- [_index | just(5)] : [_value] : [QueryStatus#[_index]]





- Source: [_input.Source]
- Destination: [_input.Destination]

[temp]



{
    "title":"JobName: [_input.jobname] / JobStatus: [_input.JobStatus]",    
    "text":"[text]"
}


このScriptを対象のジョブの「Post-Job イベント」のところに貼り付けます。

f:id:sugimomoto:20210923171631p:plain

設定を保存したら、試しにジョブを手動実行してみましょう。

f:id:sugimomoto:20210923171637p:plain

ジョブが完了すると、以下のように MS Teams にジョブの処理結果が通知されました!

それぞれのレプリケーション内容およびレプリケーション結果も表示できます。

f:id:sugimomoto:20211004144619p:plain

失敗の通知だけ行いたい場合(2021/10/13追記)

こちらの記事を公開した後に「失敗のときだけ通知したい場合はどうすればいいの?」という質問をお客様から頂きました。

スクリプトでは以下のようにIF文を使って、条件分岐を行うことができます。ここで「_input.JobStatus」の変数に格納されている処理結果を元に分岐して、失敗、つまり成功以外を通知させる設定にすることが可能です。


 (SUCCESSで無い場合)

スクリプトの全体像としては以下のようになります。もしスケジュールを細かく組んでいる場合はこちらのほうが良いかもですね。



  
  
  
  
  
  

 

 

 

## Results

 


[_input.temp]
- [_index | just(5)] : [_value] : [QueryStatus#[_index]]


 
 

- Source: [_input.Source]
- Destination: [_input.Destination]
 
[temp]

 

{
    "title":"JobName: [_input.jobname] / JobStatus: [_input.JobStatus]",    
    "text":"[text]"
}

 

 

おわりに

もし設定で不明な部分、よくわからない点があれば、テクニカルサポートまでお気軽にお問い合わせください。

https://jp.cdata.com/support/