> ## 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.

# arc:info

> arc:info を使用して、カラム定義、入力パラメータ、スクリプトが生成する出力など、スクリプトのメタデータを記述します。

export const siteNameShort = "Arc";

`arc:info` キーワードを使用して、スクリプトのメタデータを説明します。この情報は、ユーザー入力の基本的なエラーチェックの実装、およびデフォルト値を設定するためにアプリケーションによって使われます。`arc:info` キーワードには、次を含めることができます：

* カラム定義
* スクリプトが受け入れるインプットパラメータ
* スクリプトが生成するアウトプット

## スクリプトパラメータ

スクリプト自体に次のパラメータを定義できます：

* **desc\[ription]**：スクリプトの説明。説明が指定されていない場合は、スクリプト名が使われます。
* **title**：スクリプトのタイトル。タイトルが指定されていない場合は、スクリプト名が使われます。
* **methods**：スクリプトに対して実行できるHTTP メソッド。SELECT、INSERT、UPDATE、およびDELETE は、HTTP GET、POST、PUT/PATCH/MERGE、およびDELETE にそれぞれ対応します。
* **url**：スクリプト作成者のURL。
* **keywords**：スクリプトを説明するキーワード。

## インプット、アウトプット、およびカラムパラメータ

`arc:info` には、スクリプトのインプットとアウトプットに加えて、カラムを定義する追加のパラメータがスコープ内に含まれています。

<Note>これらのパラメータは{siteNameShort}Script キーワードではありません。これらは`arc:info` の追加情報です。</Note>

### Input

インプットパラメータは、スクリプトへのインプットを説明するために使われます。

```xml theme={null}
<input
  name="name"
  desc="インプットパラメータの例"
  default="defValue"
  req="true"
  values="value1, value2, value3"
  xs:type="string" 
/>
```

* **name**：インプット名。英数字の文字列で、以下を含めることもできます：
  * `#` インプットが複数の値を持つことができることを示します
  * `myprefix:*` 同じ接頭辞を持つインプットのセットを示します
  * `*` 任意のインプットパラメータを示します
* **desc\[ription]**：インプットの短い説明。
* **xs:type**：インプットのデータ型。使用できる値は、`string`、`int`、`double`、`datetime`、および`boolean` です。
* **def\[ault]**：スクリプト呼び出しでインプット値が提供されていない場合に使用するデフォルト値。
* **key**：インプットが主キーかどうか。
* **req\[uired]**：インプットが必須かどうか。必須インプットが提供されず、デフォルト値が定義されていない場合には、エンジンはエラーをスローします。使用できる値は`true` および`false` です。
* **values**：インプットに許容された値のカンマ区切りのリスト。指定されている場合、指定されたインプットが許容された値のいずれかに一致しない場合は、エンジンはエラーをスローします。
* **alias**：インプットのエイリアス。
* **other**：`other:` で始まるアトリビュートで追加の情報を提供します。これらのプロパティは、オペレーション固有となる可能性があります。

### Output

アウトプットパラメータは、オペレーションのアウトプットを説明します。ただし、これらはアプリケーションには無視されます。これは、オペレーションのアウトプットが、情報ブロックで定義されている内容とは無関係であり得ることを意味します。

```xml theme={null}
<output  name="Id" 
         desc="レコードの一意の識別子。"
         xs:type="string"
         other:xPath="content/properties/Id" 
/>
```

* **name**：アウトプット名。`myprefix:*` は同一の接頭辞を含むアウトプットのセットを意味し、`*` は任意のアウトプットパラメータを意味します。
* **xs:type**：アウトプットのデータ型。使用できる値は、`string`、`int`、`double`、`datetime`、および`boolean` です。
* **desc\[ription]**：アウトプットの短い説明。
* **columnsize**：文字列の最大文字数、もしくは数値アウトプットの桁精度。（桁精度とは、桁数です。）
* **other**：`other:` で始まるアトリビュートでアウトプットについて追加の情報を提供します。例えば、`other:xPath` はローカルまたはリモートリソースのノードにXPath を指定します。XPath は`RepeatElement` からの相対パスとすることができます。

## 例

`After Receive` イベントへのインプットについて説明します：

```xml theme={null}
<arc:info title="After Receive"  desc="このイベントはファイルを受信した後に発生します。">
  <input name="Filename"         desc="送信されたファイルの名前。" />
  <input name="FilePath"         desc="受信されたファイルのパス。" />
  <input name="MessageId"        desc="トランスミッションのId。" />
  <input name="ErrorMessage"     desc="エラーが発生した場合は、エラーメッセージが表示されます。" />
</arc:info>
```

## 関連項目

* [arc:script](./op-arc-script)：スクリプトブロックを作成する。
* [arc:call](./op-arc-call)：スクリプトまたはオペレーションを呼び出す。
* [arc:set](./op-arc-set)：アイテムにアトリビュートを設定する。
