ConnectALL adds the capability to sync records between ALM applications and 'Microsoft Project Online' with the new Microsoft Project Online adapter. It interacts with 'Microsoft Project Online' application via its ReST API.
Form Digest Authentication
Supported Entity Types
|Create an application link between your application to Microsoft Project Online.||Enter the connection details for the Microsoft Project Online|
*The Project Collection refers to your PWA setting.
Select the Enterprise Project you want to configure the link for. The supported entity type in Microsoft Project Online is "Tasks".
ConnectALL enhanced its Microsoft Project Online 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 22.214.171.124, 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 126.96.36.199 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.
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 MSPO 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.
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 * ?
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 * ?
ConnectALL supports Only Microsoft Project Online standard fields and custom fields.
Most of the fields in Microsoft Project Online are interdependent or formulated fields; hence the record will be created/updated only by entering the correct fields. For syncing Work Fields (eg: Work, ActualWork, RemainingWork) if the value has to be synced in hours, select the datatype as "Work" for that specific field (Image 2).
Select the datatype "Work" in the Data Type Mapping dropdown for the sync to happen in hours.
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.
Configuring ConnectALL for SSO-Enabled MSPO
If the MSPO application is SSO enabled, you’ll have to configure ConnectALL to connect to MSPO. This is achieved by registering the ConnectALL application in the ADO portal. Doing this will allow MSPO to recognize the ConnectALL application, and it will allow ConnectALL to access it and synchronization is made possible. The procedure involves registering ConnectALL in the ADO portal and creating a connection in ConnectALL.
Step 1: Registering of the application in Azure ADO portal
Step 2: Secret Key Generation
Step 3: Create a Connection in ConnectALL
Step 1: Registering of the Application in the Azure ADO Portal
- Login to https://portal.azure.com/
- Navigate to Azure Active Directory and click App registrations on the left panel
- Click + New registration to create a new application. The Register an application screen will be displayed
- Provide the name of your application
- Under the Supported account types, select the ‘Accounts in this organizational directory only (connectall.com only-Single tenant) option
- Under the Redirect URI section, provide the ConnectALL callback URL in the following format: <CONNECTALL_BASE_URL>/oauthcallback/projectserveronline/<CONNECTION_NAME>
In this format,
- CONNECTALL_BASE_URL is ConnectALL URL (ex: http://localhost:8080/ConnectAll/)
- CONNECTION_NAME is the connection name to be created in the ConnectALL application
- Click API Permissions on the left pane followed by Add permission
- Select the SharePoint option under Microsoft APIs
- Click Delegated permissions option. The various permissions under various headings will be displayed
- Add the desired permissions under various headings. An example is shown in the below image
- Click the Grant admin consent for connectall.com option
Step 2: Secret Key Generation
The next step is to create a secret key. To do that,
- Click the Certificates and Secrets option on the left panel.
- Click +New client secret under the Client secrets section to create a secret key. Please make a note of the secret key as it will be needed later and it will not be displayed again.
- Once you complete the above steps, click the Overview option in the left panel of the portal. and copy the Application (client) ID, Object ID, and Directory (tenant) ID shown below.
Step 3: Creating a Connection in ConnectALL
- Login to ConnectALL
- Click Connections from the top navigation bar.
- Click Add connection to add a new connection. Note that the connection you create should be in the same name that you provided in the redirect URI of the registered application. Fill in the following details in the respective fields.
- ClientID – The Application (client) ID which was copied from the overview of the application registered in the Azure AD
- Client Secret – The secret key generated from the Azure AD app
- TenantID – The Directory (tenant) ID copied from the overview of the application registered in the Azure AD
- Click save. You will see a popup with an “Authorize” button. Click Authorize. This will open a new tab. This is to authorize the details with the Azure AD and ProjectOnline. Once authorized, the authorization will be returned to the ConnectALL application. Upon successful authorization, the “Proceed” button will be enabled in the popup.
- Click Proceed. The connection will be validated and saved in ConnectALL.
Task Hierarchy Synchronization Sample Usecase
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 Microsoft Project Online (MSPO) 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 MSPO task, and map the fields. Once you create the hierarchy of tasks, the same hierarchy will be maintained in the ServiceNow application.
Time Difference Configuration
To know how to calculate the time difference, and configure it in the ConnectALL UI, read the topic Time Difference Configuration.