VSCodeでQlikのロードスクリプトをガシガシ書く!

こんにちは!Yokoです。
キャー忙しいっ!
ひたすらQlikのロードスクリプトに追われている毎日です。
Qlikのデータロードエディタもロードしたデータをプレピューできるようになったり、履歴機能で修正前に戻したりもできて進歩はしているのですが、一般のIDE環境になれてしまうと、インデントやオートコンプリートの面でもう少しきれいで効率よくスクリプト書けないものか…
と思ってしまうのは僕だけでしょうか?

僕はClaude Codeの環境でVisual Studio Codeを使っております。
「もしかしてVSCodeでQlikのスクリプトを書けたりしない?」なんて、思って機能拡張を検索すると、それらしきものは出てくるものの、相手はクラウド環境だし、どんな動きになるんだろう?
と思っていました。

そんな訳で、今回はVSCodeからQlik Cloudにつないで、Qlikのロードスクリプトを書いてみます。
さて、Qlikのデータモデリングはラクになるでしょうか?😄

目次

Qlik Cloud側の準備

VSCodeからQlik Cloudにつなぐためには、まずQlik Cloud側のOAuthでクライアントIDを取得する必要があります。
Qlikの管理 > OAuth を表示し、追加ボタンを押して新しいOAuthクライアントを作成します。

  • 名前: VS Code Script Editorみたいな、テキトーな名前を入れて
  • クライアントタイプ: ネイティブ

を入力し、次へで進みます。

リダイレクトURLを指定します。
今回、VSCodeの機能拡張では、以下のURLを指定するように書かれていますので、そのまま入力し、+ 追加ボタンを押した後、次へで進みます。

http://localhost:5173/callback

最後は、許可リストの設定です。
ここでは、このクライアントにどんな権限を許可するかを設定するのですが、offline access と user default の2つを許可すればいいようです。

保存ボタンを押すと、クライアントIDが表示されます。このクライアントIDは、どこかに大事に保存しておきます。完了ボタンを押したら、Qlik側の設定は完了です。

VSCodeから接続してみる

VSCodeのアクションバーからExtensions(拡張機能)をクリックし、マーケットプレイスから”Qlik”で検索してみます。
色々あるんですねえ。
この中から、今回は Qlik Cloud Load Script Editor を選択してインストールします。

インストールした Qlik Cloud Load Script Editor を選択すると、こんな画面になりますが、SCRIPT SECTIONSを選択すると、いくつかのアイコンが出てきます。
人のアイコンをクリックすると、画面の上部にOAuthクライアントを追加するよう促されます。
ここで + Add OAuth Client... をクリックして、OAuthクライアントを追加していきます。

テナントのホスト名を入力して Enterキーを押します。
ここでは、<my-tenant>.<region>.qlik.com の形式で指定します(https://は不要です)

次はOAuthのクライアントIDを入力し、Enterを押します。
このクライアントIDは、Qlik Cloudで取得したクライアントIDです。

外部サイトを開くための確認ダイアログが表示されますので、Openボタンを押します。

appの認証 という画面になります。ここでは、アクセスの要求を承諾して進んで下さい。

成功すると、以下のように、Login complete画面になれば、接続は成功です。
一度接続してしまえば、次回以降はドロップダウンに表示されるようになるので、ドロップダウンから接続先を選択できるようになります。

VSCodeでアプリを開いて編集してみる

アプリを開く

接続ができたところで、アプリを開いてみます。
開くには、虫眼鏡アイコンをクリックしますと、スペースの選択ができます。
スペースを指定して OKボタンをクリックすると、アプリの一覧が表示されますので、アプリを選択します。

アイコンをクリックする操作をせずに、コマンドから指定することも可能です。
コマンドは、Windowsであれば Shift +Ctrl +P、Macであれば Shift + Command + P で以下のようにコマンドバーを表示して、コマンドを検索して実行できます。
アプリを開くには、Opne Qlik App を選択すればOK。

スクリプトを編集する

アプリを開くと、以下のようにQlikアプリ内のスクリプトが、表示されます。セクションもきちんと表示されていて、左でセクションを選択すれば、そのスクリプトが右に表示されるようになっています。
もちろん、+ アイコンをクリックすることで、セクションを追加することもできます。

セクション名を指定します。

新しいセクションが出来たら、そこにスクリプトを書き込みます。
この例では、Qlikの日付処理のベストプラクティス〜第1回 Auto Calendar〜 の記事からAuto Calendarのスクリプトをコピペしてきました。
関数や変数が色分けされていて、わかりやすいですよね。

VSCodeでの操作感

操作感を見ていきましょう。
まずは、上のcalendarセクションで見たように、インデントがきれいです。
Qlikのデータロードエディタは、インデントがわかりにく、インデントを解除したら全部左寄せになっちゃった…なんて経験ありません?
別に放置してもいいんですが、やっぱり見やすいスクリプトは、後で改修が発生した時などは作業しやすいですよね。

dataセクションの下にスクリプトを追記していきます。
Leftと入力すれば、きちんと候補を出してくれまし、Left Joinまで入力すると、Join先のテーブルの候補も表示してくれます。
もちろん、Qlikの関数もバッチリ。VSCodeのインテリセンス(オートコンプリート機能)が効いてます!

Claude Codeに聞いてみる

僕の環境ではVSCodeにClaude Codeも追加してあるので、Claudeちゃんに聞いてみます。
「左のdataセクションで…」と聞いたら、Qlik Cloudに接続できないので無理だって😅
そりゃあそうだよね。
Claude Code用のフォルダ内にqvsファイルを置いておけばやってくれるんでしょう。

Claudeちゃんから「コードを貼り付けて」と言われたので、貼り付けみたら、こんな回答でした。
確かに店舗テーブルと売上は繋がらないですね!
36行目にAS 店舗ID を追加しました。

Qlikに関しては、GeminiよりClaudeのほうが賢いよね。
(いつもGeminiに「そこ間違えてるよ」と教えている側です😆)

Qlik Cloudに反映させる

修正が終わったところで、Qlik Cloudに変更を反映させます。
Cloudアイコンをクリックすると、上部のバーに保存の確認が出てきますので、Enterキーを押下します。
後で出てきますが、このバーに表示されている「Updated via VS Code…」は履歴の名称になるんですよね。

Qlik Cloud側を確認してみましょう。
スクリプトはきちんと反映されていますね。これでデータモデルが完成しました。

VSCode上で履歴を管理

せっかくVSCodeを使っているんだから、履歴管理も確認しておきます。
SCRIPT HISTORYを開くと、スクリプトの変更履歴が表示されます(リロードアイコンをクリックするとQlik Cloudから最新の履歴を取得してくれます)。

先程、保存した履歴を確認すると、どこを修正したのかが表示されます。
Qlikのデータロードエディタでも履歴は管理できますが、その時点に戻れるというだけで、どこをどう修正したのかまではわかりませんので、これは便利ですね。

まとめ

VSCodeにQlik Cloud Load Script Editorを追加して、Qlikのロードスクリプトを修正する流れを説明してきました。
VSCode側から、データソースに接続できるわけではありませんので、コネクタ接続からデータを確認して、スクリプトを生成することはできません。
つまり、最初からスクリプトを作成することはできませんので、一旦、データソースに接続して基本となるスクリプトを作成するのは、Qlik Cloud側になります。

それで生成したスクリプトを元に、スクリプトをガシガシ書いていくのであれば、VSCodeにまかせてもいんじゃない?
何がいいのかをまとめておくと…

QlikロードスクリプトのエディタとしてVSCodeを使うメリット

  • コードがきれいで見やすい、インデントがきっちりできる
  • インテリセンスがきちんと候補を出してくれる
  • VSCodeの履歴管理がそのまま使えるので、アプリを複製してバージョン管理するなどしなくていい

みなさんもVSCodeでQlikのスクリプトを書いてみましょう!
いつか、VSCodeでQlikのVibe Codingの記事を書いてみたいですね。
それまで使い倒しておきます。

最後に…
製品を便利にする機能はメーカーが担うという時代は終わりつつあるのかもしれないですね。Qlik Answers vs Qlik + MCPみたいに、外部の機能を使って実現するほうが、ユーザ目線では使いやすいような気もしますし…
なので、BIツールを使いやすくするのはユーザの選択しだいなのかもしれません。
時代についていくのも、なかなか大変なご時世になってきました😅

ではまた!

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

この記事を書いた人

目次