HCL Commerce Enterprise

Création du récapitulatif de l'élément de règle de tarification

Si vous désirez afficher un texte récapitulatif au-dessous de l'élément de règle de tarification dans la zone de travail du générateur de règle de tarification, créez une nouvelle extension pour ce récapitulatif. Dans le générateur de règle de tarification, les professionnels peuvent lire ce texte récapitulatif pour comprendre rapidement comment un élément est utilisé dans une règle de tarification.

Pourquoi et quand exécuter cette tâche

Voici un exemple de récapitulatif de condition tel qu'il serait affiché à un professionnel dans la zone de travail du générateur de règle de tarification. Le récapitulatif est le texte suivant : Le client s'est inscrit avant le 31 janvier 2010 :
Exemple de récapitulatif d'élément de règle de tarification

Généralement, le résumé peut être soit un texte statique, soit une combinaison de texte statique et dynamique. Dans l'exemple précédent, tout le texte est statique, excepté la date du jour. Cette date est modifiée de manière dynamique en fonction de la date que le professionnel spécifie dans les propriétés de la condition. Vous pouvez consulter d'autres exemples de récapitulatif en examinant les autres actions et conditions de règle de tarification dans le Centre de gestion.

Vous pouvez envisager d'utiliser le récapitulatif d'un fichier existant, un élément de règle de tarification similaire comme point de départ de votre nouvel élément de règle de tarification. Les fichiers récapitulatifs existants sont stockés à l'emplacement suivant :

LOBTools/WebContent/WEB-INF/src/xml/commerce/price/restricted/propertiesViews/priceRuleBuilder/

Procédure

  1. Ouvrez HCL Commerce Developer et basculez vers la vue Explorateur d'entreprise.
  2. Créez un répertoire pour héberger votre nouveau fichier récapitulatif.
    Utilisez une structure de répertoire similaire à l'exemple suivant :

    LOBTools/WebContent/WEB-INF/src/xml/your_company_name/price/propertiesViews/priceRuleBuilder/

  3. Créez un fichier XML à l'aide de la syntaxe suivante : pricerule_element_nameSummary.xml, par exemple, RegistrationTimeConditionSummary.xml.
  4. Définissez le nouveau récapitulatif.
    Le code ayant généré la classe de récapitulatif de l'exemple précédent est le suivant, en fonction du fichier DateConditionFlowElementSummary.xml par défaut :
    <Definitions>
    	<FlowElementSummary classDefinition="true" definitionName="cmc/price/RegistrationTimeConditionElementSummary">
    		<dependency localName="priceResources" moduleName="cmc/price/PriceResources"/>
    		<dependency localName="DateUtil" moduleName="cmc/foundation/DateUtil"/>
    		<dependency localName="PreferenceManager" moduleName="cmc/shell/PreferenceManager"/>
    		<FlowSummaryParam name="startDate" propertyName="startDate"/>
    		<FlowSummaryParam name="endDate" propertyName="endDate"/>
    		
    		<!--- @keywords private -->
    		<handler name="oninit">
    			<![CDATA[
    			this.updateSummaryDel.connect(priceResources.Singleton.startDate, "onstring");
    			this.updateSummaryDel.connect(priceResources.Singleton.endDate, "onstring");
    			this.updateSummaryDel.connect(PreferenceManager.Singleton, "preferenceChanged");
    			]]>
    		</handler>
    
    		<method args="e" name="updateSummary">
    			<![CDATA[
    			if (typeof(e) == "undefined") e = null;
    			var summaryText = "";
    			var tooltipText = "";
    			var startDate = this.resolvedParams.startDate;
    			var endDate = this.resolvedParams.endDate;
    			var sDate = DateUtil.Singleton.parse(startDate, DateUtil.Singleton.DATE_TIME_FORMAT);
    			startDate = DateUtil.Singleton.formatUI(sDate, DateUtil.Singleton.UI_DATE_TIME_FORMAT);
    			var eDate = DateUtil.Singleton.parse(endDate, DateUtil.Singleton.DATE_TIME_FORMAT);
    			endDate = DateUtil.Singleton.formatUI(eDate, DateUtil.Singleton.UI_DATE_TIME_FORMAT);
    			if (startDate != "") {
    				summaryText = priceResources.Singleton.replaceValues("summary_startDate", [startDate]);
    				tooltipText = priceResources.Singleton.replaceValues("summary_startDate", [startDate]);
    			}
    			if (endDate != "") {
    				summaryText += ", " + priceResources.Singleton.replaceValues("summary_endDate", [endDate]);
    				tooltipText += ", " + priceResources.Singleton.replaceValues("summary_endDate", [endDate]);
    			}
    			this.setSummaryText(summaryText);
    			this.setTooltipText(tooltipText);
    			]]>
    		</method>
    		
    	</FlowElementSummary>
    </Definitions>
    Où :
    • La méthode updateSummary définit le texte récapitulatif pour l'élément de règle de tarification.
    • La méthode updateSummary doit appeler la méthode setSummaryText avec le texte récapitulatif.
  5. Enregistrez ce nouveau récapitulatif en tant que définition d'objet.

    Créer un fichier RegistrationTimeFlowElementObjectDefinition.xml similaire aux fichiers de définition d'objet dans LOBTools/WebContent/WEB-INF/src/xml/commerce/price/objectDefinitions/priceRuleBuilder/