It's all about the answers!

Ask a question

sync rule to include a default Category (Filed Against)


Chris Ratcliffe (2633330) | asked Jun 23 '09, 4:19 p.m.
Hi,

I am trying to set up my sync rule such that the Filed Against attribute for the work item will get set to a specific default value, regardless of any settings in the ClearQuest record. I created the following Property/Value Mappings:



<propertyMapping>
<externalPropertyName></externalPropertyName>
<itemPropertyName>Category</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties></requiredItemProperties>
<requiredExternalProperties></requiredExternalProperties>
<transformExtension>com.ibm.team.interop.service.managers.workitem.CategoryValueTransformer</transformExtension>
<valueMappings>
<valueMapping>
<externalValue></externalValue>
<itemValue>CQ IMCS</itemValue>
<defaultExternalValue>false</defaultExternalValue>
<defaultItemValue>false</defaultItemValue>
</valueMapping>
</valueMappings>
</propertyMapping>


However, all of my syncs are failing with the error:

Incoming at 6/23/09 3:31:34 PM EDT
Error occurred:
java.lang.RuntimeException: The value "CQ IMCS" for property "Category" is invalid; it must be a single item identifier (UUID)

at com.ibm.team.interop.service.AbstractInteropItemManager.decodeReferences(AbstractInteropItemManager.java:270)

at com.ibm.team.interop.service.managers.workitem.InteropWorkItemManager.setProperty(InteropWorkItemManager.java:1354)

at com.ibm.team.interop.service.managers.workitem.InteropWorkItemManager.saveState(InteropWorkItemManager.java:523)

at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:618)

at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:378)

at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:364)

at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)

at $Proxy223.saveState(Unknown Source)

at com.ibm.team.interop.service.internal.ItemManagerProxy.saveState(ItemManagerProxy.java:124)

at com.ibm.team.interop.service.internal.InteropService.doSynchronizeIncoming(InteropService.java:3644)

at com.ibm.team.interop.service.internal.InteropService.processIncoming(InteropService.java:2056)

at sun.reflect.GeneratedMethodAccessor219.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:618)

at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:378)

at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:364)

at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)

at $Proxy138.processIncoming(Unknown Source)

at com.ibm.team.interop.service.internal.ProxySyncTask.processRequest(ProxySyncTask.java:431)

at com.ibm.team.interop.service.internal.ProxySyncTask.processRequestQueue(ProxySyncTask.java:389)

at com.ibm.team.interop.service.internal.ProxySyncTask.transactionSucceeded(ProxySyncTask.java:258)

at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:618)

at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:378)

at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:364)

at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)

at $Proxy140.transactionSucceeded(Unknown Source)

at com.ibm.team.repository.service.internal.AsynchronousTaskSchedulerService$2.transactionSucceeded(AsynchronousTaskSchedulerService.java:559)

at com.ibm.team.repository.service.internal.AsynchronousTaskSchedulerService$2.executeTask(AsynchronousTaskSchedulerService.java:567)

at com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.runTask(AsynchronousTaskRunner.java:118)

at com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.run(AsynchronousTaskRunner.java:92)

at java.lang.Thread.run(Thread.java:810)


I don't understand what this error is telling me. The "CQ IMCS" Category is definitely defined in my Project Area.

Thanks,
Chris

3 answers



permanent link
Chris Ratcliffe (2633330) | answered Jun 23 '09, 4:29 p.m.
So I found this information:

https://jazz.net/wiki/bin/view/Main/CQConnectorFAQ#Incoming_sync_error_invalid_UUID

which indicates that my mapping is failing because the map isn't properly identifying the UUID of the Category. How do I determine the UUID of the Category? None of the 3 techniques typically used for syncing the category are what I want to do, because as I mentioned, I would like to set all new synced objects to a specific Category.

permanent link
John Vasta (2.6k15) | answered Jun 23 '09, 6:40 p.m.
FORUM MODERATOR / JAZZ DEVELOPER
Adding value mappings to a property mapping that uses the category value transformer is not supported in RTC 1.0.X.X, but it is in RTC 2.0. See this work item for the details:

https://jazz.net/jazz/resource/itemName/com.ibm.team.workitem.WorkItem/56728

The mapping you posted will almost work in RTC 2.0; the only thing you'd need to change is to assign some external property name that doesn't actually exist as a CQ field (e.g. "dummy"). It turns out that the name cannot be empty, or the mapping will be ignored.

permanent link
Chris Ratcliffe (2633330) | answered Jun 23 '09, 8:47 p.m.
Ahh, tricky. :wink: I don't think I would have thought of that. I am actually using 2.0 Beta 2, so the change you suggested works great. Thanks a lot.

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.