こんにちは。CData Software Japan リードエンジニアの杉本です。
前回の記事で CData Sync のジョブ結果を Slack に通知する方法を紹介しました。
www.cdatablog.jp
今回はこちらを使っている人も多いであろう Microsoft のコラボレーションツール Teams に処理結果を通知する方法を紹介したいと思います。
まずは前回と同様にIncoming Webhookのエンドポイントを準備しましょう。
投稿したいチャネルのコネクタ画面に移動して、「Incoming Webhook」を構成します。
Incoming Webhookの名前とアイコンを設定し登録しましょう。
これでIncoming WebhookのURLを取得できるので、この値を元にCData Syncの設定を追加します。
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 にジョブの処理結果が通知されました!
それぞれのレプリケーション内容およびレプリケーション結果も表示できます。
こちらの記事を公開した後に「失敗のときだけ通知したい場合はどうすればいいの?」という質問をお客様から頂きました。
スクリプトでは以下のようにIF文を使って、条件分岐を行うことができます。ここで「_input.JobStatus」の変数に格納されている処理結果を元に分岐して、失敗、つまり成功以外を通知させる設定にすることが可能です。
(SUCCESSで無い場合)
スクリプトの全体像としては以下のようになります。もしスケジュールを細かく組んでいる場合はこちらのほうが良いかもですね。
もし設定で不明な部分、よくわからない点があれば、テクニカルサポートまでお気軽にお問い合わせください。
https://jp.cdata.com/support/