It's all about the answers!

Ask a question

An error when synchronized a data with CQ Connector


gao yuan (2621) | asked Apr 29 '09, 5:36 a.m.
I configured CQ Connector, and the configuration looked good. But When i tested the connector, there was a imcoming error:

"java.lang.IllegalArgumentException: Work item type Defect does not exist."

I don't know why, beacuse this work item type is common.

My synchronization rule is

Item type: WorkItem-com.ibm.team.workitem
Item type qualifier: Defect
Item manager: Work Item Manager
External repository:cqconnector
External manager: ClearQuest Manager(non-user records)
External type: Defect- com.ibm.rational.clearquest

5 answers



permanent link
Richard Piazza (381) | answered Apr 29 '09, 10:29 a.m.
JAZZ DEVELOPER


My synchronization rule is

Item type: WorkItem-com.ibm.team.workitem
Item type qualifier: Defect
Item manager: Work Item Manager
External repository:cqconnector
External manager: ClearQuest Manager(non-user records)
External type: Defect- com.ibm.rational.clearquest


Could you please send us the xml "source" version of the sync rule?

Rich Piazza
Jazz CQ Connector Team

permanent link
John Vasta (2.6k15) | answered Apr 29 '09, 11:31 a.m.
FORUM MODERATOR / JAZZ DEVELOPER
Work item type names are case-sensitive, and in the Eclipse Way process template, for example, the type id is "defect", with a lower-case 'd'. So if your type id is also spelled "defect", you will need to a define a mapping from "Defect" to "defect" in your sync rule (assuming you're mapping from the CQ record type name).

permanent link
gao yuan (2621) | answered Apr 30 '09, 4:44 a.m.
I added a value mapping from "Defect" to "Defect". Whatever "Defect" to "defect" or "defect" to "Defect"

It reported an error:
"com.ibm.team.repository.common.TeamRepositoryException: There is no mapping defined for value "null" of property "Defect" in synchronization rule cqconnector"


<xml>
- <syncRule>
<name>cqconnector</name>
<externalTypeName>com.ibm.rational.clearquest.Defect</externalTypeName>
<syncItemTypeName>WorkItem</syncItemTypeName>
<syncItemTypeNsURI>com.ibm.team.workitem</syncItemTypeNsURI>
<syncItemTypeQualifier>Type:defect</syncItemTypeQualifier>
<itemManager>com.ibm.team.interop.service.managers.workitem.WorkItemManager</itemManager>
<externalManager>com.ibm.team.interop.service.managers.clearquest.CQExternalManager</externalManager>
<maxCycleCount>0</maxCycleCount>
<syncAllItemStates>false</syncAllItemStates>
- <propertyMappings>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>DependsOn</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>Related</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>Defect</externalPropertyName>
<itemPropertyName>Defect</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
<transformExtension>com.ibm.team.interop.service.managers.workitem.WorkflowActionValueTransformer</transformExtension>
<referenceSyncRule>cqconnector</referenceSyncRule>
- <valueMappings>
- <valueMapping>
<externalValue>Defect</externalValue>
<itemValue>Defect</itemValue>
<defaultExternalValue>true</defaultExternalValue>
<defaultItemValue>true</defaultItemValue>
</valueMapping>
</valueMappings>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>CreationDate</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>Priority</externalPropertyName>
<itemPropertyName>Priority</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>Category</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>Children</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>Duration</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>DuplicateOf</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>Resolution</externalPropertyName>
<itemPropertyName>Resolution</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>State</externalPropertyName>
<itemPropertyName>State</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>Attachments</externalPropertyName>
<itemPropertyName>Attachments</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
<transformExtension>com.ibm.team.interop.service.managers.clearquest.WorkItemTagsValueTransformer</transformExtension>
<referenceSyncRule>cqconnector</referenceSyncRule>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>DueDate</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>record_type</externalPropertyName>
<itemPropertyName>Type</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>Owner</externalPropertyName>
<itemPropertyName>Owner</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>Creator</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>JazzWorkFlowAction</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
- <requiredItemProperties>
<itemPropertyName>State</itemPropertyName>
</requiredItemProperties>
<requiredExternalProperties>
<transformExtension>com.ibm.team.interop.service.managers.workitem.WorkflowActionValueTransformer</transformExtension>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>id</externalPropertyName>
<itemPropertyName>Id</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>true</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
<transformExtension>com.ibm.team.interop.service.managers.kernel.ProjectAreaValueTransformer</transformExtension>
<referenceSyncRule>cqconnector</referenceSyncRule>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>Target</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>Description</externalPropertyName>
<itemPropertyName>Description</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>Blocks</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>Version</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>Tags</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>Severity</externalPropertyName>
<itemPropertyName>Severity</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>Parent</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>Summary</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
- <propertyMapping>
<externalPropertyName>
<itemPropertyName>Comments</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties>
<requiredExternalProperties>
</propertyMapping>
</propertyMappings>
</syncRule>

permanent link
Lorelei Ngooi (1.5k22) | answered Apr 30 '09, 10:12 a.m.
JAZZ DEVELOPER
Unfortunately, this sync rule has a number of issues and needs to be redone. There are too many incidences of property mappings for reference fields that don't have a corresponding external property and also don't have a reference sync rule (DependsOn, Related, Owner, etc).

Also, I'm not sure what you are trying to do with the Defect item property mapping, which doesn't exist as a work item property. That should probably be removed. Perhaps you were trying to use this to map to the work item type, but this is not the way to do it.

Any kind of enumeration-like values such as priority, severity, state, and resolution that don't exactly map to a Jazz priority and severity value need a value mapping to map between the different values in the two systems. For example, CQ may have a priority value of "1-Resolve Immediately", but in Jazz, you want to map it to "High".

Category, attachment, and comments are not setup properly and there are other problems.

The current error that you are getting is related to the work item Type property mapping. This is an example of an enumeration-like value that is not an exact match in the two systems. In CQ, the record_type value would be "Defect" and in Jazz, the work item type value would be "defect". You need a value mapping to map the CQ "Defect" to Jazz "defect".
<valueMapping>
<externalValue>Defect</externalValue>
<itemValue>defect</itemValue>
<defaultExternalValue>false</defaultExternalValue>
<defaultItemValue>true</defaultItemValue>
</valueMapping>

Use the sync rule editor to make the changes to the sync rule.

Please look to the online help for guidance in configuring your sync rule, https://jazz.net/help/rational-team-concert/1.0.1/topic/com.ibm.team.connector.cq.doc/topics/t_planning_synch_rules.html and https://jazz.net/help/rational-team-concert/1.0.1/topic/com.ibm.team.connector.cq.doc/topics/t_create_sync_rules.html. There's also a wiki page for writing sync rules, https://jazz.net/wiki/bin/view/Main/WritingSyncRules.

permanent link
Lorelei Ngooi (1.5k22) | answered Apr 30 '09, 10:22 a.m.
JAZZ DEVELOPER
Also, sample sync rules are provided in the <CQ>gateway\sample\syncRules directory.

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.