Task Synchronization Configuration

Creating a Task Mapping

Creating a task mapping in Sync requires three primary items be configured: a connection to each participating repository, a set of queries defining the scope of the synchronization, and a mapping that defines how synchronization between two repositories should be handled.

Tasktop Sync provides a repository creation wizard as well as a thorough task mapping editor to assist you in creating all three of these requirements. However, some synchronization setups require complicated definitions. To support the full range of synchronization complexity, Sync also allows manual configuration of the synchronization mapping through its configuration file. For details on manual editing of the configuration file see the Manual Configuration

However, even if you require the ability to edit the configuration files by hand, it is recommended that you create your task mappings using the Quick Start Wizard and task editor initially.

In order to use the Quick Start Wizard, you will need to create a test task in both of the repositories which you want to sync (these tasks can be deleted after you are done with the Quick Start Wizard). You can use pre-existing tasks, but that is generally a bad idea if you are using a production system.

If you have not yet defined any mappings, you will see a link “Launch Sync Quick Start” in the upper left Services view:

Click on that link to start the Quick Start Wizard, otherwise you can right click the ALM Synchronization node in the Services view and select "New Task Mapping."

You will be presented with a welcome page which reminds you that you need credentials for the two repositories to sync and to create one task in each repository to synchronize.

Next, you will see a page which allows you to specify which kind of repositories you would like to sync. The order in which you specify the two repositories doesn’t affect the synchronization at all.

After you select which type of repository to use for Repository One and Repository Two, you will see two pages where you will enter your credentials for the two different repositories. These will be different depending upon which repository type you select. Here is a screen shot of the credentials page for an HP ALM and Quality Center connector:

The next page will ask you for the task IDs of the two tasks to synchronize; it might also ask for additional information needed for a particular type of repository. For example, for IBM’s RTC repository, you need to specify the project area, as shown in this screenshot:

You need to press the Validate button for each repository to ensure that the repository exists, is up and running, that the task exists, and that your credentials give you access to that task. If everything is correct, you will see a green checkmark next to the Validate button, and the Finish button will be enabled.

After you press Finish, Tasktop Sync will open task mapping editor for your new mapping and start synchronizing the summary attribute (and only the summary attribute) between the two test tasks that you created (and only the summary attribute).

Editing a Task Mapping: The Task Mapping Editor

The Task Mapping Editor displays the configuration in a user-friendly format. It shows you information about the repositories, queries, and mappings. The editor also provides direct links for viewing repository schemas, editing repository properties, and editing query parameters.

To access the Task Mapping Editor, double click on the mapping title in the Services view or right click the mapping title and select Properties

Task Mapping Editor Layout

Repositories

General repository information is displayed in the upper sections of the Task Mapping editor. The repository information includes the repository URL, credentials, type, connector kind, comment content-type, and proxy creation trigger. The name of the repository type will be in the header of this section, and the icon for the repository type will be next to the URL link.

This section of the editor links to the repository properties editor through the URL and Username/Password links. If a username or password has not been supplied a yellow warning sign will be displayed next to the text box as shown.

Scope

The scope section defines the set of tasks which are candidates for synchronization between two repositories. If you created your mapping with the Quick Start Wizard, the scope will initially be a single task for each repository. The URL of this task will be displayed in the Task ID field shown in this section.

To expand the scope of your synchronization you will have to configure Sync to use a set of queries as its definition of the scope. You can convert to using queries as the defining scope by clicking on the “Queries” hypelink shown underneath the Task ID field.

Once you have expanded the scope to use queries, this section will be replaced by two fields for selecting queries.

The initialization query is used to initialize or reinitialize the synchronization between tasks. This query should capture all of the tasks that you wish to synchronize from each of the repositories.

The changes query is used to capture a subset of the initialize query tasks which Sync should check for changes that required synchronization. This query is run by Sync frequently and so should capture a smaller set of tasks than the initialization query. Typically this query captures tasks that have been modified in the last few days.

You can change these queries by clicking on the textbox and selecting a pre-existing query for that repository; clicking on the Changes: or Initialization: links will bring up the Edit Query dialog. Clicking on the New... button will allow the creation of a query that is immediately defined as your changes or initialization query.

Properties

The Properties section displays the repository properties, such as defaultCommentUser or proxyStorageAttribute. These properties can be added, edited or removed through the buttons on the right. Consult the Tasktop Sync Connectors guide to find out about repository specific properties.

Mapping Settings

The Mapping Section defines configuration options that apply to the entire task mapping. These properties include setting an optional person mapping file (see person mappings ), specifying whether comments and attachments should be synchronized, as well as defining the default conflict resolution and notification policies.

The name found in the Person Mapping box will also display at the top of the Services view as a link to the person mapping file.

The Comment Synchronization and Attachment Synchronization boxes can be used to set the directionality of comment and attachment syncing. Attachments and comments can be set to Sync to a single repository, birectionally between both repositories or left unsynchronized.

Conflict notification can either be set as Log or Comment. If Comment is selected, when Sync detects a conflict it will be reported as a comment in the target task where the conflict was detected. If Log is selected, detected conflicts will be reported in the Sync console and on-disk logs. It is recommended that you use Log for conflict notification.

The Conflict Resolution Policy box will display the default conflict resolution policy of this task mapping. When a conflict is detected, Sync uses this policy to determine what value should be recorded to the attribute in question. If Do not synchronize is specified then no action is taken to resolve the conflict, and each repository will keep its own value. Otherwise, one of the repositories can be specified as the dominate repository. In this case, the value from the dominant repository will take precedence in resolving the conflict. The conflict resolution policy can be overriden on an attribute-by-attribute basis in the attribute mapping editor.

Notifications

The Notifications section allows the configuration of email addresses which can be configured to receive statistics or error reports from Tasktop Sync. Clicking on the check boxes will determine which type of reports the recipient receives. Notification emails will not be sent without a valid email address provided in the mail preferences. To configure the mail preferences, click on Open mail preferences:

Enter the details of your email to the dialog that pops up. Tasktop Sync notifications will be sent from the address configured here.

Attribute Mapping Editor

The attribute mapping editor is used to configure the specific attribute-level mappings that are used when synchronizing tasks between the repositories. Before you can configure attribute mappings, you must have a refreshed schema for each repository (see the schema view ). Each part of the attribute mapping editor is described below.

Mappings Table

The Mappings table displays all the attributes currently being synchronized. The arrows between the attributes being displayed visualize the directions that the attributes are synced. They can be unidirectional from one repository to another, or bidirectional. The plus and minus buttons on the top right allow the addition and removal of attribute mappings.

Mapping

This area allows you to define the attributes being mapped. The direction of the synchronizations can be configured in the Direction box.

Caster

Similar attributes on different repositories often come in different formats resulting in the need for values to be transformed to the proper format for a given repository. The caster section allows you to configure casters which can perform these transformations. Tasktop Sync provides several different casters by default. This section will explain how to configure and use these casters.

The simplest cases, such as syncing Summary, require no casters at all, and this is the default value.

Value Mapping

Some enumeration attributes, such as severity and priority attributes, often have different values between repositories. To map a finite set of values to another finite set of values, such as with enumeration attributes, use the value mapping caster.

The value mapping casters allows you to provide a mapping for each direction of the value because each attribute may have a different number of values. Use the tables provided to configure the mappings between the repositories. Note that you should take care to not confuse which direction applies to which table. In the example aboved, the table on the left shows the mapping of HP QC values to RTC 3.0.1.1 values, and the table on the right shows the mapping of RTC 3.0.1.1 values to HP QC values.

So, for example. “2-medium” in HP QC becomes “Normal” in RTC 3.0.1.1. But “Unclassified” in RTC 3.0.1.1 becomes “2-Medium” in HP QC.

Date/Time Transformation

For repositories with different date/time formats with attributes such as Date Modified or Date Created, a Date/Time Transformation may need to be used. Pressing Ctrl-space will enable content assist when filling out the formats. See the Date-Time Caster section for more details.

Person Mapping

For fields such as Assignee, Reporter or any other fields involving the user identity of a person, use the Person Mapping caster can be used if the user ids are different in each repository. This caster must be used in conjuction with the person mapping filed defined in the Mapping Settings.

Clicking on Go to person mapping settings goes to the Mapping Settings section of the task mapping editor, to define which person mapping file is being used.

Clicking on Go to person mapping file will go to the The person mapping caster uses mapping specified in the Person mapping file currently being used. Read about person mapping files to learn how it is configured.

Text Markup Transformation

For fields such as Description, different repositories may use different markup to store formatting. In this case use the Text Markup Transformation. Select from the drop down menu to specify the text content type of each repository.

In the case that a repository does not support a rich text, we suggest setting the format to Textile, as it is a rich text format which is easily readable as plain text.

Literal Value

If you want attributes to be set to an arbitrary fixed value, use the Literal Value caster. Read here for more information about the usage of this caster. If the attribute being written to with a literal caster is an enumeration, then contest assist, available via Ctrl-space, is available to get a list of options to select from. This can be useful for setting defaults on enumerated types when syncing repositories with required fields which do not conveniently map to a field in the other repository.

Advanced

The Conflict Resolution Policy box specifies which the behavior for synchronizations of this attribute to take in case of a conflict. If Default behavior is selected, the policy defined in the task mapping will take effect. Otherwise selecting any other option will override the mapping-wide default behavior. See the resolution policy in the mapping settings for details.

The Attribute mapping strategy box specifies when this attribute should be synchronized. The default behavior is to always synchronize this attribute. Copy if target attribute exist only synchronizes the attribute if it exists in the other repository, so undefined attributes will not be created. Initialize will only create the attribute on the creation of a new proxy task, and will not synchronize in subsequent synchronizations.

Notes

This section allows the entry of any documentation or special details that may provide documentation with the attribute mapping; the value of this field is not used by Sync directly.

Schema View

The Schema View can be accessed by selecting the links provided under the Schema section of the Task Mapping Editor. Tasktop Sync introspects both repositories to determine their schemas: the attribute IDs, their labels, and their types. The Attribute Mapping Editor uses these schemas to populate the options for many attributes, including enumerated types when producing value map casters and literal casters.

If a change is made to the repositories, you need to click on the Refresh Schema button in the Actions section of the Schema View to update the repository schema to reflect the changes made.

Source Tab

The Source Tab allows access to the XML which is generated by the editor. It will display only the XML pertient to the current configuration, this includes all the XML for the current task-mapping element being configured as well as the shared configuration of the enclosing sync-model element. Advanced configuration such as scripted attribute casters must be configured directly in the XML. See the manual configuration section for details.