# シナリオ

シナリオ定義画面では、システムで運用されるシナリオを（作成/変更/削除/テスト）管理できます。

## プロパティ

- 名前
  - シナリオの名前を指定します。
  - 名前は一意である必要があります。
- 説明
- スケジュール [schedule](./crontab-editor.md)
- タイムゾーン
  - スケジュールが実行される基準タイムゾーンを設定します。
- 必須権限
  - シナリオを実行するための必須権限を設定します。
- アクティベーションフラグ
  - アプリケーションの起動時に自動的に開始するかどうかを指定します。
- 反復実行範囲（Iteration Scope）
  - 複数のドメインにわたって順次的にシナリオを実行するドメイン範囲を指定します。
  - **SELF**: 現在のドメインでのみシナリオを実行します。
  - **CHILDREN**: 現在のドメインの子ドメインでのみシナリオを実行します。
  - **SELF & CHILDREN**: 現在のドメインと子ドメインの両方でシナリオを実行します。
  - この機能はStartScenario操作にのみ適用され、RunScenario操作には影響しません。
  - 指定されたドメインに対して順次的にシナリオが実行され、適切な順序と依存関係管理が保証されます。
- TTL(タイムトゥーリブ)
  - シナリオの結果をキャッシュに保存し、設定されたTTL秒間保持します。
  - TTLが0より大きく設定されている場合、シナリオが実行されるたびにその結果をキャッシュに保存します。(RunScenario, StartScenario)
  - キャッシュのキーは、シナリオID" + "ドメイン" + "シナリオ呼び出しパラメータオブジェクト"の組み合わせで、呼び出しパラメータオブジェクトでハッシュキーを作成して記録します。
  - RunScenarioでシナリオが実行される場合、まず有効なキャッシュがあるかを確認し、あれば実際にシナリオを実行せず、キャッシュに保存された結果が返されます。
  - StartScenarioでシナリオが実行される場合、キャッシュの有無に関係なく実際にシナリオを実行し、その結果でキャッシュを更新します。
- 進行度（監視中にのみ表示される情報）
  - （現在のステップ番号 / シナリオの総ステップ数）％
  - メインシナリオを基準に、サーバーシナリオは単一のステップとして計算されます。
- ラウンド（監視中にのみ表示される情報）
  - 繰り返しシナリオの場合の現在の繰り返し回数を示します。
- メッセージ（監視中にのみ表示される情報）
  - シナリオインスタンスの最終状態に関連するメッセージ。

## 操作

- 監視を開始
  - [統合モニタリング](./integration-monitor.md)画面に移動します。
- シナリオをコピー
  - 選択したシナリオをコピーします。
- シナリオを保存
  - シナリオの変更内容を保存します。
  - 実行中のシナリオは変更できません。
- シナリオを削除
  - 選択したシナリオを削除します。
  - 実行中のシナリオは削除できません。
