Change control metadata structure for business objects

Change control metadata describing each whether each noun or noun part is locked is added the business object document returned by Get services. The data is placed in the Show verb in the response to a BOD service, if that service module's tables are part of a workspace.

Change control metadata structure

Change control metadata uses the <_wcf:Metadata> element, with a usage attribute of changeControl.

In following XML sample of a BOD, the response to a Get service call is shown. Two catalog entry objects are returned in the DataArea element of the BOD, within the <_cat:CatalogEntry> elements.

In the ResponseCriteria section of the Show verb (also within the DataArea), two Metadata elements are returned. Each of these Metadata elements are has an ObjectReference subelement, which corresponds to the actual catalog entry objects. The modifiable property indicates whether the business object is locked or not. The workspace.name, workspace.taskGroup, and workspace.task properties correspond to the names of the Workspaces, task groups, and tasks.

<_cat:ShowCatalogEntry releaseID="" xsi:schemaLocation="http://www.ibm.com/xmlns/prod/commerce/9/catalog ShowCatalogEntry.xsd http://www.openapplications.org/oagis/9 ../../../../Resources/Components/Common/Meta.xsd " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:_cat="http://www.ibm.com/xmlns/prod/commerce/9/catalog" xmlns:oa="http://www.openapplications.org/oagis/9" xmlns:_wcf="http://www.ibm.com/xmlns/prod/commerce/9/foundation">
	<oa:ApplicationArea xmlns:oa="http://www.openapplications.org/oagis/9">
		<oa:CreationDateTime>
			2008-02-05T16:40:40.078Z
		</oa:CreationDateTime>
	</oa:ApplicationArea>
	<_cat:DataArea>
		<oa:Show recordSetCompleteIndicator="true" recordSetReferenceId="xxxxxxxx" recordSetTotal="2" recordSetCount="2" recordSetStartNumber="1">
			<_wcf:ResponseCriteria>
				<_wcf:Metadata usage="changeControl">
					<_wcf:ObjectReference>/Catalog[1]</_wcf:ObjectReference>
					<_wcf:Property name="modifiable">true</_wcf:Property>
					<_wcf:Property name="logonID">wcsadmin</_wcf:Property>
					<_wcf:Property name="workspace.name">Spring Catalog</_wcf:Property>
					<_wcf:Property name="workspace.taskGroup">Update product descriptions</_wcf:Property>
					<_wcf:Property name="workspace.task">Jackets</_wcf:Property>
				</_wcf:Metadata>
				<_wcf:Metadata usage="changeControl">
					<_wcf:ObjectReference>/Catalog[2]</_wcf:ObjectReference>
					<_wcf:Property name="modifiable">false</_wcf:Property>
					<_wcf:Property name="logonID">wcsadmin</_wcf:Property>
					<_wcf:Property name="workspace.name">Spring Catalog</_wcf:Property>
					<_wcf:Property name="workspace.taskGroup">Update product descriptions</_wcf:Property>
					<_wcf:Property name="workspace.task">Shoes</_wcf:Property>
				</_wcf:Metadata>
			</_wcf:ResponseCriteria>
		</oa:Show>
		<_cat:CatalogEntry>
			<_cat:CatalogEntryIdentifier>
				<_wcf:UniqueID>1234</_wcf:UniqueID>
			</_cat:CatalogEntryIdentifier>
		</_cat:CatalogEntry>
		<_cat:CatalogEntry>
			<_cat:CatalogEntryIdentifier>
				<_wcf:UniqueID>4321</_wcf:UniqueID>
			</_cat:CatalogEntryIdentifier>
		</_cat:CatalogEntry>
	</_cat:DataArea>
</_cat:ShowCatalogEntry>

Accessing the metadata

You can access the metadata in the BOD using Java code, but for JSP pages, it is easier to access it through the WebSphere Commerce foundation tag library, using the metadata tag.