Quintiq file version 2.0
|
#parent: #root
|
MethodOverride StoreSnapshot (KpiSnapshotData snapshotData)
|
{
|
TextBody:
|
[*
|
// Create a real Snapshot object from the specified data object.
|
snapshot := DssKpiSnapshot::Create( this, snapshotData.ServerDateTime(), snapshotData.PlanDateTime() );
|
snapshot.DatasetMDSID( snapshotData.SourceDatasetMDSID() );
|
|
// Store the Labels
|
labelValues := this.GetOrCreateLabelValues( snapshotData.Label( relget ) );
|
snapshot.AddLabelValues( labelValues );
|
|
// Create the KPIs
|
kpiMetaDatas := this.GetOrCreateMatchingMetaDatas( snapshotData.Value( relget ) );
|
configuration := this.GetOrCreateMatchingConfiguration( kpiMetaDatas );
|
snapshot.Configuration( relset, configuration );
|
|
// Prepare and store the KPI values.
|
kpiValues := this.GetKpiValuesAsReals( snapshotData.Value( relget ) );
|
snapshot.StoreValues( kpiValues );
|
|
// Set the retention policy.
|
policy := this.KpiTracker().GetRetentionPolicyByIdentifier( snapshotData.RetentionPolicyIdentification() );
|
if ( isnull( policy ) )
|
{
|
info( "KpiTracker | Warning: could not find specified retention policy '", snapshotData.RetentionPolicyIdentification(), "', reverting to default." );
|
policy := this.KpiTracker().DefaultRetentionPolicy();
|
}
|
snapshot.RetentionPolicy( relset, policy );
|
|
// If the retention policy is 'TEMPORARY' then also remove the previous snapshot with the same
|
// label/labelvalues combination.
|
if ( policy.Identification() = KpiRetentionPolicy::POLICY_TEMPORARY() )
|
{
|
this.RemovePreviousTemporarySnapshots( snapshot );
|
}
|
*]
|
}
|