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

Altova MapForce 2020 Enterprise Edition

関数 > デフォルトとノード関数

ノードメタデータをノード関数に提供する

スクロール ホーム トップ その他

現在のノードに関する情報をベースにして何かを行うために、ノード関数が必要な場合があります ( 「ノード メタデータ」とこの情報を呼ぶことにしましょう)。例えば、 次のロジックを持つノード関数が必要と仮定します: ノード名に 「Total」 という単語が含まれている場合、ノードの値にドルのシンボルが追加されます。それ以外の場合、ノードの値がそのまま返されます。

 

サンプルでも記述されていますが、 「ノード名」 はノードメタデータのサンプルです。 一般的には、 「メタデータ」はデータ自身を説明する何かを意味します。すなわち、これは「データに関するデータ」 を意味します。「ノードメタデータ」により、数値のデータ型や他の場合、ノード名、値の長さ、または精度など関数が適用されるノードに関する他の情報を理解することができます。

 

次のテーブルは、ノード関数内で使用することのできるすべてのメタデータをリストしています。下にリストされるメタデータは、特定の種類のノードにだけのみ意味があります (例えば、 XML、またはデータベースフィールド)。この結果、現在のノードと互換性の内メタデータを使用しようとすると、MapForce は警告を表示します。

 

node_name

現在のノードの名前を提供します。このメタデータをすべてのノードに適用することができます。XML の場合、現在の要素または属性の名前です。 CSV の場合、これは CSV フィールドの名前です。データベースの場合、テーブル列の名前です。

node_annotation

「注釈の表示」 ic-show-annot ツールバーボタンをクックすると、アイテムの横に表示される注釈テキストを提供します。 このメタデータをすべてのノードに適用することができます。

node_minLength

ノードのデータ型の minLength ファセットの値を提供します。 適切な型を持つ XMLとテキストノードに適用することができます。

node_maxLength

ノードのデータ型の maxLength ファセットの値を提供します。 適切な型を持つ XMLとテキストノードに適用することができます。

node_totalDigits

ノードのデータ型の totalDigits ファセットの値を提供します。 適切な型を持つ XMLノードに適用することができます。

node_fractionDigits

ノードのデータ型の fractionDigits ファセットの値を提供します。 適切な型を持つ XMLノードに適用することができます。

node_length

ノードのデータ型の長さを提供します。適切な型を持つフィールドに適用することができます。

node_precision

ノードのデータ型の精度を提供します。 適切な型を持つフィールドに適用することができます。

node_scale

ノードのデータ型のスケールを提供します。適切な型を持つフィールドに適用することができます。

 

 

ノード関数にメタデータを提供する方法:

1.新規のノードの作成を開始 (デフォルトとノード関数の作成方法を参照 ) 、または既存のノードを編集 (既存のルールの編集と削除を参照 ) のために開きます。例えば、下で示されている関数は、ノード値を持つ文字列 "$" を連結して、外部のマッピングの結果を返します。この関数のマッピングを次のパスを使用して見つけることができます: <マイ ドキュメント>\Altova\MapForce2020\MapForceExamples\OrderInUSD.mfd。関数のマッピングを開くには、ターゲットコンポーネントの Rows アイテムの横の mf_ic_node_func_defined アイコンをクリックし、グリッド上の mf_ic_nodefunc_edit ボタンをクリックします。

mf_nodefunc_16

2.次のいずれかを実行してください:

 

「ノードの指定の追加」をクリックします。

マッピング内の空のエリアを右クリックし、「入力の挿入」 をコンテキストメニューから選択します。

「入力の挿入」 mf_ic_udf_input ツールバーボタンをクリックします。

「関数」 メニューから、「入力の挿入」をクリックします。

mf_nodefunc_17

3.ダイアログボックスから必要とされるメタデータ (例えば "static_node_name") を選択します。

 

メモ:挿入するメタデータパラメータを選択すると、 MapForce は、マッピング上のノード関数が既に適用する条件を満たしている個所で現在展開されているノードを分析し、メタデータパラメータがこれらのノードによりサポートされるかを決定します。サポートされていない場合、ダイアログボックスは「選択されたメタデータパラメータはこの関数のスコープ内の既存のノードによりサポートされていません。」に類似した警告を表示します。 メモリを保存しユーザーエクスペリエンスを構造するためにデフォルトでは、深くネストされた構造はフルにスキャンされません。ノード関数を適用する箇所でコンポーネントがこのような深くネストされた構造を持つ場合、 MapForce が認識できるようにマッピング上で関連するノードを展開することができます。この場合、新規のメタデータパラメータを追加する際に、 MapForce は展開されたノードを考慮し、警告が表示される可能性があります。ノード関数を適用するには接続が存在する必要がりますが、接続されていないアイテムの展開は関連性がありません。

 

4.メタデータが現在のノードにサポートされていない場合、関数の振る舞いを次のように決定することができます:

a.ノード関数を適用する場合、チェックボックス 「入力から空のシーケンスを返す」 を選択し、メタデータパラメータに空のシーケンスを返すようにすることができます。空のシーケンスは空の文字列と区別される必要があります。substitute-missing または exists などのシーケンス関数、または他のコンポーネントを処理するために使用する必要が通常あります。警告: 空のシーケンスが扱われる必要があります。それ以外の場合、ノード関数は値を全く返さない場合があります。

b.このメタデータがノードにサポートされなくノード関数を適用しない場合、チェックボックス 「ノード関数を適用しない」 を選択します。

5.「OK」をクリックします。デフォルトの raw_value に加え、関数のマッピングに新規の入力パラメータが追加されました。新規のパラメータの出力のコネクタをこのメタデータ通常は(関数の入力コネクタ)を必要とするターゲットアイテムに接続します。

(C) 2019 Altova GmbH