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