Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method Start () as stream[JSON] 
 | 
{ 
 | 
  Description: 
 | 
  [* 
 | 
    Start of the preprocessing step of the optimization run.  
 | 
    The actual start of the run happens in `StartAfterPreprocessing`. 
 | 
  *] 
 | 
  TextBody: 
 | 
  [* 
 | 
    this.CheckStart(); 
 | 
     
 | 
    this.MDSIDRun( this.MDSID() );  
 | 
     
 | 
     
 | 
    time := OS::PrecisionCounter(); 
 | 
    this.StartedOnPrecision( time / OS::PrecisionCounterFrequency() ); 
 | 
     
 | 
    start_link := this.LinkStart(); 
 | 
    start_link.Sync(); 
 | 
     
 | 
    traverse( this, Channel, channel ) 
 | 
    { 
 | 
      channel.AnalyzeGraph(); 
 | 
    } 
 | 
     
 | 
    this.RequestedOn( DateTime::Now() ); 
 | 
     
 | 
    result := null( stream[JSON] ); 
 | 
    if( this.IsRunControllerEnabled() ) 
 | 
    { 
 | 
      result := this.CheckOptimizerRunController(); 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      result := this.StartAfterPreprocessing(); 
 | 
    } 
 | 
    return result; 
 | 
  *] 
 | 
} 
 |