Fragment de code pour l'ajout d'un lien Editer
Pour ajouter un lien Editer
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 EditBusinessObject destinée au Centre de gestion pour l'objet métier concerné, par exemple une entrée de catalogue ou une activité Web.
Le fragment de code peut aussi référencer des variables d'environnement et des classes CSS pour contrôler la disponibilité et l'apparence du lien Editer
.
Paramètres des liens Editer
Le lien Editerdoit contenir un ensemble de paramètres qui fournissent au Centre de gestion les informations relatives à l'objet métier à ouvrir en édition. Vous devez définir les valeurs des variables en italiques :
<c:url var = "clickToEditURL" value = "/cmc/EditBusinessObject" 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 = "searchType" value = "searchType"/>
<c:param name = "searchOption.searchText" value = "keyword"/>
<c:param name = "searchOption.searchUniqueId" value = "objectId"/>
</c:url>
<a href="javascript:void(0)" onclick="parent.callManagementCenter('<wcf:out escapeFormat="js" value="${clickToEditURL}"/>');">Edit</a>- 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"/> - 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. - 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. 
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 Centre de gestion 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.
- Type de recherche défini pour l'objet métier dans son fichier de définition. La fonction d'édition en un clic utilise le type de recherche pour identifier l'objet métier dans le Centre de gestion. Par exemple, le type de recherche des entrées de catalogue est
FindAllCatalogEntries, et celui des emplacements e-marketing estFindEMarketingSpots.Vous pouvez consulter le type de recherche dans le fichier de définition d'un objet métier existant, dans le chemin suivant :
WCDE_installdir/workspace/LOBTools/WebContent/config/commerce/component/objectDefinitions/
Ainsi, dans le fichier ProductSKUPrimaryObjectDefinition.def des produits et des unités de stockage, le type de recherche est défini dans le paramètre
searchTypede la ligne de code qui figure en gras :<PrimaryObjectDefinition baseDefinitionName = "catBaseCatalogEntryPrimaryObjectDefinition" definitionName = "catBaseProductSKUPrimaryObjectDefinition" displayName = "${catalogResources.displayNameProductLevelSKU}" displayNameProperty = "partnumber" helpLink = "tasks/tpngen1s.htm" idProperty = "catentryId" isBaseDefinition = "true" newDisplayName = "${catalogResources.displayNameNewProductLevelSKU}" newObjectMenuItemText = "${catalogResources.contextMenuNewProductLevelSKU}" objectGroups = "CatalogEntry,SKUs,ProductSKUs" propertiesDefinitionName = "catProductSKUProperties" searchType = "FindAllCatalogEntries"> - Valeur utilisée pour rechercher un objet métier à l'aide d'un mot clé (texte). Le meilleur choix de mot clé est l'index unique de l'objet métier qui est défini dans le schéma de la base de données. Par exemple :
${partNumber}– numéro de référence d'une entrée de catalogue${emsName}– nom d'un emplacement e-marketing
- Valeur utilisée pour rechercher un objet métier à l'aide d'un ID unique. Les valeurs qui suivent sont des exemples d'
objectId:${productId}– ID d'une entrée de catalogue${emsId}– ID d'un emplacement e-marketing
Exemple de fragment de code pour un lien Editer
Le fragment de code suivant crée un lien Editerpour une entrée de catalogue du magasin type Aurora sur la page des détails du produit. Le code provient du fichier ProductDisplay.jsp :
1 <div class="container_product_details_image_information container_margin_5px productDetail">
2 <c:if test="${env_inPreview && !env_storePreviewLink}">
3a <div class="caption" style="display:none"></div>
3b <div class="ESpotInfo">
4 <c:url var="clickToEditURL" value="/cmc/EditBusinessObject" context="/">
<c:param name="toolId" value="catalogManagement"/>
<c:param name="storeId" value="${storeId}"/>
<c:param name="storeSelection" value="prompt"/>
<c:param name="languageId" value="${langId}"/>
<c:param name="searchType" value="FindAllCatalogEntries"/>
<c:param name="searchOption.searchText" value="${partNumber}"/>
<c:param name="searchOption.searchUniqueId" value="${productId}"/>
</c:url>
5 <a id="ProductDisplay_click2edit_Product_${productId}"
class="click2edit_button" href="javascript:void(0)"
onclick="parent.callManagementCenter('<wcf:out escapeFormat="js" value="${clickToEditURL}"/>');" >
<fmt:message bundle='${previewText}' key='Click2Edit_product'/></a>
</div>
</c:if>Les explications suivantes font référence aux renvois numérotés de l'exemple de code :