---
sourceDocument: Australie Gestion de la relation client pour les ventes
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/order-management

 Release :

    - australia

ft:locale :

    - fr-FR

ft:publication_title :

    - Australie Gestion de la relation client pour les ventes

ft:clusterId :

    - omgmt

bundleId :

    - omgmt

workflow :

    - Customer and Industry


---

# CPQ Référence du langage de script

# CPQ Référence du langage de script {#ariaid-title1}

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

Affichez les opérateurs, les objets et les mots-clés pris en CPQ charge, ainsi que des informations sur la conversion de type, la vérification de type, les scripts alternatifs pour les opérations non prises en charge et l'accès aux propriétés des objets.
CPQ utilise un langage de type JavaScript pour modifier dynamiquement la valeur des champs et des données BOM via des règles et des enrichissements. JavaScript est un langage complexe construit sur près de trente ans, et bien que nous ne soyons pas en mesure de reproduire toutes les fonctionnalités qu'un développeur attendrait normalement en codant, CPQ le scripting reste un outil puissant pour aider à la configuration dynamique des produits.

Les capacités du scripting ne cessent de CPQ s'étendre. Revenez pour voir les fonctionnalités les plus récentes.

## Opérateurs pris en charge {#cpq-logik-io-scripting-language-reference__suported_operators}

Opérateurs arithmétiques :

+
:   Addition

-
:   Soustraction

\*
:   Multiplication

/
:   Division

%
:   Module

++
:   Incrément

--
:   Décrément

Opérateurs de chaîne :

+
:   Concaténation

+=
:   Affectation d'ajout

Opérateurs d'affectation :

=
:   Affectation

+=
:   Affectation d'ajout

-=
:   Affectation de soustraction

Opérateurs de comparaison :

==
:   Égal à

===
:   Valeur égale et type égal

!=
:   Non égal à

!==
:   Valeur ni type différent

\>
:   Supérieur à

\<
:   Inférieur à

\>=
:   Supérieur ou égal à

\<=
:   Inférieur ou égal à

Opérateurs logiques :

\&\&
:   Et

\|\|
:   Ou

## Objets pris en charge {#cpq-logik-io-scripting-language-reference__supported_objects}

Chaque objet pris en charge peut être déclaré avec ce qui suit :

\[ \]
:   Tableau

" "
:   Chaîne

( )
:   Numéro

vrai \| faux
:   Booléen

{ }, nouvelle carte ( )
:   Carte

nouvelle date ( )
:   Date

`non défini`, `NaN` et `nul` ne sont pas pris en charge.  
Remarque :  
Impossible de renvoyer les objets Date, mais ils peuvent être référencés et manipulés à l'aide des API Date du menu Aide.

## Mots clés pris en charge {#cpq-logik-io-scripting-language-reference__supported_keywords}

* `var`
* `Soit`
* `Const`
* `nouveau`
* `if`
* `sinon si`
* `sinon`
* `pour`
* `pour/de`
* `rendre`

{#cpq-logik-io-scripting-language-reference__ul_j4r_z42_dhc}

Nous ne prenons pas en charge `les boucles while` ou inconditionnelles `avec``pause`, en raison du risque que des boucles infinies arrêtent les performances.

Nous ne prenons pas en charge les fonctions, car le script lui-même doit être suffisamment petit pour être considéré comme une seule fonction. Si votre script est long avec de nombreuses conditions et variables, envisagez de créer une table gérée et d'utiliser une requête de table. Pour plus d'informations sur l'utilisation des tables gérées et des requêtes de table, consultez [Chargeur de matrice : chargement de table CSV](https://servicenow-prod.fluidtopics.net/rEFq2~tcpiL6ECvEX~Keyw "Utilisez le chargeur de matrice pour importer et gérer des données de table dans CPQ. Définissez des schémas de table, préparez les fichiers CSV correspondants et chargez-les pour remplir ou mettre à jour les tables à utiliser dans des règles, des recherches et des configurations, sans redéploiement requis pour les mises à jour de données.") et [Réduction des requêtes de table](https://servicenow-prod.fluidtopics.net/FCmYJbbWeLNLWkSOtLBX8w "Découvrez comment réduire le nombre de requêtes pour maximiser les performances.").

## Scripts alternatifs pour les opérations non prises en charge {#cpq-logik-io-scripting-language-reference__alternative_scripts_for_unsupported_operations}

Affectation multiplication et division (/= ou \*=) : `nombre = nombre * otherNumber ;`, `nombre = nombre / otherNumber ;`

Exponentiation (x\*\*y) : `Math.pow(x, y) ;`

## Conversion de type {#cpq-logik-io-scripting-language-reference__type_conversion}

Convertir les tableaux en chaînes : `Array.toString()`

Convertir les nombres en chaînes : `[nombre] + << >>`

Convertir des chaînes numériques en nombres : `[chaîne] - 0`  
Remarque :  
Les chaînes ne peuvent pas être traitées comme des tableaux, mais `.length` fonctionne pour les chaînes.

## Vérification de type {#cpq-logik-io-scripting-language-reference__type_checking}

Ce qui suit renvoie une valeur booléenne indiquant si une entrée est un nombre : `LGK.isNumber(123)`

## Accéder aux propriétés d'un objet {#cpq-logik-io-scripting-language-reference__accessing_object_properties}

Vous pouvez accéder aux propriétés des objets de carte tels que `cfgRequest` de deux manières.

    objectName.propertyName
    //or
    objectName["propertyName"]

Ceci est utile pour remplacer de grandes quantités de code répétitif par les résultats d'une recherche dans une table, car le texte \<\< propertyName \>\> pourrait être remplacé par une variable.

Par exemple, imaginons un plan auquel les champs suivants sont associés et une table gérée nommée shipstatebooleantest.

* shipState
* booléen 1
* booléen 2
* booléen 3
* quantity1
* quantity2
* quantity3

{#cpq-logik-io-scripting-language-reference__ul_i5d_fq2_dhc}

|-|-|-|-|-|
| id | shipState | trueBoolean | quantitéTest | Quantité de lignes |
| 1 | Arizona (États-Unis) | booléen 1 | quantité1 | 1 |
| 2 | Maine (États-Unis) | booléen 2 | quantité2 | 2 |
| 3 | California | booléen 3 | quantité3 | 3 |
[Tableau 1. ShipStateBooleanTest]

{#cpq-logik-io-scripting-language-reference__table_l5q_jr2_dhc}

Au lieu d'avoir une instruction `if` identique qui vérifie ce qu'est `shipState` et de définir les valeurs booléennes et les quantités en conséquence, vous pouvez la remplacer par une seule instruction `if` qui définit les valeurs en fonction des résultats d'une recherche dans une table.

Dans le script Configurer/Reconfigurer, si le champ `shipState` a une valeur, les champs renvoyés par la fonction de recherche sont définis. Si le champ `shipState` est vide, tous les champs booléens et de quantité sont définis.

    if (cfgRequest.shipState.value != "" && cfgRequest.shipState.value != null){
    	var fieldMapping = lookup("Select trueBoolean,quantityTest,rowQuantity from shipstatebooleantest where shipState = :value", { "value": cfgRequest.shipState.value });
    	console.log(fieldMapping);
    	if (fieldMapping != []){
    		cfgRequest[fieldMapping[0].trueBoolean].set("value",true);
    		cfgRequest[fieldMapping[0].quantityTest].set("value",fieldMapping[0].rowQuantity);
    	}
    }
    else{
    	var fieldMapping = lookup("Select trueBoolean,quantityTest,rowQuantity from shipstatebooleantest");
      console.log(fieldMapping);
      for (var row of fieldMapping) {
     		cfgRequest[row.trueBoolean].set("value",true);
     		cfgRequest[row.quantityTest].set("value",row.rowQuantity);
      }
    } 

Si votre instance a besoin de CPQ fonctionnalités non décrites ici, contactez-support@logik.io avec votre cas d'utilisation.
**Concepts associés**   

* [Utilisation des commentaires et de la console pour déboguer les scripts](https://servicenow-prod.fluidtopics.net/0eXEfodGFn1dJ5k7cviyBQ "Découvrez comment les commentaires et la console peuvent vous aider à déboguer vos scripts.")
* [Scripting : vérification de la première configuration et des configurations suivantes](https://servicenow-prod.fluidtopics.net/r_fpxPSWkUN6rEyqhgvDlg "Vous pouvez tester si une configuration est en cours d’initialisation ou de reconfiguration, et définir le code à exécuter en fonction du résultat.")  
**Référence associée**   

* [Exemples de scripts](https://servicenow-prod.fluidtopics.net/ng0P3iz1MJAFxdI1Gq7~Aw "Affichez une sélection d’exemples de scripts couramment demandés.")

