Normally, when running programs using the cron scheduler, you don't want any output to screen and certainly don't want any user input.
If you start the Progress session with the -b parameter then it runs in batch mode that doesn't have any user input or screen output at all and will fail if there is any.
I tend to not use the -b and redirect any output to a text file so that I can have a look at it and see if it has worked.
Also, I often write a line to a data log for that program that tells me when I have started and stopped the session correctly.
DEF STREAM s_log.
procedure p_write_to_log:
DEF INPUT PARAM inp_message AS CHAR NO-UNDO.
OUTPUT STREAM s_log to /usr/bin/logs/thisprogressprogram.log APPEND.
PUT STREAM s_log UNFORMATTED today " " string (time,"hh:mm:ss") " thisprogressprogram " inp_message skip.
OUTPUT STREAM s_log CLOSE.
end procedure.
run p_write_to_log ("STARTED").
run p_write_to_log ("FINISHED").
That way, you can see if the program starts on crontab at the correct time and finishes correctly. You can also use this to debug the code by putting log entries at key points in the code.
As to the crontab entry, I always use a script to start Progress programs, that way I can control DLC PROMSGS etc for each different instance. If you redirect any output to a text file, you can view it afterwards, e.g.
10 0 * * * /usr/bin/user/test.s > /usr/bin/logs/test.log
Obviously, make sure the output directory exists and you have permission to write to it.
I have found that Progress running from crontab normally works OK and once you get one working then you can use the same method for all you crontab Progress sessions.
Sorry, a bit long-winded, but hopefully it will help.
Simon