Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method CheckStart 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    Transaction::Transaction().Propagate( constraint( LibOpt_Run, ComponentNamesAreUnique ) ); 
 | 
    errors := construct( LibOpt_SnapshotErrors ); 
 | 
    if( not this.ComponentNamesAreUnique() ) 
 | 
    { 
 | 
      duplicates := selectduplicates( this, Component, component, true, component.Name() ); 
 | 
      duplicate_names := selectuniquevalues( duplicates, Elements, component, true, component.Name() ); 
 | 
      err := construct( LibOpt_Error, GeneralInformation := Translations::LibOpt_Run_Start_DuplicateNames( duplicate_names ) ); 
 | 
      errors.Add( LibOpt_SnapshotError::Throw( this, err ) ); 
 | 
    } 
 | 
    if( isnull( this.StartComponent() ) ) 
 | 
    { 
 | 
      err := construct( LibOpt_Error, GeneralInformation := Translations::LibOpt_Run_Start_NoStartComponent() ); 
 | 
      errors.Add( LibOpt_SnapshotError::Throw( this, err ) ); 
 | 
    } 
 | 
    if( not this.StartedOn().IsMinInfinity() ) 
 | 
    { 
 | 
      err := construct( LibOpt_Error, GeneralInformation := Translations::LibOpt_Run_Start_AlreadyStarted() ); 
 | 
      errors.Add( LibOpt_SnapshotError::Throw( this, err ) ); 
 | 
    } 
 | 
     
 | 
    if( errors.Size() > 0 ) 
 | 
    { 
 | 
      this.IsFailed( true ); 
 | 
      this.RollbackOneTransaction(); 
 | 
    } 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |