注文ガイドの自動実行

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む7読むのに数分
  • サービスカタログ注文ガイドを使用すると、複数の注文アイテムを生成できる単一のサービスカタログ要求を作成できます。管理者は注文ガイドを自動的に実行するように構成でき、サービスカタログ要求を手動で送信しなくてもワークフローまたはスクリプトから注文済みアイテムのセットを生成できます。管理者は、注文ガイドの失敗を確認して再処理することもできます。

    ユースケースとして、新しい従業員のオンボーディングワークフローで自動的に注文ガイドを実行し、その従業員のアイテムを注文できます。

    注:
    注文ガイド (つまり、最初のランディングページのオプション) ではなく、カタログアイテムのみを保存できます。

    スクリプトからの注文ガイドの実行

    サーバーサイドスクリプトを使用した注文ガイドの実行は、ワークフローを使用する場合よりも複雑ですが、柔軟性が高く、ワークフロー以外の状況でも使用できます。

    たとえば、UI アクションまたはサーバーサイドのビジネスルールで注文ガイドスクリプトを使用できます。
    注:
    注文ガイドが自動的に実行されると、注文ガイドの UI ポリシーは適用されません。また、[オプションを選択] 画面のオプションは選択できないため、注文ガイドルールでこれらのオプションの合理的なデフォルトを定義して、処理の失敗を回避してください。

    SNC.ScriptableOrderGuide Java クラスを使用して、スクリプトで注文ガイドを実行します。

    SNC.ScriptableOrderGuide(String orderGuideId) コンストラクターを使用して、新しい ScriptableOrderGuide オブジェクトを作成します。

    メソッドの概要

    メソッド リターン値 説明
    process(String json) ブーリアン 注文ガイドの入力として JSON エンコード文字列パラメーターを使用して、注文ガイドを実行します。処理が成功したかどうかに応じて true または false が返されます。
    注:
    opened_byrequested_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 を取得します。

    スクリプトの例

    このスクリプトは、IT Onboarding SOG と呼ばれる注文ガイドを処理します。
    // 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); } }

    ワークフローからの注文ガイドの実行

    より広範なワークフローベースのプロセスの一部として注文ガイドを含める場合は、ワークフローからの注文ガイドの実行が適しています。

    たとえば、新しい従業員のオンボーディングワークフロー内のアクティビティで自動的に注文ガイドを実行し、その従業員のアイテムを注文できます。
    注:
    注文ガイドが自動的に実行されると、注文ガイドの UI ポリシーは適用されません。また、[オプションを選択] 画面のオプションは選択できないため、注文ガイドルールでこれらのオプションの合理的なデフォルトを定義して、処理の失敗を回避してください。
    ワークフローから注文ガイドを実行するには、[スクリプト可能注文ガイド] ワークフローアクティビティを使用します。
    表 : 1. ワークフローからの注文ガイドの実行
    フィールド 説明
    注文ガイド このアクティビティが処理する注文ガイドの名前。たとえば、「サンプルの従業員オンボーディング IT」などです。
    スクリプト 注文ガイドに情報を渡すスクリプトです。この情報は、answer 変数に割り当てられた JSON エンコード文字列パラメーターとして送信されます。
    スクリプトは次の要件を満たす必要があります。
    • スクリプト内の変数の名前は、注文ガイド内で使用されている名前と一致する必要があります。たとえば、注文ガイドがルール条件で department 変数を使用する場合、スクリプトは department パラメーターも渡す必要があります。
    • opened_byrequested_for の両方のパラメーターを注文ガイドに渡す必要があり、その両方に、有効なユーザーレコードの sys_id 値が必要です。

    結果

    • 成功:アクティビティが注文ガイドを正常に処理しました。これは、要求が作成されたことを意味するものではありません。要求が作成された場合、要求 sys_id が、sc_request 変数の下のワークフロースクラッチパッドに追加されます。
    • 失敗:注文ガイドの処理中にエラーが発生し、失敗レコードが作成されました。処理が失敗した場合は、失敗レコードを表示して編集できます。

    ワークフローの例

    サンプルの従業員オンボーディング IT ワークフローというワークフローでは、この例を使用して、オンボーディングプロセスの一部として新しい従業員の IT カタログアイテムを生成します。

    アクティビティは、このスクリプトを使用して次のことを行います。
    1. 以前に HR 変更レコードから生成された JSON 文字列を取得します。
    2. その文字列に必須の opened_by および requested_for パラメーターを追加します。
    3. 注文ガイドで処理する新しい文字列を送信します。
    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] テーブルで失敗レコードが作成されます。

    障害の詳細を表示するには、次に移動します。 サービスカタログ > カタログ管理 > 失敗した注文ガイド処理をクリックし、失敗レコードを開きます。

    再処理の失敗

    初期エラーの原因となったエラーを修正した場合は、失敗した注文ガイドを再処理できます。

    手順

    1. 移動先 サービスカタログ > カタログ管理 > 失敗した注文ガイド処理.
    2. 失敗レコードを開きます。
    3. [再処理] 関連リンクをクリックします。
      1 つ以上の失敗を再処理するには、次のようにします。
      1. 移動先 サービスカタログ > カタログ管理 > 失敗した注文ガイド処理.
      2. 再処理する 1 つ以上のレコードの横にあるチェックボックスをオンにします。
      3. [アクション] 選択リストから [再処理] を選択します。