HCL Commerce Enterprise

Création de la commande de tâche d'un élément de règle de tarification

Créez une interface de commande de tâche et sa classe d'implémentation associée pour votre nouvel élément de règle de tarification. Cette commande de tâche effectue le travail de l'élément de règle de tarification et valide les paramètres.

Avant de commencer

Consultez les rubriques suivantes pour vous assurer de bien comprendre les commandes de tâche des éléments de élément de règle de tarification, ainsi que la classe et l'interface appropriées :

Pourquoi et quand exécuter cette tâche

La commande de tâche de l'élément de règle de tarification doit être une classe qui implémente l'interface PriceRuleElementCmd et doit étendre la classe PriceRuleElementCmdImpl.

Procédure

  1. Ouvrez HCL Commerce Developer et basculez vers la vue Explorateur d'entreprise.
  2. Créez un module pour les fichiers de votre commande de tâche :
    1. Naviguez jusqu'à WebSphereCommerceServerExtensionsLogic > src.
    2. Cliquez avec le bouton droit de la souris sur le dossier src, puis cliquez sur Nouveau > Module.
    3. Dans la zone Nom, entrez :

      com.your_company_name.price.rule.commands.element

      Assurez-vous que ce nom de module correspond à celui spécifié dans le XML d'exécution lorsque vous avez créé la définition de modèle d'élément de règle de tarification : voir le paramètre name de l'élément <class>.

    4. Cliquez sur Terminer.
  3. Dans le nouveau module, créez une classe d'interface pour votre commande de tâche d'élément de règle de tarification étendant l'interface PriceRuleElementCmd.

    Assurez-vous que ce nom de classe correspond à celui spécifié dans le XML d'exécution lorsque vous avez créé la définition de modèle d'élément de règle de tarification : voir le paramètre name de l'élément <class>.

    Voici un exemple de commande de tâche pour une condition qui détermine si le client s'est inscrit à une date spécifique, avant cette date ou après, afin de savoir s'il peut bénéficier de prix spéciaux :

    package com.mycompany.commerce.price.rule.commands.element;
    import com.ibm.commerce.price.rule.commands.element.PriceRuleElementCmd;
    public interface RegistrationTimeConditionElementCmd extends PriceRuleElementCmd {
    	public final static String defaultCommandClassName =
    		RegistrationTimeConditionElementCmdImpl.class.getName();
    }
  4. Dans le nouveau module, créez une implémentation de commande de tâche étendant la classe PriceRuleElementCmdImpl. Cette commande de tâche doit implémenter l'interface que vous avez définie à l'étape précédente. Donnez à la classe un nom qui utilise cette syntaxe : pricerule_element_nameElementCmdImple ; par exemple, RegistrationTimeConditionElementCmdImpl.

    Pour les conditions et les actions, cette implémentation de commande de tâche doit implémenter la méthode performExecute. Elle peut également implémenter la méthode validateParameters afin de valider que l'élément comporte tous les paramètres d'interface utilisateur requis.

  5. Pour tout message d'erreur côté serveur dans la commande de tâche, créez une classe de clé de message :
    1. Naviguez jusqu'à WebSphereCommerceServerExtensionsLogic > src.
    2. Cliquez avec le bouton droit de la souris sur le dossier src, puis cliquez sur Nouveau > Module.
    3. Dans la zone Nom, entrez :

      com.your_company_name.price.rule.logging

    4. Cliquez sur Terminer.
    5. Dans le nouveau module, créez un fichier de classe qui contiendra les clés de message. Par exemple, CustomPriceRuleMessageKeys.java.
      Voici un exemple de ce type de classe :
      package com.mycompany.commerce.price.rule.logging;
      
      public class CustomPriceRuleMessageKeys {
      
      public final static String _ERR_NEW_REGISTERED_TIME_IS_MISSING = "_ERR_NEW_REGISTERED_TIME_IS_MISSING";
      
      }
    6. Sauvegardez le fichier de classe.
  6. Créez un fichier de propriétés pour définir le texte du message d'erreur côté serveur :
    1. Naviguez jusqu'à WebSphereCommerceServerExtensionsLogic > src.
    2. Cliquez avec le bouton droit de la souris sur le dossier src, puis cliquez sur Nouveau > Module.
    3. Dans la zone Nom, entrez :

      com.your_company_name.price.rule.properties

    4. Cliquez sur Terminer.
    5. Dans le nouveau module, créez un fichier de propriétés pour définir le texte du message.

      Utilisez un nom similaire à ce qui suit : WcPriceMessages.properties

      Voici un exemple de fichier de propriétés :

      _ERR_NEW_REGISTERED_TIME_IS_MISSING=Specify a date and time in the Date and time field.
    6. Enregistrez le fichier des propriétés.