Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method SelectScenarioReadOnly ( 
 | 
  Scenario scenario 
 | 
) as Boolean id:Method_ApplicationLibMacroPlanner_SelectScenarioReadOnly 
 | 
{ 
 | 
  #keys: '[144528.3.487223653]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Select the active MacroPlan based on passed in scenario 
 | 
    // Set active MacroPlan to the application 
 | 
    // ComponentMDS::Create( Application ) is not available in Editor -- still finding, if exist, all this code will be moved. 
 | 
    status := false; 
 | 
     
 | 
    if( not isnull( scenario ) ) 
 | 
    { 
 | 
      loop := true; 
 | 
      p := Progress::Level( 'Loading scenario...', 10 ); 
 | 
     
 | 
      // changed the operation in "p.Current() < p.Maximum()" from <= to < as p.Maximum will never be reached 
 | 
      // causing an infinite loop when a dataset is no longer available 
 | 
      while( loop and p.Current() < p.Maximum() ) 
 | 
      { 
 | 
        componentmds := ComponentMDS::CreateForLoadedMDSsOnly( Application ); 
 | 
        mdsinstance := select( componentmds, ComponentMDSKinds.ComponentMDSInstances, m, m.MDSID().MDSKey() = scenario.DatasetMDSID() ); 
 | 
     
 | 
        if( not isnull( mdsinstance ) ) 
 | 
        { 
 | 
          mdsinstance.ComponentMDSKind().SelectInstance( mdsinstance ); 
 | 
          componentmds.Apply(); 
 | 
          // To set the data holder if only a scenario has changed. 
 | 
          if( DataHolderActiveScenario.Data() <> scenario ) 
 | 
          { 
 | 
            DataHolderActiveScenario.Data( scenario ); 
 | 
          } 
 | 
          status := true; 
 | 
          loop := false; 
 | 
        } 
 | 
        p.Increment(); 
 | 
      } 
 | 
    } 
 | 
     
 | 
    return status; 
 | 
  *] 
 | 
} 
 |