---
sourceDocument: Australie Finance et chaîne d’approvisionnement
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/source-to-pay-operations

 Release :

    - australia

ft:locale :

    - fr-FR

ft:publication_title :

    - Australie Finance et chaîne d’approvisionnement

ft:clusterId :

    - stpop

bundleId :

    - stpop

workflow :

    - Creator


---

# Exécuter le script correctif Activer la décimale

# Exécuter le script correctif pour activer les quantités décimales pour les services {#ariaid-title1}

* Rversion finale: Australia
* 
* Mis à jour 12 mars 2026
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute de lecture

Après la mise à niveau vers Yokohama Patch 12 ou Zurich Patch 6, si vous ne pouvez pas spécifier de quantités décimales pour les services, vous devez exécuter un script de correction en arrière-plan pour activer la prise en charge des quantités décimales.

## Avant de commencer

Rôle requis : sn_shop.procurement_administrator

## Pourquoi et quand exécuter cette tâche

Si vous avez effectué une mise à niveau vers Yokohama Patch 12 ou Zurich Patch 6 et que vous ne pouvez pas spécifier de quantités décimales pour les services, exécutez ce script à partir du module Scripts - Arrière-plan. Le script convertit le type de champ de quantité de nombre entier en décimale et met à jour l'échelle du champ à quatre décimales.

## Procédure

1. Accédez à la TousDéfinition du systèmeScripts - Arrière-plan.
2. Dans la section Exécuter le script (JavaScript exécuté sur le serveur), collez le code suivant :  

       (function() {
          var tableName = 'sn_spend_sdc_service_request_line';
          var columnName = 'new_purchased_quantity';
          if (pm.isZboot()) {
              return;
          }
          try {
              var updated = GlideFixStuff.fixTypeFromIntegerToDecimalCaseLineQuantityItem(tableName, columnName);
              if (!updated) {
                  gs.info('Cannot update type from integer to decimal for field ' + columnName);
                  return;
              }
              updateScale();
          } catch (ex) {
              gs.info('Cannot update type from integer to decimal with error ' + JSON.stringify(ex));
              return;
          }
          function updateScale() {
              var desiredScale = 4;
              var dictGR = new GlideRecord('sys_dictionary');
              var query = 'name=' + tableName + '^elementIN' + columnName;
              var fieldName;
              dictGR.addEncodedQuery(query);
              dictGR.query();
              if (dictGR.next()) {
                  try {
                      var attrbiuteArray = [];
                      var currentAttributes = dictGR.attributes;
                      if (currentAttributes != '') {
                          attrbiuteArray = currentAttributes.split(',');
                      }
                      var currentMaxLength = dictGR.max_length;
                      fieldName = dictGR.element;
                      var newMaxLength = currentMaxLength + desiredScale;
                      dictGR.max_length = newMaxLength;
                      attrbiuteArray.push("scale=" + desiredScale);
                      dictGR.attributes = attrbiuteArray.join(',');
                      dictGR.update();
                      dictGR.max_length = newMaxLength + 1;
                      dictGR.update();
                      gs.info('Updated max length twice for field ' + fieldName);
                  } catch (ex) {
                      gs.info('Cannot update scale attribute due to error : ' + JSON.stringify(ex));
                      gs.error('Error updating max length attribute for field {0}. No update performed.', fieldName);
                  }
              }
          }
       })();

3. Désélectionner la case à cocher Enregistrer pour la restauration ? .
4. Sélectionnez Exécuter le script.

