END [OF] TRANSACTION   [operand1
                                    |  
                              
                     
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 |
                      BACKOUT TRANSACTION |
                      BEFORE BREAK PROCESSING |
                      DELETE |
                      FIND |
                      GET |
                      GET SAME |
                      GET TRANSACTION DATA |
                      FIND
                      HISTOGRAM |
                        LIMIT | PASSW | PERFORM BREAK PROCESSING |
                      READ |
                      RETRY |
                      STORE |
                      UPDATE
Belongs to Function Group: Database Access and Update
The END TRANSACTION statement is used to indicate the end
                       of a logical transaction. A logical transaction is the smallest logical unit of
                       work (as defined by the user) which must be performed in its entirety to ensure
                       that the information contained in the database is logically consistent.
               
Successful execution of an END TRANSACTION statement
                       ensures that all updates performed during the transaction have been or will be
                       physically applied to the database regardless of subsequent user, Natural,
                       database or operating system interruption. Updates performed within a
                       transaction for which the END TRANSACTION statement has not been
                       successfully completed will be backed out automatically.
               
The END TRANSACTION statement also results in the release
                       of all records placed in hold status during the transaction.
               
The END TRANSACTION statement can be executed based upon a
                       logical condition.
               
For further information, see the section Database Update - Transaction Processing (in the Programming Guide).
This statement cannot be used with Entire System Server.
Operand Definition Table:
| Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
 operand1 
                         |  
                                
                        C | S | N | A | U | N | P | I | F | B | D | T | yes | no | ||||||
Syntax Element Description:
| Syntax Element | Description | 
|---|---|
 
                                    operand1 
                         |  
                                
                         
                                    
                            Storage of Transaction Data:  
                                    
                           For a transaction applied to an Adabas database, you may also use this statement to store transaction-related
                                        information. These transaction data must not exceed 2000 bytes. They may be
                                        read with a  The transaction data are written to the database specified with the
                                        profile parameter  If the  Note:  |  
                               
                     
An END TRANSACTION statement without transaction
                       data (that is, without operand1)
                       will only be executed if a database transaction under control of Natural has
                       taken place. Depending on the setting of the Natural profile parameter
                       ET, the
                       statement will be executed only for the database affected by the transaction
                       (ET=OFF), or for all databases that have been referenced since the
                       last execution of a BACKOUT
                             TRANSACTION or END TRANSACTION statement
                       (ET=ON).
               
An END TRANSACTION statement
                       with transaction data (that is, with specifying
                       operand1) will always be executed and
                       the transaction data be stored in a database as described in the following
                       section. It depends on the setting of the ET parameter (see
                       above) for which other databases the END TRANSACTION statement
                       will be executed.
               
** Example 'ETREX1': END TRANSACTION                                    
**                                                                      
** CAUTION: Executing this example will modify the database records!    
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 CITY                                                                
  2 COUNTRY                                                             
END-DEFINE                                                              
*                                                                       
FIND EMPLOY-VIEW WITH CITY = 'BOSTON'                                   
  ASSIGN COUNTRY = 'USA'                                                
  UPDATE                                                                
  END TRANSACTION                                                      
  /*                                                                    
  AT END OF DATA                                                        
    WRITE NOTITLE *NUMBER 'RECORDS UPDATED'                             
  END-ENDDATA                                                           
  /* 
END-FIND 
END 
                    7 RECORDS UPDATED
** Example 'ETREX2': END TRANSACTION (with ET data)                     
**                                                                      
** CAUTION: Executing this example will modify the database records!    
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 PERSONNEL-ID                                                        
  2 NAME                                                                
  2 FIRST-NAME                                                          
  2 CITY                                                                
*                                                                       
1 #PERS-NR (A8) INIT <' '>                                              
END-DEFINE                                                              
*                                                                       
REPEAT                                                                  
  INPUT 'ENTER PERSONNEL NUMBER TO BE UPDATED:' #PERS-NR                
  IF #PERS-NR = ' '                                                     
    ESCAPE BOTTOM                                                       
  END-IF                                                                
  /*                                        
  FIND EMPLOY-VIEW PERSONNEL-ID = #PERS-NR  
    INPUT (AD=M)    NAME / FIRST-NAME / CITY
    UPDATE                                  
    END TRANSACTION #PERS-NR                
  END-FIND                                  
  /*                                        
END-REPEAT                                  
END 
                    ENTER PERSONNEL NUMBER TO BE UPDATED: 20027800
NAME LAWLER FIRST-NAME SUNNY CITY MILWAUKEE