Convertigo Public Knowledge base

Execute a sub Sequence asynchronously

Executing a sub sequence from a parent sequence, will wait for the sub sequence to finish before returning to the main sequence and execute following Steps.

To execute a sub sequence asynchronously you can use a SequenceJS Step with the following code:

var running = null; com.twinsoft.convertigo.engine.Engine.logContext.debug("Before creating runnable"); var r = new java.lang.Runnable() { run: function() { // prevent from deletion of variables in previous context var logRunnable = com.twinsoft.convertigo.engine.Engine.logContext; logRunnable.debug("Into runnable function"); // call sequence manually var __project = java.lang.reflect.Array.newInstance(java.lang.String, 1); __project[0] = "<ProjectName>" var __sequence = "<SequenceName>" var parameters = new java.util.HashMap(); parameters.put("__project", __project); parameters.put("__sequence", __sequence); parameters.put("<param1>", <value1>); var request = new com.twinsoft.convertigo.engine.requesters.InternalHttpServletRequest(context.httpServletRequest); var requester = new com.twinsoft.convertigo.engine.requesters.InternalRequester(parameters, request); running = true; requester.processRequest(); logRunnable.debug("Into runnable function after processRequest"); } }; new java.lang.Thread(r).start(); var cpt = 200; while(running != true && --cpt){ java.lang.Thread.sleep(50); }

To test success/failure response of the asynchronous sequence, use Set in session and Get from session Steps to transmit information between sequences.

(c) Convertigo 2023