Adicionar um campo ao check-out do catálogo de serviços

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 2 min. de leitura
  • Este é um exemplo de como adicionar um campo Empresa ao check-out abaixo do campo Solicitado para usando macros de layout que não sejam de carrinho, ou seja, glide.sc.use_cart_layouts é falso.

    Antes de Iniciar

    Função necessária: administrador

    Por Que e Quando Desempenhar Esta Tarefa

    Figura 1. Solicitado para o campo

    Este campo passará o valor desse campo para o campo Empresa da Solicitação do catálogo de serviços.

    Este exemplo faz as seguintes suposições.

    • Este exemplo é para uma instância que usa a finalização de compra em duas etapas. Se a finalização de compra em duas etapas não estiver habilitada, habilite-a antes de começar.
    • Este exemplo preenche o campo Empresa no formulário de Solicitação do catálogo de serviços. Se o campo não aparecer no formulário, configure o formulário antes de iniciar.

    Procedimento

    1. Acesse IU do sistema > Macros de IU e selecione servicecatalog_cart_template.
    2. Encontre onde há variáveis ocultas declaradas e adicione a seguinte linha:
      <input type="HIDDEN" name="cart_id" id="cart_id" value="$[sc_cart.sys_id]" />
    3. Encontre o código a seguir, que gera o código Solicitado para :
      <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. Adicione o seguinte código posteriormente:
      <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>
      Nota:
      A macro "ui_reference" define um campo de referência. Existem várias macros para diferentes tipos de campo. Você pode ver exemplos desses tipos de campo em IU do sistema -> Macros de IU. Essas macros começam com 'ui_'. Para este exemplo, o campo de referência criado é chamado core_company.
    5. Agora, navegue até IU do sistema > Páginas de IU e selecione a Página de IU servicecatalog_checkout_one.
    6. Adicione o script a seguir ao campo Script do cliente.
      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(); 
        } 
      }

      Para este exemplo, o campo de referência foi chamado core_companye o campo que está sendo preenchido na solicitação é company. Se campos diferentes forem usados:

      • Encontre esta linha: var company =gel('core_company'); e substitua core_company pelo nome do campo no check-out.
      • Na linha que começa com "cart_item.hints", substitua "request.company" pelo nome do campo a ser preenchido no tíquete de solicitação, em que "solicitação" é a solicitação que está sendo gerada e "empresa" é o nome do campo.

    Resultado

    Quando um item é solicitado, o campo da empresa aparece no formulário Catálogo:

    Campo adicionado ao check-out do catálogo de serviços