| Quintiq file version 2.0 | 
| #parent: #root | 
| MethodOverride Copy ( | 
|   ScenarioNode fromscenario, | 
|   String newassumption | 
| ) | 
| { | 
|   Description: 'Copy more details from fromscenario' | 
|   TextBody: | 
|   [* | 
|     // Copy all assumptions over from the source scenario | 
|     source := fromscenario.astype( ScenarioMP ); | 
|      | 
|     traverse( source, Assumption, assumption ) | 
|     { | 
|       assumption.Copy( this ); | 
|     } | 
|     //delete the kpivalue that created during oncreate of scenario, and copy from source scenario | 
|     this.KPIValue( relflush ); | 
|     traverse( source, KPIValue, kpi ) | 
|     { | 
|       newkpi := kpi.DeepCopy( true, true ).astype( KPIValue ) ; | 
|       this.KPIValue( relinsert, &newkpi );   | 
|     } | 
|      | 
|     // Create new assumption for the new scenario | 
|     this.CreateNewAssumption( newassumption ); | 
|      | 
|     // Update last changed status of the new scenario | 
|     this.UpdateLastChanged(); | 
|      | 
|     datasetname := ScenarioManager::GetUniqueCompanyDatasetName( ScenarioManager::ScenarioMP() ); | 
|      | 
|     opt := DatasetCreateOptions::Construct( datasetname ).AsCopy( fromscenario.astype( ScenarioMP ).DatasetMDSID() ) | 
|                                                          .State( DatasetState::FromString( this.State() ) ) | 
|                                                          .Path( GlobalParameters_MP::GetDatasetFolder() ); | 
|      | 
|     MDSMacroPlan::Create( opt  )->UpdateScenario( this ) | 
|   *] | 
| } |