ユーザー定義関数

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

ホーム >  関数 >

ユーザー定義関数

ユーザー定義関数 (UDF) は一度定義されるカスタム関数で、同じマッピング、または、複数のマッピング内で複数回使用することができます。 ユーザー定義関数自身は小さなマッピングと類似しています。通常、一つまたは複数の入力パラメーター、データを処理するための中間パラメーター、および、と呼び出し元にデータを返すための出力により構成されています。呼び出し元はメインマッピング、または、他のユーザー定義関数であることができます。

 

ヒント:複数の出力を返すユーザー定義関数を作成することは可能です。 関数が「インライン」と定義されているとこの機能はサポートされます。インラインと正規ユーザー定義関数を参照してください。

 

再使用の可能性とは別に、マッピングの部分を小さいコンポーネントにパッケージ、および、実装の詳細を無視し、結果、マッピングを簡単に理解するためにユーザー定義関数は役に立ちます。

mff_udf

通常、文字列、数値、日付、および、他のデータを内蔵の MapForce 関数を拡張しカスタム化して処理するためにユーザー定義関数を作成します。例えば、特定の方法で結合、または、分割する、または、高度な計算を実行、時刻を操作、再利用できるようにマッピングの一部をパッケージするなどの場合が挙げられます。ユーザー定義関数の他の一般的な使用方法は、 MapForce によりサポートされる他の ファイル、データベース、または、データストア内のフィールドを検索することです。

 

以下のマッピングは、文字列を2つの異なる文字列に分割する、ユーザー定義関数のサンプルです。このユーザー定義関数は次のデモマッピングの一部です: <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\ContactsFromPO.mfd。パラメーター (例えば、 "Helen Smith") としての名前を取り、

ビルトイン関数 substring-beforesubstring-after を適用し、2つの結果する値 ("Helen" と "Smith") を返します。

mf_udf_01

ContactsFromPO.mfd

上記のとおり、 ユーザー定義関数をメインのマッピング、または、ユーザー定義関数から呼び出すことができます。 すなわち、ユーザー定義関数を必要であれば、以下に示されるように、ネストすることができます。

mff_udf_nested

例えば、 下のマッピングはユーザー定義関数 (「LookupPerson」) を呼び出し、XML ファイル内の個人の名前を検索します。 「LookupPerson」 コンポーネントのヘッダーをダブルクリックすると、マッピングウィンドウ内の定義が開かれ、この関数は次のユーザー定義関数を呼び出していることに気が付くはずです: "EqualAnd" と "Person2Details"。 このマッピングはデモとして使用することができ、次のパスで見つけることができます: <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\PersonListByBranchOffice.mfd.

mf_udf_02

PersonListByBranchOffice.mfd

ユーザー定義関数を再帰的に呼び出すことができます (すなわち、 ユーザー定義関数が自身を呼び出します)。 これは、ユーザー定義関数を (インラインではなく) 関数正規関数として定義する必要があることを意味します。 インラインと正規ユーザー定義関数を参照してください。

mff_udf_recursive

再帰的なユーザー定義関数により、 N が事前に既知ではなく、 N 個の子の深さを持つデータの構想を反復するなど、多種の高度なマッピングの必要条件を解決することができます。サンプル:再帰的な検索を参照してください。

 

ユーザー定義関数の作成後、作成した同じマッピング内に保存されます。 しかしながら、他のマッピングにインポートし、そこから呼び出すこともできます。詳細に関しては、 ユーザー定義関数の呼び出しとインポートを参照してください。


(C) 2019 Altova GmbH