chenqinghong
2024-05-07 3ec06a830367465068963156dcc1d8e522571c13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Quintiq file version 2.0
#parent: #root
Method SetConfigurationQuery (
  JSON jsonQuery
) id:Method_DialogKpiQuery_SetConfigurationQuery
{
  #keys: '[146450.3.331169624]'
  Body:
  [*
    // Populate the KpiQuery with the JSON data with query type: Compare KPIs and Track KPIs
    kpiQuery := DataHolderKpiQuery.Data();
    
    datetimeConverter := StringToDateTime::StandardConverter();
    queryType := jsonQuery.Get( "QueryType" ).GetString();
    kpiQuery.QueryType( queryType );
    
    // Track KPIs
    if( queryType = KpiQuery::QUERY_TRACK() )
    {
      // Query parameter
      kpiQuery.Timespan( jsonQuery.Get( "Timespan" ).GetString() );
      kpiQuery.DateTimeFrom( datetimeConverter.Convert( jsonQuery.Get( "DateTimeFrom" ).GetString() ) );
      kpiQuery.DateTimeTo( datetimeConverter.Convert( jsonQuery.Get( "DateTimeTo" ).GetString() ) );
      kpiQuery.SnapshotLimit( jsonQuery.Get( "LimitSnapshot" ).GetNumber() );
      
      // Other
      kpiQuery.IsAllSnapshotSelected( jsonQuery.Get( "IsAllSnapsnotEnabled" ).GetBoolean() );
      
      // Label filtering
      kpiQuery.IsLabelFilteringEnabled( jsonQuery.Get( "IsLabelFilteringEnabled" ).GetBoolean() );
      kpiQuery.LabelFilters( jsonQuery.Get( "LabelFilters" ).GetString() );
      
      // Kpi selection
      kpiQuery.MetaDatas( jsonQuery.Get( "MetaDatas" ).GetString() );
      
      // Series selection
      kpiQuery.SeriesSelection( jsonQuery.Get( "Series" ).GetString() );
      kpiQuery.IsOnlyLastSnapshotEnabled( jsonQuery.Get( "IsLastSnapshotEnabled" ).GetBoolean() );
      kpiQuery.Timetype( jsonQuery.Get( "Timetype" ).GetString() );
    }
    else if( queryType = KpiQuery::QUERY_COMPARE() ) // Compare KPIs
    {
      kpiQuery.SeriesSelection( jsonQuery.Get( "Series" ).GetString() );
      kpiQuery.Timetype( jsonQuery.Get( "Timetype" ).GetString() );
      kpiQuery.LabelFilters( jsonQuery.Get( "LabelFilters" ).GetString() );
      kpiQuery.MetaDatas( jsonQuery.Get( "MetaDatas" ).GetString() );
    }
  *]
}