スクリプトモジュール

複雑なタスクの全部または一部を実行するためのカスタムコードの作成や、作成済みのモジュールの再利用が必要な場合があります。スクリプティングモジュールは、スクリプト言語で作成されたカスタムロジックを実行できます。次のスクリプト言語がサポートされます。

  • Groovy

  • Python

  • Javascript

  • Ruby

インストール

スクリプティングモジュールは、Anypoint Studio に含まれています。[Mule Palette (Mule パレット)] でこのモジュールが見当たらない場合は、​[+ Add Module (モジュールを追加)]​を使用して追加してください。インストールすると、Mule アプリケーションでモジュールの操作を使用できるようになります。

基本的な使い方

Studio でスクリプティング操作を設定する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)] でスクリプティングモジュールをクリックします。

  2. スクリプティングモジュールの Execute 操作を次のようにフローまでドラッグします。

    スクリプティングの Execute コンポーネント
  3. Execute 要素をダブルクリックして Execute の設定タブを開きます。

  4. [General (一般)] タブの [Code (コード)]​テキストウィンドウで、下記の例のようにコードを入力します。

  5. [Engine (エンジン)] で Execute コンポーネントのエンジンを選択します。

    • Groovy

    • Nashorn (JavaScript)

    • Jython (Python)

    • JRuby (Ruby)

コードを記述したスクリプト

Configuration XML (設定 XML) エディタでは、XML は次のように記述されます。

例: 基本的な使い方
<scripting:execute engine="jython" doc:name="Script">
    <scripting:code>
      def factorial(n):
          if n == 0: return 1
	  return n * factorial(n-1)

      result = factorial(10)
    </scripting:code>
</scripting:execute>

次のようにファイル設定プロパティを使用すると、外部ファイルからコードを読み込むことができます。

ファイル設定プロパティを使用したスクリプト

Configuration XML (設定 XML) エディタでは、XML は次のように記述されます。

例: ファイル設定プロパティを使用したスクリプトコードの設定
<scripting:execute engine="jython" doc:name="Script">
    <scripting:code >${file::script.py}</scripting:code>
</scripting:execute>

パラメータの設定

次のように DataWeave を使用して、入力パラメータ値を定義できます。

パラメータを使用したスクリプト

Configuration XML (設定 XML) エディタでは、XML は次のように記述されます。

例: パラメータの設定
<scripting:execute engine="jython" doc:name="Script">
	<scripting:code >def factorial(n):
	if n == 0: return 1
	return n * factorial(n-1)
result = factorial(initialValue + int(payload))</scripting:code>
	<scripting:parameters ><![CDATA[#[{initialValue: 10}]]]></scripting:parameters>
</scripting:execute>

詳細な設定

[Advanced (詳細)]​タブで対象値を修正して、変数をスクリプト実行の対象として設定することができます。

詳細設定

Configuration XML (設定 XML) エディタでは、XML は次のように記述されます。

例: 詳細設定
<scripting:execute engine="jython" doc:name="Script" target="variableName">
    <scripting:code >${file::script.py}</scripting:code>
</scripting:execute

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub