Configuración del creador de objetos de negocio de componente

Utilice BaseBusinessObjectBuilder para crear un objeto de negocio de componente que se base en las propiedades de configuración y en los datos de entrada que se especifican. Puede configurar este creador definiendo valores de atributos y subelementos en el archivo de configuración de objeto de negocio.

Procedimiento

  1. Abra el archivo de configuración de objeto de negocio wc-loader-object.xml que necesite configurar.
    Si necesita crear un archivo, copie un archivo de configuración de objeto de negocio de ejemplo como, por ejemplo, el archivo wc-loader-catalog.xml y renómbrelo. Los archivos de configuración de objeto de negocio de ejemplo se proporcionan para diferentes objetos de componentes en directorios específicos de componentes en el directorio siguiente:
    • Linuxutilities_root/samples/DataLoad
    • HCL Commerce DeveloperWCDE_installdir/samples/DataLoad
  2. Localice el elemento <_config:BusinessObjectBuilder>.
  3. Establezca el valor del atributo className de modo que sea la clase de creador de objetos BaseBusinessObjectBuilder.
    Por ejemplo, el siguiente fragmento de código especifica la clase de creador de objeto de negocio base
    
    <_config:BusinessObjectBuilder 
      className="com.ibm.commerce.foundation.dataload.businessobjectbuilder.BaseBusinessObjectBuilder"
      packageName="com.ibm.commerce.catalog.facade.datatypes.CatalogPackage" dataObjectType="AttributeDictionaryAttributeType" >
    </_config:BusinessObjectBuilder>
  4. Especifique el nombre de paquete de componente de objeto de negocio.
    Especifique este atributo con el elemento packageName que corresponde a los componentes que está actualizando.
    Component packageName
    Catálogo com.ibm.commerce.catalog.facade.datatypes.CatalogPackage
    Commerce Composer com.ibm.commerce.pagelayout.facade.datatypes.PageLayoutPackage
    Inventario com.ibm.commerce.inventory.facade.datatypes.InventoryPackage
    Marketing com.ibm.commerce.marketing.facade.datatypes.MarketingPackage
    Marketing (Contenido) com.ibm.commerce.content.facade.datatypes.ContentPackage
    Member com.ibm.commerce.member.facade.datatypes.MemberPackage
    Precio com.ibm.commerce.price.facade.datatypes.PricePackage
    El siguiente fragmento de código especifica el paquete de catálogo para la clase del creador de objeto de negocio
    <_config:BusinessObjectBuilder className="com.ibm.commerce.foundation.dataload.
    businessobjectbuilder.BaseBusinessObjectBuilder" 
      packageName="com.ibm.commerce.catalog.facade.datatypes.CatalogPackage"> 
    dataObjectType="AttributeDictionaryAttributeType" >
    </_config:BusinessObjectBuilder>
  5. Especifique el tipo de objeto de datos para el objeto de negocio.
    Especifique este atributo con el elemento dataObjectType. El tipo de objeto de datos es distinto para cada tipo de componente de objeto de negocio:
    Component Tipos de objetos de datos soportados
    Catálogo
    • CatalogType
    • CatalogGroupType
    • CatalogEntryType
    • AttributeDictionaryAttributeType
    Commerce Composer
    • LayoutType
    • PageType
    • WidgetDefinitionType
    Inventario
    • InventoryAvailabilityType
    • ExpectedInventoryRecordType
    • InventoryReceiptType.
    Marketing
    • ActivityType
    • AttachmentType
    • CampaignType
    • MarketingContentType
    • MarketingSpotType
    Member
    • PersonType
    • MemberGroupType
    • OrganizationType
    Precio
    • PriceListType
    • PriceConstantType
    • PriceEquationType
    • PriceRuleType
    El siguiente fragmento de código especifica el tipo de objeto de datos de atributo de diccionario de atributos:
    
    <_config:BusinessObjectBuilder 
      className="com.ibm.commerce.foundation.dataload.businessobjectbuilder.BaseBusinessObjectBuilder" 
      packageName="com.ibm.commerce.catalog.facade.datatypes.CatalogPackage" 
      dataObjectType="AttributeDictionaryAttributeType" >
    </_config:BusinessObjectBuilder>
  6. Especifique las correlaciones de datos para el objeto de negocio. Especifique las correlaciones dentro del elemento <_config:DataMapping>.
    Dentro de este elemento, se pueden especificar uno o varios elementos <_config:mapping>.
    Puede definir las correlaciones de datos mediante los atributos siguientes.
    xpath
    El xpath para la propiedad en el objeto de negocio.
    value
    value se rellena para el objeto de negocio. Generalmente, es una clave y el valor real depende del atributo valueFrom.
    Nota: Si el valor que define no se utiliza en el archivo de entrada de carga de datos, el programa de utilidad de carga de datos no genera ningún error ni registra ningún mensaje.
    valueFrom
    El atributo valueFrom indica cómo resolver el valor. El valor predeterminado es InputData. Se da soporte a los siguientes valores para valueFrom:
    • InputData: Indica que el valor es de InputData.
    • Fixed: El valor es un valor fijo.
    deleteValue
    El indicador de supresión establece si va a eliminar el objeto de negocio.
    BusinessObjectMediator
    El nombre de clase para el mediador de objetos de negocio que el programa de utilidad de carga de datos va a utilizar para grabar los datos en la columna de base de datos adecuada. Para obtener más información sobre la especificación de un mediador de objetos de negocio, consulte Configurar el archivo de configuración de objeto de negocio.
  7. Especifique el mediador de objetos de negocio para cargar el objeto de negocio.
    Especifique los atributos y la clase del mediador dentro del elemento <_config:BusinessObjectMediator>. Los atributos que se pueden especificar para un mediador se definen de la forma indicada a continuación:
    className
    La clase de mediador de objeto de negocio que el programa de utilidad de carga de datos va a utilizar para llenar un objeto de negocio con los datos en el archivo de entrada. Para obtener más información sobre los mediadores proporcionados disponibles, consulte Programa de utilidad de carga de datos mediadores de objetos de negocio.
    componentId
    El identificador del componente del objeto de negocio. La lista siguiente identifica el ID de componente para cada componente:
    • Componente de catálogo: com.ibm.commerce.catalog
    • Componente de inventario: com.ibm.commerce.inventory
    • Marketing: com.ibm.commerce.marketing
    • Marketing (Contenido): com.ibm.commerce.content
    • Componentes de precio: com.ibm.commerce.price
    • Componente de miembro: com.ibm.commerce.member
    • Componente de Commerce Composer: com.ibm.commerce.pagelayout
    El fragmento de código siguiente configura un creador de objetos de negocio de componente para cargar datos de la lista de precios
    
    <_config:BusinessObjectMediator className="com.ibm.commerce.price.dataload.mediator.OfferMediator"
     componentId="com.ibm.commerce.price">
    </_config:BusinessObjectMediator>
    
  8. Especifique todas las propiedades configurables para el mediador de objetos de negocio dentro de un elemento <_config:property>.
    Cada instancia de este elemento define una propiedad opcional que es específica para este mediador de objetos de negocio. Cada mediador puede tener una o más propiedades o puede no tener ninguna. Para establecer una propiedad configurable, debe establecer los atributos siguientes para la propiedad:
    • Establezca el atributo name: el nombre de la propiedad.
    • Establezca el atributo value: el valor de la propiedad.
    Por ejemplo, el siguiente fragmento de código configura el elemento de mediador de objeto de negocio para cargar datos de atributos de diccionario de atributos: El mediador que se especifica en este ejemplo es com.ibm.commerce.catalog.dataload.mediator.AttributeDictionaryAttributeMediator. Este fragmento de código también especifica dos propiedades para configurar este mediador:
    
    <_config:BusinessObjectBuilder 
      className="com.ibm.commerce.foundation.dataload.businessobjectbuilder.BaseBusinessObjectBuilder" 
      packageName="com.ibm.commerce.catalog.facade.datatypes.CatalogPackage" 
      dataObjectType="AttributeDictionaryAttributeType" >
      ...
      <_config:BusinessObjectMediator 
      className="com.ibm.commerce.catalog.dataload.mediator.AttributeDictionaryAttributeMediator" 
      componentId="com.ibm.commerce.catalog" >
        <_config:property name="allowChangeAttributeType" value="true" />
        <_config:property name="validateAttribute" value="true" />
      </_config:BusinessObjectMediator>
    
    </_config:BusinessObjectBuilder>
    Nota: Si suprime datos de objetos de catálogo durante una operación de carga, puede configurar el mediador de objetos de negocio para marque para supresión objetos de catálogo en lugar de eliminar físicamente los objetos. Al marcar un objeto para supresión, podrá asegurarse que dicho objeto todavía existe para cualquier transacción, promoción o actividad que incluya o utilice el objeto. Puede ejecutar el programa de utilidad de limpieza de base de datos para eliminar todos los objetos que están marcados para supresión cuando el objeto ya no es necesario. Para marcar para supresión un objeto, debe utilizar un mediador que dé soporte a la actualización de la columna MARKFORDELETE en la base de datos correspondiente al objeto.
    • De forma predeterminada, el mediador CatalogEntryMediator da soporte a la operación de marcar para supresión para las entradas de catálogo. Para establecer el distintivo de marca para supresión, escriba la siguiente información en el elemento <_config:BusinessObjectMediator> del archivo de configuración de objeto de negocio:
      
      <_config:BusinessObjectMediator 
        className="com.ibm.commerce.catalog.dataload.mediator.CatalogEntryMediator" 
        componentId="com.ibm.commerce.catalog">
           <_config:property name="markForDelete" value="true" />
      </_config:BusinessObjectMediator>
      Si la propiedad markForDelete no se proporciona o no se ha establecido en "false" para entradas de catálogo, el CatalogEntryMediator establece los objetos que se deben marcar para supresión.
    • El mediador CatalogGroupMediator da soporte a la operación de marcar para supresión. Para establecer el distintivo de marca para supresión, escriba la siguiente información en el elemento <_config:BusinessObjectMediator> del archivo de configuración de objeto de negocio:
      
      <_config:BusinessObjectMediator 
        className="com.ibm.commerce.catalog.dataload.mediator.CatalogGroupMediator" 
        componentId="com.ibm.commerce.catalog">
           <_config:property name="markForDelete" value="true" />
      </_config:BusinessObjectMediator>
      Si no se proporciona la propiedad markForDelete o no se establece en "true" para categorías, el CatalogGroupMediator suprime físicamente objetos de la base de datos.
    • Si configura el programa de utilidad de carga de datos para cargar información de SEO, cualquier información de SEO relevante para el objeto se elimina cuando se establece el objeto que se debe marcar para supresión.
    • Si la tienda utiliza la búsqueda de HCL Commerce, el índice de búsqueda se reconstruye para eliminar los objetos de catálogo que están marcados para supresión y eliminar las relaciones para esos objetos.
  9. Opcional: Para incluir los objetos que está cargando dentro del índice de búsqueda de HCL Commerce, especifique el mediador de índice de búsqueda para el objeto de negocio que está cargando.
    También debe especificar la correlación de datos para el objeto que se va a incluir dentro de la índice de búsqueda.

    Para especificar el mediador de índice de búsqueda y la correlación de datos, cree una segunda configuración del creador de objetos de negocio para indexar el objeto de negocio. Añada la segunda configuración del creador de objetos de negocio después del elemento </_config:BusinessObjectBuilder> que cierra la configuración del creador de objetos de negocio inicial. Para obtener una lista de mediadores de índice de búsqueda disponibles, consulte Programa de utilidad de carga de datos mediadores de objetos de negocio.

    Por ejemplo, el siguiente fragmento de código especifica el mediador de índice de búsqueda para cargar categorías y los datos que se van a incluir en el índice de búsqueda:
    
    <_config:BusinessObjectBuilder 
      className="com.ibm.commerce.foundation.dataload.businessobjectbuilder.BaseBusinessObjectBuilder"
      packageName="com.ibm.commerce.catalog.facade.datatypes.CatalogPackage" 
      dataObjectType= "CatalogGroupType" >
      <_config:DataMapping>
      ...
      </_config:DataMapping>
      <_config:BusinessObjectMediator 
        className="com.ibm.commerce.catalog.dataload.mediator.CatalogGroupMediator" 
        componentId="com.ibm.commerce.catalog" />
    </_config:BusinessObjectBuilder>
    
    <!--  Catalog Group Search Index -->
    <_config:BusinessObjectBuilder 
      className="com.ibm.commerce.foundation.dataload.businessobjectbuilder.BaseBusinessObjectBuilder"
      packageName="com.ibm.commerce.catalog.facade.datatypes.CatalogPackage" 
      dataObjectType="CatalogGroupType" >
      <_config:DataMapping>
        <!-- The unique reference number of the category -->
        <_config:mapping xpath="CatalogGroupIdentifier/UniqueID" value="GroupUniqueId" />
        <!-- The identifier of the category -->
        <_config:mapping xpath="CatalogGroupIdentifier/ExternalIdentifier/GroupIdentifier" 
          value="GroupIdentifier" />
        <!-- The unique reference number of the store that owns the category -->
        <_config:mapping 
          xpath="CatalogGroupIdentifier/ExternalIdentifier/StoreIdentifier/ExternalIdentifier/NameIdentifier" 
          value="StoreIdentifier" />
        <!-- The unique reference number of the parent category -->
        <_config:mapping xpath="ParentCatalogGroupIdentifier/UniqueID" value="ParentGroupUniqueId" />
        <!-- The identifier of the parent category -->
        <_config:mapping xpath="ParentCatalogGroupIdentifier/ExternalIdentifier/GroupIdentifier" 
          value="ParentGroupIdentifier" />
        <!-- The unique reference number of the store that owns the parent category -->
        <_config:mapping 
          xpath="ParentCatalogGroupIdentifier/ExternalIdentifier/StoreIdentifier/UniqueID" 
          value="ParentStoreUniqueId" />
        <!-- The identifier of the store that owns the parent category -->
        <_config:mapping 
          xpath="ParentCatalogGroupIdentifier/ExternalIdentifier/StoreIdentifier/ExternalIdentifier/NameIdentifier" 
          value="ParentStoreIdentifier" />
        <!-- The identifier of the catalog -->
        <_config:mapping xpath="Attributes/CatalogIdentifier" value="CatalogIdentifier" />
        </_config:DataMapping>
      <_config:BusinessObjectMediator 
        className="com.ibm.commerce.catalog.dataload.mediator.CatalogGroupRelationshipSearchIndexMediator" 
        componentId="com.ibm.commerce.catalog" >
      </_config:BusinessObjectMediator>
    </_config:BusinessObjectBuilder>
    
    Como referencia para ayudarle a configurar la correlación de datos para un objeto, revise los archivos de configuración de objeto de negocio que se proporcionan de forma predeterminada. El objeto de los archivos proporcionados es utilizarlos con la herramienta Subir catálogo. Para revisar estos archivos, vaya al siguiente directorio:
    • Linuxutilities_root/ts.ear/xml/config/com.ibm.commerce.catalog/dataload
    • HCL Commerce Developerworkspace_dir\WC\xml\config\com.ibm.commerce.catalog\dataload
    Los siguientes archivos incluyen la configuración para ejecutar la indexación de búsquedas:
    • wc-loader-AD-attribute-allowed-values.xml
    • wc-loader-catalog-entry.xml
    • wc-loader-catalog-group.xml
    • wc-loader-catalog-group-description.xml