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 ); 
 | 
    } 
 | 
  *] 
 | 
} 
 |