Synchronisation

The process of synchronization - the main responsibility of the Jira FreshBooks Connector plugin.

Performing Manual Synchronisation

To start manual synchronisation, you have to:

  1. Log In, as an administrator (Figure 3)
  2. Go to the Administration section (Figure 4)
  3. Go to the Plugins menu, 
    choose the FreshBooks Configuration menu item (Figure 9)
  4. Press the Run Sync button at the bottom of 
    the Jira FreshBooks Connector Plugin Configuration page. (Figure 31)

Log In, as an administrator

Figure 3 (Log In, as an administrator)

 

Go to the Administration section

Figure 4 (Go to the Administration section)

 

Go to the Plugins menu, choose the FreshBooks Configuration menu item

Figure 9 (Go to the Plugins menu, choose the FreshBooks Configuration menu item)

 

Figure 31

Figure 31 (Press the Run Sync button)

During manual synchronisation a progress bar appears, displaying, how much of the workflow information in mapped projects is processed. The process takes as much time, as many worklogs are there for the mapped projects.

The only reason to run manual synchronisation is that you have some information in Jira, which is was not loaded into FreshBooks (for example, you have installed Jira after you have logged some work, or you have deleted some necessary worklog from FreshBooks).

Automatic Synchronization

Remember, that after you have installed the Jira FreshBooks Connector plugin (if the plugin is not manually disabled, and its license is working), all the newly created worklogs are automatically exported to FreshBooks. 
This feature is called “Automatic synchronisation”.

The automatic synchronisation is always on (if the plugin is not manually disabled, and its license is working).

Synchronization Algorithm

When the manual synchronisation is run,

  1. The plugin finds the currently active task mapping strategy (see the Choosing Task Mapping strategy user guide)
    1. If the active mapping strategy is "Issue is a task" strategy, then
      1. The plugin inspects every Jira-project (or Issue Filter) in the projects mapping
      2. For each one, the plugin looks up the Issues 
        Let's call these Issues the Found Issues.
      3. The plugin tries to find a corresponding task to each of the Found Issue with the help of internal issues to tasks mapping
      4. If for some Found Issues there were not found any 
        Tasks, they are created and added to the internal issues to tasks mapping.
      5. The plugin updates all the tasks from the internal issues to tasks mapping
      6. The plugin finds all the worklogs in each found issue 
        Let's call these worklogs the Found worklogs.
      7. The plugin tries to find a corresponding worklog to each of the Found worklogs with the help of internal worklogs to time entries mapping
      8. If for some Found worklogs there were not found any time entries, they are created and added to the internal worklogs to time entries mappingThe plugin updates all the time entries from the internal worklogs to time entries mapping 
        The resulting time entry (worklog in FreshBooks) consists of:
        1. time spent from the worklog found in internal worklog mapping
        2. date from the worklog found in internal worklog mapping
        3. staff (as author of the time entry), which corresponds to worklog author, if none found the default Freshbooks staff is used
        4. task gotten from Task mapping
      9. All the worklogs to time entries maps from the internal mapping, worklogs from which do not exist anymore are deleted, and the time entries from them are deleted from FreshBooks
    2. If the active mapping strategy is "Issues are a task..." strategy, then
      1. The plugin inspects every jira issue filter from the task mapping
      2. The plugin finds all the issues from them.
      3. For each of the found issues, the plugin finds the corresponding task and updates it
      4. For each of the found issues the plugin finds the worklogs (the worklogs for the issue)
      5. For each of the found worklogs, the plugin tries to find the corresponding time entry
      6. If for all the Found worklogs there were not found any time entry, it is created and added to the internal worklogs to time entry mapping
      7. If for some of the Found worklogs there were not found any maps, the maps are created and added to the internal worklogs to time entry mapping
      8. The plugin updates all the time entries from the internal worklogs to time entries mapping 
        The resulting time entry (worklog in FreshBooks) consists of:
        1. notes from issue summary
        2. summed time spent for all the worklogs in the issue
        3. maximal date from all the worklogs in the issue
        4. staff (as author of the time entry), which corresponds to issue assignee 
          if none found the default Freshbooks staff is used
        5. task gotten from Task mapping
      9. All the worklogs to time entries maps from the internal mapping, worklogs from which do not exist anymore are deleted, and the time entries from them are deleted from FreshBooks