Mapping a new Business Object Document message to a new command
WebSphere Commerce uses the !ENTITY declarations to include different files for each of the document command mappings, and has extended the message mapper declaration to include a file for extensions called webservice_SOABOD_template.extension.xml. You can update this file to easily include your own extensions, and this will allow you to easily create your own message mapper file and include those documents that you want to leave alone and any additional or changed mappings that you want to define.
About this task
The message mapper files are located in the XML Configuration Directory:
- WC_eardir/xml/messaging
- workspace_dir\wc\xml\messaging
To map a new Business Object Document to a new command:
Procedure
- Add a new TemplateDocument element
within the ECTemplate tags of webservice_SOABOD_template.extension.xml.
For example the file that maps the CreateCustomer BOD to the UserRegistrationAdminAddCmd command looks like this:
<TemplateDocument> <DocumentType version="8.1">CreateCustomer</DocumentType> <StartElement>CreateCustomer</StartElement> <TemplateTagName>CreateCustomer81Map</TemplateTagName> <CommandMapping> <Command CommandName="com.ibm.commerce.usermanagement.commands.UserRegistrationAdminAddCmd" Condition='profileType="B"'>> <Constant Field="URL">NoURL</Constant> <Constant Field="ReURL">NoReURL</Constant> <Constant Field="registrationType">BuyerRegistration</Constant> <Constant Field="profileType">B</Constant> <Constant Field="disableExtendedChecking">true</Constant> </Command> <Command CommandName="com.ibm.commerce.usermanagement.commands.UserRegistrationAdminAddCmd" Condition='profileType="C"'>> <Constant Field="URL">NoURL</Constant> <Constant Field="ReURL">NoReURL</Constant> <Constant Field="profileType">C</Constant> <Constant Field="disableExtendedChecking">true</Constant> </Command> <Command CommandName="com.ibm.commerce.usermanagement.commands.UserRegistrationAdminAddCmd" Condition='GuestUserRegisterCondition'> <Constant Field="URL">NoURL</Constant> <Constant Field="ReURL">NoReURL</Constant> <Constant Field="profileType">C</Constant> <Constant Field="disableExtendedChecking">true</Constant> </Command> </CommandMapping> </TemplateDocument>
- Add a new TemplateTagName within the ECTemplate tags
of webservice_SOABOD_template.extension.xml.
Ensure that the name attribute of the
TemplateTagName node matches the value
within the TemplateTagName tags within
the TemplateDocument created in the
previous step. Continuing our example:
<TemplateTag name="CreateCustomer81Map"> <!-- Command Parameters --> <Tag XPath="DataArea/Customer/UserAccount/Authorization/UserId" Field="logonId" FieldInfo="DATA"/> <Tag XPath="DataArea/Customer/UserAccount/Authorization/Password" Field="logonPassword"/> <Tag XPath="DataArea/Customer/UserAccount/Authorization/VerifyPassword" Field="logonPasswordVerify"/> <Tag XPath="DataArea/Customer/UserAccount/Authorization/Status/Code" Field="userStatus"/> <Tag XPath="x" Field="passwordExpired"/> <Tag XPath="DataArea/Customer/UserAccount/Authorization/ChallengeQuestion" Field="challengeQuestion"/> <Tag XPath="DataArea/Customer/UserAccount/Authorization/ChallengeAnswer" Field="challengeAnswer"/> <Tag XPath="DataArea/Customer/CustomerParty/Addresses/Address/AddressId" Field="addressId"/> <Tag XPath="DataArea/Customer/CustomerParty/Addresses/Address/AddressNickName" Field="nickName"/> <Tag XPath="DataArea/Customer/CustomerParty/Addresses/Address@type" Field="addressType"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Person/PersonName/Salutation" Field="personTitle"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Person/PersonName/FamilyName" Field="lastName"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Person/PersonName/GivenName" Field="firstName"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Person/PersonName/MiddleName" Field="middleName"/> <Tag XPath="DataArea/Customer/CustomerParty/Addresses/Address/AddressLine" XPathType="REPEAT"/> <Tag XPath="DataArea/Customer/CustomerParty/Addresses/Address/AddressLine[1]" Field="address1"/> <Tag XPath="DataArea/Customer/CustomerParty/Addresses/Address/AddressLine[2]" Field="address2"/> <Tag XPath="DataArea/Customer/CustomerParty/Addresses/Address/AddressLine[3]" Field="address3"/> <Tag XPath="DataArea/Customer/CustomerParty/Addresses/Address/City" Field="city"/> <Tag XPath="DataArea/Customer/CustomerParty/Addresses/Address/StateOrProvinceCode" Field="state"/> <Tag XPath="DataArea/Customer/CustomerParty/Addresses/Address/PostalCode" Field="zipCode"/> <Tag XPath="DataArea/Customer/CustomerParty/Addresses/Address/CountryCode" Field="country"/> <Tag XPath="DataArea/Customer/CustomerParty/Addresses/Address/UserData/UserDataField" XPathType="USERDATA"/> <Tag XPath="x" Field="primary"/> <Tag XPath="x" Field="selfAddress"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Telephone" XPathType="REPEAT"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Telephone[1]" Field="phone1"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Telephone[1]@type" Field="phone1Type"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Telephone[1]@publish" Field="publishPhone1"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Telephone[2]" Field="phone2"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Telephone[2]@type" Field="phone2Type"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Telephone[2]@publish" Field="publishPhone2"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/BestCallTime" Field="bestCallingTime"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Fax" XPathType="REPEAT"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Fax[1]" Field="fax1"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Fax[2]" Field="fax2"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/EMailAddress" XPathType="REPEAT"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/EMailAddress[1]" Field="email1"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/EMailAddress[2]" Field="email2"/> <Tag XPath="x" Field="billingCode"/> <Tag XPath="x" Field="billingCodeType"/> <Tag XPath="x" Field="packageSuppression"/> <Tag XPath="x" XPathType="REPEAT"/> <Tag XPath="x" Field="distinguishedName"/> <Tag XPath="DataArea/Customer/CustomerParty/Currency" Field="preferredCurrency"/> <Tag XPath="DataArea/Customer/CustomerParty/CorrespondenceLanguage" Field="preferredLanguage"/> <Tag XPath="x" XPathType="REPEAT"/> <Tag XPath="DataArea/Customer/CustomerParty/Contacts/Contact/Person/PersonName/FormattedName" Field="displayName"/> <Tag XPath="x" Field="photo"/> <Tag XPath="x" Field="preferredMeasure"/> <Tag XPath="x" Field="preferredCommunication"/> <Tag XPath="x" Field="preferredDelivery"/> <Tag XPath="x" Field="description"/> <Tag XPath="x" XPathType="REPEAT"/> <Tag XPath="x" Field="businessTitle"/> <Tag XPath="DataArea/Customer/CustomerParty/Business/Id" Field="organizationId"/> <Tag XPath="DataArea/Customer/CustomerParty/Business/Name" Field="organizationName"/> <Tag XPath="x" Field="organizationUnitId"/> <Tag XPath="x" Field="organizationUnitName"/> <Tag XPath="x" Field="employeeId"/> <Tag XPath="x" Field="alternateId"/> <Tag XPath="x" Field="employeeType"/> <Tag XPath="x" Field="officeAddress"/> <Tag XPath="x" Field="departmentNumber"/> <Tag XPath="x" Field="manager"/> <Tag XPath="x" Field="secretary"/> <Tag XPath="DataArea/Customer/GuestCustomer/MigrateGuestCustomer" Field='GuestUserRegisterConditiion' FieldInfo='COMMAND' /> <Tag XPath="DataArea/Customer/GuestCustomer/CustomerParty/PartyId/Id" Field="userId"/> <Tag XPath="DataArea/Customer/CustomerDemographics/Age" Field="age"/> <Tag XPath="DataArea/Customer/CustomerDemographics/Gender" Field="gender"/> <Tag XPath="DataArea/Customer/CustomerDemographics/AnnualIncome" Field="income"/> <Tag XPath="DataArea/Customer/CustomerDemographics/AnnualIncome@currency" Field="incomeCurrency"/> <Tag XPath="DataArea/Customer/CustomerDemographics/MaritalStatus" Field="maritalStatus"/> <Tag XPath="DataArea/Customer/CustomerDemographics/NumberOfChildren" Field="children"/> <Tag XPath="DataArea/Customer/CustomerDemographics/NumberInHousehold" Field="household"/> <Tag XPath="DataArea/Customer/CustomerDemographics/Employer" Field="companyName"/> <Tag XPath="DataArea/Customer/CustomerDemographics/Department" Field="departmentNumber"/> <Tag XPath="DataArea/Customer/CustomerDemographics/BusinessTitle" Field="businessTitle"/> <Tag XPath="DataArea/Customer/CustomerDemographics/InterestHobby" Field="hobbies"/> <Tag XPath="x" Field="orderBefore"/> <Tag XPath="x" Field="timeZone"/> <Tag XPath="DataArea/Customer/Profile/Demographics/DemographicField" XPathType="REPEAT"/> <Tag XPath="DataArea/Customer/CustomerParty/Business/RelatedUnit/Unit/Id" Field="parentMemberId"/> <Tag XPath="DataArea/Customer/CustomerDemographics/ProfileType" Field="profileType" FieldInfo="COMMAND"/> <Tag XPath="DataArea/Customer/CommerceArea/StoreId" Field="storeId"/> <Tag XPath="DataArea/Customer/UserData/UserDataField" XPathType="USERDATA"/> </TemplateTag>
- Deploy the changes to the file as described in XML Configuration Directory.
Results
Note: To update files in the XML Configuration Directory,
you must deploy them in the WebSphere Application Server Administration
Console.