6.5 Script

ユーザーが作成し、Ops I上で実行されるJavaScriptファイルをカスタムスクリプトと呼びます。カスタムスクリプトは「クライアントサイドスクリプト」と「サーバーサイドスクリプト」に分類されます。
それぞれの特徴とユースケースは以下の通りです。

a. クライアントサイドスクリプト

ユーザーのブラウザー上で実行されるスクリプトです。クライアントサイドスクリプトには以下の種類があります。

【クライアントスクリプト(アクションのスクリプト)】

  • 特徴
    • UIの操作やカスタムテーブルの操作に使用される。
  • ユースケース
    • ユーザーの入力やワークフローの状態に基づいて、フォームのフィールドやボタンを動的に表示・非表示、または有効化・無効化する。
    • 保存前に、入力値をリアルタイムで検証し、コンテキストに沿ったヘルパーメッセージを表示する。
    • 関連するフィールドが変更された際に、依存するフィールド(例:優先度や期日)を自動計算する。
    • UIで選択された条件に基づいて、テーブルまたはビューのデータソースをフィルタリングし、更新する。
b. サーバーサイドスクリプト

Ops Iのサーバーで実行されるスクリプトです。サーバーサイドスクリプトには以下の種類があります。

【ビジネスロジックトリガーのスクリプト】

  • 特徴
    • イベント駆動型の処理に使用される。
  • ユースケース
    • チケット作成時に、チケットのカテゴリーなどから、担当者を自動で割り当てる。
    • チケットやナレッジ記事が作成・更新されたときに、外部システムが保有する情報を更新する。
    • カスタムテーブルのレコード追加・更新時に、別のテーブルに補足情報を追加・更新する。

メモメモ
クライアントサイドスクリプトとサーバーサイドスクリプトは、どちらもScriptのマニフェストによってOps Iに登録します。Scriptのマニフェストがどのマニフェストにincludeされるかによって、どちらのスクリプトとして動作するかが決まります。
例えば、UIのマニフェストにひもづくスクリプトはクライアントサイドスクリプトとして動作し、BusinessLogicTriggerのマニフェストにひもづくスクリプトはサーバーサイドスクリプトとして動作します。

以下にScript定義と定義例を示します。

(表)Script定義

キー デフォルト値 必須※ 説明
apiVersion: Yes APIバージョン
1.0を指定する。
kind: Yes scriptを指定する。
type: No resourceを指定する。
Ops Iの運用機能に追加する新しい定義であることを示す。
name: Yes Script定義の内部名
nameは以下のルールに従う必要がある。
  • 本マニフェストファイルのディレクトリ名を指定
  • 入力可能な文字は以下の通り
    • 半角英数字:
      a~z A~Z 0~9
    • 半角の特殊文字:
      _ . ( ) -
  • 先頭文字が半角英数字かアンダーバー(_)
  • その他の注意点は「マニフェストファイル作成時の注意」2~4を参照
label: Yes マニフェストファイルに記載する運用機能の表示名
includes: No このマニフェストファイルで利用する関連マニフェストファイルを記載
メモメモ
  • 記載するマニフェストファイルはこのマニフェストファイル登録前にOps Iに登録されている必要があります。
  • includesキーを指定することにより、他のマニフェストファイルで定義した内容を取り込むことができます。
- 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 サーバーサイドスクリプト