I recently had the chance to work on an SSIS Package in Windows Azure environment which periodically retrieved the Project online data via OData connector and stored over an Azure SQL Database for SSRS based reporting.
Here are some of my takeaways from this exercise.
The article to get you started is:
If you are also interested in learning about fetching SharePoint List data using similar mechanism, check this blog by Martin Laukkanen:
The SSIS job gets data alright once it is setup. But oData is inherently slow and it can easily take minutes for each project if you have many SharePoint lists or if you are trying to retrieve time phased data sets. Here are some of the suggestions to workaround this limitation.
1) Create a separate job for time phased data. And run this job only once in a week or month. Your time phased data will not be nightly refreshed but rest of the data update won’t suffer delays because of it.
2) Download the data in a cache Table. For reporting, use a different copy of same table. Update the copied table once your downloading job is complete. This way, your reports will show last downloaded data when the current downloading is in progress.
3) Check out this demonstration package on Microsoft site. I haven’t tried it but it is designed to sync only changes from Project Online.
Logging / Error Handling
SSIS has great logging features. Use them. You can log to text file, SQL Tables, event logs etc. You can also control the the minimum level being logged depending on the log medium and other variables.
SSIS also has intensive error handling options available for handling data level error (e.g. Custom field deleted or SharePoint list column deleted from a particular site). Review these options and use according to your requirements
Project Online oData schema is a bit different from traditional Project Server reporting database. The tables are more flattened which are easier to build queries on. However, if you have already built reports for on-premises, keep some time aside to re-write the queries according to new schema.
There are still some limitations when you retrieve data from oData. e.g. You can’t retrieve more than 45 text fields (and you can’t choose which 45). As of writing these lines, Workflow Phase and Stage for the current project can’t be retrieved either.
The rapid pace at which Project Online oData support is being enhance by Microsoft, these limitations would hopefully be removed at some point in future.