トランスフォームスクリプト(Oncomplete)のスクリプトで"source.next()"が機能しません。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-08-2022 02:57 AM - edited 11-08-2022 03:04 AM
いつもお世話になっております。
トランスフォームスクリプト(Oncomplete)に以下のコードで、gs.info(source.getRowCount())でソーステーブルの行数を出力すると、5と出力されます。
その後に記載している、"while(source.next())"分のループの中に入らないのですが、その原因が分かりません。
以下にコードの画像を添付致します。
どんな些細な事でもいいので、ご教授頂けると幸いです。
宜しくお願い致します
。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-08-2022 04:14 PM
Docsを見るとonCompleteのsourceが「last row of the source import set table」、最終行を含んでいますので、次のレコードがなく、next()がfalseを返します。
ソースデータでループをするにはデータを取り直す必要があると思います。
import_set_rowを継承するテーブルから、import_setの条件を使って条件を設定することでできると思います。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-08-2022 04:22 PM
Joelさん
ご回答ありがとうございます。
私もそう考えて、while文の前にsource.query()を行いましたが、whileのループん中には入りませんでした。
こちらの原因ついて、何かご存知でしょうか?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-08-2022 04:56 PM
sourceはデータ取得済みで、再びquery()を実行することでどう動くかが不明です。今の動きからすると何も起こりません。
おそらく以下の様なロジックの追加が必要です。
var sourceGr = new GlideRecord(import_set.table_name);
sourceGr.addQuery("sys_import_set", import_set.sys_id);
sourceGr.query();