注文ガイドの自動実行
サービスカタログ注文ガイドを使用すると、複数の注文アイテムを生成できる単一のサービスカタログ要求を作成できます。アドミニストレーターは注文ガイドを自動的に実行するように構成でき、サービスカタログ要求を手動で送信しなくてもワークフローまたはスクリプトから注文済みアイテムのセットを生成できます。アドミニストレーターは、注文ガイドの失敗を確認して再処理することもできます。
ユースケースとして、新しい従業員のオンボーディングワークフローで自動的に注文ガイドを実行し、その従業員のアイテムを注文できます。
スクリプトからの注文ガイドの実行
サーバーサイドスクリプトを使用した注文ガイドの実行は、ワークフローを使用する場合よりも複雑ですが、柔軟性が高く、ワークフロー以外の状況でも使用できます。
SNC.ScriptableOrderGuide Java クラスを使用して、スクリプトで注文ガイドを実行します。
SNC.ScriptableOrderGuide(String orderGuideId) コンストラクターを使用して、新しい ScriptableOrderGuide オブジェクトを作成します。
メソッドの概要
| メソッド | リターン値 | 説明 |
|---|---|---|
| process(String json) | ブーリアン | 注文ガイドの入力として JSON エンコード文字列パラメーターを使用して、注文ガイドを実行します。処理が成功したかどうかに応じて true または false が返されます。 注:
opened_by と requested_for の両方のパラメーターを注文ガイドに渡す必要があり、その両方に、有効なユーザーレコードの sys_id 値が必要です。 処理が成功し、注文ガイドによって要求が作成された場合は、getRequest() を使用して要求 GlideRecord を取得できます。 処理に失敗した場合は、getFailure() を使用して失敗した GlideRecord を取得し、reprocess を使用して再処理のためにスクリプトを送信できます。 |
| reprocess(GlideRecord failure) | ブーリアン | 失敗した GlideRecord に格納されている JSON エンコード文字列パラメーターを使用して、注文ガイドを再度実行します。 |
| getMessage() | 文字列 | 処理または再処理後に入力されたメッセージを取得します。 |
| getRequest() | GlideRecord | 要求 GlideRecord を取得します。 |
| getFailure() | GlideRecord | スクリプト可能注文ガイド失敗 [sc_script_order_guide_failure] テーブルから、失敗 GlideRecord を取得します。 |
スクリプトの例
// Creating the object to later be JSON encoded
var json = {"opened_by":"62826bf03710200044e0bfc8bcbe5df1","requested_for":"06826bf03710200044e0bfc8bcbe5d8a","department":"221f3db5c6112284009f4becd3039cc9"};
var now_GR = new GlideRecord("sc_cat_item_guide");
if (gr.get("name","IT Onboarding SOG")) {
var sog = new SNC.ScriptableOrderGuide(gr.getValue("sys_id"));
var result = sog.process(new JSON().encode(json));
if(!result)
gs.log("Processing the scriptable order guide failed with message: " + sog.getMessage());
else {
var request = sog.getRequest();
gs.log("Request created - " + request.sys_id); } }ワークフローからの注文ガイドの実行
より広範なワークフローベースのプロセスの一部として注文ガイドを含める場合は、ワークフローからの注文ガイドの実行が適しています。
| フィールド | 説明 |
|---|---|
| 注文ガイド | このアクティビティが処理する注文ガイドの名前。たとえば、「サンプルの従業員オンボーディング IT」などです。 |
| スクリプト | 注文ガイドに情報を渡すスクリプトです。この情報は、answer 変数に割り当てられた JSON エンコード文字列パラメーターとして送信されます。 スクリプトは次の要件を満たす必要があります。
|
結果
- 成功:アクティビティが注文ガイドを正常に処理しました。これは、要求が作成されたことを意味するものではありません。要求が作成された場合、要求 sys_id が、sc_request 変数の下のワークフロースクラッチパッドに追加されます。
- 失敗:注文ガイドの処理中にエラーが発生し、失敗レコードが作成されました。処理が失敗した場合は、失敗レコードを表示して編集できます。
ワークフローの例
サンプルの従業員オンボーディング IT ワークフローというワークフローでは、この例を使用して、オンボーディングプロセスの一部として新しい従業員の IT カタログアイテムを生成します。
- 以前に HR 変更レコードから生成された JSON 文字列を取得します。
- その文字列に必須の opened_by および requested_for パラメーターを追加します。
- 注文ガイドで処理する新しい文字列を送信します。
var parameters = new JSON().decode(current.payload);
// Need to amend the json object to include additional values.
parameters.opened_by = current.opened_by + "";
parameters.requested_for = current.opened_for + "";
answer = new JSON().encode(parameters);注文ガイドの失敗の表示
たとえば、実行中の注文ガイドが存在しない場合、注文ガイドの処理は失敗する可能性があります。注文ガイドの処理中にエラーが発生した場合、[失敗した注文ガイド処理] サブモジュールを使用して、エラーを確認して再処理できます。各失敗のレコードが作成されます。初期エラーの原因となったエラーを修正した後で、失敗した注文ガイドを再処理できます。
このタスクについて
失敗が発生した場合、スクリプト可能注文ガイド失敗 [sc_script_order_guide_failure] テーブルで失敗レコードが作成されます。
障害の詳細を表示するには、次の場所に移動します をクリックし、失敗レコードを開きます。
再処理の失敗:初期失敗の原因となったエラーを修正した場合は、失敗した注文ガイドを再処理できます。