Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod ImportJsonString (KpiTracker owner, JSON kpivalue) 
 | 
{ 
 | 
  Description: 'Import a JSON string and add into the KpiTracker dataset' 
 | 
  TextBody: 
 | 
  [* 
 | 
    plandatetime    := kpivalue.Get( "plan_datetime").GetString(); 
 | 
    serverdatetime  := kpivalue.Get( "server_datetime" ).GetString(); 
 | 
    retentionID     := kpivalue.Get( "retentionpolicyid" ).GetString(); 
 | 
     
 | 
    toString        := StringToDateTime::ISOConverter(); 
 | 
     
 | 
    // insert snapshots value 
 | 
    snapshot := construct( KpiSnapshotData ); 
 | 
    snapshot.ServerDateTime( toString.Convert( serverdatetime ) ); 
 | 
    snapshot.PlanDateTime( toString.Convert( plandatetime ) ); 
 | 
    snapshot.RetentionPolicyIdentification( retentionID ); 
 | 
     
 | 
    // --Label 
 | 
    label := kpivalue.Get( "label" ); 
 | 
    for( i := 0; i < label.Size() ; i++ ) 
 | 
    { 
 | 
      key   := label.Get( i );   
 | 
      //info( key.Get( "name" ).GetString(), key.Get( "value" ).GetString() ); 
 | 
      snapshot.CreateLabel( key.Get( "name" ).GetString(), key.Get( "value" ).GetString()  ); 
 | 
    } 
 | 
     
 | 
    // --Value 
 | 
    value := kpivalue.Get( "kpi" ); 
 | 
    for( i := 0; i < value.Size() ; i++ ) 
 | 
    { 
 | 
      key   := value.Get( i ); 
 | 
      //info( key.Get( "kpi_name" ).GetString(), key.Get( "kpi_value" ).GetReal() ); 
 | 
      snapshot.CreateValue( key.Get( "kpi_name" ).GetString(), key.Get( "kpi_value" ).GetReal() ); 
 | 
    } 
 | 
     
 | 
    owner.SnapshotStorage().StoreSnapshot( snapshot ); 
 | 
  *] 
 | 
} 
 |