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éerdoit 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,
catalogManagementest l'ID de l'outil Catalogues, etmarketingManagementest 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
idde 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.
Dans 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. 
storeSelection
Pour 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 estSearchActivity.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
objectTypeest 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 lekeyPropertyNameen tant quemarketingSpotName. 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éerpour 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 fichierESpotInfoPopupDisplay.jspfutilise 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:urldéfinit une variable qui est l'URL de création en un clic. - 3 L'élément
<acrée le lienCréer
et appelle la fonction JavaScriptcallManagementCenter, qui envoie l'URL à l'application Web du Management Center.Remarque : Pour fonctionner, un lienCréer
n'a besoin que de la portion de code suivante à l'intérieur de l'élément<a:
Dans le fragment de code pris utilisé comme exemple, le reste du code dans l'élément<a href="javascript:void(0)" onclick="parent.callManagementCenter('<wcf:out escapeFormat="js" value="${clickToCreateURL}"/>');">Create</a><aest destiné à un usage IBM interne, par exemple à des tâches d'automatisation, et n'est pas nécessaire.