Lors de la personnalisation d'un lien Créer
, vous pouvez définir un service destiné à initialiser le nouvel objet métier avec des valeurs de propriété et des objets enfants donnés.
Les liens Créer
sont ajoutés aux pages de magasin pour permettre à l'utilisateur professionnel de créer de nouveaux objets métier associés à la page en cours. Par exemple, si la page en cours contient un emplacement e-marketing, le lien Créer
permet à l'utilisateur professionnel de créer une activité Web pour cet emplacement. La nouvelle activité Web est initialisée avec l'emplacement e-Marketing adéquat. Cette initialisation est effectuée par le service de génération d'objet (wcfPopulateNewObjectService), associé à la définition d'objet de l'activité Web. L'ID principal de l'emplacement e-marketing est transmis au service de génération d'objet par le paramètre newObjectOption.marketingSpotId contenu dans l'URL CreateBusinessObject.
Pour initialiser un nouvel objet métier lancé par un lien Créer
, vous devez définir un service de génération d'objet pour cet objet métier. Vous devez en outre inclure les paramètres requis par le service de génération d'objet dans l'URL CreateBusinessObject.
Pour définir un service de génération d'objet, vous devez créer et enregistrer un fichier JSP qui renvoie un document XML contenant les valeurs des propriétés sérialisées et les objets enfants. Le document XML est analysé par la structure du Management Center, et le nouvel objet métier est initialisé avec les valeurs des propriétés sérialisées et les objets enfants.
Procédure
-
Ouvrez HCL Commerce Developer et basculez vers la vue Explorateur d'entreprise.
-
Créez le fichier JSP qui renvoie un document XML contenant les valeurs des propriétés sérialisées et les objets enfants :
-
Créez un répertoire pour stocker votre fichier JSP personnalisé dans le chemin suivant :
WCDE_installdir\workspace\LOBTools\WebContent\jsp\your_company_name\component_name\
Voici deux exemples :
- WCDE_installdir\workspace\LOBTools\WebContent\jsp\MyCompany\marketing\
- WCDE_installdir\workspace\LOBTools\WebContent\jsp\MyCompany\catalog\
-
Faites un clic droit sur le répertoire
component_name et sélectionnez .
-
Dans la zone Nom de fichier, entrez le nom du nouveau fichier JSP, en vous conformant au format suivant :
PopulateNewobject_name.jsp, par exemple, PopulateNewMarketingSpot.jsp ou PopulateNewWebActivity.jsp.
-
Cliquez sur Terminer.
-
Créez un fichier JSP possédant ces caractéristiques :
- Le fichier accepte les paramètres transmis par l'URL CreateBusinessObject.
- Il renvoie un document XML qui suit la syntaxe des objets du Management Center décrite à la rubrique Services de chargement.
Supposons que le lien
Créer d'un emplacement
e-marketing initialise le nouvel emplacement en remplissant automatiquement son nom dans le
Management Center. Pour pouvoir préremplir ce nom, l'URL CreateBusinessObject utilise le paramètre
NewObjectOption.marketingSpotName situé à l'avant-dernière ligne du fragment de code ci-dessous :
<c:url var="clickToCreateURL" value="/cmc/CreateBusinessObject" context="/">
<c:param name="toolId" value="marketingManagement"/>
<c:param name="storeId" value="${storeId}"/>
<c:param name="languageId" value="${langId}"/>
<c:param name="storeSelection" value="prompt"/>
<c:param name="objectType" value="EMarketingSpot"/>
<c:param name="newObjectOption.marketingSpotName" value="${emsName}"/>
</c:url>
Le fragment de code suivant représente le fichier JSP correspondant. Lorsque ce fichier est appelé, la valeur du paramètre newObjectOption de l'URL CreateBusinessObject est transmise au JSP à la ligne signalée par un 1 :
<?xml version="1.0" encoding="UTF-8"?>
<%@page contentType="text/xml;charset=UTF-8"%>
<%@ taglib uri="http://commerce.ibm.com/foundation" prefix="wcf"%>
<object>
<name><wcf:cdata data="${param.marketingSpotName}"/></name> 1
</object>
-
Enregistrez et fermez le fichier JSP.
-
Enregistrez le fichier JSP dans le fichier de configuration spring-extension.xml :
-
Développez .
-
Ouvrez le fichier spring-extension.xml dans un éditeur de texte.
-
Ajoutez votre fichier JSP à la configuration.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="/SerializePromotionElement-promotion_element_subtype"
class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<property name="viewName" value="pathToJSP"/>
</bean>
</beans>
-
Enregistrez et fermez le fichier de configuration de spring-extension.xml.
-
Définissez le service de génération d'objet dans le fichier de définition de l'objet métier cible :
-
Ouvrez le fichier de définition de l'objet métier cible.
Les fichiers de définition des objets métier livrés avec HCL Commerce sont dans le chemin suivant :
workspace_dir\LOBTools\WebContent\WEB-INF\src\xml\commerce\component\objectDefinitions\
-
Dans le fichier de définition d'objet, définissez le service de génération d'objet en tant qu'élément enfant de la définition d'objet. Utilisez le format suivant :
<PopulateNewObjectService url="pathName">
...
</PopulateNewObjectService>
La valeur du pathName est le chemin de l'action que vous avez défini dans le fichier spring-extension.xml à l'étape précédente.
Les fragments de code suivants montrent comment le service de génération d'objet est déclaré dans les définitions d'emplacement e-Marketing et d'objet d'activité Web pour prendre en charge la fonction d'édition en un clic :
- Pour les emplacements e-marketing :
<PopulateNewObjectService url = "/cmc/PopulateNewEMarketingSpot">
<ServiceParam name = "storeId"/>
</PopulateNewObjectService>
- Pour les activités Web :
<PopulateNewObjectService url = "/cmc/PopulateNewWebActivity">
<ServiceParam name = "storeId"/>
<ServiceParam name = "path" objectPath = "path" checkObjectDefinition = "true" propertyName = "objectType" optional = "true"/>
<ServiceParam name = "viewEMarketingSpot" objectPath = "path/viewEMarketingSpot" checkObjectDefinition = "true" propertyName = "objectType" optional = "true"/>
</PopulateNewObjectService>
-
Sauvegardez et fermez le fichier de définition d'objet.
Que faire ensuite
Lorsque vous avez terminé la personnalisation :