

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
Install the cumulative interim fix for Feature Pack 5, JR53048.fep. JR50830 is included in the cumulative interim fix.
Install the interim fix for JR50830.
For information about
how to install an interim fix, see
Procedure
- Start WebSphere Commerce Developer.
- Open the J2EE perspective and select the Enterprise Explorer view.
- Go to LOBTools > WebContent > config > commerce > catalog > objectDefinitions.
- Open the AttributeDictionaryAttributePrimaryObjectDefinition.def file.
-
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>
-
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>
- Save the file.
- Open the AttributeDictionaryCommonObjectDefinition.def file.
-
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>
-
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>
- Save the file.
- Go to LOBTools > WebContent > WEB-INF > config > com.ibm.commerce.catalog.
- Open the wc-catalog-clientobjects.xml file.
-
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"/>
-
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"/>
-
Save the file.
Note: To test the fix, open a new browser window, clear the browser cache, and open the Management Center.
-
Deploy the changes to your WebSphere Commerce Server.
-
Export the LOBTools project:
- In the Enterprise Explorer view, right-click LOBTools and select Export > WAR file.
- Click Browse to select a destination.
- Click Finish.
- Deploy the new LOBTools.war on the target WebSphere Commerce Server
-
Export the LOBTools project: