Grâce à Salesforce CPQ, il est possible d’améliorer la précision décimale utilisée lors du calcul des lignes de devis dans les paramètres généraux du package. Ce paramètre peut être mis à jour en suivant le chemin ci-dessous :
Configuration > Packages installés > Salesforce CPQ > Configurer | Tarification et calcul | Échelle de prix unitaires
Vous pouvez activer une précision décimale supplémentaire pour certains champs en modifiant le paramètre du package Échelle de prix unitaires pour avoir un nombre de décimales spécifique. Cela affectera le nombre de décimales des autres champs dans l’éditeur de ligne de devis(QLE). Dans Salesforce CPQ, Prix unitaire catalogue, Prix unitaire courant, Prix unitaire net et Remise supplémentaire peuvent être ajoutés à l’ensemble de champs de l’éditeur de ligne. Il est possible de confirmer visuellement qu’ils respectent le nombre de décimales défini dans Échelle de prix unitaires. Pour que cette précision soit reflétée dans Salesforce, voir Activer des décimales supplémentaires sur le prix.
Le nombre de décimales pour les champs dans le QLE ou sur les documents de devis respectera le paramètre au niveau du package même si la base de données enregistrera toutes les valeurs décimales. Pour comprendre comment la précision décimale est incluse dans la séquence de calcul native, voici une version simplifiée de la séquence de calcul :
Prix unitaire catalogue (ou Prix spécial SI le type de prix spécial n’est pas vide)
Prix partenaire
Prix unitaire net
Remarque : Les champs ci-dessus qui apparaissent en gras respectent les paramètres du package CPQ pour Échelle de prix unitaires.
Champs Prix unitaire
Chacun des champs Prix unitaire de la section précédente affichera une précision décimale supplémentaire dans l’éditeur de ligne ainsi que SBQQ__AdditionalDiscount__c. Ces valeurs seront stockées dans la base de données et quand le devis sera enregistré.
La modification de la valeur Échelle de prix unitaires dans les Paramètres de tarification et de calcul du package ne changera pas les définitions des champs affectés par ce paramètre en dehors de la page Visualforce Edit Lines (en anglais). Par exemple, SBQQ__CustomerPrice__c a une définition de champ avec une précision décimale de 2 (12,2). La valeur présentée à l’utilisateur sur l’enregistrement Ligne de devis respectera toujours cette définition de champ. Néanmoins, la valeur stockée dans la base de données sera alignée sur ce qui est défini pour l’échelle de prix unitaires dans les paramètres du package.
Gardez à l’esprit que dans Classic, toute modification et enregistrement dans un enregistrement sur la page des détails forcera tous les champs sur les présentations de page à avoir leurs valeurs tronquées pour respecter leur définition de champ. Si un champ ayant une précision supplémentaire est sur la présentation de page lorsqu’une opération de modification + enregistrement a lieu, il sera tronqué pour respecter la précision décimale définie du champ. S’il n’est pas sur la présentation, il ne sera pas tronqué lorsque l’enregistrement est modifié et enregistré sur la page des détails. Lightning Experience conservera le nombre de décimales lorsqu’une opération de modification + enregistrement a lieu.
Remises système
Lorsqu’il utilise des barèmes de remise (à terme ou de volume), un administrateur est autorisé à définir la précision décimale sur l’enregistrement Barème de remise. La précision définie sur l’enregistrement Barème de remise déterminera la précision avec laquelle le Montant de remise est calculé à partir du pourcentage défini sur le Niveau de remise associé. Si un Niveau de remise utilise une remise en montant au lieu d'une remise en %, la valeur définie dans le SBQQ__DiscountAmount__c sera utilisée.
Exemple :
Échelle de prix unitaires = 2
Prix catalogue = 5,32 $
Niveau de remise = 7 %
Échelle de prix du barème de remise = 4
Toutes les remises sont appliquées entre les prix unitaires sous la forme d'un montant. Le montant est calculé en multipliant le prix unitaire précédent par le pourcentage de remise et la précision du montant de remise est calculée en fonction de l’échelle de prix du barème de remise.
Remarque : Entre les prix unitaires courant et catalogue, notez que les remises sont calculées après avoir appliqué le multiplicateur au prorata au prix unitaire catalogue.
5,32 * ,07 = 0,3724 $
La valeur est ensuite soustraite du prix unitaire précédent :
5,32 - ,3724= 4,9476
Le prix unitaire est ensuite arrondi en fonction de l’échelle de prix unitaires définie dans l’organisation :
4,95 $
Prix par bloc
Les prix par bloc sont actuellement limités à deux décimales, car la page Visualforce « Modifier tout » qui permet de modifier les prix par bloc tronquera toute précision supplémentaire aux 2 décimales allouées dans le champ SBQQ__Price__c pour l’objet Prix par bloc.
Champs de remise saisis par l’utilisateur :
Dans le QLE, SBQQ__AdditionalDiscount__c aura une précision améliorée. Si SBQQ__Discount__c ou SBQQ__DiscountAmount__c est ajouté au QLE, ils ne respecteront pas une précision supplémentaire. Néanmoins, ils captureront la précision améliorée dans leurs valeurs de champ dans la base de données si SBQQ__AdditionalDiscount__c est utilisé pour calculer leur valeur.
Dans l’éditeur de ligne, SBQQ__PartnerDiscount__c et SBQQ__DistributorDiscount__c apparaissent sous la forme de champs de pourcentage (3,2) conformément à leurs définitions de champ. Ils n’affichent pas une précision supplémentaire lorsqu’une précision décimale augmentée est définie dans les paramètres du package, mais ils sont utilisés dans la séquence de calcul de façon à prendre en charge la précision décimale améliorée.
Lorsqu'il est utilisé comme pourcentage, SBQQ__AdditionalDiscount__c calculera d’abord un montant de remise en fonction de la précision décimale définie dans les paramètres du package géré. Ensuite, ce montant sera soustrait du Prix unitaire courant pour obtenir le Prix unitaire client. Si une Remise supplémentaire est appliquée sous la forme d'un montant, la valeur saisie par l’utilisateur sera arrondie à la précision définie dans l’échelle de prix unitaires et soustraite du Prix unitaire courant pour obtenir le Prix unitaire client.
Dans l’éditeur de ligne, SBQQ__PartnerDiscount__c et SBQQ__DistributorDiscount__c apparaissent sous la forme de champs de pourcentage (3,2) conformément à leurs définitions de champ. Ils n’affichent pas une précision supplémentaire lorsque une précision décimale accrue est définie dans les paramètres du package, mais ils sont utilisés dans la séquence de calcul d’une telle façon qu’ils prendront en charge la précision décimale améliorée.
Exemple de calcul d’une remise :
SBQQ__Discount__c (remise supplémentaire appliquée sous la forme d'un %), SBQQ__PartnerDiscount__c et SBQQ__DistributorDiscount__c sont tous appliqués de la même façon à leur étape respective dans la séquence de calcul.
Si SBQQ__RegularPrice__c équivaut à 10,9473, Échelle de prix unitaires à 4 et SBQQ__Discount__c à 5 %
Commencez par calculer le montant de remise en multipliant le prix unitaire précédent par le pourcentage de remise et en arrondissant la valeur en fonction de l’échelle de prix unitaires :
10,9473 $ * 0,05 = 0,547365 $
0,547365 $ est arrondi à 0,5474 $
Ensuite, cette valeur est soustraite du prix unitaire précédent pour obtenir le prix unitaire suivant dans la séquence de calcul :
10,9473 $ - 0,5474 $ = 10,3999 $
Donc SBQQ__CustomerPrice__c = 10,3999 $
Maintenir la précision décimale dans les commandes, modifications et renouvellements
Il convient de capturer une précision décimale améliorée dans les processus de commande, de modification et de renouvellement. L’objectif est de conserver l’échelle de prix unitaires définie dans le paramètre du package géré de façon uniforme dans le flux de données :
Produit commandé :
Champs d’actif :
Champs d’abonnement :
VOIR AUSSI :
Le champ numérique du type de données ne stocke pas plus de décimales que le nombre défini
Séquence de calcul d'un devis CPQ
000382046

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.