Can't say that i've seen much debate around this. Can you summarize the arguments for/against each one that you've found?
One obvious one is that when using Evaluate() that you can use EvaluationError()
That's just it; I've seen assertions that GetField ( ) is superior and should "always" be used, but never any real reason why. So I'm wondering if there's something I don't know here. (There's always something I don't know.)
Personally, I prefer Evaluate ( ) because of its flexibility (kinda like If vs. Case), and because (as you mentioned) you have EvaluationError ( ) available. But again, maybe I'm missing something.
I wonder if there would be a performance hit for Evaluate() vs GetField() if only because it is expected to do more internally.
All things being equal, I'd probably use Evaluate() in preparation for the day I needed to do more than just return the field contents. Same reason why I use Case() instead of If() even if there's only one condition; I might have to add another condition in the future.
Makes me wonder why FM introduced GetField() at all.
GetField() was 6.0
Evaluate() was 7.0
Isn't it for the "indirection"?
I don't know if the field referenced has a "calc", such as 2+2, is that "evaluated" by GetField(). Is that what this Thread if saying? - that there is no difference in the 'result' between Evaluate() and GetField()?
The EvaluationError() is handy. Would it not work on GetField() result as well?
Sorry, I haven't considered the whys and wherefores of these two beyond what's in the help.
Love the conversation by some high-thinking folks, though!!
Wouldn't a calculation field of Evaluate ( SortSelection ) work the same way, though?
This reads like arguments of whether to use IF or Case. Can't see any reason to lose much sleep over which are used as the differences (for referencing a single named field) are miniscule. It's true that you can use evaluation error, but if Evaluate ( "TableOccurrence::FieldName" ) doesn't return an expected value, it's kinda obvious in most cases why it didn't work.
Based on the help, they're a little different. I'm not 100% sure though. I rarely use GetField() in the context they're talking about.