Integrating Project Server 2010 with Line Of Business Applications
With the recent release of Microsoft Project Server 2010 (PS) last May and its rapid adoption by customers, a recurring question I have seen and been asked is how can I integrate Project Server 2010 with application X? Where application X can be a combination of the following:
|Application Type||Typical Scenario||Application Example|
Import financial information, and WBS
|SAP R/3, MSFT Dynamics SL and AX, Oracle etc.|
|Billing/Invoicing (ERP)||Export PS timesheet information to generate invoices, a classic in IT charge back and or service organizations||SAP R/3, MSFT Dynamics SL and AX|
|Human Resources||Import resources information like skills, RBS, billing rate, etc.…||SAP or custom systems|
|Customer Relationship Management (CRM)||Transfer customer service work information to PS||MSFT Dynamics CRM, Siebel etc.|
|Ticketing, Maintenance, Keep the Light on||Import work performed in these other app. into PS via Statusing API or push project plan and assignments to another app. to track the execution||System Center Service Manager, Remedy etc.…|
|Time tracking, time sheeting||Import data into PS to have full view of resources execution||SAP CATS, etc.|
|Application Lifecycle Management (ALM)||Transfer tasks and assignment to a team of developers||MSFT Team Foundation Server, etc.|
|Project Portfolio Management (PPM)||Yes I have seen customer bring PPM data from competitors product in our stack due to the ease of use of our platform and the enhance collaboration and reporting capabilities with SharePoint 2010||IT PPM competitors|
The following Microsoft Project Server data type/entities are typically synched:
|Project Server Data Type/Entities||Description|
|Projects||Projects can be tied to portfolios, programs, WBS, etc.|
|Tasks||Tasks are associated to WBS, work items, work package etc.|
|Resources||Resources typically are synched from Active Directory and additional information like skills/role come from another system etc.|
|Task’s Status||A common scenario where task updates are made in another system and needs to be transferred to PS the ChangeXml API|
|Timesheets||Timesheet data is typically transferred out of PS to another system for billing, etc.|
|Lookup Tables||Import LT data definition from another system.|
And there are more I have seen or heard but basically they revolve around the above application types. So how do I interface PS with these other mission critical applications (also referred to as Line Of Business Integration or LOBI) within my organization? This is obviously a very broad topic and this blog post is by no means exhaustive but let me try to get you started in answering this question.
Well as you can guess IT DEPENDS! The biggest challenge and the most complex part of such integration is clearly defining the scenario, documenting what data will be transferred between the two systems, what’s the “master” and what’s the “slave”, exception handling (if an update is rejected what happens for instance? If a task is deleted what happens? etc.)
The second phase is implementing the bridge and for that as mentioned in this recent post: Microsoft Project Server 2010 Integration with SAP you have two options: either use an existing partner solution that is publically available (search here for instance: http://www.microsoft.com/project/en/us/partners.aspx or BING it) or you can build your own connector and in that case look at the Microsoft Project 2010 Software Development Kit.
Points to consider when integrating PS with LOB (by no mean exhaustive):
What’s the specific use case?
Interface scalability and performance – was on a recent call with a partner who realized their interface to another system did not took too long to process updates…
What PS data entities (Project, Task, Resource, Lookup Table) needs to be updated and transferred? How is the custom data mapping defined?
Interface logging and monitoring - would expect any solution whether its of the shelve or custom made to provide visibility of data updates so that it can be easily monitored and maintained
|File format required to transfer data 9XML, CSV etc.)?||Can validation rules and business rules be easily created and modified?|
What are the additional Custom Fields required in PS to enable the transfer?
|Are there existing partner solutions available or do I need to build a custom interface?|
|Reporting requirements for this interface? KPI, dashboards etc.|