Synopsis
A subroutine in your REXX script or another REXX script which you called as a subroutine and expected a return from, did not return any data. For example, here we call my_func and expect a return which we assign to my_var:
my_var = my_func()name is that subroutine or script's name.
Cause
You're calling a subroutine in your script, you forgot to return some data by specifying it after the RETURN keyword for that subroutine.
Cure
Rewrite your subroutine to return data.
Cause
You're calling another REXX script, and in that other REXX script, you forgot to return some data by specifying it after the RETURN keyword.
Cure
Rewrite the other REXX script to return data.
Cause
You didn't want to do anything with the return value from a REXX script or subroutine, but you forget to use the CALL keyword.
Cure
If you wish to "throw away" the data return from a subroutine, use the CALL keyword. Here, we throw away the return of my_func:
CALL my_funcAlternately, you can use the instruction ADDRESS NULL (once, at the start of your script) to automatically toss away any returns that you don't use from functions, without needing to otherwise use CALL. Reginald's Administration Tool also allows setting this for all scripts you run. (But be sure that no scripts you run will assume their commands are automatically directed to the operating system shell, if you utilize the Administration Tool's setting).