Qlik パーシャルリロードのエラーの対処法

前回の記事でパーシャルリロードの実行について解説しました。

その際、ロードスクリプトについて、
『通常リロードの部分を「If not IsPartialReload() then~End If」で囲み、パーシャルリロードの部分を「Replace Load」と書きます。』
と説明しました。

実際には、「If not IsPartialReload() then~End If」の部分は必ずしも必要はなく、「Replace」の部分は、AddやMergeと書くことも可能です。
しかし、「If not IsPartialReload() then~End If」を使っていないと、DropやJoinの構文でパーシャルリロードがエラーとなる現象があります。
これは、Qlikの仕様による制限によるものです。今回はこの内容について説明します。

目次

パーシャルリロードでのエラー

Error: Table 'Temp_Fact' not found

Qlik Community のスレッドでは、JOINやDROPを含むスクリプトをパーシャルリロードで実行した際に、上記のように一時テーブルが見つかりませんというエラーが出ると報告されています。

このエラーは、パーシャルリロードの仕様による制限です。

パーシャルリロードはデータモデルを再構築しません。既存のデータモデルをそのまま保持し、Add / Replace / Merge の部分だけリロードを実行します。
そのため、JOIN の対象テーブルが存在しない、DROP しようとしているテーブルが今回のリロードで作られない、といった状況が発生し、結果として 「Table not found」のエラーが出ます。

対処法

この仕様のため、スクリプトにて、フルリロードで読み込む部分とパーシャルリロードで読み込む部分を明記することが望ましいです。
前回記事では、『If not IsPartialReload() then~End If』を使い、明記していました。
その他、テーブル存在チェック(NoOfTables)等も有効です。

さいごに

パーシャルリロードは制限はありますが、便利な機能です。
エラーを回避し、ぜひパーシャルリロードを活用してください。

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

この記事を書いた人

目次