One apparent limitation of using ExSQL() in the separation model is that you can’t use unrelated tables in a field definition. So you’d need to related all your tables to one another.
I just discovered that you can bypass that limitation simply by wrapping your statement in a Let() and declaring a variable that includes wrapping a field in the GetFieldName() function.
So the expression:
Let( field = unrelated::table ; field )
returns an error.
Let( gfn = GetFieldName ( unrelated::table ) ; field = unrelated::table ; field )
It doesn’t even have to be a field from an unrelated table. Interesting and hopefully helpful.