こんにちは。Deckです。
この記事ではライトテーブルでユーザーが作成したデータを外部サービスのSlackに連携する方法を解説します。
ライトテーブルは公開されてまだ間もない機能なので、ライトテーブルの概要についてはライトテーブルのファーストインプレッション紹介記事も読んでみてください。
Qlik Senseの他のデータとは異なり、ライトテーブルを使って作成し更新を行ったデータは「ストア」という領域に保存されています。
ストアの情報にアクセスするためには大きく分けて「ロードスクリプトで取得」「Qlik Automateで取得」の2つの方法があります。
それぞれ以下のように使い分けがあるので、適した方法を使いましょう。
この記事ではQlik Automateでデータを取得し、外部サービスのSlackに連携して更新内容をポストする方法について見てみましょう。
この記事では次のような流れでライトテーブルのデータをSlackに連携します。
流れを図にするとこのような形になります。
ライトテーブルで顧客一覧を編集し、ボタンでSlackに連携するアプリを作ってみましょう。
前提条件として、Qlik Cloud上の分析アプリにライトテーブルを作成できているものとします(ライトテーブルの作成方法はこちらの記事をご覧ください)。
シートにライトテーブルとボタンを1個ずつ配置し、ボタンのラベルとして「Slack送信実行」を設定します。
アクションの設定としてどの自動化を実行するか入力する欄がありますが、ここでは記入せず、あとで戻ってきて入力します(画像右下の「あとで記入」の部分)。
また、変数として「v最終連携日時」を作成します。
定義として、今日より前の日付を入力します。
これから作成する自動化でこの変数を参照し、古い情報が何度もSlackに送信されないようにします。
メッセージの送信先となるチャンネルを作成します。
既存のチャンネルを送信先に設定してもよいのですが、新規チャンネルを作成したほうがのちのち管理しやすいと思います。
Qlik Automateから、新しい自動化を作成します。
自動化では大きく分けて以下の3つの処理を実行します。
この流れを図にするとこのようになります。
Qlik Senseアプリの変数から値を読み取ります。
App IdとVariable Idに先ほど作成したアプリと変数名を設定します。
先ほどのブロックで取得した更新日をQlik Automate内の変数に設定します。
「Manage variables」をクリックすると新しい変数を作成することができます。変数の種類は「String(文字列)」としましょう。
ライトテーブルで編集したストアから、前回の自動化実行時より新しい更新を取得します。
ストアIDはライトテーブルのプロパティから確認できます。
フィルターとして、「updatedAt gt "V Max Date Time"」を設定します。
ここでの「gt」は「grater than = ○○より大きい」の意味です。
Slackのチャンネルにメッセージを送信します。
チャンネル名、タイトル、テキストを入力します。
また初回設定時はSettingsタブからアカウントを連携する必要があります。
Condition+Variable
ライトテーブルの各レコードについて、「vMaxDateTimeよりも大きければそれを新しいVMaxDateTimeに設定する」ことを繰り返します。
この処理が各レコードについて繰り返されることで、最終的に一番新しい日付が最終更新日となります。
ここまでの処理で決まった最終更新日を次回の自動化でも参照できるように、Qlik Senseアプリの変数に書き戻します。
最後に自動化を保存し、自動化のIDをQlik Senseアプリのボタンに設定します。
ここまでの設定を完了したら、ライトテーブルにデータを書き込んでからボタンをクリックしてみましょう。
Slackのチャンネルにメッセージが送信されたら成功です。
この記事では、「ライトテーブルに書き込んだデータをボタンでSlackに連携する方法」を解説しました。
注意点として、ライトテーブルで扱う「更新」はセル単位で保持しているため、仮に既存のレコードの一部分だけを編集して連携を実行した場合には編集された部分だけがメッセージとして送信されます。
上記のように少し癖はありますが、使いこなせればQlik Senseの可能性をさらに広げる良い機能だと思います。
それではまたお会いしましょう!