このサイトをビューするために JavaScript を有効化してください。

Altova MapForce 2020 Enterprise Edition

マッピング上のほぼすべてのアイテム (ノード) のためにノード関数、またはデフォルトを作成することができます。この過程をルール  と呼ぶことにしましょう。

 

デフォルト、またはノード関数を作成するために、デフォルト、またはノード関数を定義する箇所でアイテム (ノード、またはフィールド) を決定します。これは(子孫を持たない) "リーフ" アイテム、または子孫を持たないアイテムであることができます。後者の場合、関数、またはデフォルトを全ての子孫アイテムにも適用することができます。条件を満たすアイテムを型、または名前別に正規表現を使用して検索することができます。

 

必要条件:

 

デフォルト、またはノード関数をターゲットコンポーネントの入力側、またはソースコンポーネントの出力側に作成することができます。作成する側を確立するには、次を参照してください: 入力と出力サイドの選択

デフォルトとノード関数は、ソースとターゲット間の接続型は、"ソースを優先型" または ターゲットを優先型"です。"全てコピー" 接続はサポートされません。具体的には、ノード関数とデフォルトは"全てコピー接続"に対して適用することができません。"全てコピー" 接続を持つノードは、単純な値を持つノード関数とデフォルトに対してのみ適用することができます。例えば、単純型のコンテンツと属性を持つ要素など。このため、関数を定義、または子孫を持つノード上でデフォルトを設定する場合、ソースとターゲット間の接続型はで"全てコピー"あってはなりません。接続型を確認、または変更する場合、接続を右クリックし、コンテキストメニューからターゲット優先(標準マッピング) を選択します。詳細に関しては、次を参照してください: 接続の種類

デフォルトの作成、またはルートアイテム上のノード関数はファイルノードのためにサポートされません。このノードを使用すると、ファイルの作成と読み取りを動的に行うことができます。次を参照してください: 複数の入力または出力ファイルを動的に処理

 

デフォルト、またはノード関数の作成方法:

1.アイテム (ノード) を右クリックし、デフォルトとノード関数 | 入力デフォルトとノード関数 をコンテキストメニューから選択します。(または、場合によっては、 出力デフォルトとノード関数 )。マッピング ペインはグリッドを上に表示します。または、この場合、コネクタを右クリックすると、 MapForce はそのサイドのためにノード関数を表示します。マッピングペインは、上の部分に表示されます。例:

mff_nodefunc_ex2

ルールを定義する箇所に親が存在する場合、親に反対するルール (ノード関数、またはデフォルト) が存在する場合があります。このようなルールを継承する場合、祖先からルールを継承 チェックボックスを選択します。継承の詳細に関しては、次を参照してください: デフォルトとノード関数のしくみ

 

2.以下の内の1つを行ってください:

a.デフォルトを追加するには、 デフォルトを追加 ( mf_ic_add_default  )をクリックします。

b.関数を追加するには、 関数を追加 ( mf_ic_add_nodefunc )をクリックします。

 

これにより新しいルーツが作成されます (マッピング ペインの上のグリッド内の行でこのルールのために条件を選択することができます)。ルールを以下のように構成します:

 

適用

現在のアイテム、または全ての子孫アイテムに、深さに関係なく、または直接の子のみにルールが適用されるかを決定します。

 

ステップ 1 で選択したアイテムに子孫が存在しない場合、"現在のアイテム" が唯一の選択となります。

データ型

省略記号 ボタン mf_ic_ellipsis をクリックし、ダイアログボックスから データ型を選択します。ルール (デフォルト、またはノード関数) はこのデータ型(または、生成されたデータ型)を持つアイテムのみに適用されます。詳細に関しては、ノード関数とデフォルトを条件付きで適用するを参照してください。

 

ステップ 1 で選択されたアイテムに子孫が存在しない場合、アイテムのデータ型は選択された項目のみに適用されます。

デフォルトの値 / 関数の説明

デフォルトの ( mf_ic_add_default ) 型を定義する場合、選択されたアイテムのために設定するデフォルトの値(適用できる場合、は全ての子孫)をここに入力します。デフォルトとして空の文字列を設定する場合、このフィールドを空のままにしておいてください。

 

関数 ( mf_ic_add_nodefunc ) を定義する場合、このフィールドは情報のためのみに使用されます。このフィールドは関数の概要を表示します。次のステップ内の関数を定義することができます。

 

3.関数を定義する場合、 マッピングエリアは関数の入力 ("raw_value" の下に示される) と出力 ("result") を表示を表示するために変更されます。このマッピングエリアは、ミニマッピングであり、同じ一般的なルールが通常のマッピングを定義する時にも適用されます。 例えば、関数のボディは以下のようになります:

mff_nodefunc_ex4

上記のノード関数は、空の値を 値 "n/a" と置き換えます。このサンプルの詳細に関しては、次を参照してください: サンプル: 空の CSV フィールドの置換

 

以下の点に注意してください:

 

ノード関数内では、ビルトイン関数、編集、 if-else 条件などのこのコンテキスト内で意味を成す特定の MapForce コンポーネントがサポートされます。XML、JSON、EDI、またはデータベースなどの複雑な構成はサポートされません。 インラインのユーザー定義関数、またはジョインコンポーネントをノード関数に追加することもサポートされません。

ノード関数は、最多で1つの入力パラメーターを持つ、またはパラメーターを持たないでいることができます。入力パラメータは常に 「raw_value」 と呼ばれます。関数のために必要ない場合でも、関数入力コンポーネント ("raw_value") を削除しないでください。それ以外の場合、マッピングの実行時にエラーが表示されます。編集の出力も同様です。メニューコマンドを使用して「関数 | 入力の挿入」偶然に削除された入力コンポーネントを復元する必要があります。

入力パラメーター ("raw_value") が既存の場合、後に追加される入力パラメーターはメタデータパラメーターになります。このようなメタデータを使用して現在のノードに関する追加情報を取得し、関数の内部で使用することができます。ノードメタデータをノード関数に提供するを参照してください。

一部の場合では、ノード関数を以下の方法で作成すると便利です: ライブラリ ウィンドウから入力、または出力 コネクタ mf_ic_output_connectorにノード関数をドラッグする。 これは right-trim または uppercase などの単純型の関数を使用する場合便利です。

 

 

ノード関数を終了する方法:

マッピング ペインの左上の戻る mf_ic_exit_door ボタンをクリック、または「Escape」を押します。

 

既存のルールの編集と削除も参照してください。

 

 

前に定義されたノード関数を確認、または変更する方法:

1.メインマッピング内で、注目するノードの横の mf_ic_node_func_defined アイコン (黒色または赤色) をクリックします。このアイコンはノード関数を以前に定義した箇所に存在します。ノード関数アイコンの意味に関する詳細は次を参照してください: デフォルトとノード関数のしくみ

2.マッピング ペインの上のグリッドから関数を選択し、mf_ic_nodefunc_edit をクリックします。mf_ic_nodefunc_edit ボタンが存在しない場合、関数は、現在のアイテムではなく、祖先により定義されている可能性があります (前のステップを参照してください)。

(C) 2019 Altova GmbH