> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# スクリプティング

> ArcScript とPython を含む、CData Arc のスクリプティング機能の概要。

export const siteNameShort = "Arc";

export const siteName = "CData Arc";

{siteName} は、[フロー](../flows/flows)ページで設定されたコネクタを通じて、複雑なデータ統合ユースケースを処理するようにデザインされています。ただし、一部のエッジケースでは、スクリプトを使用して{siteNameShort} 機能セットを拡張する必要がある場合があります。{siteNameShort} には2つのスクリプト言語があります：

* [{siteNameShort}Script](./arcscript)—ワークフローの自動化、データの変換、およびコネクタの動作のカスタマイズを行うために使用される、シンプルなXML ベースのコマンドを使用したスクリプト言語。
* [Python](./python-scripting)—幅広いプラットフォームや業界で、データの処理、ワークフローの自動化、およびカスタムアプリケーションの構築に使用されるプログラミング言語。

スクリプトを使用して、ファイルの編集（コンテンツ、ヘッダー、ファイル名など）、外部メッセージフローのトリガー、標準形式に容易にフィットしないカスタムデータのモデル化、外部スクリプトやプロセスの実行などを行うことができます。このセクションでは、言語としての{siteNameShort}Script の概要と、サポートされている値フォーマッタ、キーワード、オペレーションについて、例を挙げて詳しく説明します。

## スクリプティングフック

{siteNameShort} は3つの主要なフックをスクリプト言語に公開しています。すべてのコネクタの[イベント](#イベントスクリプティング)、専用の[Script コネクタ](../connectors/script)、および[XML Map コネクタ](../connectors/xml-map/xml-map)の[カスタムスクリプト](../connectors/xml-map/xml-map-advanced#custom-scripts)オプションです。

### イベントスクリプティング

各コネクタは、ファイルの処理中に特定のタイミングでカスタムスクリプトを実行する機会を提供します。これらはイベントと呼ばれます。

* `送信前`イベントは、コネクタがファイルを送信 / 処理するための準備を完全に整えた後で、送信 / 処理が実際に行われる前に発生します。

* `送信後`イベントは、コネクタがファイルを送信した後に発生します。このイベントは、アプリケーションの外部にファイルを送信するコネクタ（リモートサーバーにファイルをアップロードするなど）にのみ適用されます。

* `受信後`イベントは、コネクタが新しいファイルを作成した後に発生します。この新しく作成されたファイルは、外部ソースからファイルを受信した結果（AS2 経由でメッセージを受信するなど）、またはすでに{siteNameShort} フロー内にあるファイルを変更または変換した結果（例えば、EDI ファイルをXML に変換すると新しいXML ファイルが作成されます）である可能性があります。

例えば、AS2 経由で受信したファイルにカスタムヘッダーを追加する必要がある場合があります。ヘッダーの値を決定してファイルにヘッダーを追加するロジックを{siteNameShort}Script に記述し、このスクリプトをファイルの受信を担うAS2 コネクタの`受信後`イベントに設定できます。

<Note>イベントスクリプトを使用して、フローに直接ファイルを作成したり、フローを通じてファイルの内容を変更したりすることはできません。</Note>

#### イベントでのエラーハンドリング

イベントスクリプトの実行は、ファイルの送受信が成功したときにトリガーされるため、スクリプトでスローされたエラーは送受信操作のステータスに影響しません。このため、イベントでのスクリプティングは、成功が保証されているか、全体のフローに影響を与えずに失敗できるスクリプトに制限する必要があります。

スクリプトの例外によってファイルの処理が停止するようにするには、次のセクションで説明する専用の[Script コネクタ](#script-コネクタ)にスクリプトを移動します。Script コネクタを使用すると、エラーを[アクティビティページ](../getting-started/administration/activity)に記録したり、失敗したオペレーションに対して{siteNameShort} の**再試行**機能を使用したりすることも可能です。

### Script コネクタ

{siteNameShort} には、カスタムスクリプトを実行するための専用コネクタが含まれています。ファイルをコネクタに渡すことで（他のコネクタと同じ方法で）フロー内の[Script コネクタ](../connectors/script)をトリガーしたり、**受信**[オートメーション設定](../connectors/script#automation-settings)を使用して、指定した間隔に従って自動的に実行させることができます。

Script コネクタは、{siteNameShort}Script でカスタムロジックを実行するための最も柔軟な方法です。さらに、スクリプトの実行が別のコネクタのイベントで設定されるのではなく、専用のコネクタを使用して視覚的に表わされると、{siteNameShort} フローを理解および保守しやすくなります。

Script コネクタは、`push` キーワードを使用してアウトプットファイルを生成したり、アウトプットを生成せずにロジックを実行したりできます。

### XML Map コネクタ

[XML Map コネクタ](../connectors/xml-map/xml-map)は、XML をある構造から別の構造に変換するビジュアルデザイナーを提供します。XML Map デザイナーの主な使い方は、要素をソースツリーから宛先ツリーにドラッグ＆ドロップする方法です。このシンプルなアプローチは、マッピング中に拡張可能なカスタム処理をサポートするためのスクリプティングの概念で強化されています。

XML Map コネクタの[ノード値エディタ](../mapping/mapping-node-value-editor)は、{siteNameShort}Script の[フォーマッタ](./value-formatters/formatters)を使用して、マッピング中にデータを動的に変更およびフォーマットします。これらの式には、変数の設定やオペレーションの呼び出しなど、スクリプティングの他のアスペクトは必要ありません。

XML Map コネクタには、特定の要素をマッピングするための[カスタムスクリプト](../connectors/xml-map/xml-map-advanced#custom-scripts)エディタもあります。すべての{siteNameShort}Script 機能はカスタムスクリプトで利用可能で、マッピング中の任意のビジネスロジックをサポートします。これらのスクリプトには、スクリプトの実行終了までに`result.text` 属性が出力値（マップされたXML 要素に設定される値）に設定されるという独自の要件があります。
