HCL Commerce Enterprise

Création et enregistrement d'un fichier JSP de sérialisation pour l'élément de règle de tarification

Créez et enregistrez un fichier JSP de sérialisation qui recevra les éléments de création des tables PRELEMENT et PRELEMENTATTR pour votre élément de règle de tarification et les affichera dans l'interface utilisateur du Management Center. Les professionnels peuvent ensuite définir les propriétés de l'élément de règle de tarification lorsqu'ils créent une règle de tarification.

Avant de commencer

Consultez la rubrique suivante pour comprendre le format de la réponse XML renvoyée par le serveur :

Pourquoi et quand exécuter cette tâche

Lorsqu'un professionnel ouvre une règle de tarification, le fichier JSP de sérialisation parent, GetPriceRuleElements.jsp, appelle le fichier JSP de sérialisation de chaque élément de règle de tarification pour charger les données de la règle de tarification.

Si la définition d'objet de votre nouvel élément de règle de tarification inclut wcfChildObjectDefinitions ou wcfReferenceObjectDefinitions, vous devez créer un fichier JSP de sérialisation pour votre nouvel élément de règle de tarification ; autrement, vous pouvez utiliser le fichier JSP de sérialisation générique, SerializePriceRuleCommonElement.jsp, tel quel. Dans les deux cas, vous devez enregistrer le fichier JSP de sérialisation dans le fichier de configuration Spring pour personnalisation spring-ibm-price.xml. Initialement, ce fichier est vide et il est prioritaire sur tous les fichiers de configuration Spring.

Procédure

  1. Ouvrez HCL Commerce Developer et basculez vers la vue Explorateur d'entreprise.
  2. Si vous avez besoin d'un nouveau fichier JSP de sérialisation, suivez la procédure ci-dessous ; sinon, passez à l'étape 3:
    1. Créez un répertoire pour héberger votre nouveau fichier JSP.
      Utilisez une structure de répertoire similaire à l'exemple suivant :

      LOBTools/WebContent/jsp/your_company_name/price

    2. Créez un fichier JSP à l'aide de la syntaxe suivante : SerializePriceRulepricerule_element_name.jsp, par exemple, SerializePriceRuleRegistrationTimeCondition.jsp.
    3. Définissez le nouveau fichier JSP de sérialisation.
      Ci-dessous figure un exemple de fichier JSP de sérialisation pour un élément de règle de tarification :
      <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
      <%@ taglib uri="http://commerce.ibm.com/foundation" prefix="wcf"%>
      
      <object objectType="RegistrationTimeCondition"> 1
          <parent><object objectId="${element.parentElementIdentifier.name}"/></parent> 2a
          <elemTemplateName><wcf:cdata data="${element.elementTemplateIdentifier.externalIdentifier.name}"/></elemTemplateName>2b
          <elementName>${element.elementIdentifier.name}</elementName> 2c
          <sequence>${element.elementSequence}</sequence> 2d
          <c:forEach var="elementVariable" items="${element.elementAttribute}"> 3
              <${elementVariable.name}><wcf:cdata data="${elementVariable.value}"/></${elementVariable.name}>
          </c:forEach>
          <c:forEach var="userDataField" items="${element.userData.userDataField}"> 4
              <x_${userDataField.typedKey}><wcf:cdata data="${userDataField.typedValue}"/></x_${userDataField.typedKey}>
          </c:forEach>
      </object>

      Les lignes avec des renvois en noir sont décrites ci-dessous :

      • 1 La valeur objectType doit correspondre à la valeur objectType spécifiée dans la définition d'objet de cet élément de règle de tarification.
      • 2a-d Ces quatre éléments sont obligatoires : insérez les lignes de code exactement comme présenté dans l'exemple précédent, sans leur apporter aucune modification.
      • 3 L'élément <c:forEach> parcourt toutes les valeurs stockées pour l'élément de règle de tarification dans la table PRELEMENTATTR et renvoie tous leurs noms (dans elementVariable.name) et valeurs (dans elementVariable.value).
      • 4 L'élément <c:forEach> renvoie les éventuelles personnalisations du nom PriceRule (PriceRuleElement part) dans la zone des données utilisateur. Si vous avez personnalisé le Management Center pour ajouter UserData dans votre nom, cet élément garantit que ces données utilisateur sont converties dans l'objet du Management Center.

      Ce JSP doit également renvoyer les wcfChildObjectDefinitions et wcfReferenceObjectDefinitions éventuelles. Pour des exemples de fichiers JSP de sérialisation qui effectuent ceci, consultez un fichier JSP de sérialisation par défaut associé à un élément de règle de tarification similaire. Les fichiers par défaut sont nommés SerializePriceRulepricerule_element_name.jsp, par exemple, SerializePriceRuleCatalogConditionElement.jsp. Les fichiers par défaut sont stockés sous l'emplacement suivant :

      LOBTools/WebContent/jsp/commerce/price/restricted/serialize/

    4. Sauvegardez et fermez le nouveau fichier de sérialisation JSP.
  3. Ouvrez le fichier de configuration ,spring-ibm-price.xml.
    Ce fichier est stocké sous le chemin d'accès suivant :

    LOBTools/WebContent/WEB-INF

  4. Ajoutez un nouveau mappage d'action pour enregistrer le fichier de sérialisation JSP :
    • Si vous avez créé votre propre fichier de sérialisation JSP, votre mappage d'action doit respecter la syntaxe suivante :
      <action path="/SerializePriceRuleElement-objectType_value" 
          include="/jsp/your_company_name/price/name_of_serialization_jsp_file.jsp" />

      • objectType_value correspond à la valeur de l'attribut objectType défini dans la définition d'objet pour cet élément de règle de tarification
      • name_of_serialization_jsp_file est le nom que vous avez affecté à votre fichier JSP de sérialisation pour votre nouvel élément de règle de tarification lors d'une étape antérieure de cette procédure.
    • Si vous utilisez le fichier JSP de sérialisation générique, votre mappage d'action doit respecter la syntaxe suivante :
      <bean id="/SerializePriceRuleElement-objectType_value" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
          <property name="viewName" value="/jsp/commerce/price/restricted/serialize/SerializePriceRuleCommonElement.jsp"/>
      </bean>
    Ci-dessous figurent quelques conseils :
    • Si vous avez copié du code d'un fichier JSP de sérialisation existant, vous devez mettre à jour les chemins comme il se doit pour les fichiers JSP inclus.
    • Si vous modifiez votre fichier JSP de sérialisation, veillez à éditer le fichier GetPriceRuleElements.jsp. Vous n'avez pas besoin de modifier le fichier GetPriceRuleElements.jsp ; contentez-vous de le sauvegarder pour modifier l'horodatage de modification du fichier. Le fichier GetPriceRuleElements.jsp incluant les fichiers JSP de sérialisation, les modification que vous avez apportées à votre fichier JSP de sérialisation seront récupérées.
  5. Redémarrez le serveur de test HCL Commerce afin de rendre disponible la nouvelle configuration.