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

by 杉本和也 | October 4, 2021

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

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

www.cdatablog.jp

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

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

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

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

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

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

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 イベント」のところに貼り付けます。

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

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

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

失敗の通知だけ行いたい場合(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/