The structure of a transaction is comparable to the structure of a procedure or function of a high-level programming language.
               Transactions have the following characteristics:
               
               
                  
                  - Nested block structure is possible
                     
                  
- Variables of the native types 
                     number, 
                     float, 
                     boolean and 
                     string and arrays of simple types (array of number, array of float, array of boolean, array of string) can be used
                     
                  
- Variables of a transaction have local scope (can only be used inside the transaction) but global life span 
                     
                  
- Transactions cannot call other transactions or themselves
                     
                  
- Random variables or constants can be used as input parameters of transactions
                     
                  
- A transaction has no output parameters
                     
                  
- Full hierarchy of expressions applies with the usual rules of precedence
                     
                  
- You can use 
                     if, 
                     while, 
                     for and 
                     loop statements for flow control
                     
                  
- SQL commands/FORM commands are not declared in the transactions directly but in their own section (SQL section/FORM section)
                     and are used like variables of special data types 
                     
                  
- Wait statements can be used for specifying user times
                     
                  
- Random variables can be used for generating random values