| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod OnServerStartup (DatasetState storagestate) | 
| { | 
|   Description: | 
|   [* | 
|     With this method, you can load the `LibOpt_OptimizerRunController` dataset on server startup. If the `LibOpt_OptimizerRunController` dataset doesn't exist yet, a new one is created. | 
|      | 
|     It is recommended to always load the `LibOpt_OptimizerRunController` dataset on startup. You can do so by calling `LibOpt_OptimizerRunController::OnServerStartup( DatasetState::StandAloneStorage() )` in the server startup. | 
|   *] | 
|   TextBody: | 
|   [* | 
|     // evr3 May-5-2022 (created) | 
|      | 
|     state := storagestate.AsString(); | 
|     datasetname := typeof( LibOpt_OptimizerRunController ).Name(); | 
|     options := DatasetFindOptions::Construct().Kind( datasetname ).IncludeOffline( true ); | 
|     DatasetController::FindUnique( options )->( datasetkey ) | 
|     { | 
|       if( datasetkey = Key::ZeroKey() ) // No OptimizerRunController dataset is found | 
|       { | 
|         MDSLibOpt_OptimizerRunController::CreateMDS( datasetname, state );  | 
|       } | 
|       else // A OptimizerRunController exists, so we load it. | 
|       { | 
|         // We are going from DatasetState to String to DatasetState, because DatasetState doesn't exists as a stream. | 
|         storage := DatasetState::FromString( state ) | 
|         DatasetLoadOptions::Construct().State( storage ); | 
|         MDSLibOpt_OptimizerRunController::Load( datasetkey ); | 
|       }  | 
|     } | 
|   *] | 
| } |