yypsybs
2023-09-09 3cb5a54def670d97301f07170fcaad213bfc54f2
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
34
35
36
37
38
39
40
41
42
43
44
Quintiq file version 2.0
#parent: #root
StaticMethod OnServerStartUp
{
  TextBody:
  [*
    debuginfo( '========================================================= MP Sync =================================================================')
    // Clean up storage MPSync datasets, because MPSync is now memory-only
    findOptions := DatasetFindOptions::Construct()
    findOptions.Kind( GlobalParameters_MP::GetDatasetMPSync() );
    findOptions.IncludeOffline( true )
    storageMPSyncKeys := DatasetController::Find( findOptions );
    
    if( DMF_Utility::GetIsAutoConversion() )
    {
      deletes := construct( structured[stream[Key]] );
      traverse( storageMPSyncKeys, Elements, e )
      {
        deletes.Add( e->DatasetController::Delete() );
      } 
      
      // After deleting them, we will create a new memory-only MPSync
      void->After( stream[Key]::Merge( deletes ) )->MPSync::CreateDataset();
    }
    else
    {
      // Load or create mpsync
      folder       := GlobalParameters_MP::GetDatasetFolder();
      datasetName  := MPSync::GetDatasetName();
      oinfo        := MDSEditor::Editor().ObjectInfos( datasetName, folder, datasetName );
      o            := select( oinfo, Elements, o/*, not o.IsLoaded()*/, true );
      emptydataset := isnull( o );
      
      if( emptydataset )
      {
        MPSync::CreateDataset();
      }
      else
      {
        MDSMPSync::LoadMDSAndConvert( o.MDSID(), GlobalParameters_MP::GetStorageState() );
      }
    }
  *]
}