admin
2025-01-22 7e31442f0e9b07764e9c6a9680d3d4aeba5fe1de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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 );
      } 
    }
  *]
}