質問
CSVファイル読み取り → Mapperで「条件による抽出」→ 繰り返し(データ件数)という構成で、抽出結果が存在するにもかかわらず繰り返し処理のループに入らない場合、原因と対応方法を教えてください。
回答
データ抽出が想定通りとならない際の主な原因としては、以下が考えられます。
- 抽出条件が適切でなかった
- 入力データに誤りがあった
- Mapper内の入力データ指定が適切でなかった
- データフローの結線がされていなかった
「条件による抽出」ロジックを使用したドキュメントMapperの出力データは、出力スキーマにテーブルモデル型を設定していても、内部的にはXML型として扱われます。
繰り返し(データ件数)処理はXML型データを入力とする場合、繰り返しの基点となる要素を [分割パス] で指定する必要があります。この [分割パス] が未設定の場合、繰り返し処理が正しくデータを認識できず、ループに入らない原因となる可能性があります。
該当する場合は、繰り返し(データ件数)処理のプロパティで [XMLデータ処理] タブの [分割パス] に以下の設定をお試しください。
/table/row
なお、CSVファイル読み取りなどのテーブルモデル型コンポーネントに繰り返し(データ件数)処理が直接つながっている場合は、[分割パス] の設定は不要です。Mapperを経由している場合に上記の設定が必要となる場合があります。
■再発時の調査方法:DEBUGログの活用
事象が再発した場合、ログレベルを「DEBUG」に設定してスクリプトを実行することで、原因が判明する場合があります。
DEBUGログ取得時の注意事項:
- データ処理件数が多い場合は出力ログサイズが長大となり、パフォーマンスや環境に大きな影響を与える可能性があります
- DEBUGでの実行時は、データ量を少なくする・ループ回数を最低限にするなどの対応を行ってください
- ログの取得完了後は、速やかにログレベルの設定を元に戻してください
参考リンク:
コメント
0件のコメント
記事コメントは受け付けていません。