こんにちは!Yokoです。
先日、麩の懐石コースをいただいてまいりました。こちらのお店です。
麩は小麦で作られていまして、タンパク質はすべて麩で賄えるって、ちょっとビックリです。グルテンフリーの料理も昨今よく聞きますが、こちらはまさにフルグルテンです。
小麦アレルギーの方はご遠慮いただくことになりますが…
さて、今回はDocument chainingという技術をご紹介します。
これをご存じの方は、おそらくQlikマニアの部類に入る?
でも、面白い技術なのでおつきあい下さい。
Qlik Document Chainingはどんな時に使うのか?
- Qlikアプリのサイズが大きくて、分割しなければならなくなった
- 古い過去データは別アプリにしている
- 全体を把握するアプリは概要のみで、詳細はエリア別のアプリを見るように作っている
そんなとき、わざわざアプリを開き直している…
なんていうことをしていませんか?
実はQlik CloudのURLの構造を理解していれば、異なるアプリ間を行ったり来たりできるんです。
さらに解析を進めれば、選択状態を引き継いで別のアプリを開くこともできる…
そんな機能をQlik Document Chainingといいます。
Qlik CloudのURLの構造を理解する
Qlik Cloudでアプリを開いてみると、URLはこんな感じになっていると思います。
https://hoge.jp.qlikcloud.com/sense/app/xxxxxxxxxx/sheet/yyyyyyyyyy/state/analysis
URLを分解していきますと…
| https://hoge.jp.qlikcloud.com/sense/ | hoge.jpはあなたに与えられたホスト(固定) |
| app/xxxxxxxxxx/ | アプリID |
| sheet/yyyyyyyyyy/ | シートID |
| state/analysis | 固定 |
“app/xxxxxxxxxx/”と”sheet/xxxxxxxxxx/”の”xxxxxxxxxx“と”yyyyyyyyyy“を指定してあげれば、URLを指定してQlikのアプリの特定のシートを直接開くことができます。
SharePointやTeamsなどでメニュー化したいときなどは、このURLリンクを使えばOKです。
まあ、アプリを開いてURLをコピペすればいいだけの話ですが…
選択状態をURLに埋め込むには
ここからが本題です。
QlikのURLに選択状態を埋め込むにはURLにselect/を追加します。
こんな感じです。
https://hoge.jp.qlikcloud.com/sense/app/xxxxxxxxxx/sheet/yyyyyyyyyy/state/analysis/select/性別/男性/select/年齢/20;21
上の例では、性別が男性で年齢が20歳と21歳という選択状態を指定していることになります。
Document Chainingを実装してみる
ではQlikアプリに実装していきましょう。
今回のシナリオは、fdmt_allという売上全体を分析するアプリからfdmt_customerという顧客を分析するアプリを開きますが、その際に店舗タイプと売上年月の選択状態を引き継いで、遷移するという内容です。

項目名は、店舗タイプ=「店舗タイプ」、売上年月=「売上日.calendar.YearMonth」となっていますので、
…./select/店舗/スーパーマーケット/select/売上日.calendar.YearMonth/2024-11月;2024-12月
とURLに追加してあげればよいのですが、その文字列を自動で取得するには、GetCurrentSelectionsという関数を使用します。
‘https://hoge.jp.qlikcloud.com/sense/app/xxxxxxxxxx/sheet/yyyyyyyyyy/state/analysis/select/’ & GetCurrentSelections(‘/select/’,’/’,’;’)
GetCurrentSelections関数では「選択項目の区切りは’/select/’で、選択されている値の区切りは’;’」という指定です。詳細はQlikのHELPでご確認下さい。
以前書いた記事「Qlikのレイアウトコンテナを使ってボタンの機能を切り替えてみる」で作成したアプリのボタンに実装していきます。

前回の記事のボタンアクションでは「シートに移動」でしたが、以下のように設定を変更します。
| ナビゲーション | ウェブサイトまたはメール… |
| ウェブサイトのURL | =’https://hoge.jp.qlikcloud.com/sense/app/aaaccc/sheet/yyyyyy/state/analysis/select/’ & GetCurrentSelections(‘/select/’,’/’,’;’) |
| 同じウィンドウ内に開く | 同じアプリ上で遷移しているように見せる場合はチェック |
ウェブサイトの”hoge.jp”, ‘”app/aaaccc”, “sheet/yyyyyy”は、あなたの環境に合わせて変更して下さい。
ボタンのラベルは「顧客分析へ」と変更します。
また、ここではクリアして遷移するか、クリアせずに遷移するかでボタンが2つありますので、コンテナ内のもう一つのボタンも同様に設定します。
ページ遷移を確認してみる
では、fdmt_allアプリの「顧客分析へ」ボタンを押して動作を確認してます。

店舗タイプと売上年月を選択した状態で[顧客分析へ]ボタンを押すと、以下のように顧客分析(fdmt_customer)が選択状態が保たれたまま開かれます。

このCustomer Summaryシートに、上記と同様に逆に戻れるようにボタンを作成しておけば、アプリ間を相互に移動できるようになります。
まとめ
異なるアプリ間で選択状態を保持したまま、遷移できるDocument Chainingをご紹介しました。
Document Chainingを使うと、別々のアプリなのに、あたかも同じアプリ内で動いているように見えますよね。
ただ、ちょっとした落とし穴がありまして、それを説明すると長くなりますので、次回に回すことにします。
ではまた!


