I am assuming you have LSF as the scheduler and looking at Flowmanager for the color coding. This is the most common scenario. LSF does not know of a warning condition; it only distinguishes between success (rc=0) and failure (rc>0). This is why many admins decide to reduce a warning completion code (rc=2) to rc=0. Otherwise a warning would potentially stall the progress of a flow. The color yellow in Flowmanager does not indicate a warning but merely the "initializing" or "waiting" state. In that common scenario a warning will implies success. Otherwise it will be interpreted as an error and the job will show up red.
The code to accomplish this is already present in the sasbatch.sh script as comments at the bottom of the file:
# Add this code to capture exit=1 (SAS warning) and make it exit=0
# Comment out exec line above and uncomment the code below to allow the return code to be captured
#"$SAS_COMMAND" -noxcmd -lrecl 32767 "$@" "${USERMODS_OPTIONS[@]}"
#rc=$?
#if [ $rc -eq 1 ]; then
# rc=0
#fi
#exit $rc
Follow the instruction to turn rc=2 into rc=0.
The difference between "completes successfully" and "ends with any exit code" is what it says: a dependent job will either run only when its predecessor end with rc=0 or will always run when the predecessor ends regardless of its return code.
The condition "Ends with exit code" allows for user defined return codes (using the SAS abort statement) to control specific paths through the flow.
The value for "Runs more than" will trigger a dependent job only when the predecessor runs longer than a specific amount of time. This could help for example when you want to be alerted for unusually long running jobs.
SAS and scheduling docs are here.
LSF is extensively documented in this IBM Knowledge Center doc .
Keep in mind that the LSF software that comes with SAS is somewhat limited compared to the full functionality you would buy from IBM.
Hope this helps,
- Jan.