• No : 33387
  • 公開日時 : 2021/06/22 11:32
  • 更新日時 : 2021/10/11 11:39
  • 印刷
DSServista

【DataSpider Servista】出力スキーマが XML 型の場合の Mapper ロジックでの「null」の扱いについて教えてください

DB から読み取ったデータを XML ファイルに出力する処理を作成しています。
 
読み込んだデータが「null」の場合はそのまま出力し、それ以外の場合は入力値を編集するため、Mapper 内で [nullチェック] ロジックを使用していますが、「null」を読み込んだ時のロジックの処理結果が「false」になってしまいます。
 
原因と対処方法を教えてください。
カテゴリー : 

回答

上記は、以下の既知の問題に該当していると想定されます。
 
---
DSS-14704
  • 入力スキーマがテーブルモデル型で出力スキーマが XML 型の場合、出力データにマッピングされた入力データの null 値は、途中の Mapper ロジックでも空文字として扱います。
---
 
上記既知の問題により、出力先が XML ファイルなどの XML 型のデータモデルの場合、DB や CSV ファイルなど、テーブルモデル型のデータモデルから読み込んだ「null」は、[nullチェック] ロジックでも「空文字」として扱われるため、ロジックの処理結果は「false」が返されます。
 
このため、以下の回避策にてご対応ください。
 
■回避策
  1. [空文字の変換] ロジックを使用する
[nullチェック] ロジックの前に [空文字の変換] ロジックを使用することで、
「空文字」を「null」に変換し、後続の Mapper ロジックではデータを「null」として扱うことが可能です。
  • [Mapperロジックガイド] - [その他] - [空文字の変換]
 
  1. Mapper 内の処理を空文字かどうかで判定する
例えば以下のような方法で空文字かどうかの判定が可能です。
 
1)[条件判定による出力の切り替え] ロジックを配置し、1番目の入力ハンドラに、判定を行いたいカラムからマッピングリンクを接続する。
  
2)プロパティの [条件] を以下のように設定する
判定条件:上記1で接続したカラム
判定方法:[指定した値を選択]
判定基準:[~と等しい]
判定内容:空欄
 
3)プロパティの [成立時](=入力値が空文字だった場合)、
[不成立時](=入力値が空文字以外だった場合)に、それぞれ出力したい内容を設定する。
 
  • [Mapperロジックガイド] - [条件] - [条件判定による出力の切り替え]
 
目的別で検索
仕様確認