Skip to main content
Doug_Den_Hoed_AtAppStore
Community Advisor
Community Advisor
February 25, 2019
Solved

Targeted Auditing Proof Of Concept

  • February 25, 2019
  • 32 replies
  • 9478 views

This morning, I did a proof of concept of "Targeted Auditing" and would like to share it with the Community.

I thought of the idea years ago but never made time for until my unsatisfying response to this thread twigged my memory. As below, my example records the changes to a particular "Target" custom text parameter in its "Target History" custom calculated parameter counter part...and to my delight, actually works!

The formula turned out to be why-didn't-I-try-this-sooner? simple:

LEFT(IF(LEFT(Target History,LEN(IF(ISBLANK({Target}),"-",{Target})))={Target},Target History,CONCAT(IF(ISBLANK({Target}),"-",{Target})," (",$$NOW,") | ",{Target History})),2000)

And does the following:

- limits the Target History to the most recent 2000 characters (staying within the Workfront database limit)

- checks if the current Target value (treating it as "-" if it is blank) matches the front of the Target History value

- if they match, leaves the Target History "as is"

- if they don't match, replaces the Target History with the (latest) Target, followed by the current date, a vertical bar, and the previous Target History, which (similarly) preserves the previous value(s) and the time(s) entered

I've included a screenshot below so you can visualize how it works.

There are lots of other interesting bells and whistles you could add to what you capture (e.g. who, the time of day, etc.), so for those of you who find this of use and do make any cool enhancements, I encourage you to share them under this thread.

Have fun!

Regards,

Doug

Best answer by Doug_Den_Hoed_AtAppStore

Why, thank you, Heather. It was a satisfying one to finally figure out.

As for your excellent Status-in-English question, I'd suggest the crude but effective method of using a series of IF statements to transform each "Status" (e.g. CUR) to its appropriate counterpart (e.g. "Current") throughout the formula.

The pattern looks like this, being careful to let any unknown (future) Status drop out as itself in the final else:

IF(Status="CUR","Current",IF(Status="PLN","Planned",IF(Status=...,...,Status)))

Regards,

Doug

32 replies

MoniqueEvans
Community Advisor and Adobe Champion
Community Advisor and Adobe Champion
April 29, 2026

@Doug_Den_Hoed_AtAppStore Hey Doug! I completely forgot that the posts and comments from November & December did not sync to the new ExL Community. Do you happen to have the updated text mode code that we came up with in December to avoid this from updating with null values?

Doug_Den_Hoed_AtAppStore
Community Advisor
Community Advisor
April 30, 2026

Hi ​@MoniqueEvans ,

 

That’s unfortunate, and although I remember corresponding, I don’t appear to have any notes of your question or my answer saved locally.

 

Is it worth starting over?

 

Regards,

Doug

MoniqueEvans
Community Advisor and Adobe Champion
Community Advisor and Adobe Champion
May 11, 2026

I think it’s worth it, only because I have a vested stake in this one. We’ve been using the field for years but last fall someone flagged to me that the field was giving date stamps every time someone updated the project even if they did not touch the comment field. Resulting in the field looking like the screenshot below. From what I recall you were able to come up with a small tweak to the text mode that would not include these but I can’t remember what it was. Having one field with this information is still valuable and can be used in ways that journal entry reports cannot.