| BACKOUT[TRANSACTION] | 
This document covers the following topics:
For explanations of the symbols used in the syntax diagram, see Syntax Symbols.
Related Statements: ACCEPT/REJECT |
                  		  AT BREAK |
                  		  AT START OF DATA |
                  		  AT END OF DATA |
                  		  BEFORE BREAK PROCESSING |
                  		  DELETE |
                  		  END TRANSACTION |
                  		  FIND |
                  		  GET |
                  		  GET SAME |
                  		  GET TRANSACTION DATA |
                  		  HISTOGRAM |
                  		  LIMIT |
                  		  PASSW |
                  		  PERFORM BREAK PROCESSING
                  		  | READ |
                  		  RETRY |
                  		  STORE |
                  		  UPDATE
Belongs to Function Group: Database Access and Update
The BACKOUT TRANSACTION statement is used to back out
                  			 all database updates performed during the current logical transaction. This
                  			 statement also releases all records held during the transaction.
               
The statement is executed only if a database transaction under
                  			 control of Natural has taken place. For which databases the statement is
                  			 executed depends on the setting of the profile parameter
                  			 ET (execution
                  			 of END/BACKOUT TRANSACTION statements):
               
If ET=OFF, the statement is executed only for the
                        				  database affected by the transaction.
                     
If ET=ON, the statement is executed for all
                        				  databases that have been referenced since the last execution of a BACKOUT
                           				  TRANSACTION or END
                              				  TRANSACTION statement.
                     
If the user interrupts the current Natural operation with a
                  				terminal command (command %% or
                  				CLEAR key), Natural
                  				issues a BACKOUT TRANSACTION statement.
               
See also the terminal command %% in the Terminal
                     				Commands documentation.
               
For additional information on the use of the transaction backout feature, see the sections Database Update - Transaction Processing and Backing Out a Transaction in the Programming Guide.
This statement is not available with Entire System Server.
** Example 'BOTEX1': BACKOUT TRANSACTION                                
**                                                                      
** CAUTION: Executing this example will modify the database records!    
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 NAME                                                                
  2 DEPT                                                                
  2 LEAVE-DUE                                                           
  2 LEAVE-TAKEN                                                         
*                                                                       
1 #DEPT (A6)                                                            
1 #RESP (A3)                                                            
END-DEFINE                                                              
*                                                                       
LIMIT 3                                                                 
INPUT 'DEPARTMENT TO BE UPDATED:' #DEPT                                 
IF #DEPT = ' '                                                          
  STOP                                                                  
END-IF                                       
*                                            
FIND EMPLOY-VIEW WITH DEPT = #DEPT           
  IF NO RECORDS FOUND                        
    REINPUT 'NO RECORDS FOUND'               
  END-NOREC                                  
  INPUT 'NAME:       ' NAME (AD=O) /         
        'LEAVE DUE:  ' LEAVE-DUE (AD=M) /    
        'LEAVE TAKEN:' LEAVE-TAKEN (AD=M)    
  UPDATE                                     
END-FIND                                     
*                                            
INPUT 'UPDATE TO BE PERFORMED? YES/NO:' #RESP
DECIDE ON FIRST #RESP                        
  VALUE 'YES'                                
    END TRANSACTION                          
  VALUE 'NO'                                 
    BACKOUT TRANSACTION                      
  NONE                                       
    REINPUT 'PLEASE ENTER YES OR NO' 
END-DECIDE
*                                    
END 
               		  DEPARTMENT TO BE UPDATED: MGMT30
Result for department MGMT30:
               
NAME: POREE LEAVE DUE: 45 LEAVE TAKEN: 31
Confirmation query:
UPDATE TO BE PERFORMED YES/NO: NO