Project Server 2013: Which Ideas are now Projects?

This post came from an enquiry for how we can tell which list items in an ideation list (I hate that word – but it seems to be catching on…) have been already turned into projects.  In case you are not familiar with this feature of Project Server 2013 and Project Online, I am talking about the option, from a custom list, of turning one or more items from the list into projects.  This is generally used as a way to collect ideas as items in the list before deciding which are to become projects.  The list itself needs to be a custom list (Add an App, Custom List) and not a task list for this feature to show up.  This screenshot shows my idea list, and the ribbon option under Items for creating projects: If I click Create Projects then it allows me to map some fields from the list (in my case the list is very basic and just has the default columns) and go ahead and choose which Enterprise Project Type (EPT) should be used for the new project: I click Create Project on this page and I get my new Project.  But back to the original question – how can I tell which ones have already been converted? I knew there must be a way to tell, as if I try and create a project again I get an error: A project already exists for list item with title Project1002. Please select a list item that is not already converted to a project. I assumed this was held somewhere in the list properties so I set to work with PowerShell to see what properties I could find.  To get to these I get a reference to the web, then find my list based on the title then I can iterate through the items in the list.  But first I just looked at an item from which I had created a project and one that I had not – and compared the properties.  One useful script I found on the web was at which has a few nice utility scripts to get list information.  Using this I could get my list properties of my second item with the command: Get-OSCSPListItem -SiteURL “http://brismithps13/ppm” -ListName “NewIdeas” -ItemId 2 This returned quite a bit of information – and on close examination I found that a new custom element had been added to the Xml property ows_MSPWAPROJUID='{B77A374D-917C-E411-80E5-001DD8B72BFE}’ – which was the GUID for the created Project.  To make it simpler I just created a script that would iterate through and see which items had this property set. $web = Get-SPWeb http://brismithps13/ppm $list = $web.lists | Where-Object { $_.title -eq “NewIdeas” } $items = $list.Items foreach ($item in $items)      {       [XML]$xml = $item.Xml      $Item.Title      $xml.InnerXml.Contains(‘ows_MSPWAPROJUID’)      } And the output was: Project1000 False Project1001 True Project1002 True And I knew I had created projects from Project1001 and Project1002. This is the very basic level, and a nice to have would be to write some of this information back into the list columns so it was easily visible, and available via OData for example.  (And yes, an even nicer to have would be if we wrote this information back to the list columns when the project was created – perhaps along with a timestamp and the EPT used…(Thanks for the suggestions Gary, Peter and Christine!)  But that would have meant making some assumptions on the list type and columns available – certainly not too difficult but it does then tie things down in terms of customization etc.) So how about Project Online?  I haven’t tried it, but I did find a very interesting CodePlex project at which talks from PowerShell through CSOM to SharePoint.  A little more of the how this works can be found on – this looks like it should let you do the same kind of thing with Project Online. I hope this is useful.