カスタムマッピング関数の作成
- Last Updated: April 5, 2026
- 4 minute read
カスタムマッピング関数の作成
マッピングを手作業で作成する場合、最初にソースデータセットを読み込んでおく必要はありません(しかしどのようなソースフィールドがあるのかは把握しておく必要があります)。
準備
以下が必要です。
- エンティティモデル
- ソースデータセット(少なくとも1つ)
このタスクについて
このタスクでは、自分のマッピング定義で使用するためのカスタムのマッピング関数を作成してアップロードします。
手順
-
有効なJavaScriptスクリプト(.sjs)およびモジュール(.mjs)、有効なXQueryスクリプト(.xqy)のいずれかを作成します。
このファイルは必ずyour-project-root/src/main/ml-modules/root/custom-modules/mapping-functionsディレクトリに格納してください。
注:
- JavaScriptスクリプト(.sjs)およびXQueryスクリプト(.xqy)では、MarkLogicサーバー9.0-10以降が必要です。
- JavaScriptモジュール(.mjs)では、MarkLogicサーバー10.0-2以降が必要です。
JavaScript
'use strict';
function removeHyphens(val) {
return val.replace("-", "");
}
module.exports = {
removeHyphens
}
**XQuery**
xquery version "1.0-ml";
module namespace custom = "http://marklogic.com/mapping-functions/custom";
declare function remove-hyphens($val as xs:string?) as xs:string?
{
fn:replace($val, "-", "")
};
-
**
mlLoadModules**を実行します。Unixシステム
./gradlew mlLoadModules -i
**Windows**
gradlew.bat mlLoadModules -i
**Result:**
スクリプトやモジュール内の関数は、マッピングに使用されるXSLTテンプレートにコンパイルされます。
次に行うこと
- QuickStartを使う場合
- カスタム関数を使用したいマッピングステップを開きます。
- ステップの詳細パネルで、カスタム関数の名前を入力するか、f(x)ドロップダウンリストから選択します。
- フローを手作業で編集する場合
- マッピング定義ファイル内で、エンティティプロパティノードの
sourcedFrom値に自分のカスタム関数を使用します。
- マッピング定義ファイル内で、エンティティプロパティノードの
{
"name" : "MyFlow-MyMappingStep",
...
"properties" : {
"my-entity-property": {
"sourcedFrom": "MyCustomFunction( my-source-field-X )"
}
...
}
}
2. 必要であれば、[フロー定義ファイル](flow-definition.md "フロー定義ファイル内の情報(ステップなど)。")内で、マッピングステップのマッピング定義を更新します。
"steps" : {
...
"2" : {
"name" : "MyMappingStep",
...
"options" : {
...
"mapping" : {
"name" : "MyFlow-MyMappingStep",
},
...
},
...
}
}
See Also
上位トピック:マッピング
関連するコンセプト
関連するタスク
関連するリファレンス
関連する情報