Hi - this was a fun challenge to end my week! I think I got it figured out for you using an EXIST filter. Hope it helps you.
EXISTS:1:$$OBJCODE=ASSGN
EXISTS:1:projectID=FIELD:ID
EXISTS:1:assignedToID=$$USER.ID
EXISTS:1:assignedToID_Mod=in
EXISTS:1:task:status=CPL
EXISTS:1:task:status_Mod=notin
EXIST filters let you jump an object type (so in this case I wanted to do Assignment filters on a Project report (skipping the task hierarchy). It is also great when you are moving down the hierarchy instead of up.
Here is my little cheat sheet when you want to move down the hierarchy. Hopefully it makes sense. It relies on the API Explorer (https://one.workfront.com/s/api-explorer)
Moving Down The Hierarchy
This is for reports where you want to apply a filter based on a many-to-one relationship (Like portfolios that have projects Anthony owns)
EXISTS:1:$$OBJCODE=[Insert Object Code for the Collection]
EXISTS:1:[Collection Object Type's field that matches current object]=FIELD:[Current Object Type's field that matches collection object]
EXISTS:1:[Field on Collection being filtered]=[Condition]
- Tip: Start to create a report on the collection's object type level (in this case a Project report) applying the filters you want, switch to text mode, and then copy the filter. Then paste it in your actual report (in this case a Portfolio report) and add EXISTS:1: in front of each line.
Based on my Example:
EXISTS:1:$$OBJCODE=PROJ
EXISTS:1:portfolioID=FIELD:ID
EXISTS:1:ownerID=532376910024d8443277c3e46ed5330a
EXISTS:1:ownerID_Mod=in