| Quintiq file version 2.0 | 
| #parent: #root | 
| Method ConfigureForOneTransaction (Boolean needs_propagation) | 
| { | 
|   Description: | 
|   [* | 
|     Using this method, one can easily change the `LibOpt_Run` to work in one transaction. | 
|     This method can easily be called in the `LibOpt_Optimizer.CreateComponents` method, or in the method calling the `LibOpt_Optimizer.CreateComponents` method. | 
|      | 
|     Note that the if the iterator executing in one transaction, and a rollback or error occurs, all iterations will be reverted and the error message will be shown to the user. | 
|     When using only one transaction, thoroughly test! | 
|   *] | 
|   TextBody: | 
|   [* | 
|     // Set the run to be executed in one transaction. | 
|     this.InOneTransaction( true ); | 
|     this.LinkStart().Sync(); | 
|      | 
|     // Set all links to use one transaction. | 
|     traverse( this, Component.Parents, link ) | 
|     { | 
|       link.SetTaskTransporterOneTransaction( needs_propagation ); | 
|     } | 
|      | 
|     // Set all suboptimizers to use one transaction. | 
|     traverse( this, Component.astype( LibOpt_Suboptimizer ), subopt ) | 
|     { | 
|       subopt.InOneTransaction( true ); | 
|     } | 
|   *] | 
| } |