Fichier de configuration de gestion des versions de contenu (wc-content-version.xml)

Le fichier de configuration de gestion des versions de contenu définit la configuration des objets d'interface utilisateur dont les versions peuvent être gérées. Ce fichier indique les objets d'interface utilisateur versionnables et la manière dont le système gère les versions de l'objet. Pour modifier la configuration par défaut des objets d'interface utilisateur, vous devez étendre le fichier de configuration. Vous pouvez étendre ce fichier en créant un fichier dans un dossier d'extension de composants (workspace_dir\WC\xml\config\com.ibm.commerce.component-ext). Un dossier d'extension de composants inclut tous les fichiers étendus pour le composant ou le module de service particulier.

Plusieurs objets d'interface utilisateur peuvent être mappés au même nom. Ces objets d'interface utilisateur sont représentés comme même nom, mais l'interface du Management Center crée des types différents pour les différents objets d'interface utilisateur. Par exemple, les objets d'interface utilisateur Produit, SKU du produit, SKU de la catégorie, Bundle et kit sont mappés au nom CatalogEntry.

Si un composant gère des objets d'interface utilisateur versionnables, il doit posséder un fichier de configuration wc-content-version.xml. Dans ce fichier, vous indiquer les composants des objets d'interface utilisateur à sauvegarder lorsque vous créez une version. Le fichier de configuration se trouve dans le répertoire workspace_dir\WC\xml\config\com.ibm.commerce.component, où component est le nom du composant. Par exemple, le fichier de configuration des composants de catalogue se trouve dans le répertoire workspace_dir\WC\xml\config\com.ibm.commerce.catalog\.
Important : Vous ne devez pas modifier le fichier wc-content-version.xml dans l'un des répertoires précédents, car les mises à jour des groupes de correctifs de HCL Commerce peuvent supprimer vos modifications.
Exemple de fragment de code du fichier wc-content-version.xml de composant du catalogue :

<wc:ContentVersionConfiguration 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-content-version.xsd">
1 <wc:ContentVersionContainer name="com.ibm.commerce.catalog" id="-1">
2   <wc:ContentVersionNoun name="Catalog" topTable="CATALOG" 
            className="com.ibm.commerce.catalog.version.CatalogContentVersionServiceImpl">
3   <wc:ConfigGroup id="-1">
4     <wc:ContentVersionUIObject name="SalesCatalog" />
5     <wc:ContentVersionRelatedTable name="CATALOG" 
            whereClause="CATALOG_ID=? AND MEMBER_ID=?" values="${objectId}, ${storeOwnerId}"/>
          <wc:ContentVersionRelatedTable name="CATALOGDSC" whereClause="CATALOG_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="STORECAT" 
           whereClause="CATALOG_ID=? AND STOREENT_ID=?" values="${objectId}, ${storeId}"/>
          <wc:ContentVersionRelatedTable name="ATCHREL" 
           whereClause="OBJECT_ID=? AND ATCHOBJTYP_ID=?" values="${objectId}, 1"/>
        </wc:ConfigGroup>
      </wc:ContentVersionNoun>
    
      <wc:ContentVersionNoun name="CatalogGroup" topTable="CATGROUP" 
       className="com.ibm.commerce.catalog.version.CatalogGroupContentVersionServiceImpl">
        <wc:ConfigGroup id="-1">
          <wc:ContentVersionUIObject name="CatalogGroup" />
          <wc:ContentVersionUIObject name="SalesCatalogGroup" />
          <wc:ContentVersionRelatedTable name="CATGROUP" 
           whereClause="CATGROUP_ID=? AND MEMBER_ID=?" values="${objectId}, ${storeOwnerId}"/>
          <wc:ContentVersionRelatedTable name="CATGRPDESC" whereClause="CATGROUP_ID=?" values="${objectId}" />
          <wc:ContentVersionRelatedTable name="CATTOGRP" 
           whereClause="CATGROUP_ID=? AND CATALOG_ID IN (SELECT CATALOG_ID FROM %CURRENT_SCHEMA%.STORECAT WHERE STOREENT_ID=?)" 
           values="${objectId}, ${storeId}"/>
          <wc:ContentVersionRelatedTable name="CATGRPREL" 
           whereClause="CATGROUP_ID_CHILD=? AND CATALOG_ID IN (SELECT CATALOG_ID FROM %CURRENT_SCHEMA%.STORECAT WHERE STOREENT_ID=?)" 
           values="${objectId}, ${storeId}"/>
          <wc:ContentVersionRelatedTable name="STORECGRP" 
           whereClause="CATGROUP_ID=? AND STOREENT_ID=?" values="${objectId}, ${storeId}"/>
          <wc:ContentVersionRelatedTable name="ATCHREL" whereClause="OBJECT_ID=? AND ATCHOBJTYP_ID=?" values="${objectId}, 2"/>
        </wc:ConfigGroup>
        <wc:ConfigGroup id="-2">
          <wc:ContentVersionUIObject name="InheritedCatalogGroup" enabled="false" />
          <wc:ContentVersionUIObject name="InheritedSalesCatalogGroup" enabled="false" />
          <wc:ContentVersionRelatedTable name="CATTOGRP" 
           whereClause="CATGROUP_ID=? AND CATALOG_ID IN (SELECT CATALOG_ID FROM %CURRENT_SCHEMA%.STORECAT WHERE STOREENT_ID=?)" 
           values="${objectId}, ${storeId}"/>
          <wc:ContentVersionRelatedTable name="CATGRPREL" 
           whereClause="CATGROUP_ID_CHILD=? AND CATALOG_ID IN (SELECT CATALOG_ID FROM %CURRENT_SCHEMA%.STORECAT WHERE STOREENT_ID=?)"
           values="${objectId}, ${storeId}"/>
        </wc:ConfigGroup>
      </wc:ContentVersionNoun>

      <wc:ContentVersionNoun name="CatalogEntry" topTable="CATENTRY" 
       className="com.ibm.commerce.catalog.version.CatalogEntryContentVersionServiceImpl">
        <wc:ConfigGroup id="-1">
          <wc:ContentVersionUIObject name="Product" />
          <wc:ContentVersionRelatedTable name="CATENTRY" 
           whereClause="CATENTRY_ID=? AND MEMBER_ID=?" values="${objectId}, ${storeOwnerId}"/>
          <wc:ContentVersionRelatedTable name="CATENTDESC" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="CATENTSUBS" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="ATTRIBUTE" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="ATTRVALUE" 
           whereClause="ATTRIBUTE_ID IN (SELECT ATTRIBUTE_ID FROM ATTRIBUTE WHERE CATENTRY_ID = ?) 
           AND (CATENTRY_ID = 0 OR CATENTRY_ID = ?)" values="${objectId}, ${objectId}"/>
          <wc:ContentVersionRelatedTable name="CATENTRYATTR" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="CATENTSHIP" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="CATGPENREL" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="LISTPRICE" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="STORECENT" 
           whereClause="CATENTRY_ID=? AND STOREENT_ID=?" values="${objectId}, ${storeId}"/>
          <wc:ContentVersionRelatedTable name="CATENTREL" whereClause="CATENTRY_ID_CHILD=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="ATCHREL" whereClause="OBJECT_ID=? AND ATCHOBJTYP_ID=?" values="${objectId}, 3"/>
          <wc:ContentVersionRelatedTable name="MASSOCCECE" 
           whereClause="CATENTRY_ID_FROM=? AND STORE_ID=?" values="${objectId}, ${storeId}" enabled="false"/>
        </wc:ConfigGroup>
        <wc:ConfigGroup id="-2">
          <wc:ContentVersionUIObject name="ProductSKU" />
          <wc:ContentVersionUIObject name="CatalogGroupSKU" />
          <wc:ContentVersionRelatedTable name="CATENTRY" 
           whereClause="CATENTRY_ID=? AND MEMBER_ID=?" values="${objectId}, ${storeOwnerId}" />
          <wc:ContentVersionRelatedTable name="CATENTDESC" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="CATENTSUBS" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="ATTRIBUTE" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="ATTRVALUE" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="CATENTRYATTR" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="CATENTSHIP" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="CATGPENREL" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="LISTPRICE" whereClause="CATENTRY_ID=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="STORECENT" 
           whereClause="CATENTRY_ID=? AND STOREENT_ID=?" values="${objectId}, ${storeId}"/>
          <wc:ContentVersionRelatedTable name="CATENTREL" whereClause="CATENTRY_ID_CHILD=?" values="${objectId}"/>
          <wc:ContentVersionRelatedTable name="ATCHREL" 
           whereClause="OBJECT_ID=? AND ATCHOBJTYP_ID=?" values="${objectId}, 3"/>
          <wc:ContentVersionRelatedTable name="MASSOCCECE" 
           whereClause="CATENTRY_ID_FROM=? AND STORE_ID=?" values="${objectId}, ${storeId}" enabled="false"/>
        </wc:ConfigGroup>
      </wc:ContentVersionNoun>
    </wc:ContentVersionContainer>
</wc:ContentVersionConfiguration>
Dans le fichier wc-content-version.xml :
1L'élément wc:ContentVersionContainer est l'élément racine du fichier de configuration de gestion des versions de contenu. L'élément wc:ContentVersionContainer définit un conteneur. Chaque composant doit déclarer un conteneur. Un conteneur contient toute la configuration du composant. Spécifiez les attributs suivants pour cet élément :
nom
Nom du conteneur.
id
Identificateur du conteneur. Les valeurs négatives sont réservées pour IBM.
enabled
Cet attribut est facultatif. Si la valeur de cet attribut est false, les objets du conteneur ne sont pas versionnés. La valeur par défaut est true.
2L'élément wc.ContentVersionNoun permet de définir la configuration des objets d'interface utilisateur à versionner pour le nom spécifique. Spécifiez les attributs suivants pour cet élément :
nom
Nom du nom.
topTable
Cet attribut définit la table qui contient la clé principale des objets d'interface utilisateur versionnés.
className
Cette valeur d'attribut contient le nom de la classe qui implémente le service de gestion des versions de contenu de ce nom. Si vous ne spécifiez pas de valeur pour cet attribut, une classe par défaut est utilisée. Pour remplacer le service de gestion des versions de contenu par défaut, vous devez créer votre propre service en étendant le service par défaut, puis spécifiez la classe dans cette valeur d'attribut.
3Les éléments wc:ConfigGroup permettent de créer des groupes de configuration. Un groupe de configuration est un groupe d'objets qui sont versionnés de la même façon. Par exemple, CatalogGroup et SalesCatalogGroup sont des types d'objet différents, mais sont versionnés de la même façon. Spécifiez les attributs suivants pour cet élément :
id
L'identificateur numérique unique de ce groupe. Cet identificateur permet de déterminer si une version particulière de l'objet est compatible avec la version actuelle, à savoir, si elle peut être restaurée. Si vous modifiez l'ID ConfigGroup dans le fichier de configuration, les versions créées à partir de l'ancien ID ConfigGroup ne peuvent pas être restaurées. Les valeurs négatives sont réservées pour IBM.
4L'élément wc:ContentVersionUIObject permet de déclarer les objets d'interface utilisateur qui font partie du groupe de configuration. Spécifiez les attributs suivants pour cet élément :
nom
Nom de l'objet d'interface utilisateur tel que défini dans Management Center.
5Les éléments wc:ContentVersionRelatedTable permettent de définir les tables stockées lors de la création d'une version d'un objet d'interface utilisateur. Chaque objet d'interface utilisateur peut avoir plusieurs tables qui sont stockées lorsqu'une version est créée. Spécifiez les attributs suivants pour cet élément :
nom
Nom de la table à stocker.
whereClause
Cet attribut est utilisé dans l'instruction SELECT. Le système sélectionne les lignes de la table spécifiée sur la base des informations fournies dans l'attribut whereClause. Dans l'attribut whereClause, utilisez le symbole "?" lorsque vous souhaitez que le système le remplace par les valeurs spécifiées dans l'attribut values.
values
Valeurs des marques de paramètre correspondantes "?" dans whereClause. Vous pouvez spécifier une valeur littérale ou utiliser la variable préconfigurée suivante dans l'attribut values :
${objectId}
Clé primaire de l'objet que vous versionnez.
${storeId}
Identificateur du magasin sur lequel vous travaillez.
${storeOwnerId}
Identificateur du membre propriétaire du magasin.
${catalogRelatedStoreId}
ID magasin de ressources de catalogue d'un magasin de site étendu. Si le magasin actuel ne correspond pas à un magasin de site étendu, cet ID correspond à l'ID magasin actuel.
keyColumns
Cet attribut identifie les colonnes de la table à utiliser comme clé si la table ne possède pas de clé principale.
enabled
Cet attribut est facultatif. Si sa valeur est false, la table n'est pas versionnée. La valeur par défaut est true.
Dans le fragment d'échantillon de code suivant, le système sélectionne les lignes de la clé primaire et de l'identificateur du magasin dans la table CATENTRY à versionner.
<wc:ContentVersionRelatedTable name="CATENTRY" whereClause="CATENTRY_ID=? AND MEMBER_ID=?" values="${objectId}, ${storeOwnerId}"/>