Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For error handling at workflow level using JS7 - Workflow Instructions see JS7 - How to handle job errorsapply error handling.

Download workflow implementing JavaScript error handling (upload .json): pdJavaScriptErrorHandling.workflow.json

...

Optionally notifications for warnings are sent by mail if configured by JS7 - Notification.

Terminating Job successfully with warning due to output to stderr

This scenario applies to a situation when an unsolicited error occurs that results in output to to the stderr channel, for details see JS7 - How to detect job errors and warnings

  • No exception is raised in JavaScript, but some statement fails and writes to stderr. In this situation the job continues and might terminate successfully.
  • The JS7 - Job Instruction offers the Warn on output to stderr option: if any output in the stderr channel is detected then the job is considered to terminate with warnings.

In the Configuration->Inventory view users specify the related option from the Job Options tab like this:

Image Added


A job that writes output to the stderr channel can be implemented like this:

Code Block
languagejs
titleExample for implementation of JS7Job with JavaScript
linenumberstrue
class JS7Job extends js7.Job {

	processOrder(js7Step) {
      	// do some stuff
      
        js7Step.getLogger().error('some error occurred');
		return;
    }
}

Explanation:

  • No error is raised in this example. Instead the getLogger().error() method is used to write output to stderr.
  • Similarly any other JavaScript statements can create output in the stderr channel.

Terminating Job with error

The typical error handling for JavaScript applies:

...

Code Block
languagejs
titleExample for implementation of JS7Job with JavaScript
linenumberstrue
class JS7Job extends js7.Job {

	processOrder(js7Step) {
        try {
            js7Step.getLogger().info( '.. try: do some stuff')
			throw 'error occurred, exiting job';
        } catch (e) {
          	js7Step.getLogger().info('.. catch: do some error handling')
            throw e;
        } finally {
          	js7Step.getLogger().info('.. finally: do some cleanup such as closing database connections')          
        }
    }
}

Terminating Job with error due to output to stderr

This scenario applies to a situation when an unsolicited error occurs that results in output to to the stderr channel, for details see JS7 - How to detect job errors and warnings

  • No exception is raised in JavaScript, but some statement fails and writes to stderr. In this situation the job continues and might terminate successfully.
  • The JS7 - Job Instruction offers the Fail on output to stderr option: if any output in the stderr channel is detected then the job is considered being failed.

In the Configuration->Inventory view users specify the related option from the Job Options tab like this:

Image Added


A job that writes output to the stderr channel can be implemented like this:

Code Block
languagejs
titleExample for implementation of JS7Job with JavaScript
linenumberstrue
class JS7Job extends js7.Job {

	processOrder(js7Step) {
      	// do some stuff
      
        js7Step.getLogger().error('some error occurred');
		return;
    }
}

Explanation:

  • No error is raised in this example. Instead the getLogger().error() method is used to write output to stderr.
  • Similarly any other JavaScript statements can create output in the stderr channel.

Further Resources

...