Quintiq file version 2.0
|
#parent: #root
|
Method ConvertSnapshotsRetentionPolicy (
|
Number batchsize,
|
DssKpiSnapshot startSnapshot,
|
KpiRetentionPolicy oldRetentionPolicy,
|
KpiRetentionPolicy newRetentionPolicy
|
) as stream[DssKpiSnapshotStorage]
|
{
|
Description: 'CAN EXTEND | Dss-specific implementation of ConvertSnapshotsRetentionPolicy that convert retention policy in batches of the specified size, starting from the specified Snapshot onwards. Returns a stream to allow waiting for the last batch to complete.'
|
TextBody:
|
[*
|
snapshot := startSnapshot;
|
entry := 0;
|
while ( not isnull( snapshot ) and entry < batchsize )
|
{
|
convertsnapshot := snapshot;
|
snapshot := snapshot.PreviousSnapshot();
|
|
if ( convertsnapshot.RetentionPolicy().Identification() = oldRetentionPolicy.Identification() )
|
{
|
convertsnapshot.RetentionPolicy( relset, newRetentionPolicy );
|
}
|
|
entry++;
|
}
|
|
// Setup the call to the next batch with low priority.
|
returnStream := emit( this );
|
if ( not isnull( snapshot ) )
|
{
|
returnStream := this
|
->Annotate( ReactiveAnnotation::Priority( 0 ) )
|
->ConvertSnapshotsRetentionPolicy( batchsize, snapshot, oldRetentionPolicy, newRetentionPolicy );
|
}
|
|
return returnStream;
|
*]
|
InterfaceProperties { Accessibility: 'Extensible' }
|
}
|