Quintiq file version 2.0 
 | 
#parent: #root 
 | 
MethodOverride Execute 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    opt := DatasetFindOptions::Construct( this.MacroPlanDatasetName() ); 
 | 
    mp := MDSMacroPlan::Find( opt ); 
 | 
     
 | 
    opt := DatasetFindOptions::Construct(); 
 | 
    scenarioManager := MDSScenarioManager::Find( opt ); 
 | 
     
 | 
    // Only get data source which has all required files uploaded 
 | 
    dummyMissingFiles := construct( Strings ); 
 | 
    needUserUploadAllFiles := true; 
 | 
    validUploadedFiles := selectset( this, LibSOPImpExp_DataSourceChildren, ds,  
 | 
                                     ds.HasAllRequiredFilesForImport( dummyMissingFiles, needUserUploadAllFiles ) ); 
 | 
     
 | 
    traverse( validUploadedFiles, Elements, file ) 
 | 
    { 
 | 
      this.LibSOPImpExp_UserInput( relnew, Value := file.Name() ); 
 | 
    } 
 | 
     
 | 
    binaryValues := selectvalues( validUploadedFiles, Elements.LibSOPImpExp_DataSourceFile.LibSOPImpExp_ImportUploadedFile, file, true, file.DataAsBinary() ); 
 | 
    brokerNames := selectvalues( validUploadedFiles, Elements.LibSOPImpExp_DataSourceFile, file, true, file.BrokerName() ); 
 | 
     
 | 
    // Reactive way to import 
 | 
    o := this 
 | 
    ->SetStatusInProgress() 
 | 
    ->|mp->ImportExcels( this.LibSOPImpExp_UserInput( relget ), scenarioManager, this.MPSync(), 
 | 
                        binaryValues, brokerNames ) 
 | 
    ->|this->SetStatusDone() 
 | 
    ->|mp->SetLastImportTime() 
 | 
    ->Exception(); 
 | 
     
 | 
    this->OnException(o); 
 | 
  *] 
 | 
} 
 |