Returns the name of the most closely nested procedure as a character-string. PROCNAME() can be used equivalently.
PROCEDURENAME();or
PROCNAME();
Example 1:
myprog: proc options(main);
dcl procedurename builtin;
call sub1(procedurename());
sub1: proc( caller);
dcl caller char (*);
put skip list('The calling procedure is: ' || caller);
/* Note: procname() is equiv. of procedurename() */
put skip list('The current procedure is: ' || procname());
end;
end;
This program prints:
The calling procedure is: MYPROG
The current procedure is: SUB1
Example 2:
/* Since Open PL/I does not support Packages, the name of the outermost */
/* procedure is aways returned for the PACKAGENAME() built-in. */
Micro: proc options(main);
call Focus();
Focus: proc;
put skip list (packagename() || ' ' || procedurename() );
end;
end;
will print:
MICRO FOCUS