yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
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
Quintiq file version 2.0
#parent: #root
StaticMethod CreateJsonFromSnapshot (KpiSnapshotData snapshot) as owning JSON
{
  Description: 'Creates a JSON object out of the specified KpiSnapshotData'
  TextBody:
  [*
    json := JSON::Object();
    
    conversion := ConversionOptions::System();
    
    json.Add( 'plan_datetime', snapshot.PlanDateTime().Format( 'Y-M2-D2TH2:m:sZ', conversion ) );  
    json.Add( 'server_datetime', snapshot.ServerDateTime().Format( 'Y-M2-D2TH2:m:sZ', conversion ) );    
    json.Add( 'retentionpolicyid', snapshot.RetentionPolicyIdentification() );
    
    labels := JSON::Array();
    traverse( snapshot, Label, label )
    {
      labels.Add( JSON::Object().Add( 'name', label.Name() ).Add( 'value', label.Value() ) );
    }
    
    json.Add( 'label', labels );
    
    values := JSON::Array();
    traverse( snapshot, Value, value )
    {
      values.Add( JSON::Object().Add( 'kpi_name', value.Name() ).Add( 'kpi_value', value.Value() ) );
    }
    
    json.Add( 'kpi', values );
    
    return json.Build();
  *]
  InterfaceProperties { Accessibility: 'Module' }
}