Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method Copy ( 
 | 
  String newscenarioname 
 | 
) as ScenarioMP 
 | 
{ 
 | 
  Description: 'Copy a scenario and set the new scenario name with the defined scenario name' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // ying ying Mar-14-2014 (created) 
 | 
    macroplanmdsid := MDSID::Create( this.DatasetMDSID() ); 
 | 
    datasetname := ScenarioManager::GetUniqueCompanyDatasetName( ScenarioManager::ScenarioMP() ) 
 | 
     
 | 
    params   := MDSParameters::Create(); 
 | 
    params.State( this.State() ); 
 | 
    editor := MDSEditor::Editor(); 
 | 
    editor.CopyMDS( macroplanmdsid, datasetname, params ) 
 | 
     
 | 
    objectinfos := MDSEditor::Editor().ObjectInfos(  ); 
 | 
     
 | 
    newmacroplan := select( objectinfos, Elements, ds, ds.Name() = datasetname ) 
 | 
     
 | 
    newscenario := this.Copy( this, newscenarioname, '', this.Comment(), 
 | 
                              this.State(), this.KBDescription(), this.KBName(), 
 | 
                              newmacroplan.MDSID().MDSKey(), datasetname ); 
 | 
     
 | 
     
 | 
    return newscenario.astype( ScenarioMP ); 
 | 
  *] 
 | 
} 
 |