# スクリプト

これは JavaScript 構文で書かれたスクリプトを実行し、その結果を返すタスクです。

## パラメータ

- script
  - JavaScript 構文で記述します。
  - グローバルオブジェクトは、対応する[シナリオコンテキスト](../concept/scenario-context.md)からのデータと変数を含むシンプルなオブジェクトです。つまり、スクリプト内では、シナリオの[スクリプト内蔵変数](../concept/script-internal-variables.md)から特別な修飾子なしで、または`this`アクセサを介してデータ、変数、ドメイン、ユーザー、lng 変数を使用できます。
  - タスクの実行結果は`return`構文を介して返されます。
  - スクリプト内のグ

ローバルオブジェクトはデータと変数、および他の[スクリプト内蔵変数](../concept/script-internal-variables.md)に制限されているため、システム関連の機能のほとんどは使用できないサンドボックス環境として考えてください。単純な操作を実装することをお勧めします。 - [Node Sandbox](https://medium.com/@devnullnor/a-secure-node-sandbox-f23b9fc9f2b0) - [vm2](https://github.com/patriksimek/vm2/blob/master/README.md)

## サンプルスクリプト

```
return data['step1'].map(record => {
  return {
    ...record,
    id: 'PREFIX-' + record.id
  }
})
```

```
return Math.floor(Number(this.data['step2']))
```

```
return this.data['step3'].map(record => {
  return {
    ...record,
    id: (this.variables.prefix || 'DEFAULT-') + record.id
  }
})
```
