Microsoft Project Online
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 automation between your application to Microsoft Project Online.|
Enter the connection details for the Microsoft Project Online
To avoid old records getting resynchronized again, follow the below procedure:
Important Info — Support for a Preferred Site Language
ConnectALL allows you to have a preferred site language and ‘French’ is supported. All you need to do is, include 'French' as a language in the Connection details as explained below.
Note that, support for a particular language is enabled by a separate property file available in the following path: \ConnectALL\mulesoft\mule-standalone-3.9.0\conf. And for 'French', it is MSPOFieldNames_french.properties file available in that path. Please contact our support team, if you want to create and maintain a property file for any other language other than 'French'. (Note that, for each language, a separate property file is maintained.)
Select the Enterprise Project you want to configure the link for. The supported entity type in Microsoft Project Online is "Tasks".
If you have only one MSPO project, you will face an issue while while creating a connection to Project Server Online. To get around this issue, create a second project (in MSPO). Doing this will enable the project to be retrieved successfully. Note that this issue does not occur when there are two projects available to be selected.
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:
You do not have to enable 'Transaction Processing' — as it is automatically enabled.
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 the $MULE_HOME/conf/ConnectAll.properties file.
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; therefore 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.
- When there is an update in one of the custom fields in Microsoft Project Online (MSPO), and if this is the only update that you do, the record will not be picked for the update. On the other hand, if you update any other default fields while updating those custom fields, the custom field updates will also be synced along with the default fields. This is due to a limitation in MSPO.
- To ensure that the custom fields are getting appropriately updated in time, without any duplications, you could increase the timeout (in milliseconds) as given below in the ConnectAll.properties file:
projectserver.updaterecord.timeout = 20000
When you are mapping MSPO with another application, ensure that a field in MSPO that has a single-line of text is mapped only with another single-line text field of another application to ensure smooth transformation. Let’s say you have mapped a single line text field (of MSPO) with a multiple-line text field (of another application). In this case, when you sync, the text in the other application will not be synced into MSPO as desired and you will see some irregularities in the text that is displayed in MSPO.
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
You can sync both parent and child tasks through a single automation. For example, you can sync the task and subtask of Microsoft Project Online (MSPO) to a ServiceNow project task by creating just a single automation. To do that, create an automation 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.