Quintiq file version 2.0
|
#parent: #root
|
StaticMethod CreateCsvFromSnapshot (KpiSnapshotSetData snapshotSetData, KpiTracker kpiTracker) as String
|
{
|
Description: 'Creates a CSV string out of the specified KpiSnapshotDatas'
|
TextBody:
|
[*
|
// Render header line.
|
output := "";
|
|
conversion := ConversionOptions::System();
|
|
if ( snapshotSetData.SnapshotData( relsize ) > 0 )
|
{
|
output := "PlanDateTime; ServerDateTime; RetentionPolicyID; ";
|
first := snapshotSetData.SnapshotData( relget ).Element( 0 );
|
|
// -- Label headers
|
sortedLabels := selectsortedset( kpiTracker, Label, label, true, label.Name() );
|
output := output + selectuniquevalues( sortedLabels, Elements, label,
|
true, "label_" + label.Name() ).ToString( "; ");
|
if ( first.Label( relsize ) > 0 )
|
{
|
output := output + "; "
|
}
|
// -- KPI headers
|
sortedKpis := selectsortedset( kpiTracker, MetaData, metadata, true, metadata.Name() );
|
output := output + selectuniquevalues( sortedKpis, Elements, kpi,
|
true, "kpi_" + kpi.Name() ).ToString( "; " );
|
|
// -- Finish header row with a newline.
|
output := output + String::NewLine();
|
|
|
// Render rows
|
traverse( snapshotSetData, SnapshotData, snapshot )
|
{
|
// Timestamps and stuff
|
output := output
|
+ snapshot.PlanDateTime().Format( 'Y-M2-D2TH2:m:sZ', conversion ) + "; "
|
+ snapshot.ServerDateTime().Format( 'Y-M2-D2TH2:m:sZ', conversion ) + "; "
|
+ snapshot.RetentionPolicyIdentification() + "; "
|
|
sortedLabels := selectsortedset( kpiTracker, Label, label, true, label.Name() );
|
traverse( sortedLabels, Elements, labelValue )
|
{
|
kpiObj := selectsortedset( snapshot, Label, label, true, label.Name() );
|
lab := select( kpiObj, Elements, label, labelValue.Name() = label.Name() );
|
output := output + guard ( lab.Value(), "" ) + "; ";
|
}
|
if ( snapshot.Label( relsize ) < 0 )
|
{
|
output := output + "; "
|
}
|
sortedKpis := selectsortedset( kpiTracker, MetaData, metadata, true, metadata.Name() );
|
traverse( sortedKpis, Elements, metadata )
|
{
|
kpiObj := selectsortedset( snapshot, Value, value, true, value.Name() );
|
val := select( kpiObj, Elements, value, metadata.Name() = value.Name() );
|
output := output + guard( [String]val.Value(), "" ) + "; ";
|
}
|
if ( snapshot.Value( relsize ) < 0 )
|
{
|
output := output + "; ";
|
}
|
|
// -- Finish content row with a newline.
|
output := output + String::NewLine();
|
}
|
|
}
|
|
// send result.
|
return output;
|
*]
|
}
|