Expand my Community achievements bar.

Join us LIVE in San Francisco on November 14th for Experience Makers The Skill Exchange. Don't miss out on this free learning event!

Pulling Task Completion Percentages Into Project Report

Avatar

Level 4
Hello, New to Workfront. Is it possible to pull the completion percentages for particular tasks into a project report? We have a particular type of project that has five defined stages set up as parent tasks. We have a report that shows each project of that type, and includes project owner, actual start date, planned completion date, actual completion date, and completion percentage. I can pull each stage's task completion percentage into a task custom form, but cannot figure how to pull those task form fields into either a project custom form, or a column in the report. Is this even possible? I know how to do it in a task report, but would like to have it in a project report. Thank you in advance. Shawn
3 Replies

Avatar

Level 10
hi Shawn, you're talking about referencing a collection in a report. It's quite a common question so I'll just quote two links below and let you have at it. this one is the workfront help site link which will teach you all about it https://experience.workfront.com/s/article/Referencing-Collections-in-a-Report-779518987 this one has sample code. Maybe something like the Milestone tasks section would be helpful for your case. "https://wf-pro.com/textmode/text-mode-views-collections/" https://wf-pro.com/textmode/text-mode-views-collections/ -skye

Avatar

Level 3

Hi Skye,

Thanks for posting this. I was wondering if you used the milestone text mode you referenced. I tried to use this on a project report and couldn't get it to populate as shown in the document. I attached a milestone path to the task I wanted to pull and updated the milestone ID to the one I created and the field is blank in my report. Any suggestions?

Here is the text mode I'm using:

displayname=Milestone Status

listdelimiter=

listmethod=nested(tasks).lists

textmode=true

type=iterate

valueexpression=IF({milestone}.{ID}="6176febd0041f28ae62ea31d75a3f31b",CONCAT({percentComplete},"%"," | ",{status}," | ",{plannedCompletionDate}),"")

valueformat=HTML

Avatar

Community Advisor

hi @Luke Ramlow‚

thanks for asking! My first suggestion is troubleshoot it. Troubleshooting is one of my favorite things to do (no lie, there's a certain grim satisfaction to thrashing out exactly what's wrong).

If you hate troubleshooting, I'll tell you right now my second suggestion is always to go to the helpdesk. They can direct you with steps on what to look for and basically walk you through the troubleshooting.

What does troubleshooting look like? For me, the first thing I would do is make a task report and filter on task milestone ID = 6176febd0041f28ae62ea31d75a3f31b

If your task report pulls up the exact task you added the milestone to, then move to the next step. If it does not, do not go past this step, because you have other things you need to fix -- like troubleshooting where that milestone went to. [this part you can definitely go to the helpdesk for.]

Once you have confirmed the milestone is attached, go back to your project report, and make sure you're just pulling in that one project and no others (i.e. filter on project name =___). This will speed up the load time and give you just one row to look at.

Now, change your valueexpression in the column to something as simple as possible. e.g. instead of

valueexpression=IF({milestone}.{ID}="6176febd0041f28ae62ea31d75a3f31b",CONCAT({percentComplete},"%"," | ",{status}," | ",{plannedCompletionDate}),"")

how about

valueexpression=CONCAT({milestone}.{ID})

If your project report spits out a set of milestone IDs, you know the column "works" and all you have to do is start building back your valueexpression, one step at a time. Every time you succeed, add something new. Every time you fail, take one step back and try something else.

Successive tests might look like this:

valueexpression=IF({milestone}.{ID}="6176febd0041f28ae62ea31d75a3f31b",CONCAT("yes"),CONCAT("no"))

valueexpression=IF({milestone}.{ID}="6176febd0041f28ae62ea31d75a3f31b",CONCAT({percentComplete}),CONCAT("no"))

valueexpression=IF({milestone}.{ID}="6176febd0041f28ae62ea31d75a3f31b",CONCAT({percentComplete},{status}),CONCAT("no"))

and so on. You'll see I put in a CONCAT "no" mostly for comic relief there. It can be disheartening getting an empty cell so this reassures me something's going on... just not what I would like.

Lastly, not that you asked... the listdelimiter line should include your most favorite delimiter. This doesn't hurt anything to be empty -- it just means your linebreaks are missing. In this particular column, since you're only pulling in one milestone, it doesn't even hurt to not have a linebreak. But if you continue down this road, you're eventually going to start pulling in things and then wonder if you can have a linebreak in between them. (If you don't have an opinion I think most people use <br>)