Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
hitoyama
Contributor
Contributor

複数Webページの取り込みで例えば'@5'が存在しないは?

初めて投稿します山崎です。

Webページのテーブルを複数ページ取得しようとしていますが、ページによっては

'@4'、'@5'が無い場合があり、存在しない場合にエラーハンドリングしたいのですがどうすればいいですか?

IsNullでは判定できない。(現在はエラー無視モードで全件取得可能)

教えてください。よろしくお願いします。

set errormode = 0;

for index = 1011 to 1020

  for Each tbl in '@2','@3','@4','@5'

  if IsNull(tbl) then

        else

        [tmp_list]:

        LOAD [氏名],

            [よみがな],

            [所属]

         FROM [https://sitename/members/alphabet/$(index)]

        (html, utf8, embedded labels, table is $(tbl));

        end if

  next

next

Labels (2)
13 Replies
hitoyama
Contributor
Contributor
Author

すいません、エラーでは止まっておりません。

スクリプトは最後まで実行されております。

ログ上では、@5が見つからないなどのメッセージがあり、

課題の解消には至っておりません。

最初の投稿でも、エラー無視モードで最後まで実行できており

途中のエラー解消方法を教授いただければと投稿した次第です。

ありがとうございました。

kentaroWakamatsu
Creator II
Creator II

リロードが止まっていないのであれば、問題ないはずなのですが・・・・。

私の方で記載した内容は、

FOR i = 1 to 5 で、@1、@2、@3、@4、@5と1から順にロードしていき、エラーがかかったら次のアドレス(https://sitename/members/alphabet/1011、https://sitename/members/alphabet/1012、・・・・・・)の@1から再び開始するといった流れとなります。

ですのでログ上ではエラーは発生していて大丈夫です。(エラー情報を持って動きを判断していますので)

一番最初の投稿で「for Each tbl in '@2','@3','@4','@5'」と記載されていたので、@2からの開始でしたら、「FOR i = 2 to 5」に変更していただければ良いかと思います。

データが一部取れていないという状況だとしたら、他に考えられる問題としては、以下のようなものがありますが、あてはまる内容はありますか?

①1011~1020の各ページ内の帳票レイアウトに違いがある ([氏名],  [よみがな],  [所属]のいずれかがない)

②1011~1020の中で、存在しないアドレスがある

③@1~@5の中で、たとえば@3でエラーがかかっていて、その後の@4にもデータがあるといったページが存在する

差し支えなければ、ログ内容を頂ければ確認します。

hitoyama
Contributor
Contributor
Author

回答いただきながら返信が遅くなりました。

最後に提示していただいたものをQlikViewで実行したところ、エラーもなく実行できました。

QlikSenseでは、ログにエラー表示されます。

ロードスクリプトのレベルではQlikViewもQlikSenseも同等と思い、QlikSenseで実行した結果を

コメントしてました。

実行環境を明示しておらず申し訳ありませんでした。

同様にQlikSenseで実行するべき考慮点はありますでしょうか?

よろしくお願いします。

kentaroWakamatsu
Creator II
Creator II

すみません。

QlikSenseは使ったことがなくて、わからないです。

QlikSenseでうまくいかないようでしたら、QlikViewのスクリプトでデータ精製後QVDファイルを出力して、出力したファイルをQlikSenseで利用してはどうでしょうか?

下記スクリプトを追記すると、リロード時に作成されます。

STORE "[tmp_list]" into C:\Users\abc\Desktop\テスト\Temp_List.qvd;

※C:\Users\abc\Desktop\テスト\  ・・・・ 保存先フォルダパスに変更して下さい

※Temp_List  ・・・・ 任意のファイル名に変更して下さい