I am experiencing an error when trying to use indirection to with a global node to set a variable. This can be seen by using %GFIND to search through a global with nodes containing control characters.
The following error occurs when using %GFIND:
%GTM-E-EXPR, Expression expected but not found
This is caused by the following code:
I FORMAT="X" S %NODE=%G_")" D @XTAG S X=@%NODE G PNTEND
There is a control character in the %NODE variable
%NODE="^XXXXX(""ABC"",""43"_$C(1)_""")" and when executing S X=@%NODE the error occurs.
Is this likely to be fixed? Am I supposed to be able to use indirection to set a variable equal to a global node containing a control character?
Thanks much.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
There is no known problem with control characters in nodes and/or indirection. The code segment above is basically XECUTing a statement that has the control character buried in a constructed literal string. The M standard (and GTM) disallows control characters in literal strings which applies in open code as well as XECUTEd code. If you restructure your code such that the part of the key with control characters is constructed in a local variable without using control chars in literals and use the local var as part of the key, then I believe it should work..
Steve
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
To follow up Steve's message, the %GFIND utility is not part of GT.M. There is a %GFIND that is part of the (non FOSS) Profile banking application. Please contact your FIS customer support channel if you need assistance with %GFIND.
Regards
-- Bhaskar
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am experiencing an error when trying to use indirection to with a global node to set a variable. This can be seen by using %GFIND to search through a global with nodes containing control characters.
The following error occurs when using %GFIND:
%GTM-E-EXPR, Expression expected but not found
This is caused by the following code:
I FORMAT="X" S %NODE=%G_")" D @XTAG S X=@%NODE G PNTEND
There is a control character in the %NODE variable
%NODE="^XXXXX(""ABC"",""43"_$C(1)_""")" and when executing S X=@%NODE the error occurs.
Is this likely to be fixed? Am I supposed to be able to use indirection to set a variable equal to a global node containing a control character?
Thanks much.
There is no known problem with control characters in nodes and/or indirection. The code segment above is basically XECUTing a statement that has the control character buried in a constructed literal string. The M standard (and GTM) disallows control characters in literal strings which applies in open code as well as XECUTEd code. If you restructure your code such that the part of the key with control characters is constructed in a local variable without using control chars in literals and use the local var as part of the key, then I believe it should work..
Steve
To follow up Steve's message, the %GFIND utility is not part of GT.M. There is a %GFIND that is part of the (non FOSS) Profile banking application. Please contact your FIS customer support channel if you need assistance with %GFIND.
Regards
-- Bhaskar