こんにちは!Yokoです。
ブログを始めて約1年になります。数えたら、これが107本目の記事のようです。
100本目は記念すべき記事を書いたほうがいいかな〜なんて思っていたのですが、気づいたら過ぎていました😆
因みに100本目は僕が書いたLinodeの記事だったようで、どうせなら札幌合宿の記事になっていてほしかったなあ。
まあ、過ぎたことは仕方ないんで、今日のトピックにまいります!
Qlikのアプリを開発したら、操作マニュアルを作成することはよくありますよね。
お客様のよく言われるのが、「アプリ内にマニュアルのリンクを入れてほしい」っていうこと。
皆さんはどうしてますか?
今回は、ブラウザで開いたQlikアプリ内でPDFをそのまま表示する方法をご紹介します。
環境条件
今回ご紹介する方法は以下の条件で動作します。
- ファイル保存場所
- 表示するPDFファイルはBoxのフォルダ内にある環境でテストしました。SharePointなども同様にできるのかもしれませんが、評価していませんので悪しからず。
- Qlik Cloudの権限
- コンテンツセキュリティポリシーに追加する必要があるので、管理者としてでQlikの管理画面にアクセスして設定できる権限が必要です。
- エクステンションの利用可否
- Qlikアプリ内でPDFを表示する機能は標準機能ではなく、実はcountnazgulさん作成のエクステンション(qlik-iframe-extension)を使用します。
企業によっては、Qlikのエクステンションの利用を禁止していることもあるかと思います。
Qlikさんから提供されているものではありませんので、そこを了承の上、ご利用下さい。
- Qlikアプリ内でPDFを表示する機能は標準機能ではなく、実はcountnazgulさん作成のエクステンション(qlik-iframe-extension)を使用します。
- Box側の契約形態
- Boxのドメインは通常、app.box.comですが、法人契約の場合はカスタムサブドメインを設定することができますので、<your subdomain>.box.comになっていることを前提にお話します。
Qlik側の環境設定
コンテンツセキュリティポリシーの追加
Qlikの管理画面で、左メニューからコンテンツセキュリティポリシーを選択して、追加ボタンをクリックします。
原点を追加(和訳がヘン、多分originから変換したのかな?)の画面で、以下のように設定します。
| 設定項目 | 設定内容 |
|---|---|
| 名前 | Box表示(例) |
| 原点 | app.box.com |
| ディレクティブ | frame-src |

<your subdomain>.box.comのような専用のカスタムサブドメインをお持ちの場合は、あと2つポリシーを追加する必要があります、原点に以下を設定して追加しておいて下さい。
- <your subdomain>.box.com
- <your subdomain>.ent.box.com
<your subdomain>.ent.box.comは<your subdomain>.box.comにアクセスされた時の転送先URLです。
ent.box.comを追加しないと繋がらない可能性大です。
尚、*.box.comで一本化してもイケるのかもしれませんが、そこまではやってません🙇♂️
エクステンションの追加
qlik-iframe-extensionを追加していきます。
GitHubのURLはこちらになります。
qlik-iframe-extension.zipをダウンロードして、Qlikの管理画面のエクステンションを開いて、zipファイルをドロップします。
これで、エクステンションは利用可能になります。

エクステンションをシートに実装
qlik-iframe-extensionをシートに実装するには、新規のシートを開いて、左のエクステンションから Embed iFrameをシート上にドロップします。

Boxにて共有設定を行い、共有リンクURLを取得したら、iFrame settingsのiFrame URLに以下のように設定します。
共有リンクURLそのままでは表示できません。
/s/…の前にembedを追加してembed/s/…として下さい。
- 共有リンクURL: https://<your subdomain>.box.com/s/….
- iFrame URL: https://<your subdomain>.box.com/embed/s/….

設定がうまく行ったら、以下のようにシート上にPDFが表示されるようになります。
うまく表示できない場合は、コンテンツセキュリティポリシーの設定が疑われるのです、カスタムサブドメインの共有リンクであっても、https://app.box.com/embed/s/…とiFrame URLに入れてあげれば繋がるようです。

まとめ
Boxにログインしていない状態で、このシートに遷移するとログインが促されますので、セキュリティ面もバッチリ。
共有設定はBox側でやればいいんです。
てなわけで、Qlikのシート上にBoxに保存したPDFをそのまま表示する方法をご紹介しました。
ではまた!


