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

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기4분
  • 이것은 카트가 아닌 레이아웃 매크로를 사용하여 요청 대상 필드 아래의 체크 아웃에 회사 필드를 추가하는 예입니다. glide.sc.use_cart_layouts 즉, false입니다.

    시작하기 전에

    필요한 역할: 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' 매크로는 참조 필드를 정의합니다. 다양한 필드 유형에 대한 여러 매크로가 있습니다. 이러한 필드 유형의 예는 시스템 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라고 하며 요청에 채워지는 필드는 회사입니다. 다른 필드를 사용하는 경우:

      • var company = gel('core_company'); 줄을 찾아 core_company 체크 아웃의 필드 이름으로 바꿉니다.
      • "cart_item.hints"로 시작하는 줄에서 "request.company"를 요청 티켓에 채울 필드의 이름으로 바꿉니다. 여기서 "request"는 생성 중인 요청이고 "company"는 필드의 이름입니다.

    결과

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

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