---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/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) 所要時間：4分

これは、カート以外のレイアウトマクロを使用して、\[要求元：\] フィールドの下のチェックアウトに \[会社 (Company)\] フィールドを追加する例です。つまり、glide.sc.use_cart_layouts は <kbd class="ph userinput">false</kbd>です。

## 始める前に

必要なロール：admin

## このタスクについて

図 : 1. フィールドの要求元 ![]()

このフィールドは、そのフィールドの値をサービスカタログ要求の \[会社\] フィールドに渡します。

この例は、以下を前提としています。  
* この例は、2 ステップチェックアウトを使用するインスタンス用です。2 ステップチェックアウトが有効になっていない場合は、開始する前に有効にしてください。
* この例では、サービスカタログ要求フォームの \[会社\] フィールドに値を入力します。フィールドがフォームに表示されない場合は、開始する前にフォームを構成します。

## 手順

1. \[システム UI\] \> \[UI マクロ\] に移動し、\[servicecatalog_cart_template\] を選択します。
2. 非表示の変数が宣言されている箇所を見つけて、次の行を追加します。  

       <input type="HIDDEN" name="cart_id" id="cart_id" value="$[sc_cart.sys_id]" />

3. 要求元コードを生成する次のコードを探します。  

       <tr class="header">
       <td width = "30%">
         ${gs.getMessage('Requested for')}:
         </td>
         <td width="70%">
           <label for="requestor_location">${gs.getMessage('Deliver to')}:</label>
         </td>
       </tr>
       <tr><td>$[SP]</td> 
       </tr>
         <tr><td valign="top">
           <j2:if test="$[jvar_can_delta_rf == false]">
             $[sc_cart.requested_for.getDisplayValue()]
           </j2:if>
           <j2:if test="$[jvar_can_delta_rf != false]">
             <g2:catalog_requested_for />
           </j2:if>
         </td>
         <td>
           <textarea id="requestor_location" style="width:100%" rows="4"       name="requestor_location" wrap="soft" onChange="catDeliveryAddress('$[sc_cart.sys_id]', 'requestor_location');"> 
             $[sc_cart.delivery_address]
           </textarea>
         </td>
       </tr>
       <tr>
         <td>$[SP]</td>
       </tr>

4. 後で次のコードを追加します。  

       <tr class="header">
         <td colspan="2">Company</td>
       </tr>
       <tr>
         <td>$[SP]</td>
       </tr>
       <tr>
         <td colspan="2">
           <g2:ui_reference name="core_company" table="core_company" onchange="setCartValue()"/>
         </td>
       </tr>
       <tr>
         <td>$[SP]</td>
       </tr>

   注:  
   `ui_reference` マクロは参照フィールドを定義します。さまざまなフィールドタイプにいくつかのマクロがあります。これらのフィールドタイプの例は、\[システム UI\] -\> \[UI マクロ\]で確認できます。これらのマクロは先頭が「` ui_`」で始まります。この例では、作成される参照フィールドの名前は core_company です。
5. \[システム UI\] \> \[UI ページ\] に移動し、\[servicecatalog_checkout_one\] UI ページを選択します。
6. 次のスクリプトを \[クライアントスクリプト\] フィールドに追加します。  

       function setCartValue() { 
         var newField = gel('core_company'); 
         var myCart = gel('cart_id'); 
         var cart_item = new GlideRecord('sc_cart_item');
         cart_item.addQuery('cart', myCart.value);
         cart_item.query(); 
         if(cart_item.next()) {
           cart_item.hints = "<hints><entry key='sysparm_processing_hint' value='setfield:request.company=" + newField.value + "'/></hints>";
           cart_item.update(); 
         } 
       }

   この例では、参照フィールドは core_company と呼ばれ、要求に応じて入力されるフィールドは company です。異なるフィールドを使用する場合：
   * 次の行を探します。`var company = gel('core_company');`。次に、core_company をチェックアウトのフィールドの名前に置き換えます。
   * 先頭が「`cart_item.hints`」で始まる行で、「`request.company`」を要求チケットに応じて入力されるフィールドの名前に置き換えます。ここで、「`request`」は生成される要求であり、「`company`」はフィールドの名前です。
   {#t_AddFldSrvcCatCkout__ul_llx_2ln_kyb}

## タスクの結果

アイテムが注文されると、会社フィールドがカタログフォームに表示されます。


