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: