6.5 Script
ユーザーが作成し、Ops I上で実行されるJavaScriptファイルをカスタムスクリプトと呼びます。カスタムスクリプトは「クライアントサイドスクリプト」と「サーバーサイドスクリプト」に分類されます。
それぞれの特徴とユースケースは以下の通りです。
a. クライアントサイドスクリプト
ユーザーのブラウザー上で実行されるスクリプトです。クライアントサイドスクリプトには以下の種類があります。
【クライアントスクリプト(アクションのスクリプト)】
- 特徴
- UIの操作やカスタムテーブルの操作に使用される。
- ユースケース
- ユーザーの入力やワークフローの状態に基づいて、フォームのフィールドやボタンを動的に表示・非表示、または有効化・無効化する。
- 保存前に、入力値をリアルタイムで検証し、コンテキストに沿ったヘルパーメッセージを表示する。
- 関連するフィールドが変更された際に、依存するフィールド(例:優先度や期日)を自動計算する。
- UIで選択された条件に基づいて、テーブルまたはビューのデータソースをフィルタリングし、更新する。
b. サーバーサイドスクリプト
Ops Iのサーバーで実行されるスクリプトです。サーバーサイドスクリプトには以下の種類があります。
【ビジネスロジックトリガーのスクリプト】
- 特徴
- イベント駆動型の処理に使用される。
- ユースケース
- チケット作成時に、チケットのカテゴリーなどから、担当者を自動で割り当てる。
- チケットやナレッジ記事が作成・更新されたときに、外部システムが保有する情報を更新する。
- カスタムテーブルのレコード追加・更新時に、別のテーブルに補足情報を追加・更新する。
メモクライアントサイドスクリプトとサーバーサイドスクリプトは、どちらもScriptのマニフェストによってOps Iに登録します。Scriptのマニフェストがどのマニフェストにincludeされるかによって、どちらのスクリプトとして動作するかが決まります。
例えば、UIのマニフェストにひもづくスクリプトはクライアントサイドスクリプトとして動作し、BusinessLogicTriggerのマニフェストにひもづくスクリプトはサーバーサイドスクリプトとして動作します。
以下にScript定義と定義例を示します。
| キー | デフォルト値 | 必須※ | 説明 | |
|---|---|---|---|---|
| apiVersion: | Yes | APIバージョン 1.0を指定する。 |
||
| kind: | Yes | scriptを指定する。 | ||
| type: | No | resourceを指定する。 Ops Iの運用機能に追加する新しい定義であることを示す。 |
||
| name: | Yes | Script定義の内部名 nameは以下のルールに従う必要がある。
|
||
| label: | Yes | マニフェストファイルに記載する運用機能の表示名 | ||
| includes: | No | このマニフェストファイルで利用する関連マニフェストファイルを記載
メモ
|
||
| - kind: | Yes | 読み込むマニフェストファイルの種類 | ||
| name: | Yes | 読み込むマニフェストファイルの内部名 | ||
| description: | No | このマニフェストファイルに対する詳細説明 | ||
| actions: | Yes | アクションを定義 | ||
| - name: | Yes | アクション名 | ||
| file: | Yes | アクションの内容を記述したスクリプトファイルのパス スクリプトのマニフェストファイルが保存されているディレクトリが起点となる。 例) 作成したスクリプトをsample.jsとし、scriptのマニフェストファイルが保存されているディレクトリにsample.jsが保存されている場合、当該スクリプトのファイルパスは以下となる。 sample.js |
||
※入れ子関係にないキーの必須が「No」の場合は、定義が必須ではありません。入れ子関係にあるキーの場合は、下層キーの必須は、上層キーを設定している場合に適用されます。
<定義例>
apiVersion: 1.0
kind: script
type: resource
name: create_vm
label: create_vm
description: VM生成を行うカスタムスクリプトです。
actions:
- name: create_vm_action
file: create_vm_action.js
節構成
6.5.1 クライアントサイドスクリプト
6.5.2 サーバーサイドスクリプト