はじめに

Qlik Senseではロードスクリプトでファイルの絶対・相対パスを直接指定してファイルを読み込むことやファイルシステム等を扱う一部の関数の利用を禁止する設定となっており、これを「標準モード」と呼んでいます。

以下の例では「売上データ」という名称のデータ接続定義を作成してその中でパスを指定し、ロードスクリプトでは「lib」ステートメントを利用してデータ接続定義を参照する形となっていますが、Qlik Senseの標準ではこのようにデータ接続定義を利用してファイルにアクセスを行います。(データ接続定義の作成方法については「Qlik Senseロードスクリプトによる変換処理の基礎」をご参照ください。)

1

これは、Qlik Senseのサーバー版であるQlik Sense Enterpriseではサーバーサイドでの開発を行うことが可能で、開発者が誰でもパスを指定してサーバー上のファイルにアクセス出来てしまうとセキュリティ上のリスクとなる可能性があるため、作成や利用の権限設定が行えるデータ接続定義を介してファイルにアクセスを行えるようにしています。

この標準モードの状態で、ファイルの絶対・相対パスを直接指定してロードを実行すると、以下の形で「LOAD statement only works with lib:// paths in this script mode」のエラーが表示されます。

image

ただ、Qlik Senseではこの標準モードを無効化してレガシーモード(ファイルシステム等の扱いについてQlikViewと互換性があるモード)を利用する方法も提供されており、以下ではQlik Sense Desktopでレガシーモードを利用するための手順をご説明します。

レガシーモード有効化(標準モード無効化)の手順

Qlik Sense Desktopを起動していない状態でテキストエディタで以下のファイルを開きます。

  • C:\Users\%username%\Documents\Qlik\Sense\Settings.ini

Settings.iniファイルに「StandardReload=0」を追加します。必ず最後のエントリで改行して最後尾に空白行を追加する必要がありますので注意して下さい。

2

Qlik Sense Desktopを起動するとレガシーモードで起動されます。このモードでは以下の形でファイルの絶対・相対パスを直接指定してリロードを行うことが可能となります。

image

尚、Qlik Sense Enterpriseでは、QMC上でEngineのプロパティ上に存在する「Standard mode」のチェックを外すことで同様にレガシーモードを有効化することができます。(ただし、ファイルシステムを露呈してしまうセキュリティ上のリスクが発生してしまうためご注意ください。)

まとめ

以上、Qlik Senseのロードスクリプトでファイルの絶対・相対パスを直接指定してファイルを読み込むことを可能とするレガシーモードの有効化の手順についてご説明させて頂きました。