Activation de la prise en charge des espaces de travail pour une table personnalisée dans un module de service BOD existant de HCL Commerce
L'ajout d'une prise en charge des espaces de travail pour une table gérée à contenu personnalisé consiste à créer un fichier XML identifiant la ou les tables gérées, puis à exécuter le script UpdateWorkspaceSchema existant afin de créer ces tables dans tous les espaces de travail.
Avant de commencer
Procédure
-
Si ce n'est déjà fait, créez un fichier XML de gestionnaire de ressources pour héberger vos personnalisations d'espaces de travail. Effectuez l'une des sous-procédures suivantes :
-
Ouvrez le fichier dans un éditeur texte ou XML et ajoutez les lignes suivantes au début du fichier :
<wc:ResourceContainer xmlns:wc="http://www.ibm.com/xmlns/prod/WebSphereCommerce" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ibm.com/xmlns/prod/WebSphereCommerce xsd/wc-resource-managers.xsd"> <wc:Definition id="10001" name="MyServiceModuleNameResourceContainer" className="com.ibm.commerce.context.content.resources.DSLResourceContainer"> </wc:Definition>L'élément wc:Definition définit le conteneur de ressources utilisé par le module de service. Tous les modules de service BOD utilisent
className="com.ibm.commerce.context.content.resources.DSLResourceContainer"comme indiqué dans l'exemple. L'unique valeur que vous devez modifier par rapport à l'exemple XML est celle de id. La valeur de id est un entier unique non encore utilisé par HCL Commerce ou par d'autres personnalisations des espaces de travail. Les valeurs comprises entre 1 et 9999 sont réservées à l'usage d'IBM. Utilisez une valeur au dessus de 10000. -
Pour ajouter la prise en charge des espaces de travail pour une table gérée de contenu, ajoutez des lignes similaires à l'exemple ci-dessous à votre fichier :
<wc:ManagedResources> <wc:ManagedResource id="1" name="STORE" resource="STORE" resourceClassName="" resourceManagerClassName="com.ibm.commerce.context.content.resources.DSLResourceManager" managed="true" resourceKeys="STORE_ID"> <wc:RelatedManagedResource resourceContainer="TutorialStoreResourceContainer" managedResource="STOREENT"/> </wc:ManagedResource> <wc:ManagedResource id="2" name="STOREENT" resource="STOREENT" resourceClassName="" resourceManagerClassName="com.ibm.commerce.context.content.resources.DSLResourceManager" managed="true" resourceKeys="STOREENT_ID"> </wc:ManagedResource> <wc:ManagedResource id="3" name="STOREENTDS" resource="STOREENTDS" resourceClassName="" resourceManagerClassName="com.ibm.commerce.context.content.resources.DSLResourceManager" managed="true" resourceKeys="LANGUAGE_ID,STOREENT_ID"> <wc:RelatedManagedResource resourceContainer="TutorialStoreResourceContainer" managedResource="STOREENT"/> </wc:ManagedResource> <wc:ManagedResource id="4" name="STORELANG" resource="STORELANG" resourceClassName="" resourceManagerClassName="com.ibm.commerce.context.content.resources.DSLResourceManager" managed="true" resourceKeys="STOREENT_ID"> <wc:RelatedManagedResource resourceContainer="TutorialStoreResourceContainer" managedResource="STOREENT"/> </wc:ManagedResource>Notes :- Le conteneur de ressources est le nom du contenu qui définit la ressource associée. Le conteneur de ressources est répertorié dans l'élément de définition. Par exemple :
<wc:Definition id="100" name="TutorialStoreResourceContainer" className="com.ibm.commerce.context.content.resources.DSLResourceContainer"/> - Un élément de ressource géré est requis pour chaque table gérée de contenu.
- L'élément de ressource gérée associé met en corrélation une ressource avec une autre. Dans l'exemple ci-dessus, les tables STORE, STOREENTDS et STORELANG sont associées à la table STOREENT. Si une entrée de la table STOREENT est verrouillée, les données associées le sont également dans les trois autres tables.
- Les ID de ressource gérée sont uniques pour chaque conteneur de ressources. Cependant, si vous ajoutez des ressources gérées à un conteneur de ressources HCL Commerce existant, il est recommandé d'utiliser des valeurs supérieures à 10000 pour éviter tout risque de collision.
- L'attribut resourceClassName est toujours défini par une chaîne vide pour les implémentations basées sur la couche service de données. Cet attribut est utilisé uniquement par les espaces de travail dans HCL Commerce Accelerator.
- resourceKeys est une liste liste séparée par des virgules des colonnes qui composent les clés primaires de la table. Par exemple,
resourceKeys="LANGUAGE_ID,STOREENT_ID".
- Le conteneur de ressources est le nom du contenu qui définit la ressource associée. Le conteneur de ressources est répertorié dans l'élément de définition. Par exemple :
-
Ajoutez des lignes similaires à l'exemple ci-dessous pour chaque table opérationnelle à ajouter aux espaces de travail :
<wc:OperationalResources> <wc:OperationalResource name="DMACTATTR" resourceClassName="" managed="true" resource="DMACTATTR"/> <wc:OperationalResource name="DMELESTATS" resourceClassName="" managed="true" resource="DMELESTATS"/> <wc:OperationalResource name="DMTRIGSND" resourceClassName="" managed="true" resource="DMTRIGSND"/> <wc:OperationalResource name="DMUSERBHVR" resourceClassName="" managed="true" resource="DMUSERBHVR"/> <wc:OperationalResource name="DMEMSPOTSTATS" resourceClassName="" managed="true" resource="DMEMSPOTSTATS"/> </wc:OperationalResources> -
Terminez le fichier avec les lignes suivantes :
<wc:PublishRequest uniqueTransaction="false"/> </wc:ResourceContainer>Remarque : L'élément<wc:PublishRequest>permet d'indiquer si les transactions du fichier dans son ensemble (le conteneur de ressources) doivent être séparées de toutes les autres lorsqu'un espace de travail est publié. S'il reçoit la valeur 'true', les transactions de ce conteneur de ressources seront publiées séparément. S'il est défini à 'false', les transactions de tous les conteneurs de ressources seront regroupées. - Exécutez la tâche Cible Ant : CM_updateWorkspacesSchema afin de mettre à jour les espaces de travail en utilisant la configuration que vous venez de soumettre.
