The following three steps are performed only once for each integration object referenced in a DYNA tag, other than DYNASCRIPT, anywhere in the Web page, no matter how many times the integration object is referenced:
If IO is scoped to client AND IO for this client already exists Use existing IO (should still be connected) Else Create IO If IO has connection caching Get connection from connection cache Else Establish new network connection If new connection Play connect macro If connect macro fails or time exceeds timeout Return error
Insert "Extract" command after each "WaitForScreen" in data loop macro Start playing data loop macro Perform Macro Extract processing (below) each time Extract occurs If data loop macro fails or exceeds timeout Return error Else Return collected data items
Extract image of terminal screen and save it Look for the first defined Screen that matches terminal If Screen match occurs Look for the first defined Error (for that screen) that matches terminal If Error found If FATAL error Cancel currently playing macro Play error macro, if any Else if RECOVERABLE error If NOT playing screen macro Play error macro, if any Else Ignore error (*limitation of current product) Else Collect data items, if any If screen macro exists AND we're not already playing one Insert "Extract" command after each "WaitForScreen" in screen macro Start playing screen macro Perform entire Macro Extract processing each time Extract occurs When screen macro ends Evaluate screen macro iteration criteria based on last extracted screen If criteria are still met Start screen macro again
If IO is scoped to client Delay disconnect processing until IO lifetime expires Else // IO is scoped to page If connection caching enabled for IO Return connection to connection cache Else Play disconnect macro Drop network connection Delete IO
Handle same as Disconnect processing for IO scoped to page.