Quintiq file version 2.0 
 | 
#parent: #root 
 | 
MethodOverride GetSnapshots ( 
 | 
  DateTime startDateTime, 
 | 
  DateTime endDateTime, 
 | 
  String timeType, 
 | 
  Number top 
 | 
) as owning KpiSnapshotSetData 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    set    := construct( KpiSnapshotSetData ); 
 | 
    source := null( structured[ DssKpiSnapshot ], owning ); 
 | 
     
 | 
    if ( timeType = KpiSnapshotRetrieval::TimeType_Server() ) 
 | 
    { 
 | 
      source := selectset( this, Storage.Snapshot, snapshot,  
 | 
                           snapshot.ServerDateTime() >= startDateTime 
 | 
                       and snapshot.ServerDateTime() <= endDateTime ); 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      source := selectset( this, Storage.Snapshot, snapshot,  
 | 
                           snapshot.PlanDateTime() >= startDateTime 
 | 
                       and snapshot.PlanDateTime() <= endDateTime ); 
 | 
    } 
 | 
     
 | 
    items := 0; 
 | 
     
 | 
    // The element is start at 0 until i-1 
 | 
    nrOfSnapshots := source.Size(); 
 | 
    for ( index := nrOfSnapshots - 1; index  >= maxvalue( nrOfSnapshots - top, 0 ); index -- ) 
 | 
    { 
 | 
      set.SnapshotData( relinsert, DssKpiSnapshotRetrieval::ConvertSnapshotToTransportType( source.Element( index ) ) ); 
 | 
      items++; 
 | 
    } 
 | 
     
 | 
    return &set; 
 | 
  *] 
 | 
} 
 |