| Quintiq file version 2.0 | 
| #parent: #root | 
| Method SynchronizeDatasets (structured_MDSDefinition MDSdefs, MDSObjectInfos objectinfos) | 
| { | 
|   Description: 'Synchronize datasets from the real model' | 
|   TextBody: | 
|   [* | 
|     mdsDefinition := select( MDSdefs, Elements, mdsdef, mdsdef.InstanceType().Name() = this.Name() ); | 
|      | 
|     allDatasets := selectset( this, Dataset, e, true ) | 
|     activeDatasets := construct( DMF_Datasets ); | 
|      | 
|     if( not isnull( mdsDefinition ) ) | 
|     { | 
|       traverse( objectinfos, Elements, e, | 
|                 e.Kind() = mdsDefinition.Name() ) | 
|       { | 
|         activeDatasets.Add( DMF_Dataset::Create( this, e.MDSID().MDSKey(), e.Name() ) ); | 
|       } | 
|     } | 
|      | 
|     // Only mark them as deleted, will commence delete after DatasetInConvertorVersion synchronization | 
|     // we delete them if they no longe have DatasetInConvertorVersion | 
|     markAsDeleted := allDatasets.Difference( activeDatasets ); | 
|     DMF_Dataset::MarkAsDeleted( activeDatasets, false /*isdelete*/ ); | 
|     DMF_Dataset::MarkAsDeleted( markAsDeleted, true /*isdelete*/ ); | 
|   *] | 
| } |