Microsoft Project Server
- Last updated
- Dec 8, 2023
- Save as PDF
- Getting Started
- Installation Primer
- Quick Start Guide
- Key Concepts
- Step 1: Connect to Your Repository
- Step 2: Create or Reuse a Model
- Step 3: Create Your Collection(s)
- Step 4: Configure your Integration
- Step 5: Expand or Modify your Integration
- Configure your Hub to Hub Integration
- Troubleshooting
- Settings
- FAQs
- General
- Tasktop Joins Planview FAQ
- Deprecation of NTLM FAQ
- Does Hub need to be restarted when configuration changes are made?
- Does Hub support artifact deletion across repositories?
- Does Hub support the use of port forwarding/reverse proxies?
- How are users counted in Hub?
- How can I find User Guides for previous versions of Planview Hub?
- How can I learn what transforms are available?
- How does Hub's built-in person reconciliation algorithm work?
- How does Hub change detection work?
- How does Hub determine that a field in project 1 is the same field as in project 2?
- How does Hub handle field values with the same label?
- How does Hub scale to meet Enterprise needs?
- How does Planview ensure security of customer information?
- How do I automate internal workflows using Hub's public API?
- How do I ensure business continuity?
- If a conflict occurs on one mapped field on an artifact, do we synchronize the remaining fields that aren’t in conflict or does that one conflict block the rest of the fields from synchronizing?
- If Comment Flow (or Attachment Flow) is enabled, will only newly added comments (or attachments) sync over?
- If I click 'Process All Artifacts,' what exactly will process?
- What's Different in User Management Workflow with Keycloak Since Hub Version 24.4?
- What's the difference between Continuous Delivery and Long Term Support?
- What are Smart Fields?
- What are the differences between Time Interval and Cron Expression?
- What can I do to lessen the performance impact on my external repositories?
- What does "allow unmapped values to flow" mean for a single select or multi select field?
- What does 'back synchronization' mean?
- What does making a model field "required" mean?
- What does the Hub deployment process look like?
- What do the "special features" mean?
- What is a Concurrency Limit? How does it differ from the Integration Maximum Concurrency Limit?
- What is Planview Hub's underlying architecture?
- What is the difference between 'Process All Artifacts' and 'Initiate Synchronization'?
- When will Planview add or remove support for a repository version?
- Where can I learn about specific connectors like Jira, Jama, etc?
- Why shouldn't I change artifact type in my repository after an artifact has synchronized?
- Installation and Maintenance
- After upgrade, will my integrations automatically resume running?
- Does Planview Hub support Docker? (need to update)
- How can I improve REST API traffic to a repository by using a load balancer?
- How can I increase Hub's session time-out?
- How can I override the default socket timeout for my operational database?
- How can I run Hub on port 443 (the standard SSL port) when I don’t have super user (root) permissions?
- How do I configure Entra managed accounts with Azure SQL in Hub?
- How do I configure Hub to Hub client access?
- How do I configure Hub to use HTTPS?
- How do I configure the max days I'd like to keep Hub log files?
- How do I configure the PlanviewLinkBridgeUser role?
- How do I configure which port Hub uses?
- How do I import my license key into Hub?
- How do I migrate my Hub configuration between databases?
- How do I migrate my operational database from MySQL to PostgreSQL?
- How do I move my Hub Instance to a new server?
- How do I only keep the last two weeks of Tomcat logs?
- How do I prevent vulnerabilities in Windows OS?
- How do I set up Hub to run as a service on Linux?
- How do I upgrade Hub?
- If I forget my master password, how can I remove or change it?
- I’ve forgotten my password to the User Administration Console (Keycloak). How do I get back in?
- What is the Secure Password Storage Security Level and Master Password?
- What practices can I take to reduce "open redirect" security vulnerabilities?
- What should I be aware of when upgrading to 19.2?
- What should I be aware of when upgrading to 19.3?
- What should I be aware of when upgrading to 19.4?
- What should I be aware of when upgrading to 21.1?
- What should I be aware of when upgrading to 23.4?
- Where are the program files, configuration files, and logs for Hub located?
- Where is the context stored for Hub and Keycloak? How can I setup a “persistent volume claim” so that I don’t lose that context when either the Keycloak container or Hub container are restarted?
- Why am I unable to access Hub after bookmarking the login page?
- Troubleshooting
- How can I resolve a "too many files open" error?
- How can I resolve a 'certificate error' in my browser?
- How can I resolve a 'GC overhead limit exceeded (CCRRTT-30000E)' error?
- How do I change Hub's logging configuration?
- How do I troubleshoot in Hub?
- How often and in which interval does Hub retry errors?
- If I delete a previously synchronized artifact in one of my repositories and do not want it to be recreated, is there any way to 'blacklist' it in Hub?
- Log reads “Failed to acquire database lease. The database is in use by another instance of Hub.” What has happened?
- My log files are too big! How can I compress them to save space?
- Where can I find details on errors in Hub?
- Where can I find Hub logs?
- Why am I seeing errors for artifacts that don't even meet my artifact filtering criteria?
- Why do I get a timezone error when creating a database connection?
- Enterprise Data Stream
- Gateway
- Hub on Cloud
- How can I connect Hub Cloud to an On-prem repository?
- How can I resolve certificate validation errors?
- How do I import a CA certificate into my Hub Cloud instance?
- I'm getting a 403 error when I try to log in to my Cloud instance. What should I do?
- Planview Hub Cloud Migration FAQ
- Planview Hub Cloud Security FAQ
- What are the feature differences between Hub Cloud and Hub On-prem?
- What is Hub Cloud's underlying architecture?
- When is my Cloud instance upgraded?
- Connectors
- Can I write information to the Jira sprint field?
- Do I need to perform additional steps for TFS upon upgrading?
- How can I reduce the number of projects shown for Clarity in Hub?
- How can I resolve an error stating, 'Received fatal alert: handshake_failure'?
- How do I create a repository connection to Atlassian Jira On Demand with SSO enabled?
- How do I resolve the 'Too many persons found' error upon integrating with a Jira cloud instance?
- If the PTC Windchill RVS server is localized (i.e., installed on a non-English locale OS), will related objects also need to be localized?
- I received the exception 'PKIX path building failed ... unable to find valid certification path to requested target' when connecting to Team Foundation Server. How do I fix it?
- Jira Epic/Parent Link FAQ
- Jira GDPR Changes
- What happens if the Timesheet Hours per Day field does not match the timesheet configuration?
- Why are there so many files in my temp directory when I use the connector?
- Why do I get authentication errors for ALM/QC when I've correctly entered my credentials?
- Why do I get the error message 'Error while parsing file … expecting Index' while integrating with IBM DOORS?
- Why do I see an error stating 'This method is no longer supported by the catalog service' when querying Visual Studio Online (VSO) or Azure DevOps Services?
- General
- Planview Hub Product Releases
- 25.2 Release Notes
- Hub Release Notes - 25.2.0.20250203-b8396
- Hub Release Notes - 25.2.0.20250306-b8562
- Hub Release Notes - 25.2.0.20250309-b8583
- Hub Release Notes - 25.2.0.20250315-b8615
- Hub Release Notes - 25.2.0.20250323-b8658
- Hub Release Notes - 25.2.0.20250402-b8712
- Hub Release Notes - 25.2.0.20250408-b8745
- Hub Release Notes - 25.2.0.20250417-b8793
- Hub Release Notes - 25.2.0.20250423-b8823
- Hub Release Notes - 25.2.0.20250428-b8844
- Hub Release Notes - 25.3.0.20250430-b8864
- 25.1 Release Notes
- Hub Release Notes - 25.1.0.20241126-b8029
- Hub Release Notes - 25.1.0.20241203-b8066
- Hub Release Notes - 25.1.0.20241211-b8109
- Hub Release Notes - 25.1.0.20241230-b8207
- Hub Release Notes - 25.1.0.20250113-b8289
- Hub Release Notes - 25.1.2
- Hub Release Notes - 25.1.3
- Hub Release Notes - 25.1.4
- Hub Release Notes - 25.1.5
- Hub Release Notes - 25.1.6
- Hub Release Notes - 25.1.7
- 24.4 Release Notes
- Hub Release Notes - 24.4.0.20240820-b7489
- Hub Release Notes - 24.4.0.20240829-b7547
- Hub Release Notes - 24.4.0.20240901-b7567
- Hub Release Notes - 24.4.0.20241002-b7743
- Hub Release Notes - 24.4.0.20241015-b7814
- Hub Release Notes - 24.4.0.20241024-b7863
- Hub Release Notes - 24.4.0.20241104-b7916
- Hub Release Notes - 24.4.10
- Hub Release Notes - 24.4.2
- Hub Release Notes - 24.4.3
- Hub Release Notes - 24.4.4
- Hub Release Notes - 24.4.5
- Hub Release Notes - 24.4.6
- Hub Release Notes - 24.4.7
- Hub Release Notes - 24.4.8
- Hub Release Notes - 24.4.9
- 24.3 Release Notes
- Hub Release Notes - 24.3.0.20240504-b6925
- Hub Release Notes - 24.3.0.20240602-b7072
- Hub Release Notes - 24.3.0.20240607-b7098
- Hub Release Notes - 24.3.0.20240609-b7111
- Hub Release Notes - 24.3.0.20240620-b7163
- Hub Release Notes - 24.3.0.20240624-b7184
- Hub Release Notes - 24.3.0.20240701-b7218
- Hub Release Notes - 24.3.0.20240806-b7413
- Hub Release Notes - 24.3.0.20240812-b7446
- Hub Release Notes - 24.3.10
- Hub Release Notes - 24.3.2
- Hub Release Notes - 24.3.3
- Hub Release Notes - 24.3.4
- Hub Release Notes - 24.3.5
- Hub Release Notes - 24.3.6
- Hub Release Notes - 24.3.7
- Hub Release Notes - 24.3.8
- Hub Release Notes - 24.3.9
- 24.2 Release Notes
- Hub Release Notes - 24.2.0.20240205-b6465
- Hub Release Notes - 24.2.0.20240211-b6500
- Hub Release Notes - 24.2.0.20240220-b6547
- Hub Release Notes - 24.2.0.20240227-b6584
- Hub Release Notes - 24.2.0.20240304-b6612
- Hub Release Notes - 24.2.0.20240319-b6692
- Hub Release Notes - 24.2.0.20240323-b6711
- Hub Release Notes - 24.2.0.20240327-b6728
- Hub Release Notes - 24.2.0.20240328-b6740
- Hub Release Notes - 24.2.0.20240405-b6777
- Hub Release Notes - 24.2.0.20240410-b6801
- Hub Release Notes - 24.2.0.20240424-b6872
- Hub Release Notes - 24.2.10
- Hub Release Notes - 24.2.11
- Hub Release Notes - 24.2.12
- Hub Release Notes - 24.2.13
- Hub Release Notes - 24.2.14
- Hub Release Notes - 24.2.2
- Hub Release Notes - 24.2.3
- Hub Release Notes - 24.2.4
- Hub Release Notes - 24.2.5
- Hub Release Notes - 24.2.6
- Hub Release Notes - 24.2.8
- Hub Release Notes - 24.2.9
- 24.1 Release Notes
- Hub Release Notes - 24.1.0.20231015-b5891
- Hub Release Notes - 24.1.0.20231023-b5931
- Hub Release Notes - 24.1.0.20231027-b5963
- Hub Release Notes - 24.1.0.20231108-b6024
- Hub Release Notes - 24.1.0.20231126-b6112
- Hub Release Notes - 24.1.0.20231211-b6183
- Hub Release Notes - 24.1.0.20240107-b6322
- Hub Release Notes - 24.1.0.20240114-b6356
- Hub Release Notes - 24.1.0.20240118-b6377
- Hub Release Notes - 24.1.1
- Hub Release Notes - 24.1.10
- Hub Release Notes - 24.1.11
- Hub Release Notes - 24.1.12
- Hub Release Notes - 24.1.13
- Hub Release Notes - 24.1.14
- Hub Release Notes - 24.1.15
- Hub Release Notes - 24.1.16
- Hub Release Notes - 24.1.3
- Hub Release Notes - 24.1.4
- Hub Release Notes - 24.1.5
- Hub Release Notes - 24.1.6
- Hub Release Notes - 24.1.7
- Hub Release Notes - 24.1.8
- Hub Release Notes - 24.1.9
- 23.4 Release Notes
- Hub Release Notes - 23.4.0.20230710-b5391
- Hub Release Notes - 23.4.0.20230716-b5425
- Hub Release Notes - 23.4.0.20230724-b5465
- Hub Release Notes - 23.4.0.20230731-b5506
- Hub Release Notes - 23.4.0.20230802-b5522
- Hub Release Notes - 23.4.0.20230808-b5548
- Hub Release Notes - 23.4.0.20230814-b5578
- Hub Release Notes - 23.4.0.20230818-b5599
- Hub Release Notes - 23.4.0.20230827-b5635
- Hub Release Notes - 23.4.0.20230903-b5666
- Hub Release Notes - 23.4.0.20230911-b5708
- Hub Release Notes - 23.4.0.20230918-b5748
- Hub Release Notes - 23.4.0.20230925-b5789
- Hub Release Notes - 23.4.0.20231003-b5828
- Hub Release Notes - 23.4.0.20231010-b5862
- Hub Release Notes - 23.4.0.20240208-b102
- Hub Release Notes - 23.4.10
- Hub Release Notes - 23.4.11
- Hub Release Notes - 23.4.14
- Hub Release Notes - 23.4.15
- Hub Release Notes - 23.4.16
- Hub Release Notes - 23.4.17
- Hub Release Notes - 23.4.18
- Hub Release Notes - 23.4.19
- Hub Release Notes - 23.4.2
- Hub Release Notes - 23.4.20
- Hub Release Notes - 23.4.21
- Hub Release Notes - 23.4.3
- Hub Release Notes - 23.4.4
- Hub Release Notes - 23.4.5
- Hub Release Notes - 23.4.6
- Hub Release Notes - 23.4.7
- Hub Release Notes - 23.4.8
- Hub Release Notes - 23.4.9
- Hub Release Notes - 24.1.1
- Tasktop Sync Product Releases
- 25.2 Release Notes
- Planview Hub Editions
- Supported Repository Versions
- Connector Documentation
- Aha!
- Apptio Targetprocess
- Aras Innovator
- Asana
- Atlassian Jira
- Atlassian Jira Align
- Blueprint
- BMC Helix ITSM
- Broadcom Clarity
- Broadcom Rally
- Cherwell Service Management
- codebeamer
- Digital.ai Agility
- Digital.ai Release
- Git
- GitHub Issues
- GitLab Issues
- IBM Engineering Requirements Management DOORS Family
- IBM Engineering Requirements Management DOORS Next
- IBM Engineering Workflow Management
- IBM Rational ClearQuest
- Jama Connect
- Microsoft Azure DevOps Server
- Microsoft SharePoint
- Micro Focus ALM Octane
- Micro Focus ALM/Quality Center
- Micro Focus Dimensions RM
- Micro Focus PPM
- Micro Focus Solutions Business Manager
- Mozilla Bugzilla
- Pivotal Tracker
- Planview AdaptiveWork
- Planview AgilePlace
- Planview Enterprise Architecture
- Planview Portfolios
- Planview PPM Pro
- Planview Universal Connector
- Polarion ALM
- PTC Windchill
- PTC Windchill RVS
- Salesforce
- ServiceNow
- SmartBear QAComplete
- Sparx Systems Pro Cloud Server
- TestRail
- Trello
- Tricentis qTest
- Tricentis Tosca
- UiPath Test Manager
- WhiteHat Sentinel
- Zendesk
- Knowledge Resources
- Hub Videos
- Tasktop Customer Portal
Overview
Project managers have a tough enough job trying to align the business requirements with the projects, tasks and resources chartered to bring them to life. Fortunately, Microsoft Project Server provides a flexible solution for project portfolio management (PPM) and everyday work.
When the entire IT team has standardized on Microsoft platforms and tools, the interoperability among these tools helps smooth the process. But part of the IT team may prefer to use other, non-Microsoft, tools for Agile planning, testing, requirements management, ITSM or any other aspect of software development and delivery.
In fact, some organizations may prefer to use a combination of Project Portfolio Management tools. They may use Microsoft Project Server for project management and more robust PPM product like CA PPM or Micro Focus PPM for high-level portfolio and financial planning.
In these cases, the friction that occurs because of a lack of integration among these tools slows down delivery, introduces problems and reduces the ability for the project managers to have visibility across their projects.
By using Planview Hub to integrate Microsoft Project Server with other software delivery tools, project managers and the rest of the project team will feel the benefits of automatically flowing information across the whole team.
For example, lets say the project managers are using Project Server and the developers are using Atlassian Jira:
- Project Managers schedule project work, and assign tasks and resources using Project Server
- The tasks (and sub-tasks) can be automatically mirrored in Jira as Stories and sub-tasks
- When the developers update their status and effort on the tasks in Jira, this information is automatically synchronized back to Project Server
This use case is very common with PPM tools. It’s described in the Associating Planning Items to Implementation Artifacts integration pattern. But the various ways Project Server can be integrated into your Software Lifecycle is limited only by your business requirements. For example, the scenario above may actually start with financial and portfolio planning in Broadcom Clarity.
- The business initiatives developed by the PMO in Broadcom Clarity are synchronized to Microsoft Project Server.
- The project managers use Project Server for the day to day management of the projects.
- The development team executes their work in Jira (as described above).
Hub flows the information from tool to tool, allowing everyone to use the tool that’s best for their job.
Key Features and Benefits
- Improved visibility into the overall status of projects by allowing collaboration between the Development team and the project managers and PMO.
- Synchronizes artifacts across the lifecycle allowing free flow of information between Microsoft Project Server and other tools.
- Enables centralized planning and control Improved cross-tool reporting, removing the need for manual processes and spreadsheets.
- Implement a true Scaled Agile Framework® (SAFe®) strategy across your portfolio, program and team levels
Common Integration Patterns
Demo Videos
Connector Setup Details
This section describes the basic steps needed to prepare your Microsoft Project Server instance for use with Hub. Note that additional fields for synchronization or configuration of queries may be required depending on the requirements of your integration.
Minimal User Permissions & Hub User
We recommend that you create a new user within your external tool, to be used only for your Hub integration. This is the user information you will enter when setting up your repository connection within Planview Hub. By creating a new user, you will ensure that the correct permissions are granted, and allow for traceability of the modifications that are made by the synchronization.
In general, your user account should have sufficient permissions to create, read, and update artifacts in your repository. However, depending on the use case, your user may need different permissions. For example, if you are only interested in flowing data out of your repository, your user may not need to have full CRUD access, as the 'create' and 'update' permissions may not be needed.
Your user should have a secure password or token. Please be aware that Hub will not allow you to save a repository connection utilizing a weak password/token, such as 'tasktop.'
See instructions on how to create a custom user in Microsoft Project Server.
List of minimal user permissions:
- Ensure the user has sufficient permissions to create and update Projects and Tasks in your integration
- Ensure the user is added to the Project
Connecting to the Microsoft Project Server Repository
Standard Authentication
Required Fields:
- Location/URL
- Example Format: https://abc-msps999/PWA
- Note: PWA is the Project Web App site
- Example Format: https://abc-msps999/PWA
-
Server Time Zone
-
For versions earlier than 19.4:
-
Format for time zone can be any of the following:
- Abbreviation such as "PST"
- A full name such as "America/Los_Angeles"
- Custom ID such as "GMT-8:00"
-
-
- Username
- Example Format: ORGANIZATION\gu-sharepoint
- Note that certain configurations may require you to use the following format: user@domain.onmicrosoft.com
- Password
Optional Fields:
- Work Day Hours: This field indicates the number of hours in a standard task day.
- Work Week Hours: This field indicates the number of hours in a standard task work week.
- Deployment Type: This field represents the deployment type of the Microsoft Project Server instance; options include, None, Auto-detect, On Premise, and Online.
- The None and Auto-Detect options automatically determine if the deployment is cloud-based or on-prem (i.e., Microsoft Project online or Microsoft Project Server).
- The On Premise option represents an on-prem deployment (i.e., Microsoft Project Server).
- The Online option represents a cloud-based deployment (i.e., Microsoft Project Online).
- Enable Legacy NTLM Authentication: If checked, NTLM authentication scheme support will be enabled when authenticating to the repository.
- When unchecked, the NTLM authentication scheme support will be disabled and the connector will use basic authentication against the repository. See details here for configuring IIS to support basic authentication.
- Note: This field only applies to on-premise instances of Microsoft Project Server.
- Throttling Settings: This field indicates the number of API calls that can be made per minute. See details here.
- Note: This field should only be set under the guidance of customer care as the ideal value is highly dependent on each customer's unique environment.
- Connection Security: If checked, insecure connections to this repository will be allowed. See details here.
Note: For Microsoft Project Online, the following authentication methods are supported: Cloud Identity, Synchronized Identity. Federated Identity is not supported.
Microsoft Azure Active Directory OAuth2 via Certificate (ROPC)
See the section below for steps on configuring this authentication method.
Required Fields:
- Location/URL
- Example Format: https://abc-msps999/PWA
- Note: PWA is the Project Web App site
- Example Format: https://abc-msps999/PWA
-
Server Time Zone
-
For versions earlier than 19.4:
-
Format for time zone can be any of the following:
- Abbreviation such as "PST"
- A full name such as "America/Los_Angeles"
- Custom ID such as "GMT-8:00"
-
-
- Username
- Example Format: ORGANIZATION\gu-sharepoint
- Note that certain configurations may require you to use the following format: user@domain.onmicrosoft.com
- Password
- Token Location: This is the Directory (tenant) ID found in the App Registration Overview.
- Example Format: https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
- Client ID: This is the Application (client) ID found in the App Registration Overview.
- Scope: This is the base URL.
- Example Format: https://abc-msps999/
- Client Assertion: This is the entire encoded JWT token.
SSO Authentication
Note: The below options are not applicable to Federated Authentication. Hub does not support Federated Authentication.
Additionally, Microsoft Project Server supports the following SSO implementations:
- Script (HTTP cookies)
- X.509 Certificate
Learn more about how to set up your repository in Planview Hub here.
Other Configuration Settings
Microsoft Azure Active Directory OAuth2 via Certificate (ROPC) Configuration
Microsoft recommends not using the ROPC OAuth2 flow. However, it is important to note that this statement is made in the context of an application having access on a user's behalf.
Regarding Hub, our recommended approach is to use a dedicated account with only the permissions necessary for your use case(s).
- The dedicated account should have a secure password and the credentials should not be shared.
- The Hub user must have sufficient permissions to access the projects/items in your repository.
Note: This form of authentication will not support multi-factor authentication use cases.
Please see Microsoft’s documentation for more information on OAuth2 via ROPC.
This authentication method only works with Project Online and Azure Active directory.
See the steps below to set up the Azure Active Directory authentication method:
-
Register an application for Hub on Azure Active directory.
-
Grant permissions to the application to allow Hub to access Project Online. These settings are found under API permissions > Add a permission > Microsoft APIs > SharePoint > Delegated Permissions.
-
Grant the application the necessary permissions (e.g., ProjectWebApp.FullControl).
-
-
Generate a Public / Private X.509 certificate key pair according to your requirements.
-
Note: You may need a Linux/Windows PC for this process.
-
-
Add the certificate for Hub to Azure with the following steps:
-
Click Certificates & secrets in the left sidebar.
-
Then, upload the public certificate to the Certificates section.
-
-
Generate a new JWT token.
-
Save the token to use in Hub.
-
Fill in the Repository Connection fields in Hub as follows:
-
Username: The Hub user’s username
-
Password: The Hub user’s password
-
Token Location: This is the Directory (tenant) ID from the App Registration Overview section
-
Example Format: https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
-
-
Client ID: This is the Application (client) ID from the App Registration Overview section
-
Scope: This is the base URL (i.e., the project URL without “/sites/pwa”)
-
Example Format: https://mycompany.msps.com/.default
-
-
Client Assertion: This is the entire encoded JWT token
-
-
Person Reconciliation
For Person Reconciliation, the following fields are available:
Fields Used for Hub’s Default Person Reconciliation Algorithm |
Field Names for Person Reconciliation Extensions (Note that these are case sensitive) |
Label in Microsoft Project Server |
---|---|---|
ID |
person-id |
GUID (see below) |
Username |
N/A |
N/A |
|
person-email |
|
N/A |
person-external-id |
External ID (This contains the data after the backslash in the Account Field. For example, for Account "i:0#.w|tasktop\charles.smith", the External ID would be 'charlessmith'. It can also be found when viewing a resource, as shown in the screenshot below) |
N/A |
person-display-name |
Display Name |
The ID can be found when viewing a resource:
Learn more about how to configure person reconciliation in Planview Hub here.
Full Scan
Due to third party API limitations, changes to the following fields may not trigger change detection or cause a synchronization immediately. To ensure these updates synchronize, a high fidelity full scan must occur or another qualifying change must be made to the artifact:
- 'Remaining Work' Field
Learn more about how to configure change detection and full scan intervals in Planview Hub here.
Query Language
Planview Hub: 21.4 and later
To further refine artifacts in a collection, Hub offers query language support for a limited set of MSPS fields.
The following field types are supported:
Equal/Not Equal operator
-
VWL
-
String
-
Long
-
(Not supported in 2013 on-prem versions)
-
-
Double
-
Boolean
- Custom String (see details below)
- Custom Single Select (see details below)
Before/After operator
-
Dates
Note: The following field types are not supported: Duration, Notes, ID.
Custom fields must meet the following criteria:
- The custom field must be a String or Single Select field.
-
The field name or value must not contain unicode and should only be standard ASCII.
-
The field name should not contain any of the following symbols:
- !"#$%&'()*+,-./:;<=>?@\^_`{|}~
-
The field name (with all whitespace removed) should not match any of the below "internally reserved" field names:
"ProjectId" "TaskId" "ParentTaskId" "ParentTaskName" "ProjectName" "TaskActualCost" "TaskActualDuration" "TaskActualFinishDate" "TaskActualFixedCost" "TaskActualOvertimeCost" "TaskActualOvertimeWork" "TaskActualRegularCost" "TaskActualRegularWork" "TaskActualStartDate" "TaskActualWork" "TaskACWP" "TaskBCWP" "TaskBCWS" "TaskBudgetCost" "TaskBudgetWork" "TaskClientUniqueId" "TaskCost" "TaskCostVariance" "TaskCPI" "TaskCreatedDate" "TaskCreatedRevisionCounter" "TaskCV" "TaskCVP" "TaskDeadline" "TaskDeliverableFinishDate" "TaskDeliverableStartDate" "TaskDuration" "TaskDurationIsEstimated" "TaskDurationString" "TaskDurationVariance" "TaskEAC" "TaskEarlyFinish" "TaskEarlyStart" "TaskFinishDate" "TaskFinishDateString" "TaskFinishVariance" "TaskFixedCost" "TaskFixedCostAssignmentId" "TaskFreeSlack" "TaskHyperLinkAddress" "TaskHyperLinkFriendlyName" "TaskHyperLinkSubAddress" "TaskIgnoresResourceCalendar" "TaskIndex" "TaskIsActive" "TaskIsCritical" "TaskIsEffortDriven" "TaskIsExternal" "TaskIsManuallyScheduled" "TaskIsMarked" "TaskIsMilestone" "TaskIsOverallocated" "TaskIsProjectSummary" "TaskIsRecurring" "TaskIsSummary" "TaskLateFinish" "TaskLateStart" "TaskLevelingDelay" "TaskModifiedDate" "TaskModifiedRevisionCounter" "TaskName" "TaskOutlineLevel" "TaskOutlineNumber" "TaskOvertimeCost" "TaskOvertimeWork" "TaskPercentCompleted" "TaskPercentWorkCompleted" "TaskPhysicalPercentCompleted" "TaskPriority" "TaskRegularCost" "TaskRegularWork" "TaskRemainingCost" "TaskRemainingDuration" "TaskRemainingOvertimeCost" "TaskRemainingOvertimeWork" "TaskRemainingRegularCost" "TaskRemainingRegularWork" "TaskRemainingWork" "TaskResourcePlanWork" "TaskSPI" "TaskStartDate" "TaskStartDateString" "TaskStartVariance" "TaskStatusManagerUID" "TaskSV" "TaskSVP" "TaskTCPI" "TaskTotalSlack" "TaskVAC" "TaskWBS" "TaskWork"
Best Practices for Integrating with Agile Tools
In our 10+ years of working with customers to build and implement data integration solutions, we have identified some core best practices for designing integrations across tools that are conceptually different, built for vastly different purposes, and with distinct internal architectures. Microsoft Project Server is one such tool: built for project management and organized like a spreadsheet or project plan. Agile tools such as Jira, on the other hand, follow a different structure - they contain artifacts like Epics, Stories, and Defects with many relationship types defined between artifacts.
You can learn more about common integration patterns utilizing MSPS here:
Focus on the Business Problem
When aligning two very different tool environments, it is important to first define your core business problem, and to let that drive a holistic, sustainable solution.
Integrating Microsoft Project Server with an Agile tool requires that you work with two tools that communicate with one another in inefficient ways, as their processes have until now been designed in separation. Designing an efficient integration solution will only be successful if you focus on the business problem first. This will enable you to create a holistic solution, rather than a piecemeal approach driven by individual field-to-field mappings.
For example, when planning out your integration solution, don’t try to map the ‘Actual Start’ field in Microsoft to some field on the Agile side which may not even exist. Instead, think about your business problem. If you need to know when work began on an item, perhaps the crucial information in the Agile tool to focus on is the date/time the artifact moved to ‘in progress’ state.
Below, we have outlined some very specific areas that can prove to be challenging when integrating MS Project Server with an Agile endpoint like Jira, VersionOne, Azure DevOps (formerly Microsoft TFS/VSTS), and more.
Microsoft Project Server API Limitations
With the 2016 release of Microsoft Project Server, Microsoft released some API limitations that impact integration and are worth considering for integration use cases.
These limitations affect Microsoft Project Server 2016 and later, and Project Online:
- Custom fields cannot flow into MSPS; they can only flow out of MSPS
- This also includes the stock/placeholder custom fields that are provided in MSPS (i.e. 'text10' field, which users can relabel as a custom field of their choice). Those fields can only flow out of MSPS.
-
Parent fields cannot be updated - they can only be set on creation (this limitation applies to all versions of MSPS).
The recommendations below take these limitations into consideration.
Use Proper Hierarchy Delineations
Within Microsoft Project Server, all items are of the same type: Tasks. However, Agile tools contain artifacts of different types such as Epics, Stories, and Defects, which relate to one another via different relationship hierarchies. As a result, it is important to find a reliable way to delineate between different artifact types in Microsoft Project Server.
Here are some best practices to consider:
Allow the original creation of each artifact type on one side only.
For example, high level epics are created only on the Microsoft Project Server side as part of a project plan. Lower level items like Features and Stories can only be broken down in the Agile tool.
Thus, the integration flow will be:
-
- Epics: MSPS → Agile
-
Features: MSPS ← Agile
-
Stories: MSPS ← Agile
If different artifact types must be created in Microsoft Project Server, choose a reliable method to delineate between them.
Using the outline level or order in the hierarchy within MSPS to delineate between different artifact types is an unreliable option, as hierarchies can change and tasks can be moved around the project plan. If tasks do not move around the project plan after the plan has been published, you may consider this option.
A more reliable option would be to take advantage of a custom field to delineate between the different artifact types. For example, create a custom field in MSPS that specifies if a task is a feature or a story in the other tool.
Use Concatenation to Work with Microsoft’s Custom Field API Limitation
Given that Microsoft’s API prevents Hub from writing data to custom fields in MSPS 2016+ or Project Online, we’d like to provide some best practices for satisfying your use case if it is necessary for you to have some additional information flow back into MSPS.
The first question to consider is, “what is the most important information for the PMO office to see back in MSPS?” Given that Microsoft’s API only allows Hub to write to default/out-of-the-box fields, one best practice is to take advantage of the Summary/Name field and to concatenate some necessary information into via your integration, using an extension.
For example, let’s say there are two important pieces to flow to MSPS from your Agile tool:
- Dev Status
- Dev ID
To accommodate this use case, your integration can append both fields to the title field in MSPS.
Here is an example of a possible concatenation:
Remember, custom fields can be retrieved, thus one way integration of this value from MSPS → Agile tool is still feasible.
Status and Progress Updates
From an integration perspective, there tend to be two different types of updates back from the Agile world:
- Status updates (i.e., New, In Progress, Complete)
- Progress updates showing a calculation or depiction of the progress (i.e., Hours Complete or Percentage Complete).
If you are looking for a word to specify the status (Red/Yellow/Green or ToDo/InProgress/Done), then take advantage of the concatenation approach outlined above.
However, if you want to look into more detailed progress updates via integration, here are some considerations and best practices:
% Complete
It is important to think through how this number would most accurately be calculated.
Here are some approaches to take advantage of:
Use status workflow on the Agile side to establish the relative % complete of the task.
For example, “In Design” could mean 20% of the way, “Design Complete” - 30%, “In QA” - 70%, “QA Complete” - 80%, etc. This is potentially the most reliable way to get a relative number into MSPS, given the API constraints. Note that the % complete ONLY has to be transferred to the lowest level artifact in the hierarchy, as MS Project Server does the calculation to parent levels by itself.
Use a field on the Agile side to define the percent complete.
Ask the developer to estimate the % complete and to input value into a numeric or text field. You also could take advantage of a third party tool to calculate parent % complete based on its children sub-tasks (see additional details in the Rollup section below).
Calculate based on Estimate and Completed fields.
Some Agile tools include a field for an Estimate of work contained in an artifact (counted in user stories, hours, or some other unit). By comparing the Estimate and Completed fields, you can calculate a % Complete to flow back to MSPS through an extension in the integration.
Roll-up Use Cases
In many cases, you may want your Agile tool to contain very granular, detailed information regarding implementation work, while Microsoft Project Server contains a high-level roll-up summary. When implementing this use case, keep in mind that the best place to perform these roll-ups is within the endpoint tool itself, and not within Hub.
One reason not to have Hub perform the roll-up calculations is the following: let's say we had logic in Hub that took data from the child artifact in the source system and then flowed it to the parent artifact in the target system. If the data changed on the child artifact, Hub might not pick up those changes, since change detection is run on the artifacts within scope of the integration itself (meaning - on the parent artifacts, and not on the child artifacts). Since Hub only picks up changes occurring on the parent artifact, if your roll-up relies on data contained on a separate artifact (i.e., the child artifact), Hub could miss some vital updates.
Best Practices
- Use filters or views to hide low level items within MS Project Server project views.
-
Use a third party tool to perform the calculation. For example, take advantage of Jira internal extensions, Azure DevOps (formerly TFS) extensions, or other third party extensions to loop through child items and calculate an aggregate % complete, which can then be assigned to the top-level artifact and integrated to Microsoft Project Server.
Calculated Fields
Most PMO tools have some calculation embedded within their tools. Meaning, some fields on Tasks are interrelated and are adjusted in conjunction with changes to other fields. For example, if you have “Work Completed” and “Work Remaining” fields in MSPS, the “Work Remaining” field will automatically be updated as you increase “Work Completed.” This adds some complexity to integration configuration, as care must be taken to determine which fields Hub will update and which will simply be auto-updated in the repository itself.
Let’s examine a few scenarios.
Start & Finish Dates
Start Date and Finish Date fields have some important dependencies:
The finish date cannot be before the start date.
This can affect the integration as Agile tools generally will not have a relationship between two custom date fields, unless you have manually configured field dependencies.
Predecessors and Successors
If items are auto-scheduled, then the start and finish dates will auto-adjust in MSPS when dates change on the predecessor. This is very beneficial from an integration perspective, as the Agile team will find out instantly if any preceding items have slipped and target dates have changed. All changes impacted by auto scheduling will be picked up once the new schedules are published to the server.
Parent/Child Relationships
Similar to predecessor and successor relationships, parent/child relationships in MSPS will affect start and finish dates. If a child item slips or extends, the parent item will be updated accordingly. This is also beneficial from an integration perspective, as it will allow Agile teams to find out about updated dates as soon as the new project plans are published.
Actual Start, Actual Finish, % Complete
Planview Hub: 19.2.0.20190211 and later
MSPS has some built-in field dependencies between the Actual Start, Actual Finish, and % Complete fields. It's important to be aware of these, so that you understand how field updates made by your Hub integration may impact other fields within MSPS.
For example:
- If you set the 'Percent Complete' field to a non-zero amount, then the ActualStart field will be updated to the Status date if ActualStart is empty
- If you set the 'Percent Complete' field to 100%, then the ActualFinish field will be updated to the Status date if ActualFinish is empty
- If the 'Percent Complete' field is 100% and you change it to be less than 100%, then the ActualFinish value will be removed
- If the 'Percent Complete' field is non-zero and you change it to zero, then the ActualStart value will be removed
Setting these five field values may also cause changes in the 'Duration', 'Actual Duration' and 'Remaining Duration' values.
Note: The Actual Finish is calculated in one of two ways: When you specify that a task is 100 percent complete, MS Project automatically adjusts the actual finish date based on either the current status date or the scheduled finish date. The date that is used depends on the calculation preferences that you can set in the MS Project Options dialog box.
Because of the behavior outlined above, we recommend flowing data from the Agile tool to the "% Complete" field only. That way, the auto-calculations within MSPS can take care of updating the Actual Start and Actual Finish dates, without any data needing to be integrated from the Agile tool directly.
Estimate, Complete, and Remaining
The most important thing to understand regarding Estimate, Complete, and Remaining fields is that the three fields are auto adjusted on the MS Project side, but are potentially unrelated fields on the Agile side. Thus, you should consider one way integrations or integrating only one of the fields.
For example.
- Estimate: MSPS → Agile
- Complete: MSPS ← Agile
- Remaining: no integration
We encourage thinking through the process holistically, in order to craft a reliable integration that accounts for all edge cases.
Resource Assignments
While MS Project Server breaks down tasks to be assigned to multiple resources, most Agile tools do not allow more than one assignee per task. This architectural mismatch presents some challenges when trying to align resource assignments between the two tools.
Here are some best practices and considerations:
- Make the Agile tool the system of record for assignments to ensure that only one person is assigned per task. This is the most reliable option
-
Use a custom field on the Agile side to hold multiple assignees that have been assigned on the MS Project side. While Jira supports proper multi-user custom fields, Azure DevOps (formerly TFS) does not. Thus, if you are flowing assignments to Azure DevOps, it must be a one-way MSPS -> Agile mapping, or you must flow to a custom text field in Azure DevOps.
-
Finally, you could use an extension to perform some logic on the assignment. For example, if there are multiple assignees on the MSPS side, you could configure an extension in your integration to only flow the first one to the Agile tool.
Supported Features
Special Features Supported
You can learn more about special features in Planview Hub here.
Feature |
Custom Type Supported? |
Applicable Hub Versions |
Applicable Repository Versions |
---|---|---|---|
|
|||
|
|||
|
|||
State Transitions (Status can flow out of Project Server as a single select. Status can flow into Project Server by default but may not succeed depending on custom workflow configuration) |
Planview Hub: All |
Any supported repository version: |
Supported Artifact Types
Learn about the difference between containers and work items in Planview Hub here.
Supported Work Items
Supported Work Item Type |
Applicable Hub Versions |
Applicable Repository Versions |
Unique URL? |
---|---|---|---|
Tasks |
Planview Hub: All |
Any supported repository version: |
No |
Supported Containers
Containers that can synchronize between repositories |
Applicable Hub Versions |
Applicable Repository Versions |
Unique URL? |
---|---|---|---|
N/A |
|
|
|
Containers used to define the boundary of a collection |
|
|
|
Projects |
Planview Hub: All |
Any supported repository version: |
N/A |
Containers used for artifact routing (When clicking 'Manage Projects' on a Collection) |
|
|
|
Projects |
Planview Hub: All |
Any supported repository version: |
N/A |
Learn more about containment in Planview Hub here.
Supported Field Types
Note: If one field of a given type is supported, others that are also that type in theory should also work. However, sometimes there are instances in which this is not the case due to the repository. So, while we can claim support for fields at the type level, there is a chance that some specific fields of a given type will not synchronize properly.
Standard Field Type |
Does Hub support custom fields of this type? |
How is field type referenced in the repository? |
Sample Repository Fields Supported |
Particular Repository Fields NOT Supported |
---|---|---|---|---|
|
Custom fields are only writable before Project Server 2016/Project Online |
Text |
Name Notes Outline Position Outline Level Work Breakdown Structure |
|
|
Custom fields are only writable before Project Server 2016/Project Online |
Text with lookup entries |
Project Health |
|
|
|
|
|
|
|
Custom fields are only writable before Project Server 2016/Project Online |
Flag |
Manually Schedule Flag Status |
|
|
Custom fields are only writable before Project Server 2016/Project Online |
|
Start (in Worklog) |
|
|
|
|
Start Modified Finish |
|
|
Custom fields are only writable before Project Server 2016/Project Online |
Duration |
Work Remaining Work Remaining Duration Duration Actual Work Actual Duration |
|
|
Custom fields are only writable before Project Server 2016/Project Online |
Cost |
Cost |
|
|
Custom fields are only writable before Project Server 2016/Project Online |
|
Priority Percent Complete |
|
|
|
|
|
|
|
N/A |
|
Assignees |
|
Learn how to configure relationships in Planview Hub here. |
N/A |
|
Parent Link (upon creation only) |
Successor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Functional Limitations
Category |
Limitation |
Applicable Hub Versions |
Applicable Repository Versions |
---|---|---|---|
Third Party API Limitation |
OAuth2 via Certificate Authentication Worklogs are not supported with OAuth2 authentication due to limited compatibility with Azure Active Directory tokens. |
Planview Hub: 21.4.39 and later |
Any supported repository version: |
Third Party API Limitation |
OAuth2 via Certificate Authentication OAuth2 via ROPC does not support accounts that require multi-factor authentication to log in. |
Planview Hub: 21.4.39 and later |
Any supported repository version: |
Third Party API Limitation |
API Throttling If the server is experiencing high loads, Project Online will throttle API requests. This throttling will dynamically scale depending on project size and operation complexity. As a result, projects with a large number of artifacts (e.g., 10,000+) may experience significant delays. For more information, please contact customer care. |
Planview Hub: All |
Project Online |
Configuration Requirement |
Duration Fields To use Duration fields calculated in days or weeks, the Work Day Hours and Work Week Hours fields must be set on the Repository Connection screen. |
Planview Hub: 20.4.21 and later |
Any supported repository version: |
Good to Know |
Work Day Hours Field The Work Day Hours field accepts a value between 1.0 and 24.0. |
Planview Hub: 20.4.21 and later |
Any supported repository version: |
Good to Know |
Work Week Hours Field The Work Week Hours accepts a value between 1.0 and 168.0. |
Planview Hub: 20.4.21 and later |
Any supported repository version: |
Good to Know |
Duration Fields The maximum retrieval value for the Duration field is 100,000 hours. |
Planview Hub: 20.4.21 and later |
Any supported repository version: |
Feature Not Supported |
Sharepoint Tasks List Projects Sharepoint Tasks List projects are not supported. |
Planview Hub: All |
Any supported repository version: |
Third Party API Limitation |
Locked Projects MSPS locks the entire project whenever a write operation is performed. This may result in delayed or retried activities. It is recommended that any integration using MSPS synchronizes as few fields as possible with a high change detection interval to ensure other users of MSPS are not negatively impacted by API calls locking projects. |
Planview Hub: All |
Any supported repository version: |
Third Party API Limitation |
Predecessors Field The predecessors field is read-only in any version of MSPS earlier than 2019 due to a defect in the Microsoft REST API which overwrites existing predecessors instead of adding to the list of predecessors. The field is writeable in Project Online and any supported versions 2019 or later. |
Planview Hub: 19.1 and later |
Any repository version earlier than 2019: |
Third Party API Limitation |
Local Custom Fields Local custom fields are not supported. |
Planview Hub: All |
Any supported repository version: |
Third Party API Limitation |
Custom Fields Custom fields are read-only. Microsoft does not provide the API to write to them. |
Planview Hub: All |
Supported versions including 2016 and later (including Project Server Online) |
Third Party Functional Limitation |
Duration Fields Changing the Duration field causes MSPS to recalculate the Work fields. It miscalculates these fields and they are off by milliseconds. From then on these fields will always be off from the correct value by milliseconds. This can cause issues when synchronizing because many duration fields require the field to be rounded to a certain duration. MSPS may also miscalculate the Actual Duration field when the Duration field causes it to change, but this appears to happen less frequently. |
Planview Hub: All |
Any supported repository version: |
Third Party Functional Limitation |
Person Fields A Person must be added to the Project Team to be assigned |
Planview Hub: All |
Any supported repository version: |
Third Party Functional Limitation |
Person Fields A Person will be assigned to the task if the Person reports time |
Planview Hub: All |
Any supported repository version: |
Third Party Functional Limitation |
Person Fields A Person/Resource needs to have an assigned Login (e.g.Active Directory) to be able to report time |
Planview Hub: All |
Any supported repository version: |
Third Party Functional Limitation |
Artifact Management CRUD operations cause all artifacts to be modified. |
Planview Hub: All |
Any supported repository version: |
Third Party Functional Limitation |
Parent Links Parent links can only be set on creation. Therefore, when integrating with the parent link, you have to make sure it exists on the other side before Hub picks it up. |
Planview Hub: All |
Any supported repository version: |
Configuration Requirement |
Date Fields Dates in the MSPS web UI are displayed in the local (server) timezone. If you're synchronizing an MSPS project with another repository that displays dates in UTC, the dates may appear not to match. |
Planview Hub: All |
Any supported repository version: |
Configuration Requirement |
Configuration Before running Hub, make sure the project is not currently checked out. Visit the "Force Check-in Enterprise Objects" page of your MSPS instance to do so. |
Planview Hub: All |
Any supported repository version: |