![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: I am trying to define a symbol to perform the following command, however after the first time using the symbol it changes the symbols definition. How can I get this to work. Thanks Show symbol Test Test = "@sys$login:logout ''f$environment("PROCEDURE") " Show symbol Test Test = "@sys$login:logout TNA629: " The Answer is : You have unfortunately not indicated details of what you want to do, nor provided a complete reproducer. Without background and without details of the problem you are trying to solve, the OpenVMS Wizard has difficulty providing answers and alternatives. Note that the use of the double-leading-apostrophe notation within the quoted string causes the substitution to be performed immediately when the DCL command for the assignment is entered, and not later when the DCL command -- the one being created within the symbol -- is eventually evaluated. Also note that f$environment("PROCEDURE") provides the name of the DCL command procedure. If you wish to acquire the terminal device associated with the current process, use of the DCL lexical functions f$getdvi("TT","FULLDEVNAM") or f$getdvi("TT","DEVNAM") can be useful. If you want to pass a variable parameter to the target DCL procedure, one of the easiest ways can involve a DCL procedure "wrapper", a small DCL procedure that calls the target DCL procedure with the desired parameter(s).
|