Archivo de configuración de control de versiones de contenido (wc-content-version.xml)

El archivo de configuración del Control de versiones de contenido define la configuración para los objetos de interfaz de usuario que pueden tener versiones. Este archivo le indica qué objetos de la interfaz de usuario pueden tener versiones y de qué manera realiza el sistema el control de versiones del objeto. Para cambiar el archivo de configuración predeterminado para los objetos de interfaz de usuario, debe ampliar el archivo de configuración. Puede ampliar este archivo creando un archivo en la carpeta de extensión de componente (workspace_dir\WC\xml\config\com.ibm.commerce.component-ext). Una carpeta de extensión de componente incluye todos los archivos ampliados para el componente o el módulo de servicio en concreto.

Varios objetos de la interfaz de usuario pueden correlacionarse con el mismo nombre. Estos objetos de la interfaz de usuario están representados con el mismo nombre pero la interfaz del Management Center crea distintos tipos para los distintos objetos de la interfaz de usuario. Por ejemplo los objetos product, product SKU, category SKU, bundle y kit UI se correlacionan con el nombre CatalogEntry.

Si un componente gestiona objetos de interfaz de usuario que pueden tener versiones, debe tener un archivo de configuración wc-content-version.xml. En este archivo, especificará qué partes de los objetos de interfaz de usuario deben guardarse cuando cree una versión. El archivo de configuración se encuentra en el directorio workspace_dir\WC\xml\config\com.ibm.commerce.component, donde component es el nombre del componente. Por ejemplo, el archivo de configuración de componente de catálogo se encuentra en el directorio workspace_dir\WC\xml\config\com.ibm.commerce.catalog\.
Importante: No debe modificar el archivo wc-content-version.xml en ninguno de los directorios que le preceden porque las actualizaciones de los fixpack de HCL Commerce podrían eliminar los cambios realizados.
Fragmento de código de ejemplo del archivo de componente de catálogo wc-content-version.xml:

<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>
Guardado en el archivowc-content-version.xml:
1 El elemento wc:ContentVersionContainer es el elemento raíz del archivo de configuración de control de versiones de contenido. El elemento wc:ContentVersionContainer define un contenedor. Cada componente debe declarar un contenedor. Un contenedor contiene toda la configuración del componente. Especifique los siguientes atributos para este elemento:
name
El nombre del contenedor.
id
Un identificador del contenedor. El uso de valores negativos está reservado a IBM.
habilitado
Este atributo es opcional. Si el valor del atributo es falso (false), los objetos del contenedor no se versionan. El valor predeterminado es true (verdadero).
2 El elemento wc.ContentVersionNoun se utiliza para definir la configuración de los objetos de interfaz de usuario para los que van a crearse versiones del sustantivo específico. Especifique los siguientes atributos para este elemento:
name
El nombre del sustantivo.
topTable
Este atributo define qué tabla contiene la clave primaria de los objetos de la interfaz de usuario que se versionan.
className
Este atributo contiene el nombre de la clase que implementa el servicio de control de versiones de contenido para este sustantivo. Si no especifica ningún valor para este atributo, se utiliza una clase predeterminada. Para sustituir el servicio de control de versiones de contenido predeterminado, debe crear su propio servicio que amplíe el servicio predeterminado y especificar a continuación la clase en este valor de atributo.
3 Los elementos wc:ConfigGroup se utilizan para crear grupos de configuración. Un grupo de configuración es un grupo de objetos cuya versión se ha creado de la misma manera. Por ejemplo, CatalogGroup y SalesCatalogGroup son tipos de objeto distintos, pero sus versiones se crean del mismo modo. Especifique los siguientes atributos para este elemento:
id
El identificador numérico exclusivo de este grupo. Este identificador se utiliza para identificar si una versión concreta del objeto es compatible con la versión actual, es decir, si puede restaurarse. Si cambia el ID ConfigGroup en el archivo de configuración, todas las versiones creadas basadas en el ID ConfigGroup antiguo no podrán restaurarse. El uso de valores negativos está reservado a IBM.
4 El elemento wc:ContentVersionUIObject se utiliza para declarar qué objetos de interfaz de usuario forman parte del grupo de configuración. Especifique los siguientes atributos para este elemento:
name
El nombre del objeto de interfaz de usuario tal como está definido en el Management Center.
5 Los elementos wc:ContentVersionRelatedTable se utilizan para definir qué tablas se almacenan cuando se crea una versión de un objeto de interfaz de usuario. Cada objeto de interfaz de usuario puede tener varias tablas que se almacenan cuando se crea una versión. Especifique los siguientes atributos para este elemento:
name
El nombre de la tabla a restaurar.
whereClause
Este atributo se utiliza en la sentencia select. El sistema selecciona filas de la tabla especificada basándose en la información que se proporciona en el atributo whereClause. Con el atributo whereClause, se utiliza el símbolo "?" allí donde desea que el sistema sustituya el símbolo por los valores especificados en el atributo values.
values
Los valores de las marcas de parámetro "?" correspondientes en whereClause. Puede especificar un valor de literal o utilizar la siguiente variable incorporada en el atributo values:
${objectId}
Clave primaria del objeto del que está creando la versión.
${storeId}
El identificador de la tienda en la que está trabajando actualmente.
${storeOwnerId}
El identificador del miembro al que pertenece la tienda.
${catalogRelatedStoreId}
EL ID de la tienda con elementos de catálogo de una tienda de sitio ampliado. Si la tienda actual no es una tienda de sitio ampliado, es el mismo que el ID de la tienda actual.
keyColumns
Este atributo identifica qué columnas de la tabla se utilizan como clave si la tabla no tiene una clave primaria.
habilitado
Este atributo es opcional. Si es falso, no se crea una versión de la tabla. El valor predeterminado es true (verdadero).
En el siguiente fragmento de código de ejemplo, el sistema selecciona las filas de clave primaria e identificador de tienda de la tabla CATENTRY para crear una versión.
<wc:ContentVersionRelatedTable name="CATENTRY" whereClause="CATENTRY_ID=? AND MEMBER_ID=?" values="${objectId}, ${storeOwnerId}"/>