HCL Commerce Enterprise

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

L'un des aspects clé de l'activation du support des espaces de travail est de classer vos données en ressources de contenu gérées et ressources opérationnelles gérées. La distinction entre contenu et données opérationnelles est traitée en détail dans la rubrique Modèle d'espace de données. Vous devez déterminer si les tables que vous souhaitez gérer à l'aide d'espaces de travail sont des tables de contenu ou des tables opérationnelles avant de réaliser cette tâche.

Procédure

  1. 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 :
    1. S'il s'agit d'un module de service par défaut de HCL Commerce, ne modifiez pas le fichier par défaut du gestionnaire de ressources. Créez en un autre en ajoutant à son nom "-ext" :
      • HCL Commerce Developerworkspace_dir\wc\xml\content-management\servicemodulename.resource-managers-ext.xml
    2. Si vous avez conçu un module de service personnalisé, créez le fichier suivant :
      • HCL Commerce Developerworkspace_dir\wc\xml\content-management\ servicemodulename.resource-managers.xml
  2. 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.

  3. 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".
  4. 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>
  5. 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.
  6. 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.