FETCH
|
|
|
|
|
operand1
[operand2
[(parameter)]] |
This document covers the following topics:
For an explanation of the symbols used in the syntax diagram, see Syntax Symbols.
Related Statements: CALL | CALL FILE | CALL LOOP | CALLNAT | DEFINE
SUBROUTINE | ESCAPE | FETCH
| PERFORM
Belongs to Function Group: Invoking Programs and Routines
The FETCH statement is used to execute a Natural object program written as a
main program. The program to be loaded must have been previously stored in the Natural
system file with a CATALOG or STOW command. Execution
of the FETCH statement does not overwrite any source program in the Natural
source work area.
For Natural RPC: See Notes on Natural Statements on the Server (in the Natural RPC (Remote Procedure Call) documentation).
In addition to the parameters passed explicitly with FETCH, the fetched
program also has access to the established global data area.
The FETCH statement may cause the internal execution of an END TRANSACTION statement based on the
setting of the Natural profile parameter OPRB (Database Open/Close Processing) as set by
the Natural administrator. If a logical transaction is to span multiple Natural
programs, the Natural administrator should be consulted to ensure that the
OPRB parameter is set correctly.
Operand Definition Table:
| Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1
|
C | S | A | yes | no | |||||||||||||||
operand2
|
C | S | A | G | A | U | N | P | I | F | B | D | T | L | G | yes | yes | |||
Syntax Element Description:
| Syntax Element | Description |
|---|---|
REPEAT
|
REPEAT Option:
The |
RETURN
|
RETURN Option:
Without the specification of If a program is invoked with |
operand1
|
Program Name:
The name of the program module (maximum 8 characters) can be specified as an alphanumeric constant or the content of an alphanumeric variable of length 1 to 8. The case of the specified name is not translated. Natural will attempt to locate the program in the library currently active at
the time the The program name may contain an ampersand (&); at execution time, this
character will be replaced by the one-character code corresponding to the
current value of the system variable |
operand2
|
Passing Parameter Fields:
The The parameter fields can be read by the If more parameters are passed than are read by the next Note |
parameter
|
Date Format:
If |
** Example 'FETEX1': FETCH (with parameter)
************************************************************************
DEFINE DATA LOCAL
1 #PNUM (N8)
1 #FNC (A1)
END-DEFINE
*
INPUT 10X 'SELECTION MENU FOR EMPLOYEES SYSTEM' /
10X '-' (35) //
10X 'ADD (A)' /
10X 'UPDATE (U)' /
10X 'DELETE (D)' /
10X 'STOP (.)' //
10X 'PLEASE ENTER FUNCTION: ' #FNC ///
10X 'PERSONNEL NUMBER:' #PNUM
*
DECIDE ON EVERY VALUE OF #FNC
VALUE 'A', 'U', 'D'
IF #PNUM = 0
REINPUT 'PLEASE ENTER A VALID NUMBER' MARK *#PNUM
END-IF
VALUE 'A'
FETCH 'FETEXAD' #PNUM
VALUE 'U'
FETCH 'FETEXUP' #PNUM
VALUE 'D'
FETCH 'FETEXDE' #PNUM
VALUE '.'
STOP
NONE
REINPUT 'PLEASE ENTER A VALID FUNCTION' MARK *#FNC
END-DECIDE
*
END
** Example 'FETEXAD': FETCH (called by FETEX1) ************************************************************************ DEFINE DATA LOCAL 1 #PERS-NR (N8) END-DEFINE * INPUT #PERS-NR * WRITE *PROGRAM 'Record added with personnel number:' #PERS-NR * END
** Example 'FETEXUP': FETCH (called by FETEX1) ************************************************************************ DEFINE DATA LOCAL 1 #PERS-NR (N8) END-DEFINE * INPUT #PERS-NR * WRITE *PROGRAM 'Record updated with personnel number:' #PERS-NR * END
** Example 'FETEXDE': FETCH (called by FETEX1) ************************************************************************ DEFINE DATA LOCAL 1 #PERS-NR (N8) END-DEFINE * INPUT #PERS-NR * WRITE *PROGRAM 'Record deleted with personnel number:' #PERS-NR * END
SELECTION MENU FOR EMPLOYEES SYSTEM
-----------------------------------
ADD (A)
UPDATE (U)
DELETE (D)
STOP (.)
PLEASE ENTER FUNCTION: D
PERSONNEL NUMBER: 1150304
Page 1 05-01-13 11:58:46
FETEXDE Record deleted with personnel number: 1150304