4.5.6 ビジネスロジックトリガー

チケットの作成や更新などの操作を契機に、ユーザーが作成したスクリプト(JavaScriptファイル)をOps Iのサーバーサイドで実行できます。この機能を、ここでは「ビジネスロジックトリガー」と呼びます。またスクリプトが実行される契機となる操作を、ここでは「トリガー」と呼びます。スクリプトの詳細は「Script」を参照してください。
スクリプトは、トリガーの後に非同期で実行されます。
ビジネスロジックトリガーのマニフェストの詳細は「BusinessLogicTrigger」を参照してください。

ビジネスロジックトリガーを利用するユースケースを以下に示します。

  • チケット作成時に、チケットのカテゴリーなどから、担当者を自動で割り当てる。
  • チケットやナレッジ記事が作成・更新されたときに、外部システムが保有する情報を更新する。

【スクリプトの実行手順】

トリガーを設定しスクリプトを実行する手順は以下の通りです。

  1. 動作させるJavaScriptファイルを作成する。
  2. BusinessLogicTriggerのマニフェストファイルを作成し、JavaScriptファイルとひもづける。
  3. JavaScriptファイルとBusinessLogicTriggerマニフェストファイルをGitLabにpushし、Ops Iに登録する。

トリガーには、リソースと操作種別をそれぞれ指定できます。ただし、チケットの作成時には作業メモが作成されますが、作業メモの作成をトリガーとしたビジネスロジックトリガーは動作しません。トリガーの設定は、「BusinessLogicTrigger」の"resourceType"(リソース)と"(operation type)"(操作種別)を参照してください。

【スクリプトのログ】

スクリプトの実行結果をログで確認できます。ログを確認することで、ユーザーが作成したサーバーサイドスクリプトのデバッグや動作確認ができます。
ログを確認するには、Primitiveロール「script_logs_viewer」が割り当てられている必要があります。Primitiveロールの詳細は「Ops I上のロールとサポート機能の対応関係」を参照してください。
ログはダッシュボードアプリケーションで確認できます。詳細は「ダッシュボード」を参照してください。
また、ログはAPI「GET /api/v1/script-logs」でも取得できます。APIの詳細は「JP1 Cloud Service 運用統合 APIリファレンス」の「APIリファレンス詳細>標準提供API>標準提供API(v1)」のscript-logsを参照してください。

ログには以下の2種類があります。


注意事項注意事項

  • 複数のビジネスロジックトリガーが実行された場合、各スクリプトを実行する順序は保証されません。同一のレコードや外部システムのデータを更新する場合は、他の処理による更新を考慮して実装することを推奨します。
    (例:同一のレコードや外部システムのデータを更新する処理は1つのスクリプトに集約し、複数のスクリプトから同じデータを更新しないように実装する)
  • BusinessLogicTriggerのマニフェストファイルの"triggerType"に"async"が指定されている場合、スクリプトは非同期で実行されます。そのため、スクリプトが実行される時点では、対象レコードが他のユーザーや処理によって更新され、イベント発生時と異なっているおそれがあります。スクリプトでレコードを更新する場合は、スクリプト実行時の状態を確認し、他のユーザーや処理による更新内容を意図せず上書きしないように実装することを推奨します。
    (例:スクリプトでチケットの担当者の値を設定する場合、担当者が未設定の場合のみ設定するなど、スクリプト実行時の状態に応じて更新の要否を判断するように実装する)
  • ビジネスロジックトリガーのスクリプトを含むサーバーサイドスクリプトを定義する場合、複数のJavaScriptファイル利用について「サーバーサイドスクリプト定義時の注意点」を参照してください。
  • ビジネスロジックトリガーのスクリプトを定義する場合、再帰呼び出しについて「ビジネスロジックトリガー定義時の注意点」を参照してください。