Ajouter un champ à la validation du catalogue de services

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 2 minutes de lecture
  • Il s’agit d’un exemple d’ajout d’un champ Société à la validation sous le champ Demandé pour à l’aide de macros de mise en page autres que celles du panier, c’est-à-dire glide.sc.use_cart_layouts que la valeur est faux.

    Avant de commencer

    Rôle requis : admin

    Pourquoi et quand exécuter cette tâche

    Figure 1. Demandé pour le champ

    Ce champ transmettra ensuite la valeur de ce champ au champ Société de la demande de Catalogue de services.

    Cet exemple fait les hypothèses suivantes.

    • Cet exemple concerne une instance utilisant la validation en deux étapes. Si la validation en deux étapes n’est pas activée, activez-la avant de commencer.
    • Cet exemple renseigne le champ Société du formulaire Demande de Catalogue de services. Si le champ n’apparaît pas sur le formulaire, configurez le formulaire avant de commencer.

    Procédure

    1. Accédez à Interface utilisateur du système > Macros d’interface utilisateur et sélectionnez servicecatalog_cart_template.
    2. Recherchez où il y a des variables cachées déclarées et ajoutez la ligne suivante :
      <input type="HIDDEN" name="cart_id" id="cart_id" value="$[sc_cart.sys_id]" />
    3. Recherchez le code suivant, qui génère le code Demandé pour :
      <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. Ajoutez ensuite le code suivant :
      <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>
      Remarque :
      La macro « ui_reference » définit un champ de référence. Il existe plusieurs macros pour différents types de champs. Vous pouvez voir des exemples de ces types de champs sous Interface utilisateur du système > Macros d’interface utilisateur. Ces macros commencent par « ui_ ». Pour cet exemple, le champ de référence créé est nommé core_company.
    5. Accédez maintenant à l’interface utilisateur du système > aux pages de l’interface utilisateur et sélectionnez la page de l’interface utilisateur servicecatalog_checkout_one.
    6. Ajoutez le script suivant au champ Script client .
      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(); 
        } 
      }

      Dans cet exemple, le champ de référence a été appelé core_company et le champ renseigné dans la demande est entreprise. Si différents champs sont utilisés :

      • Trouvez cette ligne : var company = gel('core_company') ; et remplacez core_company par le nom du champ dans la validation.
      • Dans la ligne qui commence par « cart_item.hints », remplacez « request.company » par le nom du champ à renseigner sur le ticket de demande, où « request » correspond à la demande générée et « company » au nom du champ.

    Résultats

    Lorsqu’un élément est commandé, le champ Société apparaît sur le formulaire Catalogue :

    Champ ajouté à la validation du catalogue de services