Hi folks,
NEW (and improved) as of March 5, 2025 3pm Mountain
With thanks to @Sven-iX for this thought inspiring post, I am pleased to share this solution to the years-old "detect copy" challenge using a derivative work of my Targeted Auditing technique:
IF(ISBLANK({DE:Project Genealogy})
,CONCAT("Created on ",{entryDate}," (",{referenceNumber},") as '",{name},"' by ",{enteredBy}.{name})
,IF(CONTAINS(CONCAT(" (",{referenceNumber},") "),{DE:Project Genealogy})
,{DE:Project Genealogy}
,CONCAT("Copied on ",{entryDate}," (",{referenceNumber},") as '",{name},"' by ",{enteredBy}.{name}," | ",{DE:Project Genealogy})
)
)
IF(LEFT({DE:Project Genealogy},6)="Copied","Copy","Original")
With the "cheater" caveat aside for today, I invite those of you wanting to detect (and prevent) Copied Projects to try this in your environments, and am interested in hearing how you make out.
Regards,
Doug
NEW
Genius @Doug_Den_Hoed__AtAppStore and so simple to set up!
This is very cool, points to Doug!! Thanks!
Very cool @Doug_Den_Hoed__AtAppStore Really dig the project genealogy! That's really slick. I offer the below so we don't have to rely on the project:name starting with "Copy of "
Here I use a 30 sec gap after creating the project. (I didn't replicate the genealogy)
Same caveat applies as above: If the data is cleared, we don't have anything to compare to. If anyone has ideas outside of Fusion, I'd love to hear them.
How it works:
2 custom fields
DE:projID
IF( $$OBJCODE="PROJ",IF(SUB($$NOW,{entryDate})/1000>=30,{ID},{DE:projID}))
and DE:project origin
IF(SUB($$NOW,{entryDate})/1000<30,IF(ISBLANK({DE:projID}), "Created","Copied"),IF(ISBLANK({DE:project origin}), "Unknown",{DE:project origin})
)
DE:projID waits for 30 seconds before replacing its value
During that window, DE:project origin does the checking and sets its value. The window is 30sec because the project copy will depend on # docs, tasks etc and could run long.
The logic is
Oooh! Very nice, @Sven-iX!
Your "30 second window" technique is indeed an Excellent Refinement: duly noted for future consideration!
Regards,
Doug
Views
Replies
Total Likes
Hi again folks,
After one colleague spotted a bug in my original version, and another colleague suggested some excellent improvements, I invite you to switch to the NEW (and improved) as of March 5, 2025 3pm Mountain version that I just updated on the main post, above, which fixes the bug and includes the Ref Num parenthetically and the name of the project in the Project Genealogy.
To switch to this NEW version (asap, I'd suggest, and noting that this is a "going forward" situation):
I am certain there are other Excellent Refinements that could be made to this technique -- including expanding the concept to any other object with a RefNum and custom data, as one of my colleagues pointed out -- so go nuts, have fun, and thanks for tuning in!
Regards,
Doug
CC: @KierstenKollins, @AdamCnote, @AmyReilly, @Sven-iX, and anyone who used my original version
Hi @Doug_Den_Hoed__AtAppStore , I tried to get this to work today but am running into a strange issue that I can't seem to figure out on my own. Any insight would be appreciated.
When I attempt to create a new project from a template that has a custom form with these fields on it, the fields are already populated with information in the project creation window - all relating to the project template being used to create the project. I'm assuming because of this, when I do actually create the project, the field then updates to incorrectly populate as being a copied project since the field wasn't blank upon project creation. Any thoughts about what I need to change?
Views
Replies
Total Likes
Views
Like
Replies
Views
Like
Replies
Views
Likes
Replies