So, we recently 'solved' some display issues for the web (date formats) by applying the $nlslocale based on the locale of the client browser.
Unfortunately, this has re-introduced the issue which has prevented us from using $nlslocale since it's inception. Namely, when one uses a structure such as :-
activate servicename.operationname("ID=%%vNumeric%%%", vOutparams)
or
vInparams="ID=%%vNumeric%%%"
Which are rife through our system (parameters as strings to get past the old urr update issues), then pNumeric is passed formatted (with a thousands separator), and therefore any number over 999 is not passed to the service correctly.
I know I can 'fix' this by doing :-
vInparams = ""
putitem/id vInparams,"ID",vNumeric
activate servicename.operationname(vInparams,vOutparams)
or by using $concat or similar within the activate, but the problem is endemic to the system, and changing them all is not going to be easy or foolproof.
I was wondering, if I set the $nlslocale in the postActivate, rather than in the preActivate, would uniface fields still get formatted correctly?
Is there some other way of having it not apply to %% substitution and only to field display formats?
I'm going to try the postActivate and see what happens, wish me luck.
Iain