Expand my Community achievements bar.

Want a report that shows all tasks without predecessor relationships

Avatar

Level 3
Hello all, I have several projects with tasks that require cross-project predecessors and I want to create visibility on how many tasks are broken per project. I need a report that shows all tasks containing 'Link to' in the name that do not yet have their predecessor. Can anyone help? I'm stuck on the filter to use. Thank you :) -Linden
Topics

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

17 Replies

Avatar

Level 2
Hi Linden, If I understand you correctly, when you have tasks with "Link To" in the name, they should also have a cross project predecessor? What you're looking for is tasks where "Link To" is in the name, but no predecessor is set? If that's the case, use the following filters: Task > Name >> Contains > Link & Predecessors > ID >> Is Blank Cheers! Heather

Avatar

Level 10
Heather! You’re working the forum? Woooo!

Avatar

Level 2
I just like to jump in and help where I can :)

Avatar

Level 3
Heather, You understand me perfectly and thank you for the information below. I just tried those filters and my report is still returning no results. I tried just looking for tasks containing ‘link’ and over 1000 tasks appear (which is good) but when I add the ‘Predecessors > ID >> Is Blank’ they all disappear. Not sure what I am doing wrong here? Linden

Avatar

Level 10
Hi: This is a difficult one, in my opinion. You can’t search for something that isn’t there (predecessor ID is blank). The task reference number is the primary key, and acts as a foreign key in the predecessor table. If there are no predecessors for a particular task, then there will be no entries in the predecessor table - in other words, the task reference number would not be found in the predecessor table. You would have to search the Predecessor table for all records where the specific task reference number is not found. I know how to do that through SQL, but not using WorkFront’s reporting engine. WorkFront hides the join behind the scenes in the reporting tool, which is a terribly convenient thing most times. I looked through the Task table and don’t see any attribute that I think tells me there are predecessors. I can’t tell from the task table/object whether it has predecessors or not. The solution might take some text mode work. The obvious answer, to me, is get a snapshot of your database from the AtAppStore.com, drop it into MS Access, and then you can look for the absence of a particular task reference number in the Predecessor table. You can do a lot of other nifty things with that snapshot, too. Sorry, I can’t figure this one out either. Thanks, Eric

Avatar

Level 2
Edited: Apologies, I had forgotten that we were looking for tasks that did not yet have their predecessor filled out. I'm going to keep looking at this to see if we can make it work. Try this text in your filter for the task report: name=Link name_Mod=cicontains predecessors:isCP=true predecessors:isCP_Mod=eq Cheers!

Avatar

Level 10
Hi: Heather - Can you kindly provide the plain English explanation of what each line in your text mode example does? Thanks, Eric ________________________________

Avatar

Level 2
Okay, I think this should work. EXISTS:b:$$EXISTSMOD=NOTEXISTS EXISTS:b:$$OBJCODE=PRED EXISTS:b:successorID=FIELD:ID name=Link name_Mod=cicontains

Avatar

Level 2
Sure! name=Link name_Mod=cicontains These two lines work together to find any task name that contains Link predecessors:isCP=true predecessors:isCP_Mod=eq This is referencing any task where the predecessor is cross project ( isCP ) For the corrected one: EXISTS:b:$$EXISTSMOD=NOTEXISTS EXISTS:b:$$OBJCODE=PRED EXISTS:b:successorID=FIELD:ID What we're doing here is a bit more complex, and to be honest, I'm not sure I can explain it in plain english but I'll try. Since predecessor cannot be called upon without a predecessor being entered, we cannot use Predecessor >> isBlank as I originally hoped. Instead, we are looking for all tasks that there is not a successor to predecessor connection. To break it down, it's easiest to look at it in reverse: EXISTS:b:successorID=FIELD:ID Compares the field successorID on the task table to the ID field on the predecessor table. EXISTS:b:$$OBJCODE=PRED Specifies that we're looking at the predecessor table EXISTS:b:$$EXISTSMOD=NOTEXISTS This is calling at the task level to specify that the previous lines ( predecessor to successor relationship ) do not exist.

Avatar

Level 10
Heather, nicely done. Gold Star for your refrigerator today! What confused me was looking for tasks where the name has the letters “Link” in it. That is the name that the person typed in. When I create predecessors, I don’t put the word Link in it. Going backwards from the successor is clever. Nice. What am I missing? Thanks, Eric

Avatar

Level 2
Thanks! It was quite a puzzle to solve! The reference for finding tasks where ''Link'' exists was specifically for Linden. It sounds like they enter link into the name of tasks that in the future, will have a cross project predecessor. The way I understood her question was that some of those tasks where link was in the name, did not have the predecessor set, which is why she needs this report filter.

Avatar

Level 3
Heather, Thank you SO much for all of your help. I appreciate it ‚ò∫ -Linden

Avatar

Level 10
Great work Heather....another thing I didn't know was possible! Thanks for sharing....

Avatar

Level 2
Hi Heather: I have a similar case but I don't know how to make: I have more than 80 projects, and I had set milestone path which include 5 milestones. Let's assume milestone name is "milestone A","milestone B"..."milestone E". Now I want to run a report to list the projects which didn't config any task to "milestone C". Could you please help me to see how to use report->filter to make it? In Reply to Heather Clements:
Sure! name=Link name_Mod=cicontains These two lines work together to find any task name that contains Link predecessors:isCP=true predecessors:isCP_Mod=eq This is referencing any task where the predecessor is cross project ( isCP ) For the corrected one: EXISTS:b:$$EXISTSMOD=NOTEXISTS EXISTS:b:$$OBJCODE=PRED EXISTS:b:successorID=FIELD:ID What we're doing here is a bit more complex, and to be honest, I'm not sure I can explain it in plain english but I'll try. Since predecessor cannot be called upon without a predecessor being entered, we cannot use Predecessor >> isBlank as I originally hoped. Instead, we are looking for all tasks that there is not a successor to predecessor connection. To break it down, it's easiest to look at it in reverse: EXISTS:b:successorID=FIELD:ID Compares the field successorID on the task table to the ID field on the predecessor table. EXISTS:b:$$OBJCODE=PRED Specifies that we're looking at the predecessor table EXISTS:b:$$EXISTSMOD=NOTEXISTS This is calling at the task level to specify that the previous lines ( predecessor to successor relationship ) do not exist.

Avatar

Level 10
Hi Ming, I don't think it is possible to filter a collection for items which don't match a certain name. You could do a CONTAINS to show 'false' if the milestone name is not 'Milestone C'. Otherwise, I think it would be best if you filter the results for those which DO contain Milestone C. It will then be apparent (because they're blank) those projects which don't contain Milestone C. The text-mode for this on a Project view/report column is: displayname=Contains Milestone C listdelimiter= listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF(CONTAINS("Milestone C",{milestone}.{name})=true,{milestone}.{name},"") valueformat=HTML Hope this helps. Cheers, David

Avatar

Level 2
Hi David: Thanks for your advise, your way is exactly same as what I did for now as a workaround. Because I saw Heather points a new syntax "$$EXISTSMOD=NOTEXISTS", so I am wondering how I can use that to implement this purpose. Rds, Ming

Avatar

Level 2
Hi Heather, The text below works well thank you for providing: EXISTS:b:$$EXISTSMOD=NOTEXISTS EXISTS:b:$$OBJCODE=PRED EXISTS:b:successorID=FIELD:ID It includes all type of predecessors and not only the cross-project predecessors. Is there a way to show tasks when only the cross-project predecessors are missing? I would like to see All tasks that don't have a cross-project predecessor as predecessor including the ones that contain a predecessor within the same project. Thanks, Yannick Yannick Seifert WebMD Professional