Installation & User Guide for Rally's connector to Quality Center

Print this topicEmail this topic

The Rally connector for Quality Center allows customers to use Rally for Agile lifecycle management while still using Quality Center (QC) for management of defects, requirements, tests, and test runs. The connector provides synchronization between Quality Center and Rally by allowing you to:

  • Synchronize Quality Center defects with Rally defects
  • Synchronize Quality Center requirements with Rally user stories
  • Synchronize Quality Center tests with Rally test cases
  • Push test runs from Quality Center to Rally test case results

The Rally connector for Quality Center runs as a Ruby script on a Windows machine inside your network. The connector uses the Quality Center Open Test Architecture (OTA) API which uses COM objects and is only supported on Windows.

The connector is configured through an XML file. A log file is created to track changes made in Rally and Quality Center by the connector. The connector requires a custom field in each system to store the unique ID of the linked objects in the other system. For multiple Quality Center projects, you will need to set up multiple custom fields in Rally—one for each project to store the unique ID of the linked object. The connector copies fields to and from Rally or Quality Center based on a field mapping specified in the configuration file. Both standard and custom fields can be mapped between the two systems.

The connector provides five services which synchronize objects between Rally and Quality Center:

  • Copy entities created in Quality Center to Rally work items
  • Copy work items created in Rally to Quality Center entities
  • Update Rally work items based on changes made to Quality Center entities
  • Update Quality Center entities based on changes made to Rally work items
  • Update Rally fields and Quality Center fields

The configuration file specifies which of the above services to run, and in what order.

An alternative update service, UPDATE_RALLYFIELDS_AND_OTHER, searches Rally first for updates and pushes only the recently changed fields to the other system. It then searches the other system for updates and pushes all mapped fields in to Rally.

This makes the chances of overwrites of data highly unlikely. The only scenario where an overwrite might occur is if Peter made changes in Rally and Al made changes in the other system for the same fields, the Rally information is copied over to the other system (possibly overwriting the data of the other system), then all data is copied over to the Rally system.

It is important to recognize that the data models of Rally and Quality Center are not identical and, as such, they are only partially compatible. We recommend that you take some time to identify the key data items you want to track in both systems and what you want the policy to be as far as having a primary system of record. There is specific information later in this document discussing some of the trade-offs to be considered and some potential approaches.

Note: Rally will no longer maintain the connector with bug fixes against Quality Center version 9 or version 10. Support will continue to assist with general usage issues. The connector is still fully supported when used with Quality Center 11.0.

This connector is available to Unlimited Edition customers and to customers with the HP Integration module.

Support / Feedback

Log in to the Rally Success Community for support of this an all of our connectors. The Rally Success Community is your one stop shop for self service and support. Accessing the Success Community is quick and easy!

To sign up:

  1. Navigate to https://rallydev.force.com/success/login
  2. First time to the site? Click "Not a member?"
  3. Complete the self service registration form and you'll be automatically logged into the Success Community

Basic installation steps

  1. Install the connector (run the installer or extract the zip).
  2. Make configuration changes in Rally and the other system (such as creating custom fields).
  3. Edit the qc_config.xml to reflect your environment.
  4. Run rally2_qc_connector.exe to start the synchronization process.

The Rally connector for Quality Center documentation includes:

System setup

Rally Integrations FAQ and Best Practices contains some very useful information.

Software and hardware requirements

The following are the software requirements to install and run the Rally connector for Quality Center:

  • Rally subscription
  • A Windows XP, Windows 7 or Windows 2003/2008 Server with access to Quality Center and Rally
  • HP Quality Center 10.0 with patch 7 or HP ALM 11.0 or HP Quality Center 11.0
  • Internet Explorer 7.0 or 8.0 (IE8 or IE9 running in the IE8 compatibility mode recommended for QC 10 / QC 11)

Hardware

You can install the connector several ways. There can be multiple install locations on the same machine which can run in parallel which determine the hardware required. We recommend the following guidelines:

  • Base hardware of a Pentium IV or greater processor with 512MB of RAM for one installed location
  • No more than 5 to 10 configuration files per install location
  • If you add more install locations running in parallel, each installed location consumes up to 200MB of RAM when running and less than 50MB when idle
  • Hard drive space is minimal and needs to scale only with log files so 200–250MB of space per install location is recommended

Pre-installation checklist

  1. Project and site administration access to a test environment of QC.
  2. Rally administrator privileges are needed for setup but only user access is needed to run the connector.
  3. Proxy server details if the machine used to run the connector uses a proxy server (described below).
  4. Before invoking the connector on a machine, you must access QC from an IE browser in order to download the required DLL files (Important: It must be IE 32-bit, not 64-bit; and must be invoked with Run as administrator).
    • For QC 10, use Internet Explorer to access the URL of your QC 10 installation. The necessary DLL files are downloaded automatically when the page loads and are then in place for use by the connector.
    • For QC 11, use Internet Explorer 8 to access the initial page for QC. For example, if you installed QC 11 on a host named qcserve and configured it to service connections on port 8080, you would navigate to http://qcserve:8080/qcbin.
      1. Once the initial page displays, click Add-Ins Page.
      2. Click HP Quality Center Connectivity.
      3. Click Download Add-In.
      4. A download dialog panel displays asking you to select either Run | Save | Cancel. While you can select Run, we suggest you first save the TDConnect.exe file (10 MB) and run it after the download completes. When you run the downloaded.exe, it takes under a minute to run and displays an alert dialog with the installation disposition (completed or failed).
      5. Upon successful installation, the necessary DLL files are in place for use by the connector.
    • Upgrades: Sometimes even an upgrade, such as patch level SP2 to SP3, will require a new DLL to be installed (the QC TDConnector add-in procedure).

Get the Quality Center connector

The connector runs on a Windows computer behind your firewall using Quality Center's TD API and accesses Rally through the Rally Web Services API. Most fields between the two systems can be synchronized. The connector supports both QC10 and QC11.

Consider the following:

  • The following people are involved in getting fields set up in both Rally and QC:
    • A Quality Center administrator user who can create the QC custom fields you want to synchronize with Rally.
    • A Rally administrator user who can create the custom fields on the Rally artifact you want to synchronize with QC.
    • Someone with access to the Windows machine described above to install and configure the connector.
  • Consider the process you want to setup between Rally and QC:
    • Where do objects start and end their lifecycle?
    • Which fields need updated?
  • Identify a test domain or project in Quality Center to use for testing the connector.
  • Identify a test Rally workspace or project to use for testing the connector.
  • The Windows machine being used must have visited the Quality Center web page from IE to ensure the TDAPI client DLLs used by the connector have been installed.

To obtain the Rally connector for Quality Center, click the Contact Support link at the bottom of any page in Rally to open a support case and request the connector. Once you have received a response and obtained the installation package, proceed with the following tasks.

Install the connector

(Optional) If your site uses a proxy server to access Rally, you will need to set the http_proxy environment variable. This can be done one of two ways on Windows 7:

  • Define a permanent system variable:
    1. From Start, right-click on Computer, then select Properties.
    2. Click Advanced system settings.
    3. From System Properties, click Environment Variables.
    4. From Environment Variables → System variables, click New.
    5. On New System Variables, enter http_proxy in the Variable name: field, then enter your proxy's full HTTP Url in the Variable value: field (for example, http://www-cache:8000).
    6. Click OK three times to save and exit this process.
    7. You may need to restart your system in order for the change to take effect.
  • One-time use in a command window:

    In an MS-DOS command window, set the environment variable before invoking the connector with the following command:

    set HTTP_PROXY=http://username:password@myproxy.company.com:8000

Installation for Windows

Double-click the RallyConnectorforQualityCenterInstall-x.x.x-yyy.exe to open the install wizard. Follow the prompts to complete the installation.

install

The Windows installer installs the following files (by default in C:\Program Files\RallyConnectorforQualityCenter on Windows XP, and in C:\Program Files (x86)\RallyConnectorforQualityCenter for Windows 7):

  • rally2_qc_connector.exe: Executable to run the connector
  • qc_config.xml: Sample configuration file
  • WinTail.exe*: Utility to tail the log file output for debugging purposes
  • startqc.bat: Batch file that automatically runs the connector and shows the log file that is useful for testing

*WinTail is a free text file tail utility for Windows, generously made available by Bare Metal Software Pty Ltd. for redistribution without restriction. We have found it to be far superior to Notepad and other text editors for watching log files in real time as they are updated by the connector.

Quality Center setup

Create an External ID user field in Quality Center

Contact your Quality Center project administrator to perform these updates:

  1. Go to Tools → Customize → Project Entities.
  2. Expand Defect or Requirement in the Project Entities list.
  3. Select the User Fields folder.
  4. Select New Field at the bottom of the form.
  5. Provide a Field Label for the field, select Field Type as String with a 40 character limit and leave the default checkboxes for all other options.
  6. Click Save. A dialog displays The changes were saved successfully.

Make note of the Field Name (not the Field Label) of this field (such as BG_USER_XX). You will enter this value (BG_USER_XX) in the <ExternalID> element of the configuration file which is within the <QCConnection> element.

If you are adding a field to the Requirement table, you also need to make the new user field available for the appropriate requirement types:

  1. Select Requirement Types on the Project Customization screen (from Tools → Customize).

    Note that the user field you just added is automatically in the In Type list for the Undefined requirement type. For each additional requirement type that you want to map between Rally and Quality Center:

    1. Select the requirement type (such as Functional) in the Types list on the left.
    2. Select the user field you created above in the Not In Type list.
    3. Click the > button to move it over to the In Type list.

  2. When you have added the field to all the appropriate requirement types, click Save.

Rally setup

Create an External ID field in Rally

  1. Log into Rally as a workspace or subscription administrator.
  2. Go to Setup → Workspaces & Projects.
  3. Select the workspace that you wish to map to Quality Center.
  4. On the workspace's detail page, select the Fields link in the sidebar and ensure the Work Item Type selected is Defect (or whatever work item you are mapping).
  5. Click Actions → New Field.
  6. Enter a Name of ExternalID, Display Name of ExternalID (name and display name must match), and type of String (NOTE: This field can not be of type Text).

    Note: You can choose a different name (such as QualityCenterID) for the custom field in Rally, but the name you choose must conform to these rules:

    • Begin with an uppercase letter
    • Less than 41 characters (40 is the maximum for display name)
    • No underscores, dashes, or spaces

    CAUTION: If you are planning to map to more than one Quality Center project (using multiple configuration files) to the same Rally workspace, create multiple ExternalID fields in Rally to match each project in Quality Center. For example, ProjectAExternalID, ProjectBExternalID, and so on.

Make note of the name of this field. Once you start using the connector, this will contain the external ID of the Quality Center entity you are mapping between the two systems.

The update service from Rally to QC is workspace scoped, meaning the connector searches for any artifact in Rally where the external ID field is not null. If you are mapping the same workspace to multiple Quality Center projects, then having unique external ID fields is critical so the connector updates the correct work item in Quality Center. Work item IDs are not unique across Quality Center projects.

Connector configuration

Edit the configuration file

A configuration file is used to instruct the connector on what actions to perform. A sample configuration file was part of the delivered ZIP file and should be in the same directory where you extracted the Ruby gem. For Quality Center, the default configuration file has a name of qc_config.xml. We recommend making a backup copy of the qc_config.xml (and naming it something like qc_config.xml-orig or qc_config-pristine.xml) in case you need to reference a valid configuration file later. You can give your configuration file any name of your choosing. For the purposes of this document, we retain the name of qc_config.xml.

Edit your configuration file (or the default qc_config.xml) and enter the appropriate values between each XML begin and end tag.

<Config>
        <RallyConnection>
                <Url>rally1.rallydev.com</Url>
                <WorkspaceName>Workspace Name</WorkspaceName>
                <Projects>
                        <Project>Project Name 1</Project>
                </Projects>
                <User>user@company.com</User>
                <Password>password</Password>
                <ArtifactType>Defect</ArtifactType>
                <ExternalIDField>ExternalID</ExternalIDField>
        <!--    <UpdateSelectors>
                        <UpdateSelector>State = Open</UpdateSelector>
                        <UpdateSelector>Priority = High</UpdateSelector>
                </UpdateSelectors>
                <FieldDefaults>
                        <Field><Name>RootCause</Name><Default>Undefined</Default></Field>
                </FieldDefaults>
        -->
        </RallyConnection>

        <QCConnection>
                <Url>server:port</Url>
                <Domain>Domain Name</Domain>
                <Project>Project Name</Project>
                <User>qcusername</User>
                <Password>password</Password>
                <ArtifactType>BUG</ArtifactType>
        <!--    <CopySelectors>
                        <CopySelector>BG_STATUS   = Open</CopySelector>
                        <CopySelector>BG_PRIORITY = High Attention</CopySelector>
                        <CopySelector>RQ_REQ_NAME = (WebExample1 Or WebExample2) </CopySelector>
                </CopySelectors>
        -->
                <IDField>BG_BUG_ID</IDField>
                <ExternalIDField>BG_USER_XX</ExternalIDField>
                <ExternalEndUserIDField>BG_USER_YY</ExternalEndUserIDField>
        </QCConnection>

        <Connector>
                <FieldMapping>
                        <Field><Rally>Name</Rally><Other>BG_SUMMARY</Other></Field>
                </FieldMapping>
        </Connector>

        <ConnectorRunner>
                <Preview>False</Preview>
                <LogLevel>Debug</LogLevel>
                <Services>UPDATE_RALLY_TO_QC,  COPY_QC_TO_RALLY</Services>
        </ConnectorRunner>
</Config>

Each major section is surrounded by a tag (called an XML element) to delineate that section. In the example above, here is a description of each section:

  • RallyConnection

    Defines the connection information for Rally, including Rally URL, user, password, and so on.

  • QCConnection

    Defines the connection information to Quality Center including domain name, project name, artifact type, user, and so on.

  • Connector

    Defines the field mapping between the two systems. Generally, strings should be mapped to strings, integers to integers, and so on.

  • ConnectorRunner

    Specifies parameters related to the services the connector is to run.

Field mapping

The field mapping section is located within the <Connector> element in the configuration file. It defines which fields are to be mapped between the two systems.

For example, the following definition sets up a mapping between the Rally field Name with the field Headline in the other system. On a create or update, the connector will only update the Name field in Rally and the Headline field in the other system.

<Config>
  ....
  <Connector>
    <FieldMapping>
      <Field>
        <Rally>Name</Rally>  <Other>Headline</Other>
     </Field>
    </FieldMapping>
    ....

When you set up your mapping between the two systems, ensure the fields are compatible between the two systems (an integer field should map to an integer field in the other system, a rich text should map to a rich text in the other system). Otherwise, you might experience situations where information is not created or updated between the two systems and you will see an error in the log file. For example, the connector will post an error for a particular work item if you try to post a string to a custom field of type integer in Rally.

You can add subsequent mappings by appending to this list. For example, this sets up a mapping of Rally Name to QC Headline, and Rally Description to QC Description, and Rally Priority to QC Priority:

<Config>
....
<Connector>
<FieldMapping>
  <Field>
    <Rally>Name</Rally>
    <Other>Headline</Other>
  </Field>
  <Field>
    <Rally>Description</Rally>
    <Other>Description</Other>
  </Field>
  <Field>
    <Rally>Priority</Rally>
    <Other>Priority</Other>
  </Field>
</FieldMapping>
....

If you are mapping a drop-down value in Rally to the other system, this assumes the drop-down values match. Otherwise, the connector generates an error that the value was not found in the list. If your drop-down values are different between the two systems, see Map Drop-Down values.

Individual fields may also have a directionality specified, whereby that specific field will be mapped in one direction only. For more information on this feature, see Field Directionality.

CopySelector and UpdateSelector

The FAQ has a section of general information about using the <CopySelector> and <UpdateSelector>.

However, the QC connector does not allow for multiple tests on the same field. It does support the same syntax which can be used within the QC GUI, which allows for more complex testing. Here are a few examples of <CopySelectors> in the <QCConnection> section of the configuration file:

<CopySelectors>
  <CopySelector>BG_USER_02 = Y</CopySelector>
  <CopySelector>BG_STATUS = (Not Closed And Not Fixed)</CopySelector>
</CopySelectors>
<CopySelectors>
  <CopySelector>BG_USER_02 = Y</CopySelector>
  <CopySelector>BG_PROJECT = (Not &quot;&quot;)</CopySelector>
</CopySelectors>
<CopySelectors>
  <CopySelector>BG_USER_02 = Y</CopySelector>
  <CopySelector>BG_STATUS = (Open Or Reopen)</CopySelector>
</CopySelectors>
<!-- To select QC Requirements 4 and 5 only: -->
<CopySelectors>
  <CopySelector>RQ_REQ_ID = (&gt;3 And &lt;6)</CopySelector>
</CopySelectors>

Selectors and requirements

If you want to use a requirements folder in the CopySelectors, you must surround your condition with ^ characters and you must enclose the whole expression in parentheses. You must also fully qualify the path to your requirements folder. See the example below.

If you are unfamiliar with how filters are defined and expressed in QC, consider the following. In QC, open up the Filter. Once you have expressed your conditions and the results are as you desired, then click the Copy Filter icon (the second from the left on the top of the Filter requirements dialog). Paste this into a text buffer in your favorite editor. It should look similar to the text below.

[Filter][Keep_Hierarchical]{
TableName:REQ,
ColumnName:RQ_FATHER_NAME,
LogicalFilter:\0000001e\^Requirements\SubChannel\Basement^,
VisualFilter:\0000001e\^Requirements\SubChannel\Basement^,
NO_CASE:
}

The parts that you need to be concerned with are the ColumnName, which in the example is RQ_FATHER_NAME and the LogicalFilter value. For the LogicalFilter you should copy the portion bounded by the up-caret symbols (^). Be sure to include the caret characters when you copy that portion.

In the CopySelector, use the RQ_FATHER_NAME as the field name and the portion of the LogicialFilter you copied as the value. Once you have that in the CopySelector, enclose the caret delimited logical value in parens. An example below illustrates the end product.

<Config>
....
<QCConnection>
....
<CopySelectors>
  <CopySelector>RQ_FATHER_NAME = (^Requirements\SubChannel\Basement^)</CopySelector>
</CopySelectors>
....

Map QC markup fields

Some fields in QC contain rich-text (basically markup metadata) to achieve bolding, underlining, bulleting, and so on. This rich-text is usually different between QC and Rally. When copying these type of fields from Rally to QC, the <QCRtfFieldHandler> can be used to instruct the connector to translates most of this metadata. This <QCRtfFieldHandle> can be used on mapping fields such as:

  • BG_DESCRIPTION
  • BG_DEV_COMMENTS
  • RQ_REQ_COMMENT
  • TS_DESCRIPTION

An example of mapping BG_DESCRIPTION:

<Config>
....
<Connector>
<FieldMapping>
  <Field>
    <Rally>Description</Rally>
    <Other>BG_DESCRIPTION</Other>
  </Field>
  .... </FieldMapping>
<OtherFieldHandlers>
  <QCRtfFieldHandler>
    <FieldName>BG_DESCRIPTION</FieldName>
  </QCRtfFieldHandler>
  .... </OtherFieldHandlers>

Map QC attachments

The QC connector has several options for mapping attachments:

  • Copy the actual QC attachments to Rally

    Copy attachments between Rally and QC with the <RallyAttachmentLinker/> option in the configuration file as follows:

          <Config>
          ....
          <Connector>
          ....
          <RelatedObjectLinkers>
            <RallyAttachmentLinker />
          </RelatedObjectLinkers>
          ....
         

    Note: Rally attachments are limited to 5 MB. If a QC attachment is larger than 5 MB, it will not be copied from QC to Rally. In such cases, you may use one of the methods below for mapping attachments, which creates a link (URL) in Rally that points to the attachment location in the QC system (no attachment is created in the Rally system, just a URL). This mapping is supported in the QC to Rally direction only.


  • Map a link to QC10 attachments

    For Quality Center attachments to be accessible when viewing the corresponding artifact (story, defect, test) in Rally, you can create a URL in Rally which points back to the original attachment in the QC system. This mapping is only supported in the QC10 to Rally direction.

    Note: The QC connector supports this capability for the bug, requirement, and test items only.

    In HP QC10, all attachments for each Quality Center domain or project are stored in a fixed location on the disk of the Quality Center server. If the location of this folder is known and shared, its contents can be viewed from an external client. You may need to contact your Quality Center administrator to set up a shared network drive with access to the attachments folder for the specific domain or project.

    You must create a custom field in Rally of type Text, which will be used to store the references (URL links) to the QC attachments (the custom field name in the example below is QC10Attachments). Then use syntax similar to the following in your configuration file:

          <Config>
          ....
          <Connector>
          <FieldMapping>
          <Field>
            <Rally>QC10Attachments</Rally>
            <Other>BG_ATTACHMENT</Other>
            <Direction>TO_RALLY</Direction>
          </Field>
          ....
          <OtherFieldHandlers>
          <QCAttachmentFieldHandler>
            <FieldName>BG_ATTACHMENT</FieldName>
            <Path>\\sharedpath</Path>
          </QCAttachmentFieldHandler>
          ....
         

    In the example above, the Rally field handler <QCAttachmentFieldHandler> will store links in the following format (if you viewed the raw text for the Rally rich text field):

     <a href='file:\\sharedpath\file1'>file1</a>

    The field handler will append additional attachments as follows:

     <a href='file:\\sharedpath\file1'>file1</a> <a href='file:\\sharedpath\file2'>file2</a>

    The path to a QC10 project (where the attachments are stored) on the QC server should look similar to: E:\HP\repository\qc\Default\JPPROJECT\attach.


  • Map a link to QC11 attachments

    For Quality Center attachments to be accessible when viewing the corresponding artifact (story, defect, test) in Rally, you can create a URL in Rally which points back to the original attachment in the QC system. This mapping is only supported in the QC11 to Rally direction.

    Note: The QC connector supports this capability for the bug, requirement, and test items only.

    HP ALM/QC11 stores attachments in a collection of folders on the QC server. It also offers a REST API which permits a straightforward and deterministic way of referencing those attachments as URL links.

    To use this feature, create a custom field in Rally of type Text, which will be used to store the references (URL links) to the attachments (the custom field name in the example below is QC11Attachments). Then use the <QCUrlAttachmentFieldHandler> to handle mapping between QC11 and Rally as follows:

          <Config>
          ....
          <Connector>
          <FieldMapping>
          <Field>
            <Rally>QC11Attachments</Rally>
            <Other>BG_ATTACHMENT</Other>
            <Direction>TO_RALLY</Direction>
          </Field>
          ....
          <OtherFieldHandlers>
          <QCUrlAttachmentFieldHandler>
            <FieldName>BG_ATTACHMENT</FieldName>
          </QCUrlAttachmentFieldHandler>
          ....
         

    The QCUrlAttachmentFieldHandler stores links in the following format:

     <a href='http://qcserver/qcbin/rest/domains/yourdomain/projects/
                    /yourproject/defects/44/attachments/YourAttachedFile.docx'
    >YourAttachedFile.docx</a>

    Caution: As HP ALM only supports client access from Internet Explorer 7 or 8, the link to view the attachments also only works when using IE (7,8) to access Rally.

Map dates

Quality Center has a set of date fields for artifacts where the format is a string composed of a date, but equivalent fields in Rally may be in a string composed of date and time. There are two field handlers which facilitate this movement of date fields, namely <QCDatetimeToDateFieldHandler> and <RallyDateTimeFieldHandler>.

We recommend using this field handler for the following standard Quality Center mapping fields:

  • BG_CLOSING_DATE
  • BG_DETECTION_DATE
  • RQ_REQ_DATE
  • TS_CREATION_DATE

An example configuration file snippet for date mapping:

<Config>
....
<Connector>
<FieldMapping>
<Field>
  <Rally>CreationDate</Rally>
  <Other>BG_DETECTION_DATE</Other>
  <Direction>TO_OTHER</Direction>
</Field>
....
<OtherFieldHandlers>
<QCDatetimeToDateFieldHandler>
  <FieldName>BG_DETECTION_DATE</FieldName>
</QCDatetimeToDateFieldHandler>
....

In Rally, the CreationDate is a read-only field. It is on an artifact, put there by the underlying database and therefore the user can not modify this field. In the example above, we have placed a <Direction> tag. While the tag is not actually required in this instance, we use it to reinforce the fact that this field can never be modified by the user in Rally. If a configuration file maps into this Rally field, it will be silently ignored (no data is copied or updated in this Rally field).

When doing bi-directional movements of date fields, use both field handlers as in the following example:

<Config>
....
<Connector>
  <FieldMapping>
    <Field>
      <Rally>Name</Rally>
      <Other>BG_SUMMARY</Other>
    </Field>
    <Field>
      <Rally>TargetDate</Rally>
      <Other>BG_CLOSING_DATE</Other>
    </Field>
  </FieldMapping>
  <OtherFieldHandlers>
    <QCDatetimeToDateFieldHandler>
      <FieldName>BG_CLOSING_DATE</FieldName>
    </QCDatetimeToDateFieldHandler>
  </OtherFieldHandlers>
  <RallyFieldHandlers>
    <RallyDateTimeFieldHandler>
      <FieldName>TargetDate</FieldName>
      <!-- TargetDate(2012-08-25T06:00:00.000Z) -->
      <DateTimeFormat>%Y-%m-%dT%H:%M:%S.%LZ</DateTimeFormat>
    </RallyDateTimeFieldHandler>
  </RallyFieldHandlers>
</Connector>
....

Map TS_NAME

Quality Center has a set of forbidden characters when creating a name for a test. Use a field handler for TS_NAME which will remove the forbidden characters when pushing updates or creates from Rally to QC.

Note: If the UPDATE_OTHER_TO_RALLY service is also specified, the new updated name from QC will change the Rally name to the QC name which contains none of the forbidden characters.

<Config>
....
<Connector>
....
<OtherFieldHandlers>
<QCNameFieldHandler>
  <FieldName>TS_NAME</FieldName>
</QCNameFieldHandler>
....

For TS_NAME, the following eleven characters are removed:

    
Character
Symbol
Backslash
\
Slash
/
Colon
:
Quote
"
Question mark
?
Single quote
'
Less than sign
<
Greater than sign
>
Vertical bar
|
Asterisk
*
Percent
%

Map RQ_REQ_NAME

Quality Center has a set of forbidden characters when creating a name for a requirement. Use a field handler for RQ_REQ_NAME which will remove the forbidden characters when pushing updates or creates from Rally to QC.

Note: If the UPDATE_OTHER_TO_RALLY service is also specified, the new updated name from QC will change the Rally name to the QC name which contains none of the forbidden characters.

<Config>
  ....
    <Connector>
      ....
      <OtherFieldHandlers>
        <QCNameFieldHandler>
        <FieldName>RQ_REQ_NAME</FieldName>
      </QCNameFieldHandler>
      ....

For RQ_REQ_NAME, the following three characters are removed:

    
Character
Symbol
Backslash
\
Caret/Circumflex
^
Asterisk
*

Map TS_LINKED_REQ and BG_LINKED_REQ

In Quality Center, requirements can be linked to bugs and test cases. In Rally, a similar relationship is possible, but these relationships are not preserved by default. Quality Center tracks linkages in a separate table between requirements and defects. Rally tracks the relationship using the User Story field on defects and the work item field on test cases. So, Quality Center can link a test or defect to more than one requirement while Rally only links a test case or defect to one user story.

You can set up a mapping which will preserve the relationship of a test or defect when moving data from Quality Center to Rally only. Relationships from Rally to Quality Center are not supported.

The <QCReqLinkFieldHandler> is available to help preserve the linkage of a bug or test to a requirement when that requirement has also been synced by the connector. This field handler searches the link table for a bug or test for linked requirements. The first requirement that has a Rally ID will be used to link a defect or test case in Rally.

To configure the field handler, your field mappings section must have either TS_LINKED_REQ or BG_LINKED_REQ mapped:

For test to story:

<Config>
  ....
  <Connector>
  <FieldMapping>
  <Field>
    <Rally>WorkProduct</Rally>
    <Other>TS_LINKED_REQ</Other>
    <Direction>TO_RALLY</Direction>
  </Field>
  ....
  <OtherFieldHandlers>
  <QCReqLinkFieldHandler>
    <FieldName>TS_LINKED_REQ</FieldName>
    <ReqRallyIDField>RQ_USER_NN</ReqRallyIDField>
  </QCReqLinkFieldHandler>
  ....
  <RallyFieldHandlers>
  <RallyReferenceFieldHandler>
    <FieldName>WorkProduct</FieldName>
    <ReferencedFieldLookupID>ObjectID</ReferencedFieldLookupID>
  </RallyReferenceFieldHandler>
  ....

Note: For the <ReqRallyIDField> above, specify the custom field you created in Quality Center to contain the ID of the Rally user story (RQ_USER_nn in the above example). This should be the same as the <ExternalIDField> field in the configuration file which was previously used to copy the requirements to user stories.

For defect to story:

<Config>
  ....
  <Connector>
  <FieldMapping>
  <Field>
    <Rally>Requirement</Rally>
    <Other>BG_LINKED_REQ</Other>
    <Direction>TO_RALLY</Direction>
  </Field>
  ....
  <OtherFieldHandlers>
  <QCReqLinkFieldHandler>
    <FieldName>BG_LINKED_REQ</FieldName>
    <ReqRallyIDField>RQ_USER_NN</ReqRallyIDField>
  </QCReqLinkFieldHandler>
  ....
  <RallyFieldHandlers>
  <RallyReferenceFieldHandler>
    <FieldName>Requirement</FieldName>
    <ReferencedFieldLookupID>ObjectID</ReferencedFieldLookupID>
  </RallyReferenceFieldHandler>
  ....

Note: For the <ReqRallyIDField> above, specify the custom field you created in Quality Center to contain the ID of the Rally user story (RQ_USER_nn in the above example). This should be the same as the <ExternalIDField> field in the configuration file which was previously used to copy the requirements to user stories.

An important note: The connector will log a warning if multiple requirements are linked to a test or defect when this field handler runs.

Map reference fields from Quality Center

The field handler <QCReferenceFieldHandler> enables the mapping from Quality Center to Rally only. Rally to Quality Center is not supported by this field handler. This field handler supports the following QC fields being mapped to Rally:

  • BG_DETECTED_IN_RCYC
  • BG_DETECTED_IN_REL
  • BG_TARGET_RCYC
  • BG_TARGET_REL
  • RQ_TARGET_RCYC
  • RQ_TARGET_REL
  • RN_ASSIGN_RCYC
  • TC_ASSIGN_RCYC

In the following example, the <QCReferenceFieldHandler> field handler is used to extract the Name from a QC object. The <RallyReferenceFieldHandler> is used to insert this name into a Rally object.

<Config>
  ....
  <Connector>
    <FieldMapping>
      <Field>
        <Rally>Release</Rally>
        <Other>BG_DETECTED_IN_REL</Other>
        <Direction>TO_RALLY</Direction>
      </Field>
      ....
    <OtherFieldHandlers>
        <QCReferenceFieldHandler>
          <FieldName>BG_DETECTED_IN_REL</FieldName>
        </QCReferenceFieldHandler>
        ....
    <RallyFieldHandlers>
      <RallyReferenceFieldHandler>
        <FieldName>Release</FieldName>
      </RallyReferenceFieldHandler>
      ....

Field handlers

Map drop-down values
Map dates
Map user names
Map reference fields from Rally

Multiple configuration files

There are times when setting up multiple configuration files is necessary, like when you want to map:

  • More than one workspace in Rally
  • Multiple artifact types
  • To or from multiple containers in the other system (such as domains or projects in Quality Center, which would require a unique Rally custom field for the ExternalID of each container being used)

Note: Naming the configuration files using descriptive names makes for easier troubleshooting

To run multiple instances of the connector for different configuration files, invoke it multiple times, using one configuration file each time as follows:

rally2_qc_connector.exe  config_workspaceA.xml  -1
rally2_qc_connector.exe  config_workspaceB.xml  -1

The above commands could be placed in a BAT file for easier invocation.

XML tags

 

XML tags in the <RallyConnection> section:

Tag Name Description Sample Values
     
<RallyConnection>
Required
Opening parent tag for this section.  
<Url>
Required
Server used to connect to Rally (excluding any http prefix and /slm suffix, as the connector will add these to whatever is specified). sandbox.rallydev.com
rally1.rallydev.com
myRally.mydomain.com
192.168.23.24
<WorkspaceName>
Required
Workspace in Rally where you want to copy or update work items. Special characters in this field must be escaped as in: & must be entered as &amp;, > must be entered as &gt;, < must be entered as &lt;, and so on. My Workspace
Dog &amp; Pony WS
<Projects>
Required
Contains a list of project tags. Each tag refers to one Rally project that will be used when finding new Rally work items to copy to the other system. For updating work items from Rally to the other system, all projects in <WorkspaceName> are considered. At least one Rally project must be specified in this tag. Special characters in this field must be escaped as in: & must be entered as &amp;, > must be entered as &gt;, < must be entered as &lt;, and so on. <Project>Rally1</Project>
<Project>Rally2</Project>
<Project>P3&amp;4</Project>
<User>
Required
Login name of user to make the Web Services requests to create/update work items in Rally. user@company.com
<Password>
Required
Password associated with the above <User>. Note: The connector will encode this password string and update it in the configuration file as to avoid clear-text passwords being stored. mypassword
<ArtifactType>
Required
Type of artifact you want to create or update in Rally. (Defect, defect),
(Story, UserStory, HierarchicalRequirement), TestCase, TestCaseResult
<ExternalIDField>
Required
Rally custom string field (name and display name must be identical) that stores the unique ID for the other system. See Create an External ID Field in Rally. QCID
<SuppressDeprecationWarning /> Changes the 'WARN' message about Rally WSAPI version deprecation in the logfile to an 'INFO' message.  
<CopySelectors>
  <CopySelector>
      expression
   </CopySelector>
   [....]
</CopySelectors>
Criteria to use when finding new Rally issues to copy to Quality Center. Multiple criteria are ANDed together. An individual selector specification has the form:
<field><relation><value>,
where:
<field> is the name of a Rally artifact field
<relation> is one of =, !=, gt, lt, gte, lte
<value> is a valid value for the <field>.
See FAQ section for more details.
<CopySelector>
Status = Open
</CopySelector>
<CopySelector>
Priority = Low
</CopySelector>
<UpdateSelectors>
   <UpdateSelector>
      expression
   </UpdateSelector>
   [....]
</UpdateSelectors>
Criteria to use when finding existing Rally issues to be updated in Quality Center. Multiple criteria are ANDed together. An individual selector specification has the form:
<field> <relation> <value>
where:
<field> is the name of a Rally artifact field
<relation> is one of =, !=, gt, lt, gte, lte
<value> is a valid value for the <field>.
See FAQ section for more details.
<UpdateSelector>
Release != alpha
</UpdateSelector>
<FieldDefaults>
   <Field>
      <Name>F1</Name>
      <Default>V1</Default>
   </Field>
   [....]
</FieldDefaults>
Used when the destination system has a required field, but the field is not going to be mapped in the configuration file. This will cause field F1 to be set to value of V1. See more information in FAQ under Map required fields.
</RallyConnection>
Required
Closing parent tag for this section.  

Tip: Escape special characters contained in a Rally workspace or project name that are markup sensitive. For example:

& ampersand becomes &amp;
> greater than becomes &gt;
< less than becomes &lt;

Example: Research & Development → Research &amp; Development

 

XML tags in the <QCConnection> section:

Tag Name Description Sample Values
     
<QCConnection>
Required
Opening parent tag for this section.  
<Url>
Required
Quality Center server name (or IP address) and port. Syntax: Normally just the server:port is needed. For https (such as accessing a SaaS QC server), use https://server:443/qcbin QCserverLocal:8080,
https://QCserverSaaS:443/qcbin
<User>
Required
User name used make the API requests to create or update entities in Quality Center. myuser
<Password>
Required
Password of user making the API request to create or update entities in Quality Center. Note: The first time the connector runs, it will encode (which is not the same as encryption) this password and re-write the configuration file to avoid plain text passwords being stored. mypassword
<Domain>
Required
Name of domain that you want to connect to in Quality Center. My Domain
<Project>
Required
Name of project to be used in Quality Center. My Project
<ArtifactType>
Required
Entity name of the entities you want to create or update in Quality Center. BUG,
REQ,
TEST
<RequirementType> Requirement type to set for requirements created in Quality Center. Only applicable when the <ArtifactType> value is REQ. Business, Folder, Functional, Group, Testing, Undefined or your <custom_defined_req_type>
<RequirementFolder> Name of the folder under the QC requirements root folder where requirements are copied (or updated) to. This will have no effect on copying requirements out of QC to Rally. Only applicable when the <ArtifactType> value is REQ. The default is to place copied requirements directly in the requirements root folder. This folder must exist prior to running the connector (also see RequirementFolderID). Release1
Southwest
Regulatory
<RequirementFolderID> The ID of the folder under the QC requirements root folder where requirements are copied (or updated) to. This will have no effect on copying requirements out of QC to Rally. Only applicable when the <ArtifactType> value is REQ. The default is to place copied requirements directly in the Requirements root folder. This folder must exist prior to running the connector. This is useful when there are duplicate folder names in your QC Project (also see RequirementFolder).
123
456
<IDField>
Required
Quality Center field used to store the unique id of a bug, usually BG_BUG_ID BG_BUG_ID
<ExternalIDField>
Required
A custom user field in Quality Center of type String used to store the unique id (ObjectID) for the Rally work item. See Create an External ID User Field in Quality Center. BG_USER_01
<ExternalEndUserIDField> A custom user field in Quality Center of type String used to store the FormattedID of the Rally work item (DExx). See Create an External ID User Field in Quality Center. BG_USER_02
<CopySelectors>
   <CopySelector>
      expression
   </CopySelector>
   [....]
</CopySelectors>
Criteria to use when finding new Quality Center issues to copy to Rally. Multiple criteria are ANDed together. An individual selector specification has the form:
<field><relation><value>,
where:
<field> is the name of a Quality Center item field
<relation> is one of =, !=, gt, lt, gte, lte
<value> is a valid value for the <field>.
<CopySelector>
BG_STATUS = Open
</CopySelector>
<CopySelector>
BG_PRIORITY = High
</CopySelector>
For more information about the CopySelectors allowed in QC, see CopySelector and UpdateSelector.
<UpdateSelectors>
   <UpdateSelector>
      expression
   </UpdateSelector>
   [....]
</UpdateSelectors>
Criteria to use when finding existing Quality Center issues to be updated in Rally. Multiple criteria are ANDed together. An individual selector specification has the form:
<field> <relation> <value>
where:
<field> is the name of a Quality Center item field
<relation> is one of =, !=, gt, lt, gte, lte
<value> is a valid value for the <field>.
<UpdateSelector>
BG_TARGET_REL != alpha
</UpdateSelector>
For more information about the UpdateSelectors allowed in QC, see CopySelector and UpdateSelector.
<FieldDefaults>
   <Field>
      <Name>F1</Name>
      <Default>V1</Default>
   </Field>
   [....]
</FieldDefaults>
Used when the destination system has a required field, but the field is not going to be mapped in the configuration file. This will cause field F1 to be set to value of V1. See more information in FAQ under Map required fields.
</QCConnection>
Required
Closing parent tag for this section.  

 

XML tags in the <Connector> section:

Tag Name Description Sample Values
     
<Connector>
Required
Opening parent tag for this section.  
<FieldMapping>
Required
Specifies which fields are to be mapped between the two systems. See Field Mapping.
<OtherFieldHandlers> (opening tag)  
   <OtherUserFieldHandler>
      <FieldName>name-of-field</FieldName>
      <Domain>CompanyName.com</Domain>
   </OtherUserFieldHandler>
For mapping usernames between systems. The <FieldName> is the name of the field in QC. See Map user names section of the FAQ. Bug_Owner
   <QCAttachmentFieldHandler>
      <FieldName>name-of-field</FieldName>
      <Path>\\sharedpath</Path>
   </QCAttachmentFieldHandler>
Stores a link in the Rally artifact to the QC10 attachment. See Map QC attachments. BG_ATTACHMENT
   <QCUrlAttachmentFieldHandler>
      <FieldName>name-of-field</FieldName>
   </QCUrlAttachmentFieldHandler>
Stores a link in the Rally artifact to the QC11 attachment. See Map QC attachments. BG_ATTACHMENT
RQ_ATTACHMENT
   <OtherEnumFieldHandler>
      ....
   </OtherEnumFieldHandler>
Allows for the mapping of non-alike, drop-down values between the two systems. See Map Drop-Down Values.
   <OtherConditionalEnumFieldHandler>
      ....
   </OtherConditionalEnumFieldHandler>
Very similar to the <OtherEnumFieldHandler> except with this one only the exceptions need to be declared. Corresponding entries in the pull-down lists of both system which are identical, need not be declared.
   <OtherConcatFieldHandler>
      <FieldName>
         Dest-field
      </FieldName>
      <ConcatFields>
         <Field>Src-field1</Field>
         <Field>Src-field2</Field>
         <Field>.....</Field>
      </ConcatFields>
   </OtherConcatFieldHandler>
Using the contents of Dest-field as the initial string, appends each additional Src-fieldN to Dest-field, using HTML break tags (<br />) to separate each additional field value.

BG_DEV_COMMENTS


BG_DESCRIPTION
BG_USER_02
.....
   <QCRtfFieldHandler>
      <FieldName>name-of-field</FieldName>
   </QCRtfFieldHandler>
Converts some of the rich text metadata in the Rally field to a more suitable QC version. See Map QC markup fields. BG_DESCRIPTION
BG_DEV_COMMENTS
RQ_REQ_COMMENT
TS_DESCRIPTION
   <QCUserEmailFieldHandler>
      <FieldName>
         name-of-field
      </FieldName>
   </QCUserEmailFieldHandler>
Paired with <RallyUserEmailFieldHandler>.
Given a QC username, it returns the email address for that QC user, which is to be handed to the <RallyUserEmailFieldHandler> (and viceversa).
Valid values for name-of-field:
Any field of type Owner (e.g. BG_RESPONSIBLE, RQ_REQ_AUTHOR, TS_RESPONSIBLE, RN_TESTER_NAME).
</OtherFieldHandlers> (closing tag)  
<RelatedObjectLinkers> (opening tag)  
   <RallyAttachmentLinker /> Used to copy attachments between QC and Rally (bi-directional). Can be used on any object which supports attachments (in Rally: tasks, defects, stories, and tests; in QC: requirements, defects, and tests). For more information, see Map QC attachments.
</RelatedObjectLinkers> (closing tag)  
<RallyFieldHandlers> (opening tag)  
   <RallyReferenceFieldHandler>
      <FieldName>
         name-of-object
      </FieldName>
      <ReferencedFieldLookupID>
         name-of-field
      </ReferencedFieldLookupID>
   </RallyReferenceFieldHandler>
Used to map a field from an object.

User,Owner,Tester


Name,FormattedID
   <RallyUserFieldHandler>
      <FieldName>
         name-of-object
      </FieldName>
      <ReferencedFieldLookupID>
         name-of-field
      </ReferencedFieldLookupID>
   </RallyUserFieldHandler>
Used to map usernames. See Map user names.

User,Owner,Tester


Name,FormattedID
   <RallyUserEmailFieldHandler>
      <FieldName>
         name-of-field
      </FieldName>
   </RallyUserEmailFieldHandler>
Paired with <QCUserEmailFieldHandler>.
Given a Rally user's email address, it returns the Rally user (and vice versa).
Valid values for name-of-field:
User, Owner, SubmittedBy, Tester
   <RallyDateTimeFieldHandler>
      <FieldName>F1</FieldName>
      <DateTimeFormat>S1</...>
   </RallyDateTimeFieldHandler>
Bi-directional.
Rally to Other: Convert the Rally ISO date in field F1 into a date string formatted as specified by the string S1 (as per Ruby's DateTime.strftime function) and store this new date string into the field F1 is mapped to.
Other to Rally: The date string contained in the field which F1 is mapped to, is converted into a Rally ISO date (in accordance with (through Ruby's DateTime.parse) and stored in Rally's F1 field. Note that string S1 is not used in this case.

TestDate
%m-%d-%Y%H:%M:%S
   <RallyEnumFieldHandler>
      ....
   </RallyEnumFieldHandler>
Allows for the mapping of non-alike, drop-down values between the two systems. See Map Drop-Down Values.
   <RallyConcatFieldHandler>
      <FieldName>
         Dest-field
      </FieldName>
      <ConcatFields>
         <Field>Src-field1</Field>
         <Field>Src-field2</Field>
         <Field>.....</Field>
      </ConcatFields>
   </RallyConcatFieldHandler>
Using the contents of Dest-field as the initial string, appends each additional Src-fieldN to Dest-field, using HTML break tags (<br />) to separate each additional field value.

Some custom field


Description
some other field
.....
   <RallyCSVUserMappingFieldHandler>
      <FieldName>
         name-of-field
      </FieldName>
      <FileName>
         name-of-file
      </FileName>
   </RallyCSVUserMappingFieldHandler>
Specifies the name of a field being mapped (name-of-field) and a CSV file where user mappings are stored (name-of-file). The CSV file is used to lookup and transform usernames based on the mappings specified within. See a more detailed explanation on the FAQ page or an example XML file.

SubmittedBy


MyUserMappings.csv
</RallyFieldHandlers> (closing tag)  
</Connector>
Required
Closing parent tag for this section.  

 

XML tags in the <ConnectorRunner> section:

Tag Name Description Sample Values
     
<ConnectorRunner>
Required
Opening parent tag for this section.  
<Preview> Allows you to enable a preview mode for testing where NO objects are copied or updated in either system. False (default)
True
<LogLevel> Specifies the type of messages to be written to the log file. The highest level is Debug where all messages are displayed. Fatal
Error
Warn
Info (default)
Debug
<Services>
Required

Use the copy services to initially reflect items between systems, then use the update services to keep those reflected items up to date.

The alternative update service searches Rally first for updates and pushes only the recently changed fields to the other system. It then searches the other system for updates and pushes all mapped fields into Rally. This allows changes done in both systems to not cause overwrites of old data.

Copy services:

COPY_JIRA_TO_RALLY
COPY_RALLY_TO_JIRA

Update services:

UPDATE_JIRA_TO_RALLY
UPDATE_RALLY_TO_JIRA

Alternative update service:

UPDATE_RALLYFIELDS_AND_OTHER (may not be used in conjunction with the other update services)

See FAQ for more information.

<PostServiceActions>
   <MirrorStoryHierarchyInQC  />
</PostServiceActions>

Instructs the connector to move the Rally user story hierarchy to a QC requirements hierarchy (one direction only). Should not be used in the same configuration file as <MirrorQCStoryHierarchyInRally>.
<PostServiceActions>
   <MirrorQCStoryHierarchyInRally>
      <RootFolderID>number</RootFolderID>    </MirrorQCStoryHierarchyInRally>
</PostServiceActions>

Instructs the connector to move the QC requirement hierarchy to a Rally user story hierarchy (one direction only). Should not be used in the same configuration file as <MirrorStoryHierarchyInQC>. This feature will only work with: 1) the Requirement artifact in QC, 2) the UserStory artifact in Rally, 3) a parent which has no tasks.
By default, the QC requirements copied to Rally have the full QC folder pathname (starting at Requirement). To have the Rally folder named with a subset of the full pathname, you may give the starting point (folder name) by specifying the top level folder ID within the <RootFolderID> element.
<Emailer>
   <Level>value</Level>
   <SendEmailFrom>value</SendEmailFrom>
   <SendEmailTo>value</SendEmailTo>
   <SMTPServer>value</SMTPServer>
   <SMTPPort>value</SMTPPort>
   <SMTPUser>value</SMTPUser>
   <SMTPPassword>value</SMTPPassword>
   <SMTPSec>value</SMTPSec>
</Emailer>
Opening tag for this feature.
Which logfile messages to email.







Closing tag for this feature.
See example.
Error or Warning
monitor@acme.com
monitor@acme.com
smtp.acme.com
587
Username@Domain.com
Password
TLS
 
</ConnectorRunner>
Required
Closing parent tag for this section.  

Tip: We strongly suggest that you incrementally set up the connector. First, start with a basic configuration file. Ensure that you can connect to Quality Center and to Rally in a test environment using this configuration file. Once you have validated this setup, then begin customizing the field mapping and field handler sections of the configuration file.

Run the connector

Once the qc_config.xml file has been edited to reflect your environment, you can start running the connector. On Windows, open a DOS shell and type:

rally2_qc_connector.exe  qc_config.xml  -1

to start the service. If you named your configuration file something other than qc_config.xml, substitute that name on the command line. The last argument, -1, tells the connector to run once, then exit.

Note: In the past we have sometimes suggested using a positive integer value as they last argument, such as 10, which would instruct the connector run; sleep 10 minutes; then repeat this process. We now advise against such use it appears to generate issues in some environments (and they are difficult to triage). We strongly suggest using -1 as the last argument, and then set up a Windows Scheduled Task if you want the connector to run at regular intervals.

The file rallylog.log is generated by the connector and contains login information. View it by drag-and-drop onto WinTail.exe (part of the installation). Viewing the log file is how to tell if the connector is working properly, or to discover any errors.

Tip: Rally ships a startqc.bat file to make it easier to test. Double-click on the batch file to automatically run the connector and open the log file in WinTail. If the configuration file you intend to use is not named qc_config.xml you must edit the startqc.bat file to reference your configuration file name.

To stop the service, use Control-C in the command shell.

Troubleshoot the connector

The rallylog.log file

Once the connector is running, all errors are written to the rallylog.log in the working directory where rally2_qc_connector.exe was invoked. Informational messages, warnings, and errors are written to the log file depending on the value of the <LogLevel> tag in the <ConnectorRunner> section of the configuration file.

To see the most recent log messages on Windows, we recommend using the provided WinTail utility. To do this, rename the file from WinTail.dat to WinTail.exe and then drag the rallylog.log file and drop it on the WinTail.exe icon. The log file displays with automatic updates.

Connector validation

Before the connector starts synchronizing objects between the two systems, it performs these validations:

  • Connecting to Rally is successful
  • Connecting to the QC system is successful
  • The Rally fields in the field mapping section exist in Rally
  • The QC fields in the field mapping section exist in the other system
  • Each specified field handler has a corresponding field mapping section in the configuration file

To confirm the validation is successful without moving objects between the two systems, set the <Preview> tag in the configuration file to true. This is useful if you wish to experiment with some different configuration options to debug an issue.

Datetime field handlers

When mapping date fields, a field handler is required to instruct the connector how the field is to be transformed. A proper setup could be as follows:

        .....
          <Field><Rally>TargetDate</Rally>   <Other>BG_CLOSING_DATE</Other></Field>
        .....
        <QCDatetimeToDateFieldHandler>
                <FieldName>BG_CLOSING_DATE</FieldName>
        </QCDatetimeToDateFieldHandler>
If the fieldhandler above is not provided, you might see a error such as this:
 DEBUG : Connector.block in map_fields_to_rally - Mapping
                BG_CLOSING_DATE(2013-03-05 00:00:00 +0000)
                        - to -
                TargetDate(2013-03-05 00:00:00 +0000)
  WARN : RallyConnection.initialize - <Errors><OperationResultError>
                        Could not parse: Cannot convert "null" into a date.
                        You must use the ISO8601 date+time format.

Contact Rally Support

If you still cannot determine the root cause of an issue, email the entire log file and configuration file to support@rallydev.com and we will look at the setup.

A simple BAT file

This startqc-simple.bat file is provided as an example of how the connector could be invoked. Note that the recommendation is to run it once per configuration file.

@echo off
echo.------------------------------------------------   >> .\rallylog.log
echo.Windows Task invoked on %date%, %time% (local time)>> .\rallylog.log
echo.------------------------------------------------   >> .\rallylog.log

set My_Configuration_Dir="C:\Users\jpkole\MyQCfiles"
set My_Connector_Dir="C:\Program Files (x86)\RallyConnectorforQualityCenter"

:: If your site uses a proxy, uncomment next line and set it appropriately
:: set HTTP_PROXY=http://username:password@myproxy.company.com:8000

cd %My_Configuration_Dir%

%My_Connector_Dir%\rally2_qc_connector.exe   qc-config-01.xml   -1
%My_Connector_Dir%\rally2_qc_connector.exe   qc-config-02.xml   -1
%My_Connector_Dir%\rally2_qc_connector.exe   qc-config-03.xml   -1

A complex BAT file

This startqc-complex.bat file is provided to help capture more data for complex issues.

:: ===============================================================
:: SCRIPT:
::      startqc-complex.bat
::
:: PURPOSE:
::      Used to invoke the QC connector.
::
:: USAGE:
::      Edit the variables below to fit your environment and invoke
::      this BAT script in a MS-DOS command window or as a Windows
::      Scheduled Task.
::
::      As this BAT file runs, it will output status messages to the
::      command window as well as to the logfile "Connector.log".
::
:: VARIABLES:
::      My_Delay_In_Minutes - The amount of time, in minutes, to
::              delay before processing all the config files again.
::
::      My_Configuration_Dir - The working directory where the
::              connector will be run. This is typically where
::              your config files are stored and it will also be
::              where the logfiles are created.
::
::      My_Connector_Dir - The directory (folder) where the connector
::              was installed. By default this is:
::              "C:\Program Files (x86)\RallyConnectorforQualityCenter"
::              however, it may have been overridden when the
::              connector was installed.
::
::      My_Connector_Exe - The actual Windows executable that is the
::              QC connector.
::
::      My_Config_Files - A list of all the config files that are to be
::              processed by the connector.
::     
:: LOGFILES:
::      rallylog.log - this is the normal log file used by the
::              connector. As always, it will appear in the working
::              directory where the connector is invoked. In the
::              example below, it is specified as the environment
::              variable "My_Configuration_Dir".
::
::      Connector.log - this file will also appear in your working
::              directory and it will contain progress messages
::              written by this BAT file. In the event of a fatal
::              error, it may also contain stack trace information.
:: ===============================================================
@echo off
echo.------------------------------------------------   >> .\rallylog.log
echo.Windows Task invoked on %date%, %time% (local time)>> .\rallylog.log
echo.------------------------------------------------   >> .\rallylog.log

set My_Delay_In_Minutes=10
set My_Configuration_Dir="C:\Users\jpkole\MyQCconfigs"
set My_Connector_Dir="C:\Program Files (x86)\RallyConnectorforQualityCenter"
set My_Connector_Exe=%My_Connector_Dir%\rally2_qc_connector.exe
set My_Config_Files=qc-config-01.xml,qc-config-02.xml,qc-config-03.xml

:: If your site uses a proxy, uncomment next line and set it appropriately
:: set HTTP_PROXY=http://user:password@server.company.com:8000

cd %My_Configuration_Dir%

echo Starting "startqc-complex.bat" at: %DATE%, %TIME%
echo Starting "startqc-complex.bat" at: %DATE%, %TIME%      >> Connector.log 2>&1
set /a My_Delay_In_Seconds=%My_Delay_In_Minutes%*60

:LABEL_top_of_loop
        for %%f in (%My_Config_Files%) do (
                echo Processing "%%f" at: %DATE%, %TIME%
                echo Processing "%%f" at: %DATE%, %TIME%    >> Connector.log 2>&1
                %My_Connector_Exe%  %%f  -1                 >> Connector.log 2>&1
        )

        echo Sleeping for %My_Delay_In_Minutes% minutes...  >> Connector.log 2>&1
        timeout /t %My_Delay_In_Seconds% /NoBreak
        GOTO :LABEL_top_of_loop

::the end::

Best practices

Map Rally Projects

If you copy defects from Quality Center to Rally using the field handler <RallyReferenceFieldHandler> with projects, you may see a message like Could not find Rally Project with name ... in the log file if the connector user does not have editor permissions to that project in Rally.

Pessimistic locking in Quality Center

When an entity is selected in QC (using your browser), QC assumes you are editing the record and therefore locks the entity. The UPDATE_RALLY_TO_QC service will not update a Rally artifact to an entity in QC, if you have locked the record (an error in the log file will indicate when this happens).

Map more than one Quality Center project to a single Rally workspace

If you are mapping more than one Quality Center project to a single Rally workspace, there are important considerations to scale this successfully.

  • The IDs of QC artifacts are not unique across the multiple QC projects, which may result in more than one Rally artifact having the same value for the External ID field that corresponds to QC IDs.
  • If you are updating from Rally to QC, note that updates are by default Rally workspace-scoped, and not Rally project-scoped. In the scenario when more than one QC project is mapped to the same Rally workspace, it is recommended that you have Rally projects within this workspace directly correspond to respective QC projects. Individual config files must be created per each Rally project/QC project pair.
  • Each config file has to narrow the scope of Rally to QC updates to the Rally project that is currently referenced under RallyConnection's project tag.

Copy or split Rally stories that are mapped to QC requirements

If you copy or split Rally stories that already have corresponding requirements in QC, make sure to delete the value of the ExternalID field. Otherwise, the copy of the original story will still contain the original story's ExternalID field. This is undesirable since it creates many-to-one mapping between Rally and QC artifacts, which will affect the integrity of your data.

Known issues

Map releases or iterations with multiple projects

When using a <RallyReferenceHandler>; to map releases or iterations with the same name and multiple projects, you may receive an error if the release or iteration you are updating on the defect references a different project than the given defect is assigned. The connector only returns the first release or iteration with the matching name in Rally so it could have a reference to a release or iteration in a different project.

Map a null release or iteration

When using a <OtherEnumFieldHandler> to map a release or iteration, it is not possible to set it to null or Unscheduled (DE12979).

Email feature for Error

Prior to revision 2.8.8, the <Emailer> feature would not send email if the <Level> was set to Error (DE15642).

QC server upgraded

We have seen the connector hang when attempting to connect to the QC server which was upgraded, but the QC client PC was not update with the proper QC DLL's. The logfile merely shows:

....
   ANY : ConnectorRunner.block in run - processing to commence using content from Simple-Test-01.xml
   ANY : Class.read_config_file - Simple-Test-01.xml last modified 2013-08-15 19:12:59 UTC, size: 1336 chars
   ANY : RallyConnection.initialize - Initializing Rally connection version 2.8.8
  INFO : RallyConnection.initialize - Rally Web Services version 1.16
   ANY : QCConnection.initialize - Initializing Quality Center connection version 2.8.8
  INFO : Connector.initialize - Ruby platform i386-mingw32
  INFO : Connector.initialize - Ruby version 1.9.2
  INFO : QCConnection.connect - Connecting to Quality Center at http://vmwin2008qc11.f4tech.com:8080/qcbin as user jpqc11
 DEBUG : QCConnection.block in identify_qc_version - Preparing to open Registry to examine: Software\Classes\CLSID\{C5CBD7B2-490C-45f5-8C40-B8C3D108E6D7}\InprocServer32
 DEBUG : QCConnection.block in identify_qc_version - Registry Software\Classes\CLSID\{C5CBD7B2-490C-45f5-8C40-B8C3D108E6D7}\InprocServer32 opened...
 DEBUG : QCConnection.block (2 levels) in identify_qc_version - Registry path to HPQC OTAClient.dll ==> C:\PROGRA~2\HP\QUALIT~1\OTACLI~1.DLL
 DEBUG : QCConnection.win_path_expanded - expanded Registry path to DLL target: C:/Program Files (x86)/HP/Quality Center Client Side/OTAClient.dll
At that point, the connector could not be interrupted with Control-C, and a Ruby process was consuming 100% of a CPU.

Duplicate requirement names in QC

In Rally, two requirements can have the same value in the Name field. This is not allowed in the QC system. If a requirement with a duplicate name is copied to QC, an error will occur. If the configuration file is using the <RequirementFolder> or <RequirementFolderID> tag, the following error occurs (otherwise the error will be an OLE 80040556):

  INFO : Connector.copy_to_other - Copy US447 to Quality Center
 DEBUG : Connector.block in map_fields_to_other -   Mapping Name(test dup req name) - to - RQ_REQ_NAME(test dup req name)
 DEBUG : Connector.block in map_fields_to_other -   Mapping Description(US447 desc) - to - RQ_REQ_COMMENT(US447 desc)
 DEBUG : QCConnection.create_internal - set all artifact fields
 ERROR : QCConnection.rescue in create_internal - failed on attempt to move Requirement item to target folder
 ERROR : QCConnection.rescue in create_internal - failed on attempt to create QC Req item from src item
 ERROR : QCConnection.cleanup_shell_artifact - Attempting to delete the shell req item due to error.
  INFO : QCConnection.delete - Deleted QC req with id 22
 ERROR : QCConnection.cleanup_shell_artifact - The shell req was deleted successfully.
  WARN : QCConnection.initialize - Could not create req - failed on attempt to move Requirement item to target folder -

Revision history

  • 4.3.2 - 05-Feb-2014
    • Fixes:
      • Fixed a bug in QC Test Run Connector in preview mode
  • 4.3.0 - 16-Jan-2014
    • Enhancements:
      • Upgrade from Ruby 1.9.2-p290 to Ruby 2.0.0-p247.
      • Performance improvement gained by using rally_api rather than rally_rest_api.
      • Added more build tests.
      • QC Connector causes backward time drift when mapping TargetDate to BG_CLOSING_DATE (DE18750).
      • Updated Rally QC Email User Field Handler (DE18583).
      • The <RallyUserFieldHandler> was broken (DE18850).
      • Connector would validate only the first config file on command line (DE17492).
      • Added <SuppressDeprecationWarning> XML tag.
      • Upgrade to version 1.42 of the WSAPI.
  • 2.10.0-513 - 14-Oct-2013
    • Enhancements:
      • Fixed incorrectly listing updated value in log file (DE18019).
      • Updated QC version log message from WARNING to INFO (DE18378 ).
      • Usability and reliability upgrades for HPQC Phase 1 (F3823).
      • Create a field handler to map users with a csv (S53878).
      • QC to Rally defect mapping of non-existant user is handled better (S50159).
      • Logfile incorrectly displayed Release/Iteration Reference and not the actual name (S50389).
      • Connector handles mapping of QC Date/Time in multiple formats to Rally Date/Time fields (S50391).
      • RequirementFolder did not act like CopySelector during Copy from QC to Rally (S50265).
      • Check for existence of CrosslinkUrlField in <QCConnection> section only (S51204).
      • The rally_rest_api interface was replaced with the rally_api to make the code more concise and improve performance (S38419).
      • For TestCase and TestCaseResult: Last Verdict does not change on Iteration Status page when new test case result is created via connector (S50262).
      • Refactored core sync to field level to prevent overwriting (F4214).
      • Added WSAPI 2.0 in EIF Connectors (F3097).
    • Fixes:
      • Management of case sensitive usernames in Rally and other (DE18025).
      • Lookback Time to copy/update Artifacts is invalid (DE17865).
      • EIF connectors now validate config files on command line (DE17492).
      • The has-changed did not correctly compare date fields (DE15628).
    • Known issues:
      • The <RallyUserFieldHandler does not properly return a value (DE18850).
  • 2.8.8-225 - 14-Dec-2012
    • Enhancements:
      • Minor logging improvements.
    • Fixes:
      • DE15642: Email notification of errors and warnings, in the<Emailer> feature, would not send email if the <Level> was set to Error.
    • Known issues:
      • When mapping a QC Date/Time field to/from a Rally Date/Time field, in some cases the connector will fail with:
            Could not parse: Cannot convert "null" into a date. You must use the ISO8601 date+time format.
        This is usually resolved by using the <RallyDateTimeFieldHandler>.
      • If the SubmittedBy or Owner field is being mapped, and the artifact has a reference to a previously deleted user in one of those two fields, the connector will abort when attempting to get the artifact, with message: "undefined local variable or method `value' for #<RallyUserFieldHandler:0x149be48>"
  • 2.8.6-222 - 01-Nov-2012
    • Enhancements:
      • Added more logging for <LogLevel>Any</LogLevel>.
      • Moved rally_api to revision 0.7.6.
      • Added Rally URL and user name to connection message.
      • Added ID in log message so user can see what artifact caused an error.
      • Added check for nil return value on tags/keywords.
      • Added more debugging output on connection to Rally.
      • Improved performance by removing refresh on Workspace read in find-workspace loop.
      • Updated to use rally_api 0.6.0 to fix "requirement is not a valid type" error.
    • Fixes:
      • DE14293: Test folders with spaces in the name would fail.
      • DE14312: When running in PREVIEW mode, connector would exit with error message: "unknown property or method: `length'".
      • DE14473: Duplicate attachments were created on update from QC to Rally UserStory when filename had special characters.
      • DE14528: An update from Rally to QC Runs have an extra prefix/append of the html/body tags.
      • DE14592: Two config files on the command would sometimes hang.
      • DE14655: Connector errors with "Object Type requirement is not query-able".
    • Known issues:
      • DE15642: The <Emailer> feature does not send email if the <Level> is set to Error.
      • When the connector finishes running in PREVIEW mode, it prints the error:
         INFO : ConnectorRunner.show_preview_message - ------- Preview Mode -------
        ERROR : ConnectorRunner.rescue in run_services - Unexpected exception occurred
        ERROR : ConnectorRunner.exception - Message unknown property or method: `length'
            HRESULT error code:0x80020006
              Unknown name.
  • 2.8.1-211 - 25-Jul-2012
    • Log file now shows the name of the REF returned by the transform_in() function of a RallyReferenceFieldHandler on the map_fields_to_rally call.
    • Fixed an issue where a project named TEST would be returned erroneously on a query for project TEST+.
    • Change to throw exception on find by ExternalID if results are nil.
  • 2.7.9-207 - 01-Jul-2012
    • Improved testing code.
    • Fixed issue where attachments were being duplicated if updates were going in both directions.
    • Fixed several minors issues.
    • Adding debug logging to attachment linker.
  • 2.7.6-184 - 22-May-2012
    • Added <RallyToQCTestStepLinker>, <ValidationStep> Last </ValidationStep>, and <StepFields>
    • Added <RelatedObjectLinkers>, <QCToRallyTestStepLinker />
    • Added <RallyDateTimeFieldHandler>
    • Added <Emailer> functionality to the <ConnectorRunner> section.
    • Mods for migrating items from the Test Lab to Rally TestCases/TestSets/TestFolders.
  • 2.7.4-170 - 01-May-2012
    • Added ability for FormattedID in QC system to have lower case prefix (us123) or upper case prefix (US123).
    • Added subfield specifications on CopySelectors from Rally using the precopy feature.
    • Fixed handling of "bad" characters in a Requirement 'Name' field
    • Expanded CopySelector/UpdateSelector criteria expression to include: field = (Foo or Bar)
    • Added facility to specify TestFolder or RequirementFolder ID instead of name (bypasses duplicate folder name issues)
    • Added capability to reflect Story relationships, TestCase relationships, Defect relationships
    • Added XML include capability so common text can be included as a separate file.

OLE error codes


OLE error codes reported by Rally’s QC connector:


Code: 80000482 Cause: Seen when running a QC10 connector on QC11 client Error: Invalid server response
Code: 80020006 Cause: Seen when running the 2.8.6 version of the connector in PREVIEW mode. This error is generated once the connector has finished and is attempting to generate summary messages. Fixed in version 2.8.8 of the connector. Error: INFO : ConnectorRunner.show_preview_message - ------- Preview Mode ------- ERROR : ConnectorRunner.rescue in run_services - Unexpected exception occurred ERROR : ConnectorRunner.exception - Message unknown property or method: `length' HRESULT error code:0x80020006 Unknown name.
Code: 800401F3 Cause: Something about the OTAClient.dll is not right. See notes in the Pre-installation checklist, step 4 (above). Error: INFO : QCConnection.connect - Connecting to Quality Center at http://10.10.10.10:8080/qcbin as user XYZ ERROR : QCConnection.rescue in connect - Could not create OLE Server "TDApiOle80.TDConnection.1" ERROR : QCConnection.initialize - unknown OLE server: `TDApiOle80.TDConnection.1' HRESULT error code:0x800401f3 Invalid class string ERROR : ConnectorRunner.exception - Message unknown OLE server: `TDApiOle80.TDConnection.1'
Code: 800403EA Cause1: Seen when using a <CopySelector> on BG_DETECTED_IN_REL The syntax was (incorrectly) specified like this: <CopySelector>BG_DETECTED_IN_REL = "Orgella")</CopySelector> The proper syntax is: <CopySelector>BG_DETECTED_IN_REL = (^Releases\Orgella^)</CopySelector> Error1: ANY : ConnectorRunner.process_service - Starting Service COPY_QC_TO_RALLY INFO : QCConnection.find_new - find_new query: BG_USER_01 ="" and BG_DETECTED_IN_REL ="Orgella" ERROR : QCConnection.initialize - (in OLE method `NewList': ) OLE error code:800403EA in Failed to Get Bug Value HRESULT error code:0x80020009 Cause2: Seen when the QC server had been updated, but the client OTAClient.dll was not updated (this is similar to error 800401F3 above). Error2: INFO : QCConnection.connect - Connecting to Quality Center at http://xxxx.com:8080/qcbin as user jpkole DEBUG : QCConnection.block in identify_qc_version - Preparing to open Registry to examine: Software\Classes\CLSID\{C5CBD7B2-490C-45f5-8C40-B8C3D108E6D7}\InprocServer32 DEBUG : QCConnection.block in identify_qc_version - Registry Software\Classes\CLSID\{C5CBD7B2-490C-45f5-8C40-B8C3D108E6D7}\InprocServer32 opened... DEBUG : QCConnection.block (2 levels) in identify_qc_version - Registry path to HPQC OTAClient.dll ==> C:\Program Files\Common Files\Mercury Interactive\Quality Center\OTAClient.dll DEBUG : QCConnection.win_path_expanded - expanded Registry path to DLL target: C:/Program Files/Common Files/Mercury Interactive/Quality Center/OTAClient.dll ERROR : QCConnection.rescue in connect - Could not Login to QC OLE Server with user:"jpkole" and pw:*** ERROR : QCConnection.initialize - (in OLE method `Login': ) OLE error code:800403EA in Failed to Login HRESULT error code:0x80020009 Exception occurred.
Code: 800403EC Cause: Reported on invalid Username or Password Error: ERROR : QCRunConnection.rescue in connect - Could not Login to QC OLE Server with user:"jpkole" and pw:*** ERROR : QCRunConnection.initialize - (in OLE method `Login': ) OLE error code:800403EC in <Unknown> Authentication failed. Verify your user name and password HRESULT error code:0x80020009
Code: 800403FF Cause: A custom field was created in QC (type = Lookup List; values were Y or N). The field was mapped to a Boolean in Rally; all was OK. The string “false” was copied from Rally into the QC Y/N field (not a desired action). I went back to the custom field in QC and checked the box “Verify Value”. When the connector ran again, the error was reported was: Error: Field < BG_USER_10_Boolean > requires a value from the corresponding list
Code: 80040518 Cause: (unknown thus far) Error: This field cannot be changed directly by user.
Code: 80040519 Cause1: There was no <QCDatetimeToDateFieldHandler> used with mapping Rally's CreationDate (see Map dates above) Error: DEBUG : Connector.block in map_fields_to_other - Mapping CreationDate(2012-10-24T18:16:40.887Z) - to - BG_DETECTION_DATE(2012-10-24T18:16:40.887Z) .... ERROR : QCConnection.rescue in block in create_internal - Unable to set bug field BG_DETECTION_DATE with value of |2012-10-24T18:16:40.887Z| ERROR : QCConnection.rescue in create_internal - failed on attempt to create QC Bug item from src item ERROR : QCConnection.cleanup_shell_artifact - Attempting to delete the shell bug item due to error. INFO : QCConnection.delete - Deleted QC bug with id -10 ERROR : QCConnection.cleanup_shell_artifact - The shell bug was deleted successfully. WARN : QCConnection.initialize - Could not create bug - (in OLE method `Field': ) OLE error code:80040519 in <Unknown> Invalid date field value. HRESULT error code:0x80020009 Cause2: User defined the ExternalID field in QC as type “Number” instead of “String”. Note: When the opposite is done (ExternalID is defined in Rally as type “Integer” instead of “String”, the error is: Cannot parse number: For input string: "" A simple way to test this is: Create a custom field in Rally named Foo, define it as type “Integer”, go to WSAPI, Defects, issue this query: (Foo = “”); Error returned is: OperationResultWarning Could not parse ""
Code: 8004051B Cause: This QC error code is not well understood here at Rally. We have seen two instances of this error: Error1: Required field <Detected on Date> can not be empty or SPACE filled. Cause?: We suspected a custom field in QC named “Detected on Date” has been marked “Required”, and it was not mapped (and thus empty). Error2: Required field <Build Written For> can not be empty or SPACE filled. Cause?: We suspected several TestCases were being copied from Rally to QC, and they all had the same value for the "Name" field, which is illegal in QC. The custom field <Build Written For> (TS_USER_01) was being mapped. And yes, assuming this was the real issue, this is a very strange error code/message (i.e. one would think the reported error would have been 80040556 below).
Code: 8004051C Cause: Created a new Requirement; named it MyNewRequirementsFolder; gave it a type of folder. I had declared custom field RQ_USER_01 (in my configuration file) as the <ExternalIDField>. But in QC under Tools → Customize... → Requirement Types → Folder → the "User Defined Fields" tab, the field RQ_USER_01 was not "checked" under "In Type" column. Error: The field < RQ_USER_01 > cannot be used with requirement type < Folder >.
Code: 8004053D Cause: CopySelector had “Y” (i.e. the quotes are not allowed)
Code: 80040556 Cause1: Attempt to copy a User Story from Rally to a QC requirement, but the Name already existed on a requirement in QC... i.e. you can not have duplicate names on requirements in QC. Error: Unable to set req field RQ_USER_04 with value of |Rally| Cause2: The <ExternalEndUserIDField> tag was used in the <QCConnection> section, but the field name specified in it did not exist. Error: INFO : RallyConnection.find_new - Found 1 new userstorys in Rally INFO : Connector.copy_to_other - Copy US453 to Quality Center DEBUG : Connector.block in map_fields_to_other - Mapping Name(Test 97175) - to - RQ_REQ_NAME(Test 97175) DEBUG : Connector.block in map_fields_to_other - Mapping Description(mod1) - to - RQ_REQ_COMMENT(mod1) DEBUG : Connector.block in map_fields_to_other - Mapping Project(PR01) - to - RQ_REQ_PRODUCT() ERROR : QCConnection.rescue in block in create_internal - Unable to set req field RQ_USER_09 with value of |US453| ERROR : QCConnection.rescue in create_internal - failed on attempt to create QC Req item from src item ERROR : QCConnection.cleanup_shell_artifact - Attempting to delete the shell req item due to error. ERROR : QCConnection.rescue in delete - Delete failed for req -10 WARN : QCConnection.initialize - (in OLE method `RemoveItem': ) OLE error code:80040556 in <Unknown> Failed to delete requirement. HRESULT error code:0x80020009 Cause3: A required field was not given a value when creating an artifact. For example, copying from Rally to QC without providing a value for the Name field: Error: INFO : RallyConnection.find_new - Found 1 new hierarchicalrequirements in Rally INFO : Connector.copy_to_other - Copy to Quality Center DEBUG : Connector.block in map_fields_to_other - Mapping Project(Team 2) - to - RQ_REQ_PRODUCT(Team 2) DEBUG : QCConnection.create_internal - set all artifact fields ERROR : QCConnection.rescue in create_internal - failed on attempt to create QC Req item from src item ERROR : QCConnection.cleanup_shell_artifact - Attempting to delete the shell req item due to error. ERROR : QCConnection.rescue in delete - Delete failed for req -10 WARN : QCConnection.initialize - (in OLE method `RemoveItem': ) OLE error code:80040556 in <Unknown> Failed to delete requirement. HRESULT error code:0x80020009 Exception occurred. ERROR : QCConnection.rescue in cleanup_shell_artifact - Deletion attempt failed... WARN : QCConnection.initialize - (in OLE method `RemoveItem': )        ....
Code: 8004058D Cause: The <RallyAttachmentLinker /> was being used when copying a Rally UserStory to a QC Requirement. The destination project in QC had versioning enabled. This caused the error. NOTE: When this error occurs, the UserStory is copied to QC and the ExternalID is updated in Rally, but the attachment does not get copied. Error: INFO : Connector.copy_to_other - Rally userstory US413 copied to Quality Center req 16 DEBUG : RallyAttachmentLinker.block in link_related_objects_in_other - Copying attachment: Att1.txt ... WARN : QCConnection.initialize - Error saving attachment for req - 16. WIN32OLERuntimeError: (in OLE method `Post': ) OLE error code:8004058D in <Unknown> Server failed to create requested object HRESULT error code:0x80020009 Exception occurred.. .... <stack trace> .... ANY : ConnectorRunner.process_service - Finished Service COPY_RALLY_TO_QUALITY CENTER
Code: 8004058E Cause: Customer said: Validation failed in QC on 2 fields, only one of which appears on-screen when entering a new defect. The other one is a complicated field which requires a companion field and auto-fill to work properly. Error: INFO : Connector.copy_to_other - Copy to Quality Center DEBUG : Connector.block in map_fields_to_other - Mapping State(Open) - to - BG_STATUS(Open) DEBUG : Connector.block in map_fields_to_other - Mapping Notes(Dev1) - to - BG_DEV_COMMENTS(Dev1) DEBUG : Connector.block in map_fields_to_other - Mapping Description(test) - to - - to - BG_DESCRIPTION(test) WARN : OtherEnumFieldHandler.transform_in - For BG_PRIORITY field could not transform_in(None) DEBUG : Connector.block in map_fields_to_other - Mapping Severity(Major Problem) - to - BG_SEVERITY(4-Very High) DEBUG : Connector.block in map_fields_to_other - Mapping Name(Add to group) - to - BG_SUMMARY(Add to group) DEBUG : Connector.block in map_fields_to_other - Mapping QCPortfolioItem(RM) - to - BG_USER_08(RM) DEBUG : Connector.block in map_fields_to_other - Mapping SubmittedBy(joe@company.com) - to - BG_DETECTED_BY(user5) DEBUG : Connector.block in map_fields_to_other - Mapping CreationDate(2012-12-19TZ) - to - BG_DETECTION_DATE(2012-12-19) DEBUG : Connector.block in map_fields_to_other - Mapping SubmittedBy(joe@company.com) - to - BG_DETECTED_BY(user5) DEBUG : QCConnection.create_internal - set all artifact fields ERROR : QCConnection.rescue in create_internal - failed on attempt to create QC Bug item from src item ERROR : QCConnection.cleanup_shell_artifact - Attempting to delete the shell bug item due to error. ERROR : QCConnection.rescue in delete - Delete failed for bug -57 WARN : QCConnection.initialize - (in OLE method `RemoveItem': ) OLE error code:8004058E in <Unknown> You do not have the required permissions to execute this action. HRESULT error code:0x80020009 Exception occurred. ERROR : QCConnection.rescue in cleanup_shell_artifact - Deletion attempt failed... .... INFO : ConnectorRunner.process_service - Finished Service COPY_RALLY_TO_QUALITY CENTER

Based on a report from another user regarding the same error we recommend making sure that all required fields in QC are being supplied a value during copy service from Rally to QC. In this particular case a required field was not colored in red and marked with * in QC UI, and the user could not know it was required. But in Tools>Customize this field had the Required check box checked.


Codes: 80040640, 8000FFFF Cause: Invalid URL (or maybe a bad port number), therefore there was no connectivity to QC. Error1: Could not InitConnection to OLE Server at URL "http://vmwin2008qc11:80801/qcbin" Server has been disconnected while performing GetServerSettings action. Error2: OTA server is not connected.
Code: 800413EC Cause: Attempted to RE-copy the same UserStory from Rally To QC simply by clearing the ExternalID field on the Rally side. This will not work as it will be attempting to create two Requirements in QC with the same name, which is not supported in QC (even though it is in Rally).
Code: 800413ED Cause: User installs QC connector on system, then attempts to invoke the connector *BEFORE*f first connecting to their QC system, via the IE web browser, on the same system as the connector. This happens because the OTA client DLL must be loaded *BEFORE* the connector will work. And it is the act of connecting to the QC system via IE that gets the addins downloaded and installed. Error: Could not create bug - (in OLE method `AddItem':)
Code:   800456CF Cause1: Caused by a "Versioned" project in QC; details are not yet clear. Error1: INFO : QCConnection.find_new - Found 1 New reqs in QC INFO : Connector.copy_to_rally - Copy to Rally DEBUG : Connector.block in map_fields_to_rally - Mapping RQ_REQ_NAME(t1) - to - Name(t1) WARN : QCConnection.pre_copy - Ignoring QC req 1 because this record is locked by a user WARN : QCConnection.pre_copy - QC req 1 will be picked up next run Cause2: In QC, the project was "Versioned". A user was logged into QC (not necessarily the same user that was used in the configuration file). This user had the Requirement 1 highlighted (in the GUI). Requirement 1 was checked out (the padlock icon was open). The connector was invoked and the follow error occurred. Error2:   INFO : QCConnection.find_new -   Found 1 New reqs in QC           INFO : Connector.copy_to_rally - Copy  to Rally          DEBUG : Connector.block in map_fields_to_rally -   Mapping RQ_REQ_NAME(t1) - to - Name(t1)           WARN : QCConnection.rescue in checkout_qc - Unable to Checkout req 1 ... skipping ... Exception was (in OLE method `CheckOut': )              OLE error code:800456CF in <Unknown>                    Entity t1 is already checked out by user1.                  HRESULT error code:0x80020009
Code:   80047535 Cause: ? (case 96542) We are not 100% sure, but check here:    Community Knowledge Base at HP Is the proper revision of the QC Client component installed? The root cause of the issue is that the updated OTA client DLL was not downloaded and registered into the client machine. The solution is to remove the client component from the local machine and reinstall. You can do so by deleting the folder C:\users\\AppData\Local\HP and then access the QC URL and register the client component from the addin page (if you want to integrate QC with other application). Error: ERROR : QCRunConnection.rescue in connect - Could not Login to QC OLE Server with user:"qcuser" and password:********** ERROR : QCRunConnection.initialize - (in OLE method `Login': ) OLE error code:80047535 in <Unknown> OTA version is not compatible with the Application Lifecycle Management server: http://xxxx.org:8070/qcbin/wcomsrv.dll. OTA version: 11, OTA build number: 7484. Server version: 11, server build number: 8092. HRESULT error code:0x80020009
English

Feedback

Please send us your feedback regarding our help site. For feedback regarding the Rally product, click here to open a support case or click here to submit a new feature request
English
By submitting this form, you accept the Mollom privacy policy.
© 2014 Rally Software Development Corp | Legal