Mappage entre des objets du Management Center et des noms WebSphere Commerce

Les groupes de paramètres d'URL définissent la relation entre des objets du Management Center et des noms HCL Commerce.

Pour transformer une demande d'URL en demande BOD (Business Object Documents) de traitement (Process) ou de modification (Change), vous devez décrire le nom qui permet de générer les expressions d'action appropriées. Ensuite, vous devez définir les paramètres d'URL comme éléments et attributs du nom. La définition d'URL déclare les groupes de paramètres contenant le nom de paramètre d'URL pour le mappage d'élément et d'attribut de nom.

Groupes de paramètres d'URL (URLParameterGroup)

Les paramètres d'URL sont définis dans un groupe en tant que jeu en commentaire de noms de paramètre d'URL correspondant à un nom ou une partie de nom spécifique. Vous pouvez utiliser des groupes de paramètres d'URL afin de vous assurer que des noms de paramètre d'URL courants sont utilisés pour représenter les objets du Management Center et la façon dont ils sont reliés à des éléments de nom.

Outre la déclaration du nom de paramètre d'URL pour une définition d'élément ou d'attribut de nom, un groupe de paramètres d'URL peut inclure d'autres groupes de paramètres d'URL. Lorsque des objets du Management Center qui partagent un groupe commun sont représentés différemment dans l'application Web Management Center, certains groupes de paramètres d'URL peuvent être réutilisés. Par exemple, si un nom représente un objet récapitulatif du Management Center et que l'URL doit déclarer des instances spécifiques de cet objet, vous pouvez utiliser les groupes de paramètres inclus afin de réutiliser le mappage. Les éléments de niveau inférieur peuvent être identiques et réutiliser les mêmes noms de paramètre d'URL. Les éléments de niveau supérieur peuvent utiliser un autre ensemble de noms de paramètre d'URL pour mieux représenter le mode selon lequel l'application Web Management Center modélise l'objet du Management Center.

Les fichiers de configuration permettant de mapper des objets du Management Center à des noms HCL Commerce sont situés dans l'application Web LOBTools :
  • workspace_dir\LOBTools\WebContent\WEB-INF\config\com.ibm.commerce.component\wc-component-clientobjects.xml
Si vous personnalisez le Management Center en créant un nom, créez un fichier de mappage pour ce nom. Si vous utilisez UserData en tant que point d'extension de nom, il est inutile de modifier le fichier de mappage de noms Management Center - HCL Commerce. Ne modifiez aucun fichier de mappage fourni par HCL Commerce. Créez votre propre fichier de mappage wc-component-clientobjects.xml pour mapper les configurations Spring Framework personnalisées et les configurations d'objet client personnalisées.
Le code suivant montre un exemple de mappage entre les paramètres d'URL qui représentent l'objet de produit du Management Center et le nom d'entrée de catalogue.

<!-- 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>
Remarque : L'attribut name de UserData ne peut contenir qu'un trait de soulignement unique, qui doit suivre immédiatement le préfixe. Par exemple, le fragment de code suivant identifie un objet UserData en tant que "x_myParam"

<_config:URLParameter name="x_myParam" nounElement="/UserData/UserDataField" type="UserData" />
1 name
Nom du paramètre d'URL.
2 nounElement
Elément ou attribut du nom auquel la valeur est associée. Pour mapper à un élément, utilisez le format nounElement="/ElementName". Pour mapper à un attribut, utilisez le format nounElement="/ElementName/@AttributeName".
3 key
Facultatif. Identificateur unique du nom ou type complexe du nom. La valeur par défaut est false.
4 return
Facultatif. Indique si l'élément noun doit être inclus dans la réponse lors de la génération de l'objet réponse. La valeur par défaut est false sauf si la valeur de l'attribut key est true.
5 type
Facultatif. Type de données de l'élément ou de l'attribut de nom. Si la valeur de UserData est indiquée, le mappage du paramètre d'URL revêt une signification particulière et le nom du paramètre d'URL commence par l'attribut de nom indiqué. Les paramètres d'URL de type UserData où le nom de l'élément fait partie du nom du paramètre d'URL ont un comportement d'analyse syntaxique propre. Le nom et la valeur sont mappés sur un nouvel objet, comme indiqué par l'attribut nounElement. Vous pouvez également indiquer l'élément UserDataAssociation pour un mappage d'objet plus complexe.
6 IncludeURLParameterGroupurlParameterGroup
Indique un groupe de paramètres d'URL déclaré à inclure dans le groupe de paramètres d'URL en cours. Au moment de l'exécution, les noms des paramètres d'URL des groupes de paramètres d'URL inclus sont fusionnés afin de décrire un nom de paramètre d'URL complet pour le mappage d'élément ou d'attribut de nom.
allowEmpty
Facultatif. Indique si la valeur de ce paramètre peut être vide. Si tel n'est pas le cas, une erreur d'application est créée afin que le service ne s'exécute pas. La valeur par défaut est true.

<_config:URLParameter name="attrValValue" nounElement="/CatalogEntryAttributes/Attributes/StringValue/Value" 
  key="false" return="false" allowEmpty="false"/>
  
actionExpression
Facultatif : Indique si l'expression d'action est créée dans l'instruction de modification afin de spécifier que ce nom (ou une partie modifiable du nom) a été modifié. La valeur par défaut est true, sauf si la valeur de l'attribut key est true. Dans le fragment de code suivant, le paramètre d'URL parentCategoryId inclut l'attribut actionExpression :

<_config:URLParameter name="parentCategoryId" nounElement="/ParentCatalogGroupIdentifier/UniqueID" 
  key="false" return="true" actionExpression="true" />
La configuration de paramètre d'URL pour un nom de paramètre d'URL définit les valeurs correspondant à un élément ou un attribut du nom spécifié par le groupe de paramètres d'URL. Vous pouvez indiquer l'une des valeurs suivantes pour la configuration de paramètre d'URL :
  • Une définition de nom pour répertorier les noms et les parties de nom d'un module de service. Campaign est un nom sans partie. Le nom Activity inclut la partie 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>
  • Une définition d'URL pour lier les noms de paramètre d'URL du Management Center à des noms HCL Commerce. Le fragment de code suivant associe le nom Activity indiqué dans le fragment de code précédent à la partie 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>