Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method AddKpiNameValuePairsFromObject (KpiSnapshotData snapshotData, Object kpiHoldingObject) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    tree       := NamedValueTreeIO::Export( kpiHoldingObject, false ); 
 | 
    typeHandle := tree.GetHandle( kpiHoldingObject.DefinitionName() ); 
 | 
    typeNV     := tree.Root().Child( typeHandle ); 
 | 
     
 | 
    traverse( typeNV.Children(), Elements, kpiNV ) 
 | 
    { 
 | 
      // Get the 'raw' value from the data, because exported Number attributes 
 | 
      // will fail to be re-imported as 'Real'. So a little help here. 
 | 
      kpiRaw := kpiNV.GetValue(); 
 | 
       
 | 
      // Only create KPIs for Real or Number type attributes 
 | 
      if( kpiRaw.istype( Real ) or kpiRaw.istype( Number ) ) 
 | 
      {       
 | 
        kpiName  := kpiNV.Name(); 
 | 
        kpiValue := 0.0; 
 | 
         
 | 
        if( kpiRaw.istype( Real ) ) 
 | 
        { 
 | 
          kpiValue := kpiRaw.astype( Real );  
 | 
        } 
 | 
        else if( kpiRaw.istype( Number ) ) 
 | 
        { 
 | 
          kpiValue := [Real]( kpiRaw.astype( Number ));   
 | 
        } 
 | 
           
 | 
        snapshotData.CreateValue( kpiName, kpiValue ); 
 | 
      } 
 | 
    } 
 | 
         
 | 
  *] 
 | 
} 
 |