ClearQuest Connector: Problem synching reference value
After mapping custom Defect fields in RTC to Defect fields in CQ (specifically those required on the submit form), we get an error when running the connector:
Outgoing at 3/9/09 9:24:06 AM CDT Error occurred: java.lang.RuntimeException: com.ibm.team.interop.service.managers.clearquest.common.InteropException: com.ibm.team.interop.service.managers.clearquest.common.InteropException: Problem finding Users The value "Users" should map to a REFERENCE value field in CQ named "ADT_Secutiry". This field is used to Access Control. |
16 answers
XML below:
<xml> <syncRule> <name>com.acn.adt.clearquest.DefectTrackingInterop.ADTDefect</name> <externalTypeName>com.ibm.rational.clearquest.ADT_Defect</externalTypeName> <syncItemTypeName>WorkItem</syncItemTypeName> <syncItemTypeNsURI>com.ibm.team.workitem</syncItemTypeNsURI> <syncItemTypeQualifier>Type:com.acn.adt.workitem.type.adtdefect</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>Adt_Security</externalPropertyName> <itemPropertyName>attribute:string:com.acn.adt.attribute.security</itemPropertyName> <incoming>false</incoming> <outgoing>true</outgoing> <itemIdentifier>false</itemIdentifier> <externalIdentifier>false</externalIdentifier> <externalModifier>false</externalModifier> <requiredItemProperties></requiredItemProperties> <requiredExternalProperties></requiredExternalProperties> </propertyMapping> <propertyMapping> <externalPropertyName>Adt_Project_Name</externalPropertyName> <itemPropertyName>attribute:string:com.acn.adt.attribute.projectname</itemPropertyName> <incoming>false</incoming> <outgoing>true</outgoing> <itemIdentifier>false</itemIdentifier> <externalIdentifier>false</externalIdentifier> <externalModifier>false</externalModifier> <requiredItemProperties></requiredItemProperties> <requiredExternalProperties></requiredExternalProperties> </propertyMapping> <propertyMapping> <externalPropertyName>Adt_Stage_Found</externalPropertyName> <itemPropertyName>attribute:string:com.acn.adt.attribute.stagefound</itemPropertyName> <incoming>false</incoming> <outgoing>true</outgoing> <itemIdentifier>false</itemIdentifier> <externalIdentifier>false</externalIdentifier> <externalModifier>false</externalModifier> <requiredItemProperties></requiredItemProperties> <requiredExternalProperties></requiredExternalProperties> </propertyMapping> <propertyMapping> <externalPropertyName>Adt_Release</externalPropertyName> <itemPropertyName>attribute:string:com.acn.adt.attribute.release</itemPropertyName> <incoming>false</incoming> <outgoing>true</outgoing> <itemIdentifier>false</itemIdentifier> <externalIdentifier>false</externalIdentifier> <externalModifier>false</externalModifier> <requiredItemProperties></requiredItemProperties> <requiredExternalProperties></requiredExternalProperties> </propertyMapping> <propertyMapping> <externalPropertyName>Adt_Description</externalPropertyName> <itemPropertyName>Description</itemPropertyName> <incoming>false</incoming> <outgoing>true</outgoing> <itemIdentifier>false</itemIdentifier> <externalIdentifier>false</externalIdentifier> <externalModifier>false</externalModifier> <requiredItemProperties></requiredItemProperties> <requiredExternalProperties></requiredExternalProperties> </propertyMapping> <propertyMapping> <externalPropertyName>id</externalPropertyName> <itemPropertyName></itemPropertyName> <incoming>false</incoming> <outgoing>false</outgoing> <itemIdentifier>false</itemIdentifier> <externalIdentifier>true</externalIdentifier> <externalModifier>false</externalModifier> <requiredItemProperties></requiredItemProperties> <requiredExternalProperties></requiredExternalProperties> </propertyMapping> <propertyMapping> <externalPropertyName>Owner</externalPropertyName> <itemPropertyName>attribute:string:com.acn.adt.attribute.user</itemPropertyName> <incoming>false</incoming> <outgoing>true</outgoing> <itemIdentifier>false</itemIdentifier> <externalIdentifier>false</externalIdentifier> <externalModifier>false</externalModifier> <requiredItemProperties></requiredItemProperties> <requiredExternalProperties></requiredExternalProperties> </propertyMapping> <propertyMapping> <externalPropertyName>Headline</externalPropertyName> <itemPropertyName>Summary</itemPropertyName> <incoming>false</incoming> <outgoing>true</outgoing> <itemIdentifier>false</itemIdentifier> <externalIdentifier>false</externalIdentifier> <externalModifier>false</externalModifier> <requiredItemProperties></requiredItemProperties> <requiredExternalProperties></requiredExternalProperties> </propertyMapping> <propertyMapping> <externalPropertyName>Adt_Team_Name</externalPropertyName> <itemPropertyName>attribute:string:com.acn.adt.attribute.teamname</itemPropertyName> <incoming>false</incoming> <outgoing>true</outgoing> <itemIdentifier>false</itemIdentifier> <externalIdentifier>false</externalIdentifier> <externalModifier>false</externalModifier> <requiredItemProperties></requiredItemProperties> <requiredExternalProperties></requiredExternalProperties> </propertyMapping> <propertyMapping> <externalPropertyName></externalPropertyName> <itemPropertyName>Id</itemPropertyName> <incoming>false</incoming> <outgoing>false</outgoing> <itemIdentifier>true</itemIdentifier> <externalIdentifier>false</externalIdentifier> <externalModifier>false</externalModifier> <requiredItemProperties></requiredItemProperties> <requiredExternalProperties></requiredExternalProperties> </propertyMapping> </propertyMappings> </syncRule> |
Based on the error message, it seems like there is a typo somewhere. "ADT_Secutiry" should probably be "ADT_Security".
Lorelei Jazz CQ Connector Team After mapping custom Defect fields in RTC to Defect fields in CQ (specifically those required on the submit form), we get an error when running the connector: |
Ignore my previous response. I confused your explanation of the error message with the actual error message.
Lorelei |
I think we need more details about what you are trying to do, but here are several observations:
- You are correct, that you probably want a reference to "something" to be synced over from Jazz, but instead the jazz server was sending the string "Users". - Which field in the sync rule does this error pertain to? You mentioned "ADT_Security", but that property mapping for that field doesn't include a reference sync rule, nor does the "Owner" property mapping. - Assuming the "Owner" is defined in CQ as a reference field, it must be mapped to Jazz using a reference sync rule. Rich Piazza Jazz CQ Connector team |
ADT_Security is a reference value, which may have been related to the error displayed. After following the article below, I am receiving new error messages in the Console, and in the client.
https://jazz.net/help/rational-team-concert/1.0.1/index.jsp?topic=/com.ibm.team.connector.cq.doc/topics/t_create_sync_rules.html Client Error - These fields all have valid values, and are mapped in the synch rule. Not sure why this error is displayed. I was not receiving this previous. Outgoing at 3/9/09 1:27:24 PM CDT Error occurred: java.lang.RuntimeException: com.ibm.team.interop.service.managers.clearquest.common.InteropException: Unable to create record because of CQ errors: CQ Error - Reason: CRVAP0075E After completion of the 'CqAdapterPropPatch' operation, not all resources were delivered as requested. CRVAP0358E Cannot deliver record 'cq.record:ADT_Defect/Q2DB00001012@FY09Q2_Dev_Raj/Q2DB' because some properties are missing or invalid. CRVAP0342E The attempt to write or update the value of the property named 'CqRecord.ADT_RELEASE' failed with the message 'The field "Adt_Release" is mandatory; a value must be specified.'. CRVAP0342E The attempt to write or update the value of the property named 'CqRecord.ADT_STAGE_FOUND' failed with the message 'The field "Adt_Stage_Found" is mandatory; a value must be specified.'. CRVAP0342E The attempt to write or update the value of the property named 'CqRecord.ADT_TEAM_NAME' failed with the message 'The field "Adt_Team_Name" is mandatory; a value must be specified.'. Console error: Caused by: com.ibm.team.interop.client.rest.InteropClientException: CRJAZ0002I E rror creating the item identified by collection "https://127.0.0.1:9445/jazz/ser vice/com.ibm.team.repository.common.internal.IItemRestService/com.ibm.team.repos itory/itemCol/com.ibm.team.interop.ExternalProxy?linkuri=CQ%253Acq.repo.cq-recor d%253AAdt_ACL%252F33555336%2540FY09Q2_Dev_Raj%252FQ2DB&sync=true". Exception mes sage: 'Synchronize with External Objects' failed. Permission denied. |
A couple of things:
1. What version of the CQ connector are you using? 2. Regarding the Synchronize with External Objects failed. Permission denied message, you need to enable the Item Connectors -> Synchronize with External Objects (server) permission for some role. Go to the Process Configuration tab page for your project area. Expand the Team Configuration and select Permissions. The easiest thing to do is to check the Item Connectors action for the Everyone (default) role. Or if you have a specific role for the CQ connector account, permit this action for that role. 3. Can you please include your modified sync rule. We would like to see the changes you've made. 4. Is there an order in how fields are expected to be set in the ADT_Defect record? 5. Please turn on logging on the jazz server and cq gateway so that we can see what values are being set, https://jazz.net/wiki/bin/view/Main/CQConnectorFAQ#How_do_I_view_or_turn_on_logging. Lorelei |
This is probably the source of your problem. When you have hooks that can change the value of a field based on the value of another field, you need to enter the dependencies between the fields so that they are set in the correct order. The CQ Designer enables you to specify this information. The CQ Connector will use this information to make sure that the fields are assigned in that order. To set up these dependencies, go into the designer, select the record type (probably ADT_Defect). Open up the Forms view. On each form (often there are two - one for submitting and one for modification), click right on the widget that represents a field. On the properties tab "Web Dependencies", you can specify the children fields that depend on this field. Notice, that this seems to only work for drop-down fields. Rich Jazz CQ Connector |
How do I confirm this?
Does the user need to be assigned as a Member of the Project Area, or is "Administrators" sufficient? Do they need to be a member of a Team Area?
Is there a way to attach artifacts, or will I need to paste?
I believe so. Is there a specific way to force the Connector to synch in a ordered fashion? I see that Rich provided steps to confirm this in CQ Designer, but how do we enforce this in the connector?
Will do. |
Error Message
10 Mar 2009 09:51:56,149 DEBUG com.ibm.rational.interop.level1 - Creating ADT_Defect using TeamAPI (source: _hZYsgApwEd67K6FZ3qTuuQ) 10 Mar 2009 09:51:57,060 DEBUG com.ibm.rational.interop.level1 - Suppressing CQ%3Acq.repo.cq-record%3AADT_Defect%2F33555530%40FY09Q2_Dev_Raj%2FQ2DB from _hZYsgApwEd67K6FZ3qTuuQ 10 Mar 2009 09:51:57,600 DEBUG com.ibm.rational.interop.level1 - Reverted cq.record:ADT_Defect/Q2DB00001098@FY09Q2_Dev_Raj/Q2DB using TeamAPI 10 Mar 2009 09:51:57,600 DEBUG com.ibm.rational.interop.level1 - ERException com.ibm.team.interop.service.managers.clearquest.common.InteropException: Unable to create record because of CQ errors: CQ Error - Reason: CRVAP0075E After completion of the 'CqAdapterPropPatch' operation, not all resources were delivered as requested. CRVAP0358E Cannot deliver record 'cq.record:ADT_Defect/Q2DB00001098@FY09Q2_Dev_Raj/Q2DB' because some properties are missing or invalid. CRVAP0342E The attempt to write or update the value of the property named 'CqRecord.ADT_PROJECT_NAME' failed with the message 'The field "Adt_Project_Name" is mandatory; a value must be specified.'. CRVAP0342E The attempt to write or update the value of the property named 'CqRecord.ADT_RELEASE' failed with the message 'The field "Adt_Release" is mandatory; a value must be specified.'. CRVAP0342E The attempt to write or update the value of the property named 'CqRecord.ADT_SECURITY' failed with the message 'The field "Adt_Security" is mandatory; a value must be specified.'. CRVAP0342E The attempt to write or update the value of the property named 'CqRecord.ADT_STAGE_FOUND' failed with the message 'The field "Adt_Stage_Found" is mandatory; a value must be specified.'. CRVAP0342E The attempt to write or update the value of the property named 'CqRecord.ADT_TEAM_NAME' failed with the message 'The field "Adt_Team_Name" is mandatory; a value must be specified.'. at com.ibm.rational.connector.cq.common.cqgateway.CQInteropEventHandler.handleCreateEvent(CQInteropEventHandler.java:223) at com.ibm.rational.connector.cq.common.cqgateway.CQGateway.create(CQGateway.java:107) at com.ibm.rational.connector.cq.gateway.servlet.InteropOperationInvoker.invoke(InteropOperationInvoker.java:45) at com.ibm.rational.connector.cq.gateway.servlet.InteropServlet.doPostInteropOperation(InteropServlet.java:57) at com.ibm.rational.connector.cq.gateway.servlet.InteropServlet.doPost(InteropServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Thread.java:810) |
Regarding your question about permissions,
Does the user need to be assigned as a Member of the Project Area, or is "Administrators" sufficient? Do they need to be a member of a Team Area? The CQ Connector user account should be made a member of your project area, and assigned a role that you grant the "Synchronize with External Objects" permissions to (if you don't want to grant that permission to Everyone). John Jazz ClearQuest Connector Team |
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.