| 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() ); | 
|       } | 
|     } | 
|   *] | 
| } |