I'm trying to find the part one - Tracking Data Changes - Audit Log - 1 of 2

Can anyone help me?

Thanks for your response, that helps! Is there any out of the box utility to deploy cache.dat or code?

What would be your recommended deployment process/aaproach? using manifest?

Agreed. Default collation for String is SQLUPPER. You can't define the collation of a index if its defined as Unique as below. Below is prohibited, but you can mention any collation on property instead of specifying in Index.

Index ValueIndex On UniqueStringValue As SQLUPPER [ Unique ];

On the other hand, I mentioned another solution to the actual problem above. Please review/comment on that.

Yes, if you have idkey in index, that has to be Exact collation.

But I can tell you one way around it, lets see if you like it. Its tricky though.

Property UniqueStringValue As %String;
Property CopyUniqueStringValue As %String [ SqlComputeCode = { set {CopyUniqueStringValue}={UniqueStringValue}}, SqlComputed, SqlComputeOnChange = UniqueStringValue ];
Index ValueIndex On UniqueStringValue [ IdKey, Unique ];
Index ValueIndex2 On CopyUniqueStringValue As SQLUPPER;

Now, if you do ValueIndex2Exists("hello") or ValueIndex2Exists("Hello") or ValueIndex2Exists("hELLO") you will find match. This will also work on SQL as well if you do - 'Where CopyUniqueStringValue=?'.

This should solve your purpose though, but the space will be duplicated for same index though.

Eduard, if I have understood this correctly,  this is going to only for %Library.DynamicObject right? Not for any other classes, correct? Your posts title looks generic, is that true?