I realize that this is an older question at this point, but was just trying to do the same thing and thought I would share my preliminary results. Maybe this will help others and potentially save some time as well.
FWIW, I used Tableau Public v9 to do this and first encountered a "You don't have permission from the OData source" error. Knowing that my credentials were valid, I did some digging online and found a Tableau Community thread that discussed this behavior. A reply in that thread led me to this knowledge base article:
I implemented the registry change in that KB article and was able to finally authenticate properly, however I then got a "Bad OData Format. Make sure you are using a URL that points to a valid OData Source" error. A bit more digging online surfaced that I was pointing to the service root URL for Project Server, which will not work in Tableau. That root actually contains a whole list of different data feeds - 38 if I counted correctly - which I saw when I connected to that same URL in Excel. The feeds have names like: AssignmentBaselines, AssignmentBaselineTimephasedDataSet, Assignments, etc.
Long story short there, you will need to use a connection URL that looks something like: https://<ServerURL>/sites/pmis/_api_ProjectData/<FeedName>
Once I got all that figured out I was able to successfully connect to a data feed. Now, I haven't spent a lot of time playing with the feeds yet so I can't say whether or not the juice will be worth the squeeze, but here are my initial thoughts:
- If you're connecting to an on-prem OData feed you may experience better performance, but mine is coming from O365 (i.e., via the Microsoft cloud) and the performance is less than stellar. I believe the whole feed has to be pulled down upfront (as opposed to being able to dynamically load) and depending on how much project data is in there it could take a few minutes to complete. This is particularly true if you're hooking into any of the "TimephasedDataSet" feeds.
- Since there are a lot of feeds available, depending on what information you're wanting access to you may need to do some joins. Luckily, it looks like there may be some GUIDs in there to use for that purpose (I saw one called "ProjectID," I believe - going from memory here).
It is possible with a little upfront legwork and knowledge of what you're wanting to connect to. In-depth knowledge of the underlying Project Server data feeds would be a big plus.
I have the same requirement to connect to Project Online and create dashboards in Tableau.
Can you help me ?