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