※前書き
少々無理やり実装していますので、実業務での利用は内容をよくご確認の上、ご検討ください!
はじめに
ある日、社内でこんな話があがりました。
「役所にあるようなデジタルサイネージのように数秒ごとに画面を自動的に切り替えられないか?」
こんなイメージ
考えました。。。
ボタンアクションを使えば、すぐに実装できます。
がしかし、要望では『自動的に』行う必要があります。
アッ、Qlik Automateが使えるのでは!?と。
作ってみよう!
利用環境・機能
- Qlik Sense(Qlik Cloud)
- Qlik Automate
- Layout container
ざっくり全体像
こんな仕組みを作っていきます!
手順 - 画面側
- Layout containerをシートに追加
- Layout container上に、切り替えたいKPIと棒グラフを用意(見た目も整えましょう)
- 2で用意したチャートを用い、切り替えたい分の数で複製
ここでは3つずつ用意しています
- 切り替えるチャートの数の変数を作成
以下のように定義します
・vv1:1
・vv2, vv3:2
※作成した変数のうち1つが、「1」になっていればOK
- チャートの配置を調整
配置した箇所でチャートが切り替わるため、重ねてOKです
- Layout Containerの「条件の表示」を設定
Layout Container上でクリック>プロパティ>各チャートごとに設定
以下のように、各チャートのアイコンが変化していればOKです
これはシート上で「非表示」の状態を表しています
これで画面側の用意は完了です。あとは自動的に切り替える仕組みを作ります。
手順 - Qlik Automate
全部で3つの自動化フローを作成していきます。
まずは1回目の切り替え分です。
- Qlik Automateで新しい自動化を新規作成
- Update Variableブロックを追加し、以下の通り入力
- 新たにUpdate Variableブロックを追加し、以下の通り入力
- Save Appブロックを追加
※これをしないと手順2,3の変数上書きが反映されません!
- Sleepブロックを追加
チャート切り替わり~次の切り替わりまでの時間をセット
- 自動化フローを保存して、閉じる
- 手順6で保存した自動化を複製(2回目の切り替え分を作成)
※以降は手順6までの自動化フローと一緒にしないでください(後で説明します)
- Update Variableブロックの入力値を、以下の通り編集
- 自動化フローを保存して、閉じる
- 手順9で保存した自動化を複製(3回目の切り替え分=初期表示に戻す分を作成)
※手順6, 9までの自動化フローと一緒にしないでください(後で説明します)
- Update Variableブロックの入力値を、以下の通り編集
- 自動化フローを保存して、閉じる
- 手順6で保存した自動化を開く
- Call Automationブロックを追加
呼び出す自動化に、「手順9で保存した自動化」を設定
※自動化の名称によって、添付の表示は異なります
- Call Automationブロックを追加
呼び出す自動化に、「手順12で保存した自動化」を設定
※自動化の名称によって、添付の表示は異なります
- Startブロックにスケジュールを設定
- 自動化を保存
完成です!!!
動きを見てみましょう
※裏側がわかりやすいように、変数値も表示しています
いい感じにできてますね!!
「いいやん、これ使えるやん~」って思った方もいれば、
ここまでの作成手順で「いやー、ちょっとこれは」って方もいるかと思います。
それでは、なぜこれが全ての方におすすめできないかをご説明します。
課題
- 切り替える画面の回数分の自動化フローを別々に作成・管理する必要がある
- Update Variableなどアプリに即反映させたい場合、Save Appsが必須(参考)
- Qlik Automateの仕様上、Save Appsブロックは1自動化内で1回分しか有効にならない(参考)
- そのため画面切り替え毎にフローを分ける必要がある
- 管理も煩雑に....
- リアルなサイネージを再現すると、1日のAutomate実行回数の消費量がえぐい...
- Automateは1自動化実行で、1回分とカウントされる
-
- 今回の方法は画面切り替え1周で、3自動化=実行回数3回分を消費してしまう
- ご契約ライセンスによっては、Automateが上限に要注意
- Qlik Automateのスケジュール実行のオプションが限られている
- Qlik CloudとLayout containerの使用がマストである
おわり
いかがでしたか!
実務利用は要検討が必要かと思いますが、
何かのアイデアや表現などに貢献できればうれしい限りです。
たまにはこーゆうネタ的なナレッジも大事にしていきたい。それでは。