서비스 카탈로그 체크 아웃에 필드 추가

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기4분
  • 다음은 카트에 담지 않은 레이아웃 매크로를 사용하여 요청 대상 필드 아래의 체크아웃에 회사 필드를 추가하는 예입니다. 즉, glide.sc.use_cart_layoutsFalse입니다.

    시작하기 전에

    필요한 역할: 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. Requested For 코드를 생성하는 다음 코드를 찾습니다.
      <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' 매크로는 참조 필드를 정의합니다. 다양한 필드 유형에 대한 여러 매크로가 있습니다. System 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'를 생성 중인 요청이고 'company'가 필드 이름인 요청 티켓에 채울 필드의 이름으로 바꿉니다.

    결과

    항목을 주문하면 카탈로그 양식에 회사 필드가 나타납니다.

    서비스 카탈로그 체크 아웃에 추가된 필드