| Quintiq file version 2.0 | 
| #parent: #root | 
| Method SynchronizeAlgorithmRun ( | 
|   Boolean issmartplan | 
| ) as AlgorithmRun | 
| { | 
|   Description: | 
|   [* | 
|     Create algorithm run if it is still within the range | 
|     Delete algorithm runs if it is out of the range | 
|   *] | 
|   TextBody: | 
|   [* | 
|      | 
|      | 
|     run := null( AlgorithmRun ); | 
|     allowed := this.NumberOfOptimizerResults(); | 
|     numberofruns := this.TempAlgorithmRunStore().AlgorithmRun( relsize ); | 
|      | 
|     // Delete and re-create a new one such that the old data is flushed automatically | 
|     numbertodelete := numberofruns - allowed | 
|     traverse( this, TempAlgorithmRunStore.AlgorithmRun, r, r.SequenceNr() <= numbertodelete ) | 
|     { | 
|       r.Delete(); | 
|     } | 
|      | 
|     size := this.TempAlgorithmRunStore().AlgorithmRun( relsize ); | 
|      | 
|     if( size < allowed or size = 0 ) | 
|     { | 
|       run := AlgorithmRun::Create( this.TempAlgorithmRunStore(), issmartplan ); | 
|     } | 
|      | 
|     return run; | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |