Expand my Community achievements bar.

Join us for our Coffee Break Sweepstakes on July 16th! Come ask your questions or share your use cases on Creative Briefs for a chance to win a piece of Workfront swag!

Display task status in column view of project report

Avatar

Employee
Hello, I am looking to create a project-level report that displays the status of multiple tasks within each project. I want it to look like this: Project Name - Task 1 - Task 2 - Task 3 (Columns) Project 1 - Complete - Complete - In Progress Project 2 - Complete - In Progress - In Progress Project 3 - In Progress - New - New Anyone know some coding that can pull task status at the project level? 'Task 1' would have the exact same name in each project. Thanks!!
7 Replies

Avatar

Level 5
This looks like you need to set up milestone reporting. https://support.workfront.com/hc/en-us/articles/115002290308-Using-the-Milestone-View -- Melinda Layten, Senior Consultant Work Management Improvement CapabilitySource Phone: (484) 505-6855 site: "https://www.capabilitysource.com" www.capabilitysource.com email: "mailto:melinda.layten@capabilitysource.com" melinda.layten@capabilitysource.com<

Avatar

Level 2
Our team is looking for a similar solution which the milestone dates are displayed in a project report column. The milestone report/view is too clunky and can not be sorted like a traditional project report with columns. Any thoughts?

Avatar

Level 10
Hi Sarah and Nick. I'd suggest you consider creating a Task level Matrix report , grouping the Rows by Project, and the Columns by Task Name, Filtered to (only) the commonly-named Tasks of interest, and including whichever Dates you are interested in (Planned Start, Projected End, etc.) with "Min" on each of them. In this fashion, you'd get the Project ~ Task 1 ~ Task 2 ~ Task 3 layout that you seek (Sarah) with the dates of interest, and the ability to sort (Nick)...and export. There's also some ability to format the cells to make it a bit more legible (e.g. grey background on the Projected Date, etc.) Effectively, you'd be creating your own version of the milestone view. Regards, Doug

Avatar

Level 5
Here's the secret way to do this with nested lists: To create a column that lists all the tasks on the project with their status: displayname=Tasks listdelimiter= listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=CONCAT({name}," - ",{status}) valueformat=HTML And then you can use this same idea with an if statement to get the result for only one task, in this case named "Planning": displayname=Planning listdelimiter=‍ listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF(CONTAINS("Planning",{name}),{status}) valueformat=HTML Note that if you have 2 tasks with the same name that it will show both statuses next to each other with no spaces NEWCUR Also the status this shows is the 3 letter code and not the full name. -- Melinda Layten, Senior Consultant Work Management Improvement CapabilitySource Phone: (484) 505-6855 site: "https://www.capabilitysource.com" www.capabilitysource.com email: "mailto:melinda.layten@capabilitysource.com" melinda.layten@capabilitysource.com<

Avatar

Level 2
Hi Melinda, I think this got us in the right direction. Thanks for your help. A few questions: Is there a way to use this syntax/logic and only display Parent tasks? Is there a way to use this syntax/logic and to also add/concatenate the planned completion date as well? Thanks, Nick Twillie

Avatar

Level 2
Nick, Did you ever get an answer to your question #2? I've got a blended Project//Task report that I want to be able to use to display both project level custom form information as well as important dates for a specific client. I can get a task to report out with it's 3 letter code from the text mode addition above : displayname=Planning listdelimiter=‚Äç listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF(CONTAINS("Planning",{name}),{status}) valueformat=HTML But I figured if Workfront can "see" the status of a task, it should also be able to derive a date from that same task. John Mitchell

Avatar

Level 5
status can be replaced with plannedCompletionDate projectedCompletionDate plannedStartDate etc Here's my notes page on project columns to give you some more ideas: Listdelimiter defaults to comma. The < br > displays a line break. & zwj ; is a zero-width joiner and doesn't add any extra characters. < div > is my new favorite as this displays on a seperate line but squashes multiples down to a single line break. (Remove spaces between < > and around the zwj) We only want to put data in for the "trues" there is no-way to a check all and then do a summary. The nested lists perform the value expression on each element of the list. Project Team - List all project users with their role: displayname=Project Team listdelimiter=< div > listmethod=nested(projectUsers).lists textmode=true type=iterate valueexpression=CONCAT({user}.{name}," - ",{user}.{role}.{name}) valueformat=HTML Milestone Name - Planned Completion Date - Condition - Task Status displayname=Milestone Tasks listdelimiter= listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF(ISBLANK({milestoneID}),"",CONCAT({milestone}.{name},"-",{plannedCompletionDate},"-",{progressStatus},"-"{status}," ")) valueformat=HTML IF(CONTAINS("LT",{progressStatus}),"Late",IF(CONTAINS("ON",{progressStatus}),"On Time",IF(CONTAINS("BH",{progressStatus}),"Behind","At Risk"))) IF(CONTAINS("NEW",{status}),"New",IF(CONTAINS("INP",{status}),"In Progress",IF(CONTAINS("CPL",{status}),"Complete",""))) Specific Roles Column, replace Art Director with your role: displayname=Art Director listdelimiter=‍ listmethod=nested(projectUsers).lists textmode=true type=iterate valueexpression=IF(CONTAINS("Art Director",{user}.{role}.{name}),{user}.{name}) valueformat=HTML Specific Task Date - Report on the Date for a specific task displayname=DTV Date listdelimiter=‍ listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF(CONTAINS("File to Requestor",{name}),{plannedCompletionDate}) valueformat=shortDate Current Task - Show which task is currently being worked in the project displayname=Current Task listdelimiter=< div > listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF({numberOfChildren}=0,IF({canStart},IF(CONTAINS("CPL",{status}),"",CONCAT({name}," ")))) valueformat=HTML Current Task - With Planned Completion Date valueexpression=IF({numberOfChildren}=0,IF({canStart},IF(CONTAINS("CPL",{status}),"",CONCAT({name}," - ",{plannedCompletionDate})))) listdelimiter=< div > listmethod=nested(tasks).lists valueformat=HTML displayname=Current Task textmode=true type=iterate Edit Custom Forms in a pop-up window: displayname=Click to Edit linkedname=direct namekey=category.name textmode=true tile.name=component.objectcategories valuefield=customFormsNames valueformat=HTML viewalias=category.name All Roles on a Project displayname=Job Roles listdelimiter= listmethod=nested(roles).lists textmode=true type=iterate valueexpression=CONCAT({name}) valueformat=HTML This can also be put on a task level report by adding project. In front of the collection name: 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 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("Airplane",{name}),"Yes ","") column.3.type=iterate column.3.listmethod=nested(roles).lists column.3.sharecol=true column.3.listdelimiter=< div > column.3.textmode=true column.3.valueformat=HTML column.3.displayname=Airplane column.4.valueformat=HTML column.4.displayname=Spacer column.4.textmode=true column.4.width=1 column.4.sharecol=true column.4.valuefield=< div > column.5.valueformat=HTML column.5.type=iterate column.5.listmethod=nested(Airplane).lists column.5.listdelimiter=< p > column.5.textmode=true column.5.valueexpression=IF(CONTAINS("Airplane",{role}.{name}),CONCAT({user}.{name}," ")) Melinda Layten Technical Project Manager - API and Integration Workfront -------------