Powered by Zoomin Software. For more details please contactZoomin

MarkLogic Data Hub

カスタムマッピング関数の作成

  • 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, "-", "")
  };

  1. **mlLoadModules**を実行します。

    Unixシステム

./gradlew mlLoadModules -i
**Windows**
gradlew.bat mlLoadModules -i
**Result:**

スクリプトやモジュール内の関数は、マッピングに使用されるXSLTテンプレートにコンパイルされます。

次に行うこと

  • QuickStartを使う場合
    1. カスタム関数を使用したいマッピングステップを開きます。
    2. ステップの詳細パネルで、カスタム関数の名前を入力するか、f(x)ドロップダウンリストから選択します。
  • フローを手作業で編集する場合
    1. マッピング定義ファイル内で、エンティティプロパティノードの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

上位トピック:マッピング

関連するコンセプト

関連するタスク

関連するリファレンス

関連する情報

TitleResults for “How to create a CRG?”Also Available inAlert