Supported Authentication

Forms Authentication

Windows Authentication

ConnectALL supports both Windows and Forms authentication methods to integrate with Microsoft Project Server.

It was observed in many of the environments when both Forms/Windows authentication is enabled in Project Server then only Forms Authentication can be used with ConnectALL Integrations.

Supported Entity Types

Task

Supported Functionalities

Sync Fields

Sync Attachments

 Work-log/ Timesheet

Sync Comments

Sync Issue Linking

Attachments Feature

Create

Update

Delete

Assumptions

  • Microsoft Project Server (MSPS) by design expects a project to be checked out before writing data. To ensure that ConnectALL is able to synchronize data, please ensure to check-in. (Force check-in option)
  • ConnectALL will only synchronize the Published tasks from Project Server. Saving the tasks will keep the changes in DRAFT state and they will not be synchronized. (Publishing a project)
  • When using Windows-based authentication, Project Server is configured for it only and not a hybrid mode allowing both Forms/Windows authentication.
  • When synchronizing Timesheet entries, do ensure the "Time reporting periods" are already created. (Manage timesheets) Note that time entries are sync'd to the sync-user, not to a user representing the person who reported the time in the other system. This is a Microsoft limitation.
  • Timesheet entries can only be synced for a "Time reporting period" that is open and not closed. 
  • For synchronizing Attachments on Tasks, a Project site should be enabled for the Project. (Project site provisioning)

Configuration


Important Information

To avoid old records getting resynchronized again, follow the below procedure:

  1. In MSPS, create a custom field with data type as ‘flag’. Set the flag to ‘yes’ (create or update) that will enable the record to be picked up for processing. By default, the flag will be set as ‘No’. So, ensure that you change it to ‘Yes’.
  2. In the Field mapping screen, set the field mapping and value mapping as shown below. Note that the datatype has to be changed to CASyncFlag by clicking the cogwheel icon.



  3. In the Entity Mapping screen, set the flow filter as shown in the below image. Note that you have to enter the ID of the custom field in the flow filter and set it as 'true'. For example:
    (Custom_b1ddcd2a8160eb11a630e21894387dbe eq true)



As shown below, ConnectALL expects the Project Collection name along with URL, Username, and Password credentials to connect to Project Server.

Forms-Based Authentication

ConnectALL chooses the authentication mechanism based on the input in the username field. If the username is in the format '<username>' ConnectALL will use forms-based authentication. 

Windows-Based Authentication

ConnectALL chooses the authentication mechanism based on the input in the username field. If the username is in the format '[<domain>]/<username>' ConnectALL will use windows based authentication. 

In a few ConnectALL deployments we observed that ConnectALL authentication to Project Server fails when ConnectALL services are running with 'Anonymous/Service' user. In this case, please log in as System administrator and change the login user from the "Log On" tab in Service properties for both Tomcat and ConnectALL core services.

Entity Mapping

ConnectALL allows the user to choose from which project the "Tasks" can be synchronized.

Flow Filter

ConnectALL uses OData filter query options to filter the records that can be synchronized. Refer to OData URI Conventions in "Filter System Query Option ($filter)" section for more information. For more information on poll queries for MSPS, click here.

Transaction Processing

ConnectALL enhanced its Microsoft Project Server adapter to use transaction processing, which greatly improves the performance and stability of the synchronization by checking-in and checking-out projects in transactions. Enable Transaction processing from the Entity mapping screen as shown below. 

As of version 2.10.30.2, you no longer have to enable 'Transaction Processing' — as it is automatically enabled. Hence, you will not see the option in the UI (in version 2.10.30.2 and later versions).

Consider the above configuration: the Project will be "Checked Out" for a minimum of 30 seconds before "Check-In", and will push the records to Project Server once the elapsed time expires, ConnectALL will confirm no other records are being pushed before completing the "Check-In" operation. 

The "Transaction Min Duration" setting will not guarantee the project will be "Checked In" after the specified duration. ConnectALL will wait for all the updates in process to be completed before Checking-In the project. 

Info

When ConnectALL has checked out a project simultaneously when a sync is in progress and if any other user checks in a project via the MSPS UI, then, the changes (create/update record) will not be reflected immediately after the poll. However, the changes will be reflected in the next poll when ConnectALL publishes and checks in the record.

Tip

Microsoft Project updates (commits) data asynchronously after receiving the update request via the API. That delay can cause undesirable effects if an attempt to read the data is made before the commit is complete. Therefore, consider increasing the timeout (in milliseconds) as given below in the ConnectAll.properties file. 

projectserver.updaterecord.timeout = 20000


This will help ensure that custom fields get appropriately updated and will reduce the likelihood of duplications. Further, increasing the timeout also reduces the possibility of conflicts where old data may be resynchronized again.

Failover for Transaction Processing

ConnectALL runs a couple of batch job to close the open projects that were not "Checked In" during the synchronization and also handle the server restart scenarios; using a couple of properties in $MULE_HOME/conf/ConnectAll.properties

The first batch job will persist the open transaction details into a flat file at the specified duration. This can be configured using "transaction.backup.frequency" property. 

transaction.backup.frequency=0\/15 0\/1 * 1\/1 * ?
CODE

The second batch job will close the open transactions that were not closed during the synchronization of the records, the duration can be configured using "transaction.flush.frequency" property. 

transaction.flush.frequency=0 0\/1 * 1\/1 * ?
CODE

Field Mapping

ConnectALL Microsoft Project Server adapter will read the schemas of the "Task" Enterprise Object along with any Enterprise custom fields and Lookup tables configured for the Task for performing the Field and value mapping. 

Attachments

ConnectALL's Microsoft Project Server adapter can synchronize the documents linked to a task in the Project Site to and from the destination systems. Refer to Microsoft documentation on configuring Project Sites, and attaching documents to tasks in Microsoft Project Server. 

ConnectALL expects the Project Sites configured to be in the same name as Project and on the same PWA site. For example, when synchronizing a project named "ConnectALL-Demo" on "http://localhost:3348/pwa" the Project Site is assumed to be "http://localhost:3348/pwa/ConnectALL-Demo". ConnectALL cannot synchronize attachments in cases where the Project Site is not configured as per the defined format. 

Documents are attached to Tasks in Microsoft Project Server from the Project Site, Task details page in Related Items. The "Starting from your tasks" section in Link Issues, Risks, Deliverables and Files support page will detail the steps to be followed in linking documents to a Project Server Task. 

Assignments

Microsoft Project Server Tasks can be assigned to resources in a Project Team so that time and cost tracking can be managed. When a Project Server Task is associated with a given resource Microsoft Project Server will create Assignments to link a given Task to a Resource. ConnectALL can now synchronize these assignments to destination systems. 

Microsoft Project Server tasks can be assigned to multiple resources, which is not quite common in other project management applications like Jira where a Task is assigned to a single resource. If the destination application does not support multiple values for the mapped field you might encounter synchronization errors. 

For example, if you are synchronizing the Microsoft Project Server Task resource assignment to the Jira assignee field you will be mapping the "Assignments" field in Project Server to the "Assignee" field in Jira. You will also need to perform the required user mapping as the resource-id in Project Server will not match the user accounts in Jira. 

The "Assignment" field in the Microsoft Project Server Adapter is a ConnectALL internal field to instruct ConnectALL to synchronize Task assignments. 

ConnectALL can synchronize assignments only for Microsoft Project Server 2019. API limitations in Microsoft Project Server 2013 and 2016 prevent resource assignment synchronization with those older versions. 

Time Sheets

To configure timesheet synchronization with MS Project Server, please refer here for the details.

Usecase Sample

Task Hierarchy Synchronization

If you are in version 2.10.13 or above, you can sync both parent and child tasks through a single app-link. For example, you can sync the task and subtask of MSPS to a ServiceNow project task by creating just a single app-link. To do that, create an app-link between a ServiceNow’s task (pm_project_task) and an MSPS task, and map the fields. Once you create the hierarchy of tasks, the same hierarchy will be maintained in the ServiceNow application.

For further information on synchronization of issue links, read the information on this page

Time Difference Configuration

To know how to calculate the time difference, and configure it in the ConnectALL UI,  read the topic Time Difference Configuration.