You could always catch the error within your stored procedure so that the process would not be aborted in a half way. You log the errors to a log table...
If the global variable is not working for you, you could set the value into a table, so that the parent package could look up the vlaue there. Does it work...