---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://www.servicenow.com/docs/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# 注文ガイドの自動実行

# 注文ガイドの自動実行 {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：7分

サービスカタログ注文ガイドを使用すると、複数の注文アイテムを生成できる単一のサービスカタログ要求を作成できます。アドミニストレーターは注文ガイドを自動的に実行するように構成でき、サービスカタログ要求を手動で送信しなくてもワークフローまたはスクリプトから注文済みアイテムのセットを生成できます。アドミニストレーターは、注文ガイドの失敗を確認して再処理することもできます。

ユースケースとして、新しい従業員のオンボーディングワークフローで自動的に注文ガイドを実行し、その従業員のアイテムを注文できます。  
注:  
注文ガイド (つまり、最初のランディングページのオプション) ではなく、カタログアイテムのみを保存できます。

## スクリプトからの注文ガイドの実行 {#ariaid-title2}

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

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

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

### メソッドの概要

{#r_RunningOrderGuidesFromScripts__table_uzq_cdf_mp__entry__3}

| メソッド | リターン値 | 説明 |
|-|-|-|
| 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 を取得します。 |
[ ]

{#r_RunningOrderGuidesFromScripts__table_uzq_cdf_mp}

### スクリプトの例

このスクリプトは、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); } }

## ワークフローからの注文ガイドの実行 {#ariaid-title3}

より広範なワークフローベースのプロセスの一部として注文ガイドを含める場合は、ワークフローからの注文ガイドの実行が適しています。
たとえば、新しい従業員のオンボーディングワークフロー内のアクティビティで自動的に注文ガイドを実行し、その従業員のアイテムを注文できます。  
注:  
注文ガイドが自動的に実行されると、注文ガイドの UI ポリシーは適用されません。また、\[オプションを選択\] 画面のオプションは選択できないため、注文ガイドルールでこれらのオプションの合理的なデフォルトを定義して、処理の失敗を回避してください。  
ワークフローから注文ガイドを実行するには、\[スクリプト可能注文ガイド\] ワークフローアクティビティを使用します。{#r_RunningOrderGuidesFromWorkflows__table_kcr_hbf_mp__entry__2}

| フィールド | 説明 |
|-|-|
| 注文ガイド | このアクティビティが処理する注文ガイドの名前。たとえば、「サンプルの従業員オンボーディング IT」などです。 |
| スクリプト | 注文ガイドに情報を渡すスクリプトです。この情報は、<var class="keyword varname">answer</var> 変数に割り当てられた JSON エンコード文字列パラメーターとして送信されます。 スクリプトは次の要件を満たす必要があります。 * スクリプト内の変数の名前は、注文ガイド内で使用されている名前と一致する必要があります。たとえば、注文ガイドがルール条件で <var class="keyword varname">department</var> 変数を使用する場合、スクリプトは department パラメーターも渡す必要があります。 * opened_by と requested_for の両方のパラメーターを注文ガイドに渡す必要があり、その両方に、有効なユーザーレコードの sys_id 値が必要です。 {#r_RunningOrderGuidesFromWorkflows__ul_qsp_4bf_mp} |
[表 : 1. ワークフローからの注文ガイドの実行]

{#r_RunningOrderGuidesFromWorkflows__table_kcr_hbf_mp}

### 結果

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

### ワークフローの例

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

1. 以前に HR 変更レコードから生成された JSON 文字列を取得します。
2. その文字列に必須の opened_by および requested_for パラメーターを追加します。
3. 注文ガイドで処理する新しい文字列を送信します。

{#r_RunningOrderGuidesFromWorkflows__ol_lxn_ccf_mp}

    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);

## 注文ガイドの失敗の表示 {#ariaid-title4}

たとえば、実行中の注文ガイドが存在しない場合、注文ガイドの処理は失敗する可能性があります。注文ガイドの処理中にエラーが発生した場合、\[失敗した注文ガイド処理\] サブモジュールを使用して、エラーを確認して再処理できます。各失敗のレコードが作成されます。初期エラーの原因となったエラーを修正した後で、失敗した注文ガイドを再処理できます。

### このタスクについて

失敗が発生した場合、スクリプト可能注文ガイド失敗 \[sc_script_order_guide_failure\] テーブルで失敗レコードが作成されます。

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

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

### 手順

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

