Feature Pack 5Feature Pack 6

Enabling interim fix JR50830

Interim fix JR50830 provides the ability to save catalog entry descriptive attribute values for multiple languages.

Note: To enable this fix, you must implement and deploy changes to LOBTools code that is reserved for client customization.

Before you begin

  • Feature Pack 5Install the cumulative interim fix for Feature Pack 5, JR53048.fep. JR50830 is included in the cumulative interim fix.
  • Feature Pack 6Install the interim fix for JR50830.

Procedure

  1. Start WebSphere Commerce Developer.
  2. Open the J2EE perspective and select the Enterprise Explorer view.
  3. Go to LOBTools > WebContent > config > commerce > catalog > objectDefinitions.
  4. Open the AttributeDictionaryAttributePrimaryObjectDefinition.def file.
  5. Search for the following code in the file:
    <ChildObjectDefinition
    definitionName="catAttributeDictionaryAttributeAssignedValueDescription"
    idProperty="languageId"
    objectType="AttributeDictionaryAttributeAssignedValueDescription"
    languageSensitive="true"
    releaseWhenClosed="false">
    
    <!--- Create service. -->
    <CreateService url="/cmc/UpdateCatalogEntryAttributeDictionaryAttributeValue">
    <ServiceParam name="storeId"/>
    <ServiceParam name="catalogEntryAttributesLanguageId" propertyName="languageId"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDataType" parentProperty="true" resolvePrimaryParent="false" propertyName="attrDataType"/>
    <ServiceParam name="attrDictAttrValId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrValId"/>
    <ServiceParam name="attrDictAttrValue" parameterName="attrDictAttrValue" propertyName="value" optional="false" sendEmpty="false"/>
    </CreateService>
    
    <!--- Update service. -->
    <UpdateService url="/cmc/UpdateCatalogEntryAttributeDictionaryAttributeValue">
    <ServiceParam name="storeId"/>
    <ServiceParam name="catalogEntryAttributesLanguageId" propertyName="languageId"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDataType" parentProperty="true" resolvePrimaryParent="false" propertyName="attrDataType"/>
    <ServiceParam name="attrDictAttrValId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrValId"/>
    <ServiceParam name="attrDictAttrValue" parameterName="attrDictAttrValue" propertyName="value" optional="false" sendEmpty="false"/>
    </UpdateService>
  6. Replace it with the following code:
    <ChildObjectDefinition
    definitionName="catAttributeDictionaryAttributeAssignedValueDescription"
    idProperty="languageId"
    objectType="AttributeDictionaryAttributeAssignedValueDescription"
    languageSensitive="true"
    releaseWhenClosed="false">
    
    <!--- Create service. -->
    <CreateService url="/cmc/UpdateCatalogEntryAttributeDictionaryAttributeValue">
    <ServiceParam name="storeId"/>
    <ServiceParam name="catalogEntryAttributesLanguageId" propertyName="languageId"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDataType" parentProperty="true" resolvePrimaryParent="false" propertyName="attrDataType"/>
    <ServiceParam name="attrDictAttrValId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrValId"/>
    </CreateService>
    
    <!--- Update service. -->
    <UpdateService url="/cmc/UpdateCatalogEntryAttributeDictionaryAttributeValue">
    <ServiceParam name="storeId"/>
    <ServiceParam name="catalogEntryAttributesLanguageId" propertyName="languageId"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDataType" parentProperty="true" resolvePrimaryParent="false" propertyName="attrDataType"/>
    <ServiceParam name="attrDictAttrValId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrValId"/>
    </UpdateService>
  7. Save the file.
  8. Open the AttributeDictionaryCommonObjectDefinition.def file.
  9. Search for the following code:
    <ChildObjectDefinition baseDefinitionName="catAttributeDictionaryAttributeAssignedValueDescription"/>
    
    <!--- Create service. -->
    <CreateService url="/cmc/CreateCatalogEntryAttributeDictionaryAttribute">
    <ServiceParam name="storeId"/>
    <ServiceParam name="languageId" objectPath="AttributeDictionaryAttributeAssignedValueDescription" propertyName="languageId"/>
    <ServiceParam name="attrDisplaySequence" propertyName="attrDisplaySequence"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" objectPath="AttributeDictionaryAttributes" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDataType" objectPath="AttributeDictionaryAttributes" propertyName="attrDataType"/>
    <ServiceParam name="attrDictAttrValue" objectPath="AttributeDictionaryAttributeAssignedValueDescription" propertyName="value" optional="false" sendEmpty="false"/>
    <ServiceParam name="type" value="assigned"/>
    </CreateService>
    
    <!--- Update service. -->
    <UpdateService url="/cmc/UpdateCatalogEntryAttributeDictionaryAttributeValue">
    <ServiceParam name="storeId"/>
    <ServiceParam name="attrDisplaySequence" propertyName="attrDisplaySequence"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" objectPath="AttributeDictionaryAttributes" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDictAttrValId" propertyName="attrValId"/>
    <ServiceParam name="attrDictAttrValue" objectPath="AttributeDictionaryAttributeAssignedValueDescription" propertyName="value" optional="false" sendEmpty="false"/>
    <ServiceParam name="type" value="assigned"/>
    <ServiceParam name="attrDataType" objectPath="AttributeDictionaryAttributes" propertyName="attrDataType"/>
    </UpdateService>
  10. Replace it with the following code:
    <ChildObjectDefinition baseDefinitionName="catAttributeDictionaryAttributeAssignedValueDescription"/>
    
    <!--- Create service. -->
    <CreateService url="/cmc/CreateCatalogEntryAttributeDictionaryAttribute" sendDefaultLanguageProperties="true">
    <ServiceParam name="storeId"/>
    <ServiceParam name="languageId" objectPath="AttributeDictionaryAttributeAssignedValueDescription" propertyName="languageId"/>
    <ServiceParam name="attrDisplaySequence" propertyName="attrDisplaySequence"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" objectPath="AttributeDictionaryAttributes" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDataType" objectPath="AttributeDictionaryAttributes" propertyName="attrDataType"/>
    <ServiceParam name="type" value="assigned"/>
    </CreateService>
    
    <!--- Update service. -->
    <UpdateService url="/cmc/UpdateCatalogEntryAttributeDictionaryAttributeValue" sendDefaultLanguageProperties="true">
    <ServiceParam name="storeId"/>
    <ServiceParam name="attrDisplaySequence" propertyName="attrDisplaySequence"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" objectPath="AttributeDictionaryAttributes" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDictAttrValId" propertyName="attrValId"/>
    <ServiceParam name="type" value="assigned"/>
    <ServiceParam name="attrDataType" objectPath="AttributeDictionaryAttributes" propertyName="attrDataType"/>
    </UpdateService>
  11. Save the file.
  12. Go to LOBTools > WebContent > WEB-INF > config > com.ibm.commerce.catalog.
  13. Open the wc-catalog-clientobjects.xml file.
  14. Search for the following code:
    <_config:URLParameter name="attrDictAttrValId"
    	nounElement="/CatalogEntryAttributes/Attributes/Value/@identifier"
    	key="false" return="true" allowEmpty="false"/>
    <_config:URLParameter name="attrDictAttrValue"
    	nounElement="/CatalogEntryAttributes/Attributes/Value/@value"
    	key="false" return="false" allowEmpty="false"/>
    
  15. Replace it with the following code:
    <_config:URLParameter name="attrDictAttrValId"
        nounElement="/CatalogEntryAttributes/Attributes/Value/@identifier" key="false"
        return="true" allowEmpty="false"/>   
    <_config:URLParameter name="value"
        nounElement="/CatalogEntryAttributes/Attributes/Value/@value" key="false"
        return="false" allowEmpty="false"/>
  16. Save the file.
    Note: To test the fix, open a new browser window, clear the browser cache, and open the Management Center.
  17. Deploy the changes to your WebSphere Commerce Server.
    1. Export the LOBTools project:
      1. In the Enterprise Explorer view, right-click LOBTools and select Export > WAR file.
      2. Click Browse to select a destination.
      3. Click Finish.
    2. Deploy the new LOBTools.war on the target WebSphere Commerce Server