APPX is the Premier Development and Runtime Environment for Business Application Software
(Answer) (Category) FAQ's - APPX Software, Inc. : (Category) Trash :
656 - Scoping Rules - Subprocess/Related/Detached
'Scoping' refers to what workfields and temporary files (both disk and memory) are available to a given process.

There are three levels of Scoping: SUBPROCESS, RELATED, and DETACHED. Every workfield and temporary (disk or memory) file is defined at one of these three levels of scoping.

The same three scoping levels define every 'child' invocation. For example:

Menu children are typically (and by default) defined as DETACHED invocations. Job-step children are typically (and by default) defined as RELATED invocations.

Parent-Child invocations between two (for example INPUT) processes are typically (and by default) defined as SUBPROCESS invocations. Direct ILF verb invocations (ex: ILF verb 'INPUT') are by default defined as DETACHED invocations.

DETACHED workfields/tempfiles survive DETACHED process invocations. RELATED and SUBPROCESS level files/fields don't. DETACHED workfields/tempfiles only reinitialize when the user exits APPX.

DETACHED and RELATED workfields/tempfiles survive RELATED invocations. SUBPROCESS level files/fields don't.

DETACHED, RELATED, and SUBPROCESS workfields/tempfiles all survive SUBPROCESS level invocations.

For example, if a DETACHED workfield or tempfile is referred to by a DETACHED child invocation, parent and child share that workfield/tempfile.

But if a RELATED or SUBPROCESS workfield/tempfile is referred to by a DETACHED child, the child creates a new copy of that workfield/tempfile.

Record buffers, field contents (including Working Storage fields), and file pointers are all available transparently through a SUBPROCESS invocation. They are not maintained for RELATED or DETACHED process invocations.

Exception #1:
Query(Setup) inherits inbound workfields/tempfiles according to normal scoping rules. But it passes workfields/tempfiles only to Query(Runtime) execution.

Query(Runtime) inherits inbound workfields/tempfiles only from its associated Query(Setup). It can pass nothing to any subsequent JOB step. The exception to this is that --- PROCESS CODE can be used to pass limited information into and out of Query processes. But --- PROCESS CODE should only be used for SPEED II compatibility issues. See ECR #2805 for further explanation.

Exception #2:
No workfield or tempfile information can 'come back' from a JOB step whose 'Sep Tsk?' (Separate Task) flag is set to 'Y'. This is because a JOB step process that could be spawned into an independent thread has no facility for communicating back to the original parent process, save by means of a disk/permanent file. See How APPX spawns Background processes for further discussion.

[Append to This Answer]
2010-May-20 12:29am
Previous: (Answer) 172 - The Pre-Display/Verify Event Point
Next: (Answer) 602 - APPX Keys (TABLES)
This document is: http://board.appx.com/cgi-bin/fom.cgi?file=113
[Search] [Appearance]
This is a Faq-O-Matic 2.719.
Copyright 2003 by APPX Software, Inc. All rights reserved.