FETCH 
                         |  
                                      
                        
                                           
                            
  |  
                                      
                        
                                           
                            
  |  
                                      
                        
                                           
                            
  |  
                                      
                        
                                           
                            
  |  
                                      
                        
                                           
                                              operand1  [operand2
                                               [(parameter)]]
                                            |  
                                    
                     
This document covers the following topics:
For explanations 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