Cas d’utilisation : Utilisation du module d’extension Salesforce Quote Calculator pour intégrer des données depuis des devis et des lignes de CPQ devis Salesforce
Dans la version 1.7 ou antérieure du CPQ package Extension for Salesforce CPQ, utilisez le module d’extension Salesforce Quote Calculator pour analyser les informations étendues à partir d’une configuration et les mapper aux champs personnalisés.
En utilisant les informations étendues de l’objet CPQ ProductList avec le module d’extension Salesforce Quote Calculator (QCP), les données peuvent être transmises à Salesforce et utilisées pour manipuler les informations de devis et de ligne de CPQ devis.
ProductList.extended ne peut être rempli que d’une action avancée de produit, comme indiqué ici.
L’objet ProductList.extended prend la forme d’un objet JSON et accepte les paires clé :valeur. Dans l’exemple ci-dessus, nous passons par une chaîne de texte factice, « QCP Test Value », avec la clé newValue. ProductList.extended peut contenir des valeurs de champ, ainsi qu’un tableau d’objets JSON.
Lorsque ce produit est ajouté à la nomenclature (BOM), nous pouvons afficher ses informations associées dans l’objet personnalisé « Données BOM », qui est conservé sur la ligne de devis du produit configurable.
Pour exploiter ces informations étendues, nous devrons utiliser le plugin Calculateur de devis. Pour commencer, accédez à l’élément Scripts personnalisés dans Salesforce.
Ici, vous pouvez écrire un script pour exploiter les informations CPQ étendues et les utiliser pour manipuler les champs dans SFDC. Le script suivant est l’exemple de script utilisé dans cette instance.
export function onBeforeCalculate(quote, lines) {
var result;
var resultValue;
var product_code = "headlessItem3";
if (lines != null) {
lines.forEach(function (line) { //Parsing all quote lines to find BOM Data object
if(line.record["LGK__BomData__c"] != null){
var configJson = JSON.parse(line.record["LGK__BomData__c"]);
var itemsJson = configJson["items"]; //Create JSON object containing all items in BOM data
itemsJson.forEach(function(itemsLine){ //For each item in the BOM Data
if(itemsLine["productCode"] == product_code){ //Checking for item "headlessItem3"
result = itemsLine["extended"]; //Parses extended information to find "newValue"
resultValue = result["newValue"]; //Assigning keyed value of "newValue"
}
});
}
});
lines.forEach(function (line) { //For each line in the quote
if (line.record["SBQQ__ProductCode__c"] == product_code){ //Checking for the line item "headlessItem3"
line.record["Test_Text__c"] = resultValue; //Setting the quote line field "Test Text" with the value of resultValue
}
});
}
return Promise.resolve();
};
Tous les champs de devis ou de lignes de devis référencés par le script personnalisé doivent être explicitement définis dans les entrées appropriées de l’enregistrement de script personnalisé. Notre exemple de script référence trois champs de ligne de devis : LGK_BomData c, SBQQ_ProductCode c et Test_Text c.
Une fois votre script écrit, définissez-le dans les paramètres Salesforce CPQ. Procédez comme suit :
- Dans Configuration, recherchez « Packages installés » à l’aide du résultat rapide.
- À côté de « Salesforce CPQ », cliquez sur Configurer.
- Sélectionnez l’onglet Pricing and Calculation (Tarification et calcul).
- Si nécessaire, désélectionnez Use Legacy Calculator (Utiliser le calculateur hérité).
- Sélectionnez l’onglet Modules d’extension.
- Définissez votre script personnalisé dans le module d’extension Calculateur de devis, puis cliquez sur
Enregistrer.
Lorsque vous accédez à votre devis et déclenchez une action qui effectue un calcul dans SFDC (comme cliquer sur « Calculer »), le module d’extension Calculateur de devis s’exécute et modifie les champs comme indiqué.