カスタム関数を用いて、リクエストをキャンセルする方法
動作確認ビルド:14006
質問
ServiceDesk Plusに起票されたチケットのうち、
特定の条件を満たしたリクエストを自動的に「キャンセル」することはできますか。
回答
はい。リクエストのステータスを、自動的に「キャンセル(Cancelled)」に変更することが可能です。
リクエストのキャンセルを自動化することで、特定のメールやよく受信するアラートメールがリクエストとして起票される際に、
手動でリクエストをキャンセルする手間を省くことができます。
それにより、業務のさらなる効率化や、対応すべきリクエストを見逃してしまうことを防ぐことができます。
手順
(i)関数作成の下準備を行う
本ナレッジでは、「カスタム関数」を用いて、リクエストのステータスを自動的に「キャンセル(Cancelled)」に変更する方法を紹介します。
- [管理]>[開発者スペース]>[連携キー]で連携キーを作成します。
詳しくは、「連携キー」をご覧ください。 - [管理]>[一般設定]>[ポータル詳細設定]で、ページ下部に移動し、
「インターネットにアクセス可能なエイリアスURLを設定する」に設定しているエイリアスURLを確認します。
(ii)関数を作成する
- [管理]>[開発者スペース]>[カスタム関数]>[リクエスト]タブに移動します。
- [新規]をクリックし、新規カスタム関数を作成します。
- 「関数名」「説明」「API名」を設定します。
- 以下のスクリプトを貼り付けます。
requestId = requestObj.get("id");
headers = Map();headers.put("authtoken", "AuthTokenを設定");
input_data = {"request":{"status":{"name":"Cancelled"}}};
params = Map();params.put("input_data",input_data);
statusUpdate = invokeURL[
url : "URLを設定/api/v3/requests/" + requestId
type : PUT
headers : headers
parameters : params
];
result = statusUpdate.get("response_status");//リクエストの履歴に表示するメッセージ
returnObj = Collection();
if("success".equalsIgnoreCase(result.get("status"))) {
returnObj.insert("result":"Success");
returnObj.insert("message":"成功メッセージ");
}
else {
returnObj.insert("result":"Failure");
returnObj.insert("message":"失敗メッセージ");
}
return returnObj;・記述「"authtoken", "AuthTokenを設定"」の「AuthTokenを設定」欄に、(i)の手順1で設定した連携キー(APIキー)をコピー&ペーストしてください。
・記述「url : "URLを設定/api/v3/requests/" + requestId」の「URLを設定」欄に、(i)の手順2で確認したエイリアスURLを、http/httpsからコピー&ペーストしてください。
・記述「成功メッセージ/失敗メッセージ」には、それぞれ関数の処理に成功/失敗した際のメッセージを入力してください。
(iii)カスタムトリガーを作成する
- [管理]>[自動化]>[カスタムトリガー]>[リクエスト]タブに移動します。
- 追加したいトリガーグループ内で[トリガーを追加]をクリックします。
- 以下の画像を参考に「アクションを実行」「基準」セクションを設定します。
上記は一例です。
「トリガー名」「説明」や、トリガーを実行したい基準は、ご要望に合わせてお好みの値に設定することができます。 - 「アクション」セクションで、[カスタムアクションの選択]>[カスタム関数]をクリックします。
(ii)の手順3で設定した「関数名」と同様の関数を選択します。
動作の確認
設定した関数が実行されたかどうかは、[リクエスト]タブ →[該当のリクエストを表示]→[履歴]タブより確認できます。