Correlación entre los objetos del Management Center y los nombres

Los grupos de parámetros de URL definen la relación entre los objetos del Management Center y los nombres de HCL Commerce.

Cuando se transforma una solicitud de URL en una solicitud de BOD de proceso o BOD de cambio, debe describir el nombre para crear las expresiones de acciones adecuadas. A continuación, debe definir los parámetros de URL como elementos y atributos en el nombre. La definición de URL describe los grupos de parámetros que contienen el nombre de parámetro de URL para la correlación de elementos y atributos de nombre.

Grupos de parámetros de URL (URLParameterGroup)

Los parámetros de URL se definen en un grupo como un conjunto comentado de nombres de parámetros de URL que corresponden a un nombre específico o una parte de nombre. Puede utilizar los grupos de parámetros de URL para garantizar que los nombres de parámetros de URL comunes se utilicen para representar objetos del Management Center y cómo se relacionan con elementos de nombre.

Además de declarar el nombre de parámetro de URL en elemento de nombre o definición de atributo, un grupo de parámetros de URL también puede incluir otros grupos de parámetros de URL. Cuando los objetos del Management Center que comparten un grupo común se representan de forma diferente en la aplicación web del Management Center, algunos grupos de parámetros de URL pueden reutilizarse. Por ejemplo, si un nombre representa un objeto abstracto del Management Center y el URL declara instancias específicas de dicho objeto, puede utilizar los grupos de parámetros incluidos para reutilizar la correlación. Los elementos de nivel inferior pueden ser los mismos y se pueden reutilizar los mismos nombres de parámetros de URL. No obstante, los elementos de nivel superior pueden utilizar un conjunto diferente de nombres de parámetros de URL para representar mejor cómo la aplicación web del Management Center modela el objeto del Management Center.

Los archivo de configuración para correlacionar objetos del Management Center con nombres de HCL Commerce están en la aplicación web LOBTools:
  • workspace_dir\LOBTools\WebContent\WEB-INF\config\com.ibm.commerce.component\wc-component-clientobjects.xml
Si personaliza el Management Center creando un nombre, debe crear un archivo de correlación para el nombre. Si utiliza UserData como punto de extensión del nombre, cambie el Management Center al archivo de correlación de nombres de HCL Commerce. NO cambie ningún archivo de correlaciones que HCL Commerce proporcione. Cree su propio archivo de correlaciones wc-component-clientobjects.xml para correlacionar las configuraciones de Spring Framework personalizadas y las configuraciones de objetos de cliente personalizadas.
El código siguiente muestra un ejemplo de la correlación entre los parámetros de URL que representan el objeto del producto del Management Center y el nombre de la entrada del catálogo.

<!-- The following URL parameter group defines the URL parameters that represent the Management Center product, 
     kit, and bundle objects and how they relate to the catalog entry noun. -->
<_config:URLParameterGroup name="CatalogEntry" 1 
  noun="CatalogEntry">

<!--  Map the properties of the primary object to elements and attributes of the catalog entry -->
  <_config:URLParameter name="catentryId"
    nounElement="/CatalogEntryIdentifier/UniqueID" 2 
    key="true" 3
    return="true" 4 />
  <_config:URLParameter name="typeCode" nounElement="/@catalogEntryTypeCode" />
  <_config:URLParameter name="catenttypeId" nounElement="/@catalogEntryTypeCode" />
  <_config:URLParameter name="ownerId" nounElement="/CatalogEntryIdentifier/ExternalIdentifier/@ownerID" key="false" return="true" />
  <_config:URLParameter name="partnumber" nounElement="/CatalogEntryIdentifier/ExternalIdentifier/PartNumber" return="true"/>
  <_config:URLParameter name="parentCatalogGroupId" nounElement="/ParentCatalogGroupIdentifier/UniqueID"/>
  <_config:URLParameter name="parentCatalogEntryId" nounElement="/ParentCatalogEntryIdentifier/UniqueID" />
  <_config:URLParameter name="sequence" nounElement="/@displaySequence" key="true"/>		

<!--  Declaring the generic property prefix that has the built-in UserData support -->
  <_config:URLParameter name="x_" nounElement="/UserData/UserDataField" type="UserData" 5 />

<!--  Include the child objects -->
  <_config:IncludeURLParameterGroup urlParameterGroup="CatalogEntryExtraProperties" 6/>
  <_config:IncludeURLParameterGroup urlParameterGroup="CatalogEntryDescription" />
  <_config:IncludeURLParameterGroup urlParameterGroup="CatalogEntryDescriptionOverride" />
  <_config:IncludeURLParameterGroup urlParameterGroup="CatalogEntryListPrice" />
  <_config:IncludeURLParameterGroup urlParameterGroup="CatalogEntryInventory" />
  <_config:IncludeURLParameterGroup urlParameterGroup="CatalogEntryAttributes" />
  <_config:IncludeURLParameterGroup urlParameterGroup="CatalogEntryAttributesAllowedValue" />
  <_config:IncludeURLParameterGroup urlParameterGroup="CatalogEntrySeoAttributes" />
  <_config:IncludeURLParameterGroup urlParameterGroup="CatalogEntrySeoURL" />  
</_config:URLParameterGroup>

<!--  The following URL parameter group defines the URL parameters that represent the Management Center product description object
      and how they relate to the catalog entry description element that is part of the catalog entry Noun -->
<_config:URLParameterGroup name="CatalogEntryDescription" noun="CatalogEntry">

<!--  Map the product description properties to the catalog description elements and attributes -->
  <_config:URLParameter name="catentryId" nounElement="/CatalogEntryIdentifier/UniqueID" key="true" return="true" />
  <_config:URLParameter name="descriptionLanguageId" nounElement="/Description/@language" key="true" return="true" />
  <_config:URLParameter name="name" nounElement="/Description/Name" key="false" />
  <_config:URLParameter name="sDesc" nounElement="/Description/ShortDescription" key="false" />
  <_config:URLParameter name="lDesc" nounElement="/Description/LongDescription" key="false" />
  <_config:URLParameter name="tImage" nounElement="/Description/Thumbnail" key="false" />
  <_config:URLParameter name="fImage" nounElement="/Description/FullImage" key="false" />
  <_config:URLParameter name="keyword" nounElement="/Description/Keyword" key="false" />

<!--  Declaring the generic property prefix that has the built-in UserData support to add additional description information -->
  <_config:URLParameter name="xdesc_" nounElement="/Description/Attributes" type="UserData" />
</_config:URLParameterGroup>
Nota: El atributo name para UserData solamente puede contener un único carácter de subrayado, que debe ir inmediatamente después del prefijo. Por ejemplo, el fragmento de código siguiente identifica un objeto UserData como "x_myParam"

<_config:URLParameter name="x_myParam" nounElement="/UserData/UserDataField" type="UserData" />
1 name
El nombre del parámetro de URL.
2 nounElement
El elemento o atributo del nombre con el que se asocia el valor. Para correlacionar con un elemento, utilice el formato nounElement="/ElementName". Para correlacionar con un atributo, utilice el formato nounElement="/ElementName/@AttributeName".
3 key
Opcional. El identificador exclusivo del nombre o el tipo completo del nombre. El valor predeterminado es false.
4 return
Opcional. Especifica si el elemento de nombre debe incluirse en la respuesta cuando se crea el objeto de respuesta. El valor predeterminado es false a menos que el valor del atributo de clave sea true.
5 type
Opcional. El tipo de datos de elemento o atributo de nombre. Si se especifica un valor de UserData, la correlación de parámetros URL tiene un significado especial y el nombre de parámetro URL empieza por el atributo del nombre especificado. Los parámetros URL de tipo UserData donde el nombre del elemento forma parte del nombre de parámetro URL tienen un comportamiento de análisis especial. El nombre y el valor están correlacionados con un objeto nuevo, según lo indicado mediante el atributo nounElement. También puede especificar un elemento UserDataAssociation para una correlación de objetos más compleja.
6 IncludeURLParameterGroupurlParameterGroup
Especifica un grupo de parámetros URL declarados que se incluirán como parte del grupo de parámetros URL actuales. Durante la ejecución, los nombres de parámetro de URL de los grupos de parámetros de URL incluidos se fusionan para describir un nombre de parámetro de URL completo para la correlación de elementos o atributos de nombre.
allowEmpty
Opcional. Especifica si el valor de este parámetro puede estar vacío. Si no puede estarlo, se crea un error de aplicación para que el servicio no se ejecute. El valor predeterminado es true.

<_config:URLParameter name="attrValValue" nounElement="/CatalogEntryAttributes/Attributes/StringValue/Value" 
  key="false" return="false" allowEmpty="false"/>
  
actionExpression
Opcional: Especifica si la expresión de la acción debe crearse en el verbo Change para especificar que este nombre o una parte modificable de él se ha modificado. El valor predeterminado del atributo es true, salvo que el valor del atributo key sea true. En el fragmento de código siguiente, el parámetro de URL parentCategoryId incluye el atributo actionExpression:

<_config:URLParameter name="parentCategoryId" nounElement="/ParentCatalogGroupIdentifier/UniqueID" 
  key="false" return="true" actionExpression="true" />
La configuración del parámetro de URL para un nombre de parámetro de URL define los valores que corresponden a un elemento o un atributo del nombre que está especificado por el grupo de parámetros de URL. Puede especificar uno cualquiera de los valores siguientes como parte de la configuración del parámetro URL:
  • Una definición de nombre para listar los nombres y partes de nombre de un módulo de servicio. El nombre Campaign es un nombre sin partes. El nombre Activity incluye la parte CampaignElement.
    
    <_config:NounDefinitions>
      <_config:Noun name="Campaign"/>
      <_config:Noun name="Activity">
        <_config:NounElement name="CampaignElement" part="true"/>
      </_config:Noun>
      <_config:Noun name="MarketingEmailTemplate"/>
     ...
    </_config:NounDefinitions>
  • Una definición de URL para enlazar nombres de parámetros de URL desde los nombres del Management Center hasta HCL Commerce. El siguiente fragmento de código correlaciona el nombre de la actividad que se muestra en el fragmento de código anterior con la parte CampaignElement.
    
    <_config:URLParameterGroup name="Activity" noun="Activity">
      <_config:URLParameter name="activityId" nounElement="/ActivityIdentifier/UniqueID" key="true" return="true" />
      <_config:URLParameter name="campaignId" nounElement="/CampaignIdentifier/UniqueID" key="false" />
      <_config:URLParameter name="name" 
        nounElement="/ActivityIdentifier/ExternalIdentifier/Name" />
      <_config:URLParameter name="storeId" 
        nounElement="/ActivityIdentifier/ExternalIdentifier/StoreIdentifier/UniqueID" key="false" return="true" />
      <_config:URLParameter name="storeentId" 
        nounElement="/ActivityIdentifier/ExternalIdentifier/StoreIdentifier/UniqueID" key="false" return="true" />		
      <_config:URLParameter name="version" nounElement="/Version" />
      <_config:URLParameter name="published" nounElement="/PublishedVersion" />
      <_config:URLParameter name="state" nounElement="/State" return="true"/>
      <_config:URLParameter name="startdate" nounElement="/StartDate" nillable="true" />
      <_config:URLParameter name="enddate" nounElement="/EndDate" nillable="true" />
      <_config:URLParameter name="repeatable" nounElement="/Repeatable" />
      <_config:URLParameter name="priority" nounElement="/Priority" />
      <_config:URLParameter name="activityType" nounElement="/Format" />
      <_config:URLParameter name="description" nounElement="/Description" />
      <_config:URLParameter name="flowxml" nounElement="/RuntimeXMLDefinition" />
      <_config:URLParameter name="experimentType" nounElement="/ExperimentFormat" />
      <_config:URLParameter name="templateType" nounElement="/TemplateFormat" />
      <_config:URLParameter name="x_" nounElement="/UserData/UserDataField" type="UserData" />
      <_config:IncludeURLParameterGroup urlParameterGroup="CampaignElement"/>
    </_config:URLParameterGroup>	
    
    <_config:URLParameterGroup name="CampaignElement" noun="Activity">
      <_config:URLParameter name="activityId" 
        nounElement="/ActivityIdentifier/UniqueID" key="true" return="false" actionExpression="false" />
      <_config:URLParameter name="parentElementName" nounElement="/CampaignElement/ParentElementIdentifier/Name" />
      <_config:URLParameter name="PROPERTY_sequence" nounElement="/CampaignElement/ElementSequence" />
      <_config:URLParameter name="PROPERTY_elementName" nounElement="/CampaignElement/CampaignElementIdentifier/Name" />
      <_config:URLParameter name="PROPERTY_elemTemplateName" 
        nounElement="/CampaignElement/CampaignElementTemplateIdentifier/ExternalIdentifier/Name" />
      <_config:URLParameter name="PROPERTY_elemTemplateType" 
        nounElement="/CampaignElement/CampaignElementTemplateIdentifier/ExternalIdentifier/CampaignElementFormat" />
      <_config:URLParameter name="elemTemplateName" 
        nounElement="/CampaignElement/CampaignElementTemplateIdentifier/ExternalIdentifier/Name" />
      <_config:URLParameter name="elemTemplateType" 
        nounElement="/CampaignElement/CampaignElementTemplateIdentifier/ExternalIdentifier/CampaignElementFormat" />
      <_config:URLParameter name="PROPERTY_" 
        nounElement="/CampaignElement/CampaignElementVariable" type="UserData" >
        <_config:ParameterAssociation name="ASSOCIATEDPROPERTY_sequence_" value="/SequenceOrder" />
      </_config:URLParameter>								
      <_config:URLParameter name="xelem_" nounElement="/UserData/UserDataField" type="UserData" />
    </_config:URLParameterGroup>