| Quintiq file version 2.0 | 
| #parent: #root | 
| Method ConvertNvtToShadowSnapshotSetData ( | 
|   NamedValueTree nvt | 
| ) as shadow[KpiSnapshotSetData] id:Method_Kpi_GlobalState_ConvertNvtToShadowSnapshotSetData | 
| { | 
|   #keys: '[136402.0.1319129634]' | 
|   Body: | 
|   [* | 
|     // Converts the query-result NamedValueTree to a shadow-KpiSnapshotSetData enclosure. | 
|     set := KpiTracker.KpiSnapshotSetData( relshadow ); | 
|      | 
|     // Define handles. | 
|     setDataHandle  := nvt.GetHandle( "KpiSnapshotSetData" ); | 
|     snapshotHandle := nvt.GetHandle( "KpiSnapshotData" ); | 
|     kpivalueHandle := nvt.GetHandle( "KpiValueData" ); | 
|     labelHandle    := nvt.GetHandle( "KpiLabelData" ); | 
|     serverDtHandle := nvt.GetHandle( "ServerDateTime" ); | 
|     planDtHandle   := nvt.GetHandle( "PlanDateTime" ); | 
|     nameHandle     := nvt.GetHandle( 'Name' ); | 
|     valueHandle    := nvt.GetHandle( 'Value' ); | 
|     retentionHandle:= nvt.GetHandle( 'RetentionPolicyIdentification' ); | 
|     sourceDatasetMDSIDHandle := nvt.GetHandle( 'SourceDatasetMDSID' ); | 
|      | 
|     // Get to the real root (the setData). | 
|     root           := nvt.Root(); | 
|     setData        := root.Child( setDataHandle ); | 
|      | 
|     // Each child of setData is a SnapshotData. | 
|     traverse( setData.Children( snapshotHandle ), Elements, snapshotNvt ) | 
|     { | 
|       snapshot := set.SnapshotData( relnew ); | 
|       snapshot.ServerDateTime ( snapshotNvt.Child( serverDtHandle ).GetValueAsDateTime() ); | 
|       snapshot.PlanDateTime   ( snapshotNvt.Child( planDtHandle ).GetValueAsDateTime() ); | 
|       snapshot.RetentionPolicyIdentification( snapshotNvt.Child( retentionHandle ).GetValueAsString() ); | 
|       snapshot.SourceDatasetMDSID( snapshotNvt.Child( sourceDatasetMDSIDHandle ).GetValueAsKey() ); | 
|      | 
|       // Labels | 
|       labels := construct( Strings ); | 
|       labeldata := selectsortedset( snapshotNvt.Children( labelHandle ), Elements, label, true, label.Child( nameHandle ).GetValueAsString() ); | 
|       traverse( labeldata, Elements, labelNvt ) | 
|       { | 
|         label := snapshot.Label( relnew ); | 
|         label.Name( labelNvt.Child( nameHandle ).GetValueAsString() ); | 
|         label.Value( labelNvt.Child( valueHandle ).GetValueAsString() ); | 
|         labels.Add( label.Name() + ": " + label.Value() ); | 
|       } | 
|        | 
|       // Kpi values | 
|       traverse( snapshotNvt.Children( kpivalueHandle ), Elements, valueNvt ) | 
|       { | 
|         val := snapshot.Value( relnew ); | 
|         val.Name( valueNvt.Child( nameHandle ).GetValueAsString() ); | 
|         val.Value( valueNvt.Child( valueHandle ).GetValueAsReal() ); | 
|         val.UI_SnapshotLabels( labels.ToString( ";" ) ); | 
|       } | 
|      | 
|     } | 
|      | 
|     return &set; | 
|   *] | 
|   ReturnsOwning: true | 
| } |