Fragment de code pour l'ajout d'un lien Créer

Pour ajouter un lien Créer directement à une page de magasin ou à la fenêtre en incrustation d'un aperçu de magasin, vous devez utiliser un fragment de code spécifique. Ce fragment construit une URL CreateBusinessObject destinée au Management Center pour un type d'objet métier spécifique, par exemple un emplacement e-marketing ou une activité Web. Vous pouvez également définir des valeurs pour les zones que vous souhaitez préremplir dans la vue Propriétés du nouvel objet métier.

Paramètres des liens Créer

Le lien Créer doit contenir un ensemble de paramètres qui fournissent au Management Center les informations relatives au type d'objet métier à créer. Vous devez définir les valeurs des variables en italiques :
<c:url var = "clickToCreateURL" value = "/cmc/CreateBusinessObject" context = "/">
    <c:param name = "toolId" value = "toolId"/>
    <c:param name = "storeId" value = "storeId"/>
    <c:param name = "languageId" value = "langId"/>
    <c:param name = "storeSelection" value = "storeSelection"/>
    <c:param name = "objectType" value = "objectType"/>
    <c:param name = "newObjectOption.keyPropertyName" value = "prefilledValue"/>
    ....
    <c:param name = "newObjectOption.keyPropertyName" value = "prefilledValue"/>
</c:url>
<a href="javascript:void(0)" onclick="parent.callManagementCenter('<wcf:out escapeFormat="js" value="${clickToCreateURL}"/>');">Create</a>

Les variables ont la signification suivante :

toolId
ID de l'outil du Centre de gestion dans lequel l'objet métier est géré. La fonction d'édition en un clic utilise cet ID pour ouvrir l'outil correspondant lorsque le professionnel clique sur le lien. Par exemple, catalogManagement est l'ID de l'outil Catalogues, et marketingManagement est l'ID de l'outil Marketing.

Vous pouvez trouver l'ID de l'outil dans le fichier ApplicationMenuItems.def, qui définit tous les éléments de menu du Centre de gestion :

WCDE_installdir/workspace/LOBTools/WebContent/config/commerce/shell/ApplicationMenuItems.def

Ainsi, dans le fichier ApplicationMenuItems.def, l'ID de l'outil Catalogues est défini dans le paramètre id de la ligne de code qui figure en gras :

<ApplicationMenuItem
    actionName = "openBusinessObjectEditor"
    activeIconSrc = "catalogActiveTabIcon"
    displayName = "${shellResourceBundle.catalogManagementDisplayName}"
    id = "catalogManagement"
    inactiveIconSrc = "catalogInactiveTabIcon"
    toolDefinitionName = "catCatalogManagement"
    usage = "IBM_ViewCatalogTool"/>
storeId
ID du magasin prévisualisé. La fonction d'édition en un clic utilise cet ID pour déterminer le magasin à sélectionner dans le Centre de gestion. Vous pouvez utiliser la variable d'ID de magasin ${storeId} pour extraire l'ID du magasin et le transmettre à l'URL d'édition en un clic.

HCL Commerce DeveloperHCL Commerce EnterpriseDans le cas d'un site étendu, la valeur de storeSelection est également utilisée pour identifier le magasin à sélectionner dans le Centre de gestion.

langId
ID de langue du magasin prévisualisé. Vous pouvez utiliser la variable d'ID de langue ${langId} pour extraire l'ID de la langue en cours et le transmettre à l'URL d'édition en un clic.
HCL Commerce DeveloperHCL Commerce EnterprisestoreSelection
HCL Commerce DeveloperHCL Commerce EnterprisePour un site étendu, préférence de magasin pour le lien. Ce paramètre définit le type de magasin à sélectionner dans le Management Center lorsque le professionnel clique sur le lien. Les valeurs admises sont les suivantes :
prompt
Affiche une invite qui permet au professionnel de sélectionner le magasin de ressources ou le magasin de site étendu. Il s'agit de la valeur par défaut. Si les professionnels utilisent à la fois le magasin de site étendu et le magasin de ressources pour gérer les objets métier associés au lien, utilisez cette valeur.
assetStore
Ouvre le magasin de ressources (le magasin de ressources de vitrine ou le magasin de ressources catalogue, selon celui qui s'applique à l'objet métier édité). Si les professionnels gèrent tous les objets métier associés au lien dans le magasin de ressources, utilisez cette valeur.
eSite
Ouvre le magasin de site étendu. Si les professionnels gèrent tous les objets métier associés au lien dans le magasin de site étendu, utilisez cette valeur.

Si vous ne disposez pas d'un site étendu, vous pouvez ignorer ce paramètre.

La préférence de magasin peut être modifiée par un développeur informatique à tout moment.

objectType
La valeur objectType est utilisée par la structure du Management Center pour rechercher la définition de l'objet. La structure crée ensuite une instance de l'objet. Pour un objet métier, la valeur objectType est définie dans le fichier de définition de l'objet. Par exemple, le type d'objet d'une activité Web est WebActivity, et celui d'une règle de recherche est SearchActivity.

Les fichiers de définition des objets métier livrés avec HCL Commerce sont dans le chemin suivant :

WCDE_installdir/workspace/LOBTools/WebContent/config/commerce/component/objectDefinitions/

Par exemple, dans le fichier EMarketingSpotPrimaryObjectDefinition.def, la valeur du paramètre objectType est définie à la dernière ligne de ce fragment de code :

<PrimaryObjectDefinition
    baseDefinitionName = "mktBaseEMarketingSpotPrimaryObjectDefinition"
    creatable = "true"
    definitionName = "EMarketingSpot"
    objectType = "EMarketingSpot">
    

Certaines zones de la vue Propriétés du Management Center qui s'ouvre lorsque l'utilisateur professionnel clique sur le lien Créer peuvent être préremplies. Pour ce faire, entrez les valeurs supplémentaires suivantes pour le paramètre newObjectOption :

keyPropertyName
Nom de la propriété à préremplir. Par exemple, pour le lien Créer d'un emplacement e-marketing, vous voudrez peut-être préremplir la zone Nom dans la vue Propriétés de l'emplacement e-marketing. Si c'est le cas, vous pouvez définir le keyPropertyName en tant que marketingSpotName. Vous pouvez créer le nom de votre choix, mais vous devrez le référencer précisément lorsque vous créerez le JSP pour définir les valeurs préremplies, ultérieurement dans ce flux de tâches. Voir Initialisation d'un nouvel objet métier pour un lien « Créer ».
prefilledValue
Valeur de la propriété à préremplir. Par exemple, pour préremplir la zone Nom dans la vue Propriétés d'un emplacement e-marketing, la valeur est la variable ${emsName}.

Exemple de fragment de code pour un lien Créer

Le fragment de code suivant crée un lien Créer pour un emplacement e-marketing dans le magasin type Aurora. Ce code provient du fichier ESpotInfoPopupDisplay.jspf, qui correspond à la page Informations sur l'emplacement e-marketing :
1 <c:if test="${!espotFound}"> 
2   <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>
3    <a id='click2create_EMarketingSpot_<c:out value="${espotName}"/>' 
          title='<fmt:message key="Click2Create_espot" bundle="${previewText}"/>' class="click2create_button" href="javascript:void(0)" 
          onclick="window.parent.callManagementCenter('<wcf:out escapeFormat="js" value="${clickToCreateURL}"/>');">
          <fmt:message key="Click2Edit_Create" bundle="${previewText}"/>
    </a>
  </c:if>
Les explications suivantes font référence aux renvois numérotés de l'exemple de code :
  • 1 Cette ligne de code garantit que le lien Créer ne s'affiche que si l'emplacement e-marketing n'existe pas encore dans le Management Center. Le fichier ESpotInfoPopupDisplay.jspf utilise les données du moteur marketing pour déterminer si l'emplacement e-marketing existe. Les données sont renvoyées à la variable ${!espotFound}.
  • 2 L'élément <c:url définit une variable qui est l'URL de création en un clic.
  • 3 L'élément <a crée le lien Créer et appelle la fonction JavaScript callManagementCenter, qui envoie l'URL à l'application Web du Management Center.
    Remarque : Pour fonctionner, un lien Créer n'a besoin que de la portion de code suivante à l'intérieur de l'élément <a :
    <a href="javascript:void(0)" 
       onclick="parent.callManagementCenter('<wcf:out escapeFormat="js" 
       value="${clickToCreateURL}"/>');">Create</a>
    Dans le fragment de code pris utilisé comme exemple, le reste du code dans l'élément <a est destiné à un usage IBM interne, par exemple à des tâches d'automatisation, et n'est pas nécessaire.