| Quintiq file version 2.0 | 
| #parent: #root | 
| Method CreateScenarioMPFromDataset ( | 
|   ScenarioNode scenarionode, | 
|   String scenarioname, | 
|   String assumption, | 
|   String comment, | 
|   String scenariodescription, | 
|   String datasetname, | 
|   Key datasetmdsid, | 
|   String datasetstoragestate | 
| ) as ScenarioMP | 
| { | 
|   Description: 'Create a scenario only, do not create dataset' | 
|   TextBody: | 
|   [* | 
|     // Get current user's name | 
|     currentusername := GlobalParameters_MP::GetUserName(); | 
|      | 
|     //create a new scenario | 
|     scenario := construct( ScenarioMP, | 
|                            AsScenarioMP           := this, | 
|                            Name                   := scenarioname, | 
|                            CreatedBy              := currentusername, | 
|                            CreatedOn              := DateTime::Now(), | 
|                            DatasetMDSID           := datasetmdsid, | 
|                            DatasetName            := datasetname, | 
|                            Comment                := comment, | 
|                            IsLoaded               := true, | 
|                            State                  := datasetstoragestate, | 
|                            KBDescription          := scenariodescription | 
|                           ); | 
|      | 
|     // Update last changed info of this scenario, which is the current user in this case | 
|     scenario.UpdateLastChanged(); | 
|      | 
|     // Get mds info of the selected dataset | 
|     mdsinfo := MDSEditor::Editor().ObjectInfo( datasetmdsid ); | 
|      | 
|     // Check if the selected dataset can be found or is it online | 
|     if( not isnull( mdsinfo ) | 
|         // Just an extra guard to make sure dataset is loaded [ UI also block where unloaded dataset without scenario can not be created as scenario ] | 
|         and mdsinfo.IsLoaded() ) | 
|     { | 
|       MacroPlan::JobUpdateCompany( mdsinfo.MDSID(), scenario ); | 
|     } | 
|     else | 
|     { | 
|       debuginfo( '#### mds isnull: ID = ', datasetmdsid ); | 
|     } | 
|      | 
|     // Add scenario to scenario manager | 
|     scn := this.AddLeaf( scenarionode, &scenario ).astype( ScenarioMP ); | 
|     // Create assumption for the new scenario | 
|     scn.CreateNewAssumption( assumption ); | 
|      | 
|     return scn; | 
|   *] | 
| } |