Qlik Document Chainingで選択状態を引き継いで別のアプリを開く(その3)

こんにちは!Yokoです。
昨日、札幌から東京に戻りました。
弊社の本社オフィスの近くに「雨は、やさしく No,2」というラーメン店があります。札幌といえば味噌ラーメン?
ここは鶏白湯塩ラーメンがウリのお店です。ウリというか、鶏白湯塩ラーメン関連しかメニューはないのですが😅
提供されたラーメンは、マッシュポテト(のようなもの)の上にネギとシソが芸術的に積み上がっています。これを解体していくと、マッシュポテトの下にはチャーシューが2枚…
このチャーシューは鶏のムネ肉とモモ肉、そしてなぜか唐揚げのようなものが添えられているという、ラーメンとは言い難い組み合わせです。
実際食べてみると、マッシュポテトのような白いペーストはホタテのペースト、唐揚げはゴボウの唐揚げ…
鶏白湯のスープにホタテペーストを崩して味変を楽しみながら、麺にスープを絡ませていただきます。
札幌のオフィスで仕事をするときは、2回に1回はここでランチしますが、ランチタイムは混み合うので時間帯をずらして行くようにしています。
皆さん、札幌にお越しの際は、弊社オフィスに是非お越し下さい。おいしい鶏白湯塩ラーメンをご馳走しますよ(僕がいるときだけね)。

前置き長いって😂
しかも全然関係ないじゃん!
というわけで、本題はDocument Chainingの3回目です。
まだあったのか!って感じですが、2回目までの状態だと使えないんだよな…

前回までのDocument Chainingの記事はこちら
Qlik Document Chainingで選択状態を引き継いで別のアプリを開く(その1)
Qlik Document Chainingで選択状態を引き継いで別のアプリを開く(その2)

目次

実装してみて遭遇した問題

QlikのDocument Chainingを実装してアプリ間を行ったり来たりしていると、必ずこういう問題にぶち当たります。

店舗タイプ=スーパーマーケット、年月を3ヵ月分選択して、「顧客分析へ」のボタンをクリックして顧客分析アプリに移動します。


移動した先のページで、店舗タイプ=スーパーマーケット、年月を3ヵ月分以外に、性別=男性が選ばれてしまっています。選んでないんだけどなあ…
そうそう、前にこのアプリを開いた状態が残っていたのでした。
うーーん、これでは使いものにならないですね😥

移動先の選択状態をクリアする

移動する際に移動先の選択をすべてクリアしてから選択するようにできないものか…
はい、ボタンアクションのナビゲーションのウェブサイトのURLは以下のように設定します。

=’https://hoge.jp.qlikcloud.com/sense/app/<アプリID>/sheet/<シートID>/options/clearselections/state/analysis/select/’ & GetCurrentSelections(‘/select/’,’/’,’;’,1000)

option/clearselections を追加してあげることで、移動先のアプリの選択状態をクリアした上で移動元のアプリの選択状態を引き継ぐことができます。

ボタンアクションの設定を変更して、「顧客分析へ」ボタンで顧客分析アプリに遷移します。

性別=男性はクリアされ、元のアプリの選択状態だけがきちんと反映されました。
option/clearselections は必須ですねえ。
残っていてくれて便利なこともありますが、Document Chainで移動するときはクリアされないと意味ないですから…

並列ステート(Alternate states)ではどうするか

Qlik Senseは、アプリ内で選択状態が共有されますよね。だから探索しながら分析を深堀りできる。
これがQlikの一番の強みだと思っているので、僕はアプリ内のシート間であっちこっち移動することを前提にアプリを作ります。
しかしながら、選択状態を引き継がない(独立した選択状態の)シートを作成することもできます。並列ステート(Alternate states)という機能です。
この機能は、別々の選択状態で比較するような場合にも有効ですが、便利な使い方はまた機会を改めることにして…

移動先のアプリに選択状態の異なるシートを作成します。そのシートに並列ステートを設定していきますね。
アセットのマスターアイテムに並列ステートがありますので、+ボタンを押して並列ステートを新規作成します。ここでは新規状態名を”state2″として作成します。

並列ステートを設定するシートのシートプロパティで、並列ステート→ステートを開いて、ドロップダウンから先程設定した”state2″を選択します。
これで、このシートは切り離された選択状態(state2)のシートになります。

では、Document Chainで元のアプリから選択状態を引き継いで、並列ステートを設定したシートに着弾するのはどうしたらいいでしょうか?
ボタンアクションのナビゲーションのウェブサイトのURLを以下のように設定します。

=’https://hoge.jp.qlikcloud.com/sense/app/<アプリID>/sheet/<並列ステートを設定したシートID>/state/analysis/select/state2::‘ & GetCurrentSelections(‘/select/state2::‘,’/’,’;’,1000)

上記のように設定すると、URLは以下のように設定されます。

https://hoge.jp.qlikcloud.com/sense/app/<アプリID>/sheet/<並列ステートを設定したシートID>/state/analysis/select/state2::店舗タイプ/スーパーマーケット/select/state2::売上日.calendar.YearMonth/2024-3月;2024-4月

ボタンアクションで移動した先のシート(並列ステートを設定したシート)では、元々選択されていた性別=男性の状態は残っていますが、state2の選択状態として、店舗タイプ=スーパーマーケット、売上日の2ヵ月分が追加されました。
そして、このシートでは性別の選択状態は無視され、店舗タイプと売上日の選択状態だけが反映されています。
これで、並列ステートを使った移動ができるようになりました。

まとめ

QlikのDocument Chainingでアプリ間を移動する場合は、option/clearselections をURLに追加して、移動先の選択状態をクリアし、選択状態を引き継ぐことができます。
また、state2::のように並列ステート名を追加すれば、並列ステートの選択状態を指定する方法もご紹介しました。

以上、3回に渡り、Qlik Document Chainingを解説してきました。
この3回分をしっかり押さえておけば、複数のアプリがあたかも一つのアプリのように連携して動作させることができることをご理解いただけたかと思います。
皆さんもDocument Chainingを是非使ってみて下さいね。

最後に、このシリーズが良かった!と思ったらLINEXでフォローお願いします。
最新記事が投稿されたらお知らせしますので
ではまた!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次