デフォルトとノード関数

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  関数 >

デフォルトとノード関数

MapForce がデータを読み取り、または、データを書き込む場合、ソース、または、目的ファイル、または、データベースに空、または、 null フィールドが存在する場合があります。このような場合を取り扱うために、 MapForce には多数の内蔵の関数、if-else 条件、不足している、または、 null データを置き換える、または、不足しているフィールドが検出されると例外をスローする他のメカニズムが搭載されています。

 

更に、 複数のアイテムのためのデフォルトの値を同時に設定する必要がある場合があります  (例えば、 XML 要素の全ての子)。 代わりに、空の値をテキスト(例えば、 "n/a") で置き換えるシンプルな関数を作成し、複数のアイテムにこの関数を適用する必要がある可能性があります。通常の環境では、これを行うために、マッピング上で同じ関数を複数回コピーして張り付ける必要があります。これを行うと、マッピングを乱雑にするだけではなく、理解し難くします。簡単な代替とし、このチャプターの主題であるデフォルトとノード関数を使用することができます。

 

メモ:マッピングのターゲット言語が BUILT-IN の場合、デフォルトとノード関数はサポートされています。このようなマッピングを生成された C#、C++、Java プログラムコードから、または、生成された XSLT/XQuery から実行する場合、変換はサポートされません。サーバー側では、 MapForce Server Advanced Edition を使用してこのようなマッピングを実行することができます。

 

用語 "ノード関数" は、関数をノードレベル (XMLノード、または、 CSV、JSON、EDI、または、データベースフィールド)で適用することができることを意味します。ノード関数を単一のアイテム、または、複数のアイテムに1度に適用することができます。同様に、用語 "default" は、単一のアイテム、または、複数のアイテムのためにノードレベルに適用するデフォルトの値を意味します。

 

同じ処理ロジックを構造の中で子孫アイテムに複数回適用する場合、デフォルトとノード関数は特に役に立ちます。例:

 

空、または、 null 値が発生すると、他の値と置換え、全ての子孫アイテムに対して再帰的に行うことができます。
特定の値が発生すると、 (例えば、 "N/A")、他の値と (または空の文字列と) 置き換えることができます。全ての子孫アイテムに対して再帰的に行うことができます。
データベーステーブルから読み取る際に、データベース null 値を空の文字列、または、カスタムのテキスト(数値のフィールドの場合は、 0 の値と)と置き換えることができます。
ソースデータベースから来る全ての値のために末尾の空白を削除することができます。
ターゲットファイル、または、データベースに書き込まれる全ての値にカスタムプレフィックス、または、サフィックスを追加します。
特定の値が発生する都度、 null 値を作成します。

 

メモ:"null" と "空の" 値を区別することは重要です。 null 値は"nothing" (値が不足している状態) を意味し、空の値は空の文字列 ('') を意味します。MapForce はノード関数 を含む両方のケースに対応する多種の方法を提供しています。値は通常からの文字列 ('') です。MapForce は、ノード関数とデフォルトを含む複数の方法を与えます。

(C) 2019 Altova GmbH