Expand my Community achievements bar.

The first Coffee Break sweepstakes in the Workfront Community is TOMORROW at 8:30AM PST! Share your Project Template and Timeline best practices or ask a related question for an opportunity to win Workfront swag.

Project Report - People Column

Avatar

Level 8
I have a project report, and I'm trying to add a column that lists all the people that are involved with that project. It's basically the same list that is in the Staffing -> People tab (project owner, project sponsor, and all assignees). Has anyone done this before? Thanks!
Topics

Topics help categorize Community content and increase your ability to discover relevant content.

21 Replies

Avatar

Level 10
Hi Adina, I actually generate this as a report and then as a view as well so that users can identify quickly who's who in the project. Text mode below. description=Team Users displayname=Name link.linkproperty.0.name=ID link.linkproperty.0.valuefield=userID link.linkproperty.0.valueformat=int listdelimiter= listmethod=nested(projectUsers).lists name=ID namekey=assignment.plural stretch=25 textmode=true type=iterate valuefield=user:name valueformat=HTML width=150

Avatar

Level 8
Thank you, Polly. This is exactly what I needed! I only had to remove the stretch=25 line, it was giving me a pink error message. Adina ________________________________

Avatar

Level 10
Agreed -- thanks for sharing, Polly. As an aside, the "nested" concept that Polly used is a powerful part of Workfront's textmode feature. I encourage anyone who is striving to get the most of their reports to invest the bit of time it takes to get comfortable with it. Regards, Doug

Avatar

Level 9
Polly, this is great! Just so I understand the logic, the code is pulling all task assignees along with the project owner and sponsor? Or will it pull in everyone the project is shared with? I was also wondering if there's a way to modify the code to use it on other report types (e.g. issue report, task report, etc.)?

Avatar

Level 10
Michael, the code pulls in project owner, sponsor and task assignees, not shared users. David Cromwell had a post before on how to use nested lists. Hopefully that will help you pick data for other types of reports. https://community.workfront.com/p/fo/st/topic=62&post=726#p726

Avatar

Level 4
This is great! I was also looking for something like this. Thanks for sharing

Avatar

Level 5
Polly, Could you post a screen shot of the report? tks Karen

Avatar

Level 10
Karen, this would depend on your project filters. In one way we've used this is sort of to replace the generic Staffing/People tab on a project. See attached. The report itself does not filter to a specific project but when you put the report into a project, it just sees people within the project. I've also used this as a column view in the Project's I Own or Projects I'm On to give me a quick view as to who's who in project before getting into the project itself.

Avatar

Level 4
This code is great and very helpful Polly! could it be used in a Task report? Andrew Beard Sr. Associate, LeapPoint "mailto:abeard@leappoint.com" abeard@leappoint.com 203-232-4090

Avatar

Level 10
Hi Andrew, I don't think you can call a project's collection within a task report but maybe somebody else have tried it. Cheers.

Avatar

Level 4
Yes you can. Inside the name of the collection you do project. and then the rest is the same. So for a projectUsers list on a task report it would be listmethod=nested(project.projectUsers).lists no changes on the valueexpression or anything else. Example that displays the name of the Art Director(s) on a project in a task report: displayname=Art Director listdelimiter= listmethod=nested(project.projectUsers).lists textmode=true type=iterate valueexpression=IF(CONTAINS("Art Director",{user}.{role}.{name}),{user}.{name}) valueformat=HTML -- Melinda Layten, Senior Consultant Work Management Improvement CapabilitySource Phone: (484) 505-6855 site: www.capabilitysource.com email: melinda.layten@capabilitysource.com - we simplify your work so you can run your business -

Avatar

Level 10
I never thought of even trying " project.projectUser"! I will now have to think how I can apply objcode.listcode on other reports. Polly Co

Avatar

Level 4
Very neat. Could this be modified to search for the users secondary job roles and not just their primary? I've tried changing .role to .roles and other variations but it returns no reseults . Andrew Beard - LeapPoint Senior Associate LeapPoint Herndon VA

Avatar

Level 4
I don't think you can traverse 2 nested lists for the user and all of their job roles. There is a ProjectUserRole object that you can use to see who is assigned to each role in the project. So if a user is assigned to one of their secondary roles it should appear. So there are 3 related collections: ProjectUsers - The team on the projects Roles - The roles that are on the project ProjectUserRole - The users assigned to roles on the project Unassigned roles are not in the ProjectUserRole list. If a user is assigned without a previous role their primary role is put on the list. Here's an example of a shared column that traverses several of the objects: Looks to see if role is on a project and who is filling the role, replace Copywriter with the name of the role. Blank is not on the project, Yes means it's on the project. Yes blank is unassigned, Yes name is assigned. column.3.valueexpression=IF(CONTAINS("Copywriter",{name}),"Yes ","") column.3.type=iterate column.3.listmethod=nested(roles).lists column.3.sharecol=true column.3.listdelimiter=& z w j ; column.3.textmode=true column.3.valueformat=HTML column.3.displayname=Copywriter column.4.valueformat=HTML column.4.displayname=Spacer column.4.textmode=true column.4.width=1 column.4.sharecol=true column.4.valuefield=< b r > column.5.valueformat=HTML column.5.type=iterate column.5.listmethod=nested(projectUserRoles).lists column.5.listdelimiter=& z w j ; column.5.textmode=true column.5.valueexpression=IF(CONTAINS("Copywriter",{role}.{name}),CONCAT({user}.{name}," ")) Spaces added to < b r > and & z w j ; to prevent them being encoded. Remove spaces if copying. -- Melinda Layten, Senior Consultant Work Management Improvement CapabilitySource Phone: (484) 505-6855 site: www.capabilitysource.com email: melinda.layten@capabilitysource.com - we simplify your work so you can run your business -

Avatar

Level 3
First off, I want to say this thread is fantastic! I've been hoping to find a way to set up columns like these for ages (only recently have I begun to delve into the wonderful world of text mode). I think I've learned a lot just reading through here! I tried applying the role-specific code to my own reports, and it appears to be pulling the data correctly, but I'm having a bit of an issue with the formatting... Does anyone have any pointers for what might be causing the list of users to be spread out like it is in the screenshot below? Here is the code I used (it was shared earlier in this thread, but I want to repost just to be clear on exactly what I've used): displayname=DPA listdelimiter=< b r > listmethod=nested(project.projectUsers).lists textmode=true type=iterate valueexpression=IF(CONTAINS("DPA - Digital Production Artist",{user}.{role}.{name}),{user}.{name}) valueformat=HTML Also, I understand this is pulling from the Staffing tab in the project, but is there any way to have it pull from the assigned tasks on the project instead? For example, in the top line in my screenshot, Melissa is the only DPA that's actually working on the project, but it's listing Rick and Kevin because they are on the People list of the Staffing tab, and they are also DPAs. Is the only way to sort them out of the results to remove them from the Staffing list? Thanks! Mike Perez Tailored Brands

Avatar

Level 10
Hi Mike, I suspect the extra space is occurring because you've chosen < b r > as your delimiter (creating a new line), and then hide or show the name of a person based on your IF statement. If you instead use (non breaking space), it will collapse all of the rows...but run each user's name into each other. You might be able to CONCAT "< b r >" at the end of each of the names that are to appear visually to force an extra row, but I've not tested that, and the browsers might not honor it. If you'd rather search for a particular Task to drive the list of users, same concept, but iterating tasks, rather than projectUsers, looking at each Task's primary role (name) for the role in question, and where (only then) there's a match, showing the Task's primary assigned user, like this: listdelimiter= listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF(CONTAINS("DPA - Digital Production Artist",{role}.{name}),{assignedTo}.{name}) valueformat=HTML Regards, Doug Doug Den Hoed - AtAppStore Got Skills? Lend a hand! https://community.workfront.com/participate/unanswered-threads

Avatar

Level 10
My favorite list delimiter, by far, is the
tag. I'm working on a site where this has been documented pretty well. I hope you find this useful: https:// wf-pro .com

Avatar

Level 10
Hi Mike, let me try this again... 1) Here's the page that I want you to study: "https://wf-pro.com/text-mode-views-collections/"> https:// wf-pro .com/text-mode-views-collections/ a. Collection Fundamentals explains a lot. b. Look at some of the collection examples on this page. 2) Use the DIV tag and you'll find all the spaces will disappear. It's my favorite list delimiter. 3) Since you are looking at the projectUsers collection, I don't think you can exclude users based on assigmnents. This would require looking at the tasks or assignments and would likely be a different report. Hope this helps! Narayan Raum Workfront Center of Excellence Delivery Lead Enterprise Data & Governance Execution (EDGE) SunTrust Bank LEGAL DISCLAIMER The information transmitted is intended solely for the individual or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of or taking action in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you have received this email in error please contact the sender and delete the material from any computer. By replying to this e-mail, you consent to SunTrust's monitoring activities of all communication that occurs on SunTrust's systems. SunTrust is a federally registered service mark of SunTrust Banks, Inc. [ST:XCL]

Avatar

Level 3
Sorry for the late response, the holiday work reached a fever pitch and I'm just now getting back to business as usual (slightly less feverish!). Thank you @Doug Den Hoed and @Narayan Raum for the help! Narayan, that site looks like it will be an amazing resource-- great work, and thank you for sharing! I'm going to try my hand at implementing these suggestions and see what happens :) Mike Perez Tailored Brands