Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method ComponentMDS_SelectInstance ( 
 | 
  internal[GUIComponent] component, 
 | 
  Scenario scenario 
 | 
) id:Method_ApplicationLibMacroPlanner_ComponentMDS_SelectInstance 
 | 
{ 
 | 
  #keys: '[144528.3.491344179]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Select MDS instance for a component 
 | 
    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( component ); 
 | 
        mdsinstance := select( componentmds, ComponentMDSKinds.ComponentMDSInstances, m, m.MDSID().MDSKey() = scenario.DatasetMDSID() ); 
 | 
       
 | 
        if( not isnull( mdsinstance ) ) 
 | 
        { 
 | 
          mdsinstance.ComponentMDSKind().SelectInstance( mdsinstance ); 
 | 
          componentmds.Apply(); 
 | 
          loop := false; 
 | 
        } 
 | 
        p.Increment(); 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
} 
 |