# mulesoft Scripting Module - Full Documentation # Anypoint Studio を使用した Scripting Module の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio で Scripting Module を追加して設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [モジュールを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [モジュールフローのソースを設定します](#configure-input-source)​。 4. [Execute 操作をフローに追加します](#add-connector-operation)​。 5. [他のモジュール項目を設定します](#configure-other-fields)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを読んだ後でモジュール項目の追加情報が必要になった場合は、​[「Scripting Module リファレンス」](https://docs.mulesoft.com/jp/scripting-module/2.0/scripting-reference)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、モジュールを追加して設定する新規 Mule プロジェクトを作成します。 1. Studio のメインメニューから ​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)モジュールを Mule プロジェクトに追加します。 Scripting Module を Mule プロジェクトに追加すると、XML コードにモジュールの名前空間とスキーマの場所が自動的に入力され、プロジェクトの ​`pom.xml`​ ファイルに必要な連動関係が追加されます。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Modules to Project (モジュールをプロジェクトに追加)\]**​ で、検索項目に「​`scripting module`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で ​**\[Scripting Module\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でモジュールを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのモジュールを使用できません。 ## [](#configure-input-source)入力元を設定する ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを Scripting Module で使用するように設定できます。 - `HTTP Listener`​: 設定されたホストとポートで要求を受信するたびにフローを開始 - `Scheduler`​: 時間ベースの条件が満たされたときにフローを開始 たとえば、​`HTTP リスナー`​を設定するには、次の手順に従います。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\]**​ > ​**\[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Path (パス)\]**​ 項目の値を指定します。 5. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (+) をクリックして、アプリケーション内のすべての ​`HTTP Listener`​ インスタンスで使用できるグローバル要素を設定します。 6. **\[General (一般)\]**​ タブで、接続情報を指定します。 7. **\[TLS\]**​ タブで、必要に応じて TLS 情報を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が特定のサーバーに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 ## [](#add-connector-operation)Execute 操作をフローに追加する モジュール操作をフローに追加することで、そのモジュールが実行する特定の操作が直ちに定義されます。 Scripting Module の Execute 操作を追加する手順は次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで ​**\[Scripting Module\]**​ を選択してから、​**\[Execute\]**​ を選択します。 2. **Execute**​ 操作を Studio キャンバスのソースの右にドラッグします。 3. **\[Execute\]**​ をクリックして Execute の設定タブを開きます。 4. 次の 2 つのオプションのどちらかを使用して ​`jsr-223`​ 準拠エンジンをインストールして設定します。 - **\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定…​)\]**​ をクリックし、次のオプションのいずれかを選択してエンジンを検索およびインストールします。 - Add recommended libraries (推奨されるライブラリを追加) 推奨される Groovy エンジンをインストールします。このオプションは、Groovy をインストールしていない場合にのみ表示されます。 - Use local file (ローカルファイルを使用) ローカルファイルで必要なエンジンライブラリを探してインストールします。 - Maven の連動関係を追加する エンジンの連動関係を探してインストールします。 - `pom.xml`​ ファイルで、次の 2 つのセクションの間にエンジンを手動で追加します。 - ``​ セクションの ​``​ タグ - ``​ セクションの ​``​ タグ 1. **\[Execute\]**​ タブの ​**\[General (一般)\]**​ セクションで、更新ボタンをクリックして操作のエンジン値のリストを更新します。 2. **\[Engine (エンジン)\]**​ で、インストールされているエンジンを選択します。 3. **\[Code (コード)\]**​ テキストボックスにスクリプトコードを入力します。 さらに、​[ファイル設定プロパティ](https://docs.mulesoft.com/mule-runtime/latest/configuring-properties#_file_properties)​を使用して外部ファイルからスクリプトコードを読み込むこともできます。 Studio での Jython エンジンの設定は次のようになります。 ![「Configure (設定)」 ボタンを使用してエンジンをインとする](/mulesoft/current/ja-jp/scripting-module/2.0/_images/scripting-configure-button.png) Figure 1. \[Configure (設定)\] ボタンを使用してエンジンをインとする `pom.xml`​ ファイルでの Jython エンジンの手動による追加は次のようになります。 ```xml org.apache.maven.plugins maven-clean-plugin 3.0.0 org.mule.tools.maven mule-maven-plugin ${mule.maven.plugin.version} true org.python jython-standalone org.python jython-standalone 2.7.2 ``` Studio でのスクリプトコードでの Scripting Module の設定は次のようになります。 ![スクリプトコードによる Scripting Module の設定](/mulesoft/current/ja-jp/scripting-module/2.0/_images/scripting-studio-flow.png) Figure 2. スクリプトコードによる Scripting Module の設定 **Configuration XML (設定 XML)**​ エディターでは、XML は次のように記述されます。 ```xml def factorial(n): if n == 0: return 1 return n * factorial(n-1) result = factorial(10) ``` Studio で外部ファイルを使用して読み込まれたスクリプトは次のようになります。 ![外部ファイルを使用したスクリプトコード](/mulesoft/current/ja-jp/scripting-module/2.0/_images/scripting-studio-file-config.png) Figure 3. 外部ファイルを使用したスクリプトコード **Configuration XML (設定 XML)**​ エディターで、スクリプトを次のように ​``​ タグの間に配置します。 ```xml ${file::script.py} ``` ## [](#configure-other-fields)他のモジュール項目の設定 **Parameters (パラメーター)**​、​**Target Variable (対象変数)**​、​**Target Value (対象値)**​ など、Execute 操作の他の追加項目も設定できます。 ### [](#parameters-パラメーター)Parameters パラメーター **Parameters**​ パラメーターを使用すると、スクリプトが使用する入力値を DataWeave 式で定義できます。DataWeave 式が正常に機能するためには、Parameters の出力種別を組み合わせる必要があり、キーは文字列で値は任意のオブジェクトとなります。Parameters をバインド変数として使用する場合は、次のように名前で参照します。 `factorial(initialValue + int(payload))` このパラメーターを Scripting Module 用に設定する手順は次のとおりです。 1. Studio キャンバスでコネクタの名前を選択します。 2. **\[General (一般)\]**​ セクションの ​**\[Parameters (パラメーター)\]**​ 項目にパラメーター値を追加します。 Studio でのパラメーターの設定は次のようになります。 ![パラメーターを使用したスクリプト](/mulesoft/current/ja-jp/scripting-module/2.0/_images/scripting-studio-parameters.png) Figure 4. パラメーターを使用したスクリプト **Configuration XML (設定 XML)**​ エディターでは、XML は次のように記述されます。 ```xml def factorial(n): if n == 0: return 1 return n * factorial(n-1) result = factorial(initialValue + int(payload)) ``` ### [](#target-variable-対象変数-と-target-variable-対象値)Target Variable (対象変数) と Target Variable (対象値) **Target Variable**​ パラメーターは、操作の出力を格納する変数の名前を定義します。​**Target Variable**​ パラメーターは、操作の出力に対して評価する式を定義します。この式の出力は対象変数に保存されます。 これらのパラメーターを Scripting Module 用に設定する手順は、次のとおりです。 1. Studio キャンバスでコネクタの名前を選択します。 2. **\[Advanced (詳細)\]**​ タブで、​**\[Target Variable (対象変数)\]**​ と ​**\[Target Value (対象値)\]**​ をスクリプト実行の​[対象](https://docs.mulesoft.com/mule-runtime/latest/target-variables)​として定義します。 Studio での対象変数と対象値の設定は次のようになります。 ![詳細設定](/mulesoft/current/ja-jp/scripting-module/2.0/_images/scripting-studio-target.png) Figure 5. スクリプトの Target Variable と Target Variable **Configuration XML (設定 XML)**​ エディターでは、XML は次のようになります。 ```xml ${file::script.py} ``` ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Studio から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログを表示することもできます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [Scripting Module リファレンス](https://docs.mulesoft.com/jp/scripting-module/2.0/scripting-reference) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Anypoint Studio を使用した Scripting Module の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio で Scripting Module を追加して設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [モジュールを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [モジュールフローのソースを設定します](#configure-input-source)​。 4. [Execute 操作をフローに追加します](#add-connector-operation)​。 5. [他のモジュール項目を設定します](#configure-other-fields)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを読んだ後でモジュール項目の追加情報が必要になった場合は、​[「Scripting Module リファレンス」](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-reference)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、モジュールを追加して設定する新規 Mule プロジェクトを作成します。 1. Studio のメインメニューから ​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)モジュールを Mule プロジェクトに追加します。 Scripting Module を Mule プロジェクトに追加すると、XML コードにモジュールの名前空間とスキーマの場所が自動的に入力され、プロジェクトの ​`pom.xml`​ ファイルに必要な連動関係が追加されます。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Modules to Project (モジュールをプロジェクトに追加)\]**​ で、検索項目に「​`scripting module`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で ​**\[Scripting Module\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でモジュールを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのモジュールを使用できません。 ## [](#configure-input-source)入力元を設定する ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを Scripting Module で使用するように設定できます。 - `HTTP Listener`​: 設定されたホストとポートで要求を受信するたびにフローを開始 - `Scheduler`​: 時間ベースの条件が満たされたときにフローを開始 たとえば、​`HTTP Listener`​ を設定するには、次の手順に従います。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[HTTP\]**​ > ​**\[Listener\]**​ を選択します。 2. **\[Listener\]**​ を Studio キャンバスにドラッグします。 3. **\[Listener (リスナー)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Path (パス)\]**​ 項目の値を指定します。 5. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (+) をクリックして、アプリケーション内のすべての ​`HTTP Listener`​ インスタンスで使用できるグローバル要素を設定します。 6. **\[General (一般)\]**​ タブで、接続情報を指定します。 7. **\[TLS\]**​ タブで、必要に応じて TLS 情報を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が特定のサーバーに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 ## [](#add-connector-operation)Execute 操作をフローに追加する モジュール操作をフローに追加することで、そのモジュールが実行する特定の操作が直ちに定義されます。 Scripting Module の Execute 操作を追加する手順は次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで ​**\[Scripting Module\]**​ を選択してから、​**\[Execute\]**​ を選択します。 2. **Execute**​ 操作を Studio キャンバスのソースの右にドラッグします。 3. **\[Execute\]**​ をクリックして Execute の設定タブを開きます。 4. 次の 2 つのオプションのどちらかを使用して ​`jsr-223`​ 準拠エンジンをインストールして設定します。 - **\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定…​)\]**​ をクリックし、次のオプションのいずれかを選択してエンジンを検索およびインストールします。 - Add recommended libraries (推奨されるライブラリを追加) 推奨される Groovy エンジンをインストールします。このオプションは、Groovy をインストールしていない場合にのみ表示されます。 - Use local file (ローカルファイルを使用) ローカルファイルで必要なエンジンライブラリを探してインストールします。 - Maven の連動関係を追加する エンジンの連動関係を探してインストールします。 - `pom.xml`​ ファイルで、次の 2 つのセクションの間にエンジンを手動で追加します。 - ``​ セクションの ​``​ タグ - ``​ セクションの ​``​ タグ 1. **\[Execute\]**​ タブの ​**\[General (一般)\]**​ セクションで、更新ボタンをクリックして操作のエンジン値のリストを更新します。 2. **\[Engine (エンジン)\]**​ で、インストールされているエンジンを選択します。 3. **\[Code (コード)\]**​ テキストボックスにスクリプトコードを入力します。 さらに、​[ファイル設定プロパティ](https://docs.mulesoft.com/mule-runtime/latest/configuring-properties#_file_properties)​を使用して外部ファイルからスクリプトコードを読み込むこともできます。 Studio での Jython エンジンの設定は次のようになります。 ![「Configure (設定)」 ボタンを使用してエンジンをインとする](/mulesoft/current/ja-jp/scripting-module/latest/_images/scripting-configure-button.png) Figure 1. \[Configure (設定)\] ボタンを使用してエンジンをインとする `pom.xml`​ ファイルでの Jython エンジンの手動による追加は次のようになります。 ```xml org.apache.maven.plugins maven-clean-plugin 3.0.0 org.mule.tools.maven mule-maven-plugin ${mule.maven.plugin.version} true org.python jython-standalone org.python jython-standalone 2.7.2 ``` Studio でのスクリプトコードでの Scripting Module の設定は次のようになります。 ![スクリプトコードによる Scripting Module の設定](/mulesoft/current/ja-jp/scripting-module/latest/_images/scripting-studio-flow.png) Figure 2. スクリプトコードによる Scripting Module の設定 **Configuration XML (設定 XML)**​ エディターでは、XML は次のように記述されます。 ```xml def factorial(n): if n == 0: return 1 return n * factorial(n-1) result = factorial(10) ``` Studio で外部ファイルを使用して読み込まれたスクリプトは次のようになります。 ![外部ファイルを使用したスクリプトコード](/mulesoft/current/ja-jp/scripting-module/latest/_images/scripting-studio-file-config.png) Figure 3. 外部ファイルを使用したスクリプトコード **Configuration XML (設定 XML)**​ エディターで、スクリプトを次のように ​``​ タグの間に配置します。 ```xml ${file::script.py} ``` ## [](#configure-other-fields)他のモジュール項目の設定 **Parameters (パラメーター)**​、​**Target Variable (対象変数)**​、​**Target Value (対象値)**​ など、Execute 操作の他の追加項目も設定できます。 ### [](#parameters-パラメーター)Parameters パラメーター **Parameters**​ パラメーターを使用すると、スクリプトが使用する入力値を DataWeave 式で定義できます。DataWeave 式が正常に機能するためには、Parameters の出力種別を組み合わせる必要があり、キーは文字列で値は任意のオブジェクトとなります。Parameters をバインド変数として使用する場合は、次のように名前で参照します。 `factorial(initialValue + int(payload))` このパラメーターを Scripting Module 用に設定する手順は次のとおりです。 1. Studio キャンバスでコネクタの名前を選択します。 2. **\[General (一般)\]**​ セクションの ​**\[Parameters (パラメーター)\]**​ 項目にパラメーター値を追加します。 Studio でのパラメーターの設定は次のようになります。 ![パラメーターを使用したスクリプト](/mulesoft/current/ja-jp/scripting-module/latest/_images/scripting-studio-parameters.png) Figure 4. パラメーターを使用したスクリプト **Configuration XML (設定 XML)**​ エディターでは、XML は次のように記述されます。 ```xml def factorial(n): if n == 0: return 1 return n * factorial(n-1) result = factorial(initialValue + int(payload)) ``` ### [](#target-variable-対象変数-と-target-variable-対象値)Target Variable (対象変数) と Target Variable (対象値) **Target Variable**​ パラメーターは、操作の出力を格納する変数の名前を定義します。​**Target Variable**​ パラメーターは、操作の出力に対して評価する式を定義します。この式の出力は対象変数に保存されます。 これらのパラメーターを Scripting Module 用に設定する手順は、次のとおりです。 1. Studio キャンバスでコネクタの名前を選択します。 2. **\[Advanced (詳細)\]**​ タブで、​**\[Target Variable (対象変数)\]**​ と ​**\[Target Value (対象値)\]**​ をスクリプト実行の​[対象](https://docs.mulesoft.com/mule-runtime/latest/target-variables)​として定義します。 Studio での対象変数と対象値の設定は次のようになります。 ![詳細設定](/mulesoft/current/ja-jp/scripting-module/latest/_images/scripting-studio-target.png) Figure 5. スクリプトの Target Variable と Target Variable **Configuration XML (設定 XML)**​ エディターでは、XML は次のようになります。 ```xml ${file::script.py} ``` ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Studio から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログを表示することもできます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [Scripting Module リファレンス](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-reference) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Execution Mode の使用 Scripting Module の ​**\[Execution Mode (実行モード)\]**​ 項目を使用してスクリプトを自動的にコンパイルするか強制的に解釈するかを判断します。 次のモードの項目を設定します。 - **AUTO**​ コンパイルが可能で初期化中に正常に行われる場合は、スクリプトのコンパイル済みバージョンが使用されます。このモードでは、解釈済みの実行に切り替える必要があるかどうかを判断するためにスクリプトのコンテンツの動的分析が実行されません。たとえば、スクリプトに動的にする必要があるハードコードされたパラメーターまたはローカル値が含まれている場合、​`AUTO`​ モードではこの状況が検出されず、コンパイルを選択する場合があるため、結果としてこれらの値が失われます。 そのため、​`AUTO`​ モードはコンパイル中に失われる場合があるローカル変数への重大な連動関係がない場合のみ適しています。 - **INTERPRETED**​ 変数の保持に関連する問題が回避されます。 `INTERPRETED`​ モードを使用すると、パフォーマンスが低下する場合があります。これは、スクリプトが 1 回だけコンパイルされるのではなく、実行ごとに解釈されるためです。このモードは本質的に効率が良くないため、パラメーターを明示的に受信するためにスクリプトを変更するのが適切でない場合に適しています。 次の XML 例では、​**\[Execution Mode (実行モード)\]**​ 項目 (​`executionMode`​) の設定を示しています。 ```xml ... ... ``` ## [](#関連情報)関連情報 - [Scripting Module - 例](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-module-examples) # Scripting Module - XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio にインストールすると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#モジュールの名前空間の追加)モジュールの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/scripting-module http://www.mulesoft.org/schema/mule/scripting-module/current/mule-scripting-module.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.modules mule-scripting-module 2.0.0 mule-plugin ``` 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`Scripting Module`​」を検索します。 4. モジュールを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 Scripting Module は実行エンジンを提供していないため、自分で実行エンジンを提供する必要があります。 たとえば、前のバージョンの Scripting Module で提供されている次のエンジンリストを確認してください。 Groovy:
Scripting Module では、Groovy のバージョン 2.4.x がサポートされています。Anypoint Studio では、バージョン 2.4.21 を使用することをお勧めします。
```xml org.codehaus.groovy groovy-all 2.4.21 indy ``` Python: ```xml org.python jython-standalone 2.7.2 ``` Ruby: ```xml org.jruby jruby-core 9.2.11.1 org.jruby jruby-stdlib 9.2.11.1 ``` ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/scripting-module/2.0/scripting-module-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Scripting Module - XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio にインストールすると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#モジュールの名前空間の追加)モジュールの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/scripting-module http://www.mulesoft.org/schema/mule/scripting-module/current/mule-scripting-module.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.modules mule-scripting-module 2.0.0 mule-plugin ``` 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`Scripting Module`​」を検索します。 4. モジュールを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 Scripting Module は実行エンジンを提供していないため、自分で実行エンジンを提供する必要があります。 たとえば、前のバージョンの Scripting Module で提供されている次のエンジンリストを確認してください。 Groovy:
Scripting Module では、Groovy のバージョン 2.4.x がサポートされています。Anypoint Studio では、バージョン 2.4.21 を使用することをお勧めします。
```xml org.codehaus.groovy groovy-all 2.4.21 indy ``` Python: ```xml org.python jython-standalone 2.7.2 ``` Ruby: ```xml org.jruby jruby-core 9.2.11.1 org.jruby jruby-stdlib 9.2.11.1 ``` ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-module-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Scripting Module - 例 次の Scripting Module の例では、バインド変数を使用する方法とレジストリにアクセスする方法を示しています。 ## [](#バインド変数の例の使用)バインド変数の例の使用 次の Scripting Module XML の例では、以下の方法を示しています。 - スクリプティングコードでフロー変数を使用する (例: `vars.increment`​) - スクリプティングパラメーターを参照することによって使用する (例: `initialValue`​) - `log`​ 変数を使用して一部の情報を記録する (例: `log.info("…​.")`​) - `result`​ 変数を使用して実行結果を設定する - `vars.increment + Number(payload) + initialValue`​ でペイロードを定義する ```xml log.info("Incrementing payload by " + (vars.increment + initialValue)) result = vars.increment + Number(payload) + initialValue ``` ## [](#レジ例にアクセスする)レジ例にアクセスする 次の Scripting Module XML の例では、以下の方法を示しています。 - レジにアクセスする - フローを停止または開始する ```xml ``` ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Scripting Module - 例 次の Scripting Module の例では、バインド変数を使用する方法とレジストリにアクセスする方法を示しています。 ## [](#バインド変数の例の使用)バインド変数の例の使用 次の Scripting Module XML の例では、以下の方法を示しています。 - スクリプティングコードでフロー変数を使用する (例: `vars.increment`​) - スクリプティングパラメーターを参照することによって使用する (例: `initialValue`​) - `log`​ 変数を使用して一部の情報を記録する (例: `log.info("…​.")`​) - `result`​ 変数を使用して実行結果を設定する - `vars.increment + Number(payload) + initialValue`​ でペイロードを定義する ```xml log.info("Incrementing payload by " + (vars.increment + initialValue)) result = vars.increment + Number(payload) + initialValue ``` ## [](#レジ例にアクセスする)レジ例にアクセスする 次の Scripting Module XML の例では、以下の方法を示しています。 - レジにアクセスする - フローを停止または開始する ```xml ``` ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Scripting Module 2.0 Scripting Module は、スクリプト言語で作成されたカスタムロジックを実行します。複雑なタスクの全部または一部を実行するためのカスタムコードの作成や、作成済みのモジュールの再利用が必要な場合があります。 Scripting Module バージョン 2.0 以降では、​`jsr-223`​ に準拠したスクリプティング言語エンジンを指定する必要があります。 ## [](#始める前に)始める前に このモジュールを使用するには、以下に精通している必要があります。 - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素 - グローバル要素 - Anypoint Studio を使用した Mule アプリケーションの作成 アプリケーションを作成するには、Anypoint Platform へのアクセスが必要です。 ## [](#モジュールの一般的なユースケース)モジュールの一般的なユースケース Scripting Module は、サポートされている言語でロジックを実行し、変数やレジストリへのアクセス、Mule ロガーによる情報の記録、ペイロードの読み取りなどを行います。 例については、​[「例」](https://docs.mulesoft.com/jp/scripting-module/2.0/scripting-module-examples)​を参照してください。 ## [](#対象者)対象者 - 新規ユーザーは、以下をお読みください。 - Mule アプリケーションを作成するための​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/jp/scripting-module/2.0/scripting-module-studio) - [「例」](https://docs.mulesoft.com/jp/scripting-module/2.0/scripting-module-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 - 高度なユーザーは、以下をお読みください。 - [XML と Maven のサポート](https://docs.mulesoft.com/jp/scripting-module/2.0/scripting-module-xml-maven) - [「例」](https://docs.mulesoft.com/jp/scripting-module/2.0/scripting-module-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 メジャーリリースとマイナーリリースについては、​[「アップグレードおよび移行」](https://docs.mulesoft.com/jp/scripting-module/2.0/scripting-module-upgrade-migrate)​を参照してください。 ## [](#次のステップ)次のステップ 前提条件を満たし、テンプレートおよびサンプルを試したら、​[Anypoint Studio](https://docs.mulesoft.com/jp/scripting-module/2.0/scripting-module-studio)​ でアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://www.mulesoft.com/exchange/?search=scripting-module&type=connector) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Scripting Module 2.1 Scripting Module は、スクリプト言語で作成されたカスタムロジックを実行します。複雑なタスクの全部または一部を実行するためのカスタムコードの作成や、作成済みのモジュールの再利用が必要な場合があります。 Scripting Module バージョン 2.0 以降では、​`jsr-223`​ に準拠したスクリプティング言語エンジンを指定する必要があります。 ## [](#始める前に)始める前に このモジュールを使用するには、以下に精通している必要があります。 - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素 - グローバル要素 - Anypoint Studio を使用した Mule アプリケーションの作成 アプリケーションを作成するには、Anypoint Platform へのアクセスが必要です。 ## [](#モジュールの一般的なユースケース)モジュールの一般的なユースケース Scripting Module は、サポートされている言語でロジックを実行し、変数やレジストリへのアクセス、Mule ロガーによる情報の記録、ペイロードの読み取りなどを行います。 例については、​[「例」](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-module-examples)​を参照してください。 ## [](#対象者)対象者 - 新規ユーザーは、以下をお読みください。 - Mule アプリケーションを作成するための​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-module-studio) - [「例」](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-module-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 - 高度なユーザーは、以下をお読みください。 - [XML と Maven のサポート](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-module-xml-maven) - [「例」](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-module-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 メジャーリリースとマイナーリリースについては、​[「アップグレードおよび移行」](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-module-upgrade-migrate)​を参照してください。 ## [](#次のステップ)次のステップ 前提条件を満たし、テンプレートおよびサンプルを試したら、​[Anypoint Studio](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-module-studio)​ でアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://www.mulesoft.com/exchange/?search=scripting-module&type=connector) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Scripting Module のトラブルシューティング Scripting Module のトラブルシューティングを行うには、冗長ログの有効化と、スローされる一般的なメッセージの解釈に関する情報を理解しておきます。 ## [](#冗長ログの有効化)冗長ログの有効化 アプリケーションと Scripting Module のやりとりが失敗する理由の理解を深めるには、モジュールの冗長ログを一時的に有効にします。 Mule アプリケーションのパフォーマンスに影響するため、トラブルシューティングが完了したら、必ず拡張された冗長性を無効にしてください。 設定ファイルで冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. ``​ タグ内に ​``​ タグを追加します。 ```xml ... ... ``` 6. アプリケーションの変更を保存します。 7. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 ## [](#スクリプティングエンジンの外部ライブラリのトラブルシューティング)スクリプティングエンジンの外部ライブラリのトラブルシューティング Scripting Module バージョン 2.0.1 を 2.0.2 にアップグレードするときにスクリプティング言語エンジンの外部ライブを指定していなかった場合、実行時に ​`SCRIPTING:UNKNOWN_ENGINE`​ スローメッセージが表示されることがあります。そのようなスローメッセージが表示されないようにするには、​`jsr-223`​ 準拠スクリプティング言語エンジンを指定する必要があります。 スクリプティング言語エンジンの設定方法については、​[「Execute 操作をフローに追加する」](https://docs.mulesoft.com/jp/scripting-module/2.0/scripting-module-studio#add-connector-operation)​を参照してください。 ## [](#一般的なスローを理解する)一般的なスローを理解する ここでは、一般的なスローメッセージとその解決方法を示します。 - SCRIPTING:COMPILATION The content of the property code had problems in the compilation stage. (コンパイルフェーズでプロパティコードのコンテンツに問題が発生しました。)Check that your code is valid and export the classes used with the Scripting Module. (コードが有効であることを確認し、Scripting Module で使用されたクラスをエクスポートしてください。) - SCRIPTING:UNKNOWN\_ENGINE The engine name provided in the engine parameter is unknown. (エンジンパラメーターで不明なエンジン名が指定されました。) - SCRIPTING:EXECUTION An exception occurred during the execution stage. (実行フェーズで例外が発生しました。)Set the log level in DEBUG mode and find more information in the log file. (DEBUG モードでログレベルを設定し、ログファイルで詳細を検索してください。) ## [](#関連情報)関連情報 - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [Scripting Module リファレンス](https://docs.mulesoft.com/jp/scripting-module/2.0/scripting-reference) # Scripting Module のトラブルシューティング Scripting Module のトラブルシューティングを行うには、冗長ログの有効化と、スローされる一般的なメッセージの解釈に関する情報を理解しておきます。 ## [](#冗長ログの有効化)冗長ログの有効化 アプリケーションと Scripting Module のやりとりが失敗する理由の理解を深めるには、モジュールの冗長ログを一時的に有効にします。 Mule アプリケーションのパフォーマンスに影響するため、トラブルシューティングが完了したら、必ず拡張された冗長性を無効にしてください。 設定ファイルで冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. ``​ タグ内に ​``​ タグを追加します。 ```xml ... ... ``` 6. アプリケーションの変更を保存します。 7. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 ## [](#スクリプティングエンジンの外部ライブラリのトラブルシューティング)スクリプティングエンジンの外部ライブラリのトラブルシューティング Scripting Module バージョン 2.0.1 を 2.0.2 にアップグレードするときにスクリプティング言語エンジンの外部ライブを指定していなかった場合、実行時に ​`SCRIPTING:UNKNOWN_ENGINE`​ スローメッセージが表示されることがあります。そのようなスローメッセージが表示されないようにするには、​`jsr-223`​ 準拠スクリプティング言語エンジンを指定する必要があります。 スクリプティング言語エンジンの設定方法については、​[「Execute 操作をフローに追加する」](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-module-studio#add-connector-operation)​を参照してください。 ## [](#一般的なスローを理解する)一般的なスローを理解する ここでは、一般的なスローメッセージとその解決方法を示します。 - SCRIPTING:COMPILATION The content of the property code had problems in the compilation stage. (コンパイルフェーズでプロパティコードのコンテンツに問題が発生しました。)Check that your code is valid and export the classes used with the Scripting module. (コードが有効であることを確認し、Scripting Module で使用されたクラスをエクスポートしてください。) - SCRIPTING:UNKNOWN\_ENGINE The engine name provided in the engine parameter is unknown. (エンジンパラメーターで不明なエンジン名が指定されました。) - SCRIPTING:EXECUTION An exception occurred during the execution stage. (実行フェーズで例外が発生しました。)Set the log level in DEBUG mode and find more information in the log file. (DEBUG モードでログレベルを設定し、ログファイルで詳細を検索してください。) ## [](#関連情報)関連情報 - [Scripting Module リファレンス](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-reference) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [Known Issues](https://help.salesforce.com/s/issues) # Scripting Module のバージョン 2.0 へのアップグレードおよび移行 Scripting Module 用 Anypoint Connector (Scripting Module) をバージョン 2.0.0 にアップグレードします。 ## [](#サポートされているアップグレードパス)サポートされているアップグレードパス
開始バージョン 終了バージョン

1.1.7

2.0.0

## [](#このリリースでの変更)このリリースでの変更 このリリースには、次の変更が含まれています。 - Scripting Module ではデフォルトのスクリプティングエンジンが提供されなくなったため、次のいずれかのアクションを実行します。 - **\[Configure…​ (設定…​)\]**​ ボタンを使用して、目的のエンジンをインストールします。 - 目的のエンジンは、アプリケーションの ​`pom.xml`​ ファイルで指定します。 - ペイロードや変数で提供されるすべてのデータストリームに対して、新しいカーソルを開かなくても済むように、カーソルオブジェクトが自動的に開いてバインドします。 Scripting Module で指定されている ​`openCursor()`​ は、スクリプト実行後に閉じます。 ## [](#アップグレード前提条件)アップグレード前提条件 アップグレードを実行する前に、復元する必要がある場合に備えて、ファイル、データ、および設定のバックアップを作成する必要があります。 ## [](#アップグレード手順)アップグレード手順 以下の手順でアップグレードを実行します。 1. Anypoint Studio で、Mule プロジェクトを作成します。 2. **\[Mule Palette (Mule パレット)\]**​ で、​**\[Search in Exchange (Exchange 内を検索)\]**​ をクリックします。 3. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ で、検索項目に「​`scripting module`​」と入力します。 4. **\[Available modules (使用可能なモジュール)\]**​ で、​`Scripting module`​ を選択して ​**\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 6. Mule プロジェクトファイルで ​`mule-scripting-module`​ 連動関係のバージョンが ​`2.0.0`​ であることを確認します。 Studio はコネクタバージョンを自動的にアップグレードします。 ## [](#アップグレード後の手順)アップグレード後の手順 コネクタの最新バージョンをインストールしたら、​`jsr-223`​ 準拠スクリプティングエンジンを追加します。 1. Anypoint Studio でアプリケーションの ​**\[Execute\]**​ タブ操作に移動します。 2. 次の 2 つのオプションのどちらかを使用して ​`jsr-223`​ 準拠エンジンをインストールして設定します。 - **\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定…​)\]**​ をクリックし、次のオプションのいずれかを選択してエンジンを検索およびインストールします。 - Add recommended libraries (推奨されるライブラリを追加) 推奨される Groovy エンジンをインストールします。このオプションは、Groovy をインストールしていない場合にのみ表示されます。 - Use local file (ローカルファイルを使用) ローカルファイルで必要なエンジンライブラリを探してインストールします。 - Maven の連動関係を追加する エンジンの連動関係を探してインストールします。 - `pom.xml`​ ファイルで、次の両方のセクションにエンジンを手動で追加します。 - ``​ セクションの ​``​ タグ - ``​ セクションの ​``​ タグ 1. **\[Execute\]**​ タブの ​**\[General (一般)\]**​ セクションで、更新ボタンをクリックして操作のエンジン値のリストを更新します。 2. **\[Engine (エンジン)\]**​ で、インストールされているエンジンを選択します。 ### [](#アップグレードを確認する)アップグレードを確認する コネクタの最新バージョンをインストールしたら、アップグレードを確認します。 1. Studio の ​**\[Problems (問題)\]**​ または ​**\[Console (コンソール)\]**​ ビューでエラーがないことを確認します。 2. プロジェクトファイルに問題がないことを確認します。 3. 接続をテストして、操作が機能することを確認します。 ## [](#トラブルシューティング)トラブルシューティング - エンジン名の矛盾 Studio の設定タブと \[Configuration XML (設定 XML)\] タブのエンジン名が異なる場合は、以前の Scripting Module のバージョンと異なるエンジン名が表示されます。これは、エンジンの開発会社がエンジン名と言語名の両方に ID を定義して提供しているためです。例:
エンジン名 Studio 設定 Configuration XML (設定 XML)

Jython

Jython

Python

Groovy

Groovy Scripting Engine

Groovy

Nashorn (JavaScript)

Oracle Nashorn

ECMASCript

- Jython エンジン スタンドアロンバージョンではない Jython エンジンを Scripting Module v2.0 で使用すると、アプリケーションは失敗します。以前の Scripting Module バージョンは、スタンドアロンバージョンではない Jython エンジンでも機能していました。Scripting Module v2.0 では ​`jython-standalone`​ バージョンを使用してください。詳細は、​[「Scripting Module XML と Maven のサポート」](https://docs.mulesoft.com/jp/scripting-module/2.0/scripting-module-xml-maven)​を参照してください。 - Oracle Nashorn エンジン Oracle Nashorn (ECMASCript) エンジンをインストールまたは設定していないのに、Studio の設定タブに Oracle Nashorn エンジンが利用可能なオプションとして表示される場合は、以前にいずれかの JVM (Java Virtual Machine) バージョンでこのエンジンをインとして使用していたことを意味します。 ### [](#アップグレードの取り消し)アップグレードの取り消し 前のバージョンの Scripting Module に戻す必要がある場合は、Anypoint Studio に移動して以下を実行します。 1. プロジェクトの ​`pom.xml`​ ファイルで ​`mule-scripting-module`​ 連動関係バージョン ​`2.0.0`​ を以前のバージョンに戻し、使用しているエンジン連動関係を ​``​ セクションから削除します。 2. **\[Execute\]**​ タブに戻り、​**\[Engine (エンジン)\]**​ セクションでいずれかのデフォルトエンジンを選択します。 3. **\[Configuration XML (設定 XML)\]**​ タブで、選択済みのエンジン名も変更されていることを確認します。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Scripting Module のバージョン 2.1 へのアップグレードおよび移行 Scripting Module 用 Anypoint Connector (Scripting Module) をバージョン 2.0.0 にアップグレードします。 ## [](#サポートされているアップグレードパス)サポートされているアップグレードパス
開始バージョン 終了バージョン

1.1.7

2.0.0

## [](#このリリースでの変更)このリリースでの変更 このリリースには、次の変更が含まれています。 - Scripting Module ではデフォルトのスクリプティングエンジンが提供されなくなったため、次のいずれかのアクションを実行します。 - **\[Configure…​ (設定…​)\]**​ ボタンを使用して、目的のエンジンをインストールします。 - 目的のエンジンは、アプリケーションの ​`pom.xml`​ ファイルで指定します。 - ペイロードや変数で提供されるすべてのデータストリームに対して、新しいカーソルを開かなくても済むように、カーソルオブジェクトが自動的に開いてバインドします。 Scripting Module で指定されている ​`openCursor()`​ は、スクリプト実行後に閉じます。 ## [](#アップグレード前提条件)アップグレード前提条件 アップグレードを実行する前に、復元する必要がある場合に備えて、ファイル、データ、および設定のバックアップを作成する必要があります。 ## [](#アップグレード手順)アップグレード手順 以下の手順でアップグレードを実行します。 1. Anypoint Studio で、Mule プロジェクトを作成します。 2. **\[Mule Palette (Mule パレット)\]**​ で、​**\[Search in Exchange (Exchange 内を検索)\]**​ をクリックします。 3. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ で、検索項目に「​`scripting module`​」と入力します。 4. **\[Available modules (使用可能なモジュール)\]**​ で、​`Scripting module`​ を選択して ​**\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 6. Mule プロジェクトファイルで ​`mule-scripting-module`​ 連動関係のバージョンが ​`2.0.0`​ であることを確認します。 Studio はコネクタバージョンを自動的にアップグレードします。 ## [](#アップグレード後の手順)アップグレード後の手順 コネクタの最新バージョンをインストールしたら、​`jsr-223`​ 準拠スクリプティングエンジンを追加します。 1. Anypoint Studio でアプリケーションの ​**\[Execute\]**​ タブ操作に移動します。 2. 次の 2 つのオプションのどちらかを使用して ​`jsr-223`​ 準拠エンジンをインストールして設定します。 - **\[Required Libraries (必須のライブラリ)\]**​ セクションで ​**\[Configure…​ (設定…​)\]**​ をクリックし、次のオプションのいずれかを選択してエンジンを検索およびインストールします。 - Add recommended libraries (推奨されるライブラリを追加) 推奨される Groovy エンジンをインストールします。このオプションは、Groovy をインストールしていない場合にのみ表示されます。 - Use local file (ローカルファイルを使用) ローカルファイルで必要なエンジンライブラリを探してインストールします。 - Maven の連動関係を追加する エンジンの連動関係を探してインストールします。 - `pom.xml`​ ファイルで、次の両方のセクションにエンジンを手動で追加します。 - ``​ セクションの ​``​ タグ - ``​ セクションの ​``​ タグ
Java 17 以降、JavaScript コードの実行には GraalVm エンジンが必要です。このエンジンを使用するには、次のライブラリ連動関係を ​pom.xml​ ファイルに追加します。
```xml org.graalvm.js js org.graalvm.js js-scriptengine ``` 1. **\[Execute\]**​ タブの ​**\[General (一般)\]**​ セクションで、更新ボタンをクリックして操作のエンジン値のリストを更新します。 2. **\[Engine (エンジン)\]**​ で、インストールされているエンジンを選択します。 ### [](#アップグレードを確認する)アップグレードを確認する コネクタの最新バージョンをインストールしたら、アップグレードを確認します。 1. Studio の ​**\[Problems (問題)\]**​ または ​**\[Console (コンソール)\]**​ ビューでエラーがないことを確認します。 2. プロジェクトファイルに問題がないことを確認します。 3. 接続をテストして、操作が機能することを確認します。 ## [](#トラブルシューティング)トラブルシューティング - エンジン名の矛盾 Studio の設定タブと \[Configuration XML (設定 XML)\] タブのエンジン名が異なる場合は、以前の Scripting Module のバージョンと異なるエンジン名が表示されます。これは、エンジンの開発会社がエンジン名と言語名の両方に ID を定義して提供しているためです。例:
エンジン名 Studio 設定 Configuration XML (設定 XML)

Jython

Jython

Python

Groovy

Groovy Scripting Engine

Groovy

Nashorn (JavaScript)

Oracle Nashorn

ECMASCript

- Jython エンジン スタンドアロンバージョンではない Jython エンジンを Scripting Module v2.0 で使用すると、アプリケーションは失敗します。以前の Scripting Module バージョンは、スタンドアロンバージョンではない Jython エンジンでも機能していました。Scripting Module v2.0 では ​`jython-standalone`​ バージョンを使用してください。詳細は、​[「Scripting Module XML と Maven のサポート」](https://docs.mulesoft.com/jp/scripting-module/latest/scripting-module-xml-maven)​を参照してください。 - Oracle Nashorn エンジン Oracle Nashorn (ECMASCript) エンジンをインストールまたは設定していないのに、Studio の設定タブに Oracle Nashorn エンジンが利用可能なオプションとして表示される場合は、以前にいずれかの JVM (Java Virtual Machine) バージョンでこのエンジンをインとして使用していたことを意味します。 ### [](#アップグレードの取り消し)アップグレードの取り消し 前のバージョンの Scripting Module に戻す必要がある場合は、Anypoint Studio に移動して以下を実行します。 1. プロジェクトの ​`pom.xml`​ ファイルで ​`mule-scripting-module`​ 連動関係バージョン ​`2.0.0`​ を以前のバージョンに戻し、使用しているエンジン連動関係を ​``​ セクションから削除します。 2. **\[Execute\]**​ タブに戻り、​**\[Engine (エンジン)\]**​ セクションでいずれかのデフォルトエンジンを選択します。 3. **\[Configuration XML (設定 XML)\]**​ タブで、選択済みのエンジン名も変更されていることを確認します。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Scripting Module リファレンス Scripting Module v2.0 Scripting Module は、スクリプト言語で作成されたカスタムロジックを実行します。 ## [](#設定)設定 * * * ### [](#Config)設定 デフォルト設定 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

## [](#操作)操作 ### [](#Execute)Execute `` エンジンと渡されたパラメーターに従ってスクリプトのコードを実行します。スクリプトでは、多くのバインド変数を使用できます。
名前 型 説明

payload (ペイロード)

Object (オブジェクト)

処理されたメッセージのペイロード。

dataType

メッセージペイロードのデータ型。

correlationId

String (文字列)

処理されたメッセージの correlationId。

属性

Map<String, Object>

処理された Mule メッセージの属性。

vars

Map<String, Object>

処理された現在の Mule イベントに設定されている変数。

メッセージ

処理されたメッセージ。

エラー

処理された Mule メッセージに関連付けられているエラー。

認証

認証に関する情報。

フロー

String (文字列)

現在のフローの名前。

log

ロガー

アプリケーションのログファイル ​MULE_HOME/logs/<app-name>.log​ に記録されるロガーオブジェクト。

結果

Object (オブジェクト)

スクリプトの実行結果を表す変数。

レジストリ

org.mule.runtime.api.artifact.Registry

レジストリオブジェクトを使用すると、Mule API 内の他のすべてのサービスにアクセスできます。

コードで暗黙的な結果が生成されない場合、実行結果で ​result​ 変数値を明示的に設定する必要があります。​「Scripting Module の概要」​に記載されているように、​対象変数​を設定していない限り、ペイロードはこの値を使用して設定されます。
#### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Code (コード)

String (文字列)

実行するスクリプトのソースコード。

x

Engine (エンジン)

String (文字列)

このスクリプトを実行するスクリプティングエンジンの名前。

x

パラメーター

Map<String, Object>

バインドとしてスクリプトに渡される変数。

Target Variable (対象変数)

String (文字列)

操作の出力を配置する変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価する式。この式の出力は対象変数に保存されます。

#[payload]

Scripting Module で使用するクラスをエクスポートする必要があります。そうしないと、​SCRIPTING:COMPILATION​ エラーで実行が失敗します。​「リソースのエクスポート方法」​を参照してください。
#### [](#スロー)スロー - SCRIPTING:COMPILATION - SCRIPTING:UNKNOWN\_ENGINE - SCRIPTING:EXECUTION ## [](#型)型 ### [](#AggregationAttributes)集約属性
項目 型 説明 デフォルト値 必須

Aggregation Id (集約 ID)

String (文字列)

イベントのメッセージの correlationId から取得される集約 ID。 アグリゲーターで correlationId 別に集約されない場合、この項目は、 現在の集約グループ。

x

First Item Arrival Time (最初の項目の到着時間)

Number (数値)

最初に集約された値が到着した時刻。

x

Last Item Arrival Time (最後の項目の到着時間)

Number (数値)

最後に集約された値が到着した時刻。

x

Is Aggregation Complete (集約完了)

Boolean (ブール)

集約の完了を示すブール値。

false

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー) エラーを生成する要求を実行するための再配信ポリシーを設定します。再配信ポリシーは、フロー内のあらゆる提供元に追加できます。
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

​REDELIVERY_EXHAUSTED​ エラーが返されるまでに、再配信された要求が処理に失敗できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

​true​ の場合、再配信されたメッセージの識別にセキュアハッシュアルゴリズムが使用されます。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

<b>[Use Secure Hash (セキュアハッシュを使用)]<b/> 項目が ​true​ の場合に使用するセキュアハッシュアルゴリズム。メッセージのペイロードが Java オブジェクトの場合、Mule ではこの値が無視され、ペイロードの ​hashCode()​ が返した値が返されます。

Id Expression (ID の式)

String (文字列)

メッセージがいつ再配信されたのかを判断する 1 つ以上の式。このプロパティは、<b>[Use Secure Hash (セキュアハッシュを使用)]</b> 項目が ​false​ の場合にのみ設定できます。

Object Store (オブジェクトストア)

ObjectStore

各メッセージの再配信カウンターが保存されるオブジェクトストアを設定します。

## [](#関連情報)関連情報 - [Scripting Module リリースノート](https://docs.mulesoft.com/jp/release-notes/mule-runtime/module-scripting) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Scripting Module リファレンス Scripting Module v2.1 Scripting Module は、スクリプト言語で作成されたカスタムロジックを実行します。 ## [](#設定)設定 * * * ### [](#Config)設定 デフォルト設定 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

## [](#操作)操作 ### [](#Execute)Execute `` エンジンと渡されたパラメーターに従ってスクリプトのコードを実行します。スクリプトでは、多くのバインド変数を使用できます。
名前 型 説明

payload (ペイロード)

Object (オブジェクト)

処理されたメッセージのペイロード。

dataType

メッセージペイロードのデータ型。

correlationId

String (文字列)

処理されたメッセージの correlationId。

属性

Map<String, Object>

処理された Mule メッセージの属性。

vars

Map<String, Object>

処理された現在の Mule イベントに設定されている変数。

メッセージ

処理されたメッセージ。

エラー

処理された Mule メッセージに関連付けられているエラー。

認証

認証に関する情報。

フロー

String (文字列)

現在のフローの名前。

log

ロガー

アプリケーションのログファイル ​MULE_HOME/logs/<app-name>.log​ に記録されるロガーオブジェクト。

結果

Object (オブジェクト)

スクリプトの実行結果を表す変数。

レジストリ

org.mule.runtime.api.artifact.Registry

レジストリオブジェクトを使用すると、Mule API 内の他のすべてのサービスにアクセスできます。

コードで暗黙的な結果が生成されない場合、実行結果で ​result​ 変数値を明示的に設定する必要があります。​「Scripting Module の概要」​に記載されているように、​対象変数​を設定していない限り、ペイロードはこの値を使用して設定されます。
#### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Code (コード)

String (文字列)

実行するスクリプトのソースコード。

x

Engine (エンジン)

String (文字列)

このスクリプトを実行するスクリプティングエンジンの名前。

x

パラメーター

Map<String, Object>

バインドとしてスクリプトに渡される変数。

Execution Mode (実行モード)

Enumeration (列挙)。次のいずれかになります。

  • AUTO

  • INTERPRETED

スクリプトを自動的にコンパイルするか強制的に解釈するかを判断します。​AUTO​ に設定するか指定しないと、モジュールはコンテキストを分析して適切なモードを判断します。​INTERPRETED​ に設定すると、モジュールは強制的に解釈モードにします。

AUTO

Target Variable (対象変数)

String (文字列)

操作の出力を配置する変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価する式。この式の出力は対象変数に保存されます。

#[payload]

Scripting Module で使用するクラスをエクスポートする必要があります。そうしないと、​SCRIPTING:COMPILATION​ エラーで実行が失敗します。​「リソースのエクスポート方法」​を参照してください。
#### [](#スロー)スロー - SCRIPTING:COMPILATION - SCRIPTING:UNKNOWN\_ENGINE - SCRIPTING:EXECUTION ## [](#型)型 ### [](#AggregationAttributes)集約属性
項目 型 説明 デフォルト値 必須

Aggregation Id (集約 ID)

String (文字列)

イベントのメッセージの correlationId から取得される集約 ID。 アグリゲーターで correlationId 別に集約されない場合、この項目は、 現在の集約グループ。

x

First Item Arrival Time (最初の項目の到着時間)

Number (数値)

最初に集約された値が到着した時刻。

x

Last Item Arrival Time (最後の項目の到着時間)

Number (数値)

最後に集約された値が到着した時刻。

x

Is Aggregation Complete (集約完了)

Boolean (ブール)

集約の完了を示すブール値。

false

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー) エラーを生成する要求を実行するための再配信ポリシーを設定します。再配信ポリシーは、フロー内のあらゆる提供元に追加できます。
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

​REDELIVERY_EXHAUSTED​ エラーが返されるまでに、再配信された要求が処理に失敗できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

​true​ の場合、再配信されたメッセージの識別にセキュアハッシュアルゴリズムが使用されます。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

<b>[Use Secure Hash (セキュアハッシュを使用)]<b/> 項目が ​true​ の場合に使用するセキュアハッシュアルゴリズム。メッセージのペイロードが Java オブジェクトの場合、Mule ではこの値が無視され、ペイロードの ​hashCode()​ が返した値が返されます。

Id Expression (ID の式)

String (文字列)

メッセージがいつ再配信されたのかを判断する 1 つ以上の式。このプロパティは、<b>[Use Secure Hash (セキュアハッシュを使用)]</b> 項目が ​false​ の場合にのみ設定できます。

Object Store (オブジェクトストア)

ObjectStore

各メッセージの再配信カウンターが保存されるオブジェクトストアを設定します。

## [](#関連情報)関連情報 - [Scripting Module リリースノート](https://docs.mulesoft.com/jp/release-notes/mule-runtime/module-scripting) - [MuleSoft ヘルプセンター](https://help.mulesoft.com)