Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
初めて投稿します山崎です。
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
すいません、エラーでは止まっておりません。
スクリプトは最後まで実行されております。
ログ上では、@5が見つからないなどのメッセージがあり、
課題の解消には至っておりません。
最初の投稿でも、エラー無視モードで最後まで実行できており
途中のエラー解消方法を教授いただければと投稿した次第です。
ありがとうございました。
リロードが止まっていないのであれば、問題ないはずなのですが・・・・。
私の方で記載した内容は、
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にもデータがあるといったページが存在する
差し支えなければ、ログ内容を頂ければ確認します。
回答いただきながら返信が遅くなりました。
最後に提示していただいたものをQlikViewで実行したところ、エラーもなく実行できました。
QlikSenseでは、ログにエラー表示されます。
ロードスクリプトのレベルではQlikViewもQlikSenseも同等と思い、QlikSenseで実行した結果を
コメントしてました。
実行環境を明示しておらず申し訳ありませんでした。
同様にQlikSenseで実行するべき考慮点はありますでしょうか?
よろしくお願いします。
すみません。
QlikSenseは使ったことがなくて、わからないです。
QlikSenseでうまくいかないようでしたら、QlikViewのスクリプトでデータ精製後QVDファイルを出力して、出力したファイルをQlikSenseで利用してはどうでしょうか?
下記スクリプトを追記すると、リロード時に作成されます。
STORE "[tmp_list]" into C:\Users\abc\Desktop\テスト\Temp_List.qvd;
※C:\Users\abc\Desktop\テスト\ ・・・・ 保存先フォルダパスに変更して下さい
※Temp_List ・・・・ 任意のファイル名に変更して下さい