Expand my Community achievements bar.

How can I pull a report to show projects that do not contain a task with "Invoice" in the name

Avatar

Level 2
What is the best way to pull a report to show projects that do not contain a task with "Invoice" in the name. I've been spinning in circles trying to create this report. Many thanks in advance! -Marshall Marshall Comden Plantronics, Inc.
Topics

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

6 Replies

Avatar

Level 10
Hi Marshall, Are you referencing the " Referencing a Collection in the Filter of a Report " section of this article as you build this report? https://support.workfront.com/hc/en-us/articles/115000586214 Narayan Raum Senior System Admin, Solution Architect & Delivery Lead of Workfront. Service & Business Manager. COE Lead. AVP Enterprise Data Governance Execution (EDGE) SunTrust Bank

Avatar

Level 2
Hi there, yes this is very helpful, however it still is not giving me exactly what I am looking for. I have the following in my text mode, but for some reason, there are still projects containing a task titled "Invoice" in the report. actualStartDate=2018-04-01T07:45:00:000 actualStartDate_Mod=gte name=PPP name_Mod=cinotcontains ownerID=5880fb780069947db6fd9b2b56c79d67 ownerID_Mod=in tasks:name=Invoice tasks:name_Mod=notcontains templateID=59d54df80140c1294a3b6817b63b6014 templateID_Mod=in Any ideas on what is going on? Thanks! Marshall Marshall Comden Plantronics, Inc.

Avatar

Level 4
Hi Marshall, This discussion right here will help you better understand: "https://community.workfront.com/discussions/community-home/digestviewer/viewthread?GroupId=295&MessageKey=ae380a83-04c0-461f-b640-8e3666cc7025&CommunityKey=ccf3381b-a473-4ef2-9f81-4dd3244cf522&tab=digestviewer">https://community.workfront.com/discussions/community-home/digestviewer/viewthread?GroupId=295&Messa... You need to use the $$EXISTS operator to calculate through all the tasks and find where they do NOT exist. For you the code looks like: EXISTS:a:$$EXISTSMOD=NOTEXISTS EXISTS:a:$$OBJCODE=TASK EXISTS:a:tasks:name=Invoice EXISTS:a:tasks:name_Mod=cicontains EXISTS:a:projectID=FIELD:ID ................combined with the rest of your logic................... You can see there it will look through the tasks for one with "Invoice" in the name and if it finds one flip to false since we have EXISTSMOD=NOTEXISTS. Melinda Layten has posted a plethora of discussions about the EXISTS operator and it's a valuable exercise to go through them and try 'em yourself. ------ As an aside, too, I'd be careful with relying on task name contains invoice. Task name is easily changed by users in the system. Depending on your use case, it's probably better to have a custom field that can be managed only by a set group of people that identifies a task as being an "Invoice" type task. But that's maybe another discussion. James Bender Jackson/JTS

Avatar

Level 10
Booleans. You gotta love them. Or hate them. That's how they work. Marshall, I suspect what's happening is this (buckle up): Project A has one Task called "Invoice" Project B has two Tasks called "Send Invoice", and "Get Paid" You're asking for Projects with Tasks that do not contain the case insensitive phrase "Invoice" Since Project A's "Invoice" Task does NOT meet your criteria, Project A will not be returned Since Project B's "Send Invoice" Task does NOT meet your criteria, Project B would also not be returned...BUT since Project B's "Get Paid" Task DOES meet your criteria (dag nab it!) Project B DOES get returned Instead, I'd suggest you take a different approach. Create a Project report filtered to all the ones you care to check that MIGHT be missing an Invoice Task Add a column that reaches into the Tasks collection of each Project and lists (only) those that start with "Invoice" Run the report, and scan that column: an empty cell means the Project is missing an Invoice Task I've included a sample of the textmode for such a column below. Regards, Doug displayname=Invoice Tasks listdelimiter=‍ listmethod=nested(tasks).lists listsort=nested(tasks).string(name) querysort=tasks.name textmode=true type=iterate valueexpression=IF(LEFT({name},7)="Invoice",{name},"") valueformat=HTML Doug Den Hoed - AtAppStore Got Skills? Lend a hand! https://community.workfront.com/participate/unanswered-threads

Avatar

Level 9
May not fit your use case 100% -- but if the task - INVOICE is added via a template(s). I would try creating a Milestone path with a single listing called Invoice - Task... and pair it with your task line entry. You should then be able to create a Task report that filters for the Milestone name created above. JohnSeitz ESPN

Avatar

Level 10
you have a line in your code that says " tasks:name_Mod=notcontains" -- does this need to say "tasks:name_Mod=cinotcontains"? -skye