Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod Execute ( 
 | 
  UserImportProfiles userImportProfiles, 
 | 
  Boolean isRefreshFromSource, 
 | 
  Boolean isOverwriteManualConfig, 
 | 
  MacroPlan macroPlan, 
 | 
  MPSync mpsync, 
 | 
  ImportProfileExcel importObj 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    // 1. Get sorted set 
 | 
    datasourceFiles := selectsortedset( userImportProfiles, 
 | 
                                        Elements.GlobalImportProfileExcel.LibSOPImpExp_DataSource.LibSOPImpExp_DataSourceFile, 
 | 
                                        e,  
 | 
                                        not isnull( e.LibSOPImpExp_ImportUploadedFile() ), 
 | 
                                        e.FileName() ); 
 | 
     
 | 
    // 2. Get mpsync broker names & file data 
 | 
    binaryValues := selectvalues( datasourceFiles, Elements.LibSOPImpExp_ImportUploadedFile, upload,true, upload.DataAsBinary() ); 
 | 
    brokers := selectvalues( datasourceFiles, Elements, e, true, e.MPSyncBrokerName() ); 
 | 
     
 | 
    // 3. Get unique import object groups 
 | 
    uniqueimportobjectgroups := BaseImportProfile::GetUniqueImportObjectGroupInProfiles( userImportProfiles ); 
 | 
     
 | 
    // 4. Batch execute user import profiles 
 | 
    // Note: Use reactive quill to chain import object status & visualize the import progress in Web (progress bar & notification) 
 | 
    ex := importObj 
 | 
    ->SetStatusInProgress() // Set to status : In Progress 
 | 
    ->|mpsync->ExecuteUserImportProfiles( macroPlan, 
 | 
                                          userImportProfiles, 
 | 
                                          uniqueimportobjectgroups, 
 | 
                                          isRefreshFromSource, 
 | 
                                          isOverwriteManualConfig, 
 | 
                                          binaryValues, brokers ) 
 | 
    ->|importObj->SetStatusDone() // Set to status : Done 
 | 
    ->|macroPlan->SetLastImportTime() 
 | 
    ->Exception(); 
 | 
     
 | 
    importObj->OnException( ex ); 
 | 
  *] 
 | 
} 
 |