Quintiq file version 2.0
|
#parent: #root
|
Method InitializeStartOfLevel (
|
LibOpt_Task task
|
)
|
{
|
TextBody:
|
[*
|
eis := task.Run().Optimization().astype( Optimization ).MacroPlan().OptimizerMetaEIS();
|
if ( not this.FocusLevel() = eis.FocusLevelForEIS() ) // optimizer pre-processor inits macroplan.FocusLevelForEIS at -1, so we always trigger this the 1st operation, 1st level.
|
{
|
debuginfo( 'Triggering EIS computation for focus level', this.FocusLevel(), ' old EIS focus = ', eis.FocusLevelForEIS() );
|
weightlevels := RunContextForCapacityPlanning::GetRunContextCapacityPlanning( task.Run() ).WeightLevelNonFinancial();
|
eis.SetWeightLevelsForEIS( weightlevels ); // we could do this only for the first level, but more robustly coded to set it at the start of any level
|
eis.FocusLevelForEIS( this.FocusLevel() );
|
|
Transaction::Transaction().Propagate( attribute( ProductInStockingPointInPeriodPlanning, EstimatedImprovementScore ) );
|
Transaction::Transaction().Propagate( attribute( Trip, EstimatedImprovementScore ) );
|
Transaction::Transaction().Propagate( attribute( PeriodTaskOperation, EstimatedImprovementScore ) );
|
Transaction::Transaction().Propagate( attribute( UnitPeriod, EstimatedImprovementScore ) );
|
|
opt := task.Run().Optimization().astype( Optimization );
|
mp := opt.MacroPlan();
|
strategymacroplan := mp.StrategyMacroPlan();
|
slm := select( strategymacroplan,
|
StrategyLevelMacroPlan,
|
level,
|
true,
|
level.Level() = this.FocusLevel() and level.MetaLastAutoScalingRun().IsFinite() ); // if not set then give null object, and fallback to non level specific factors
|
debuginfo( 'Calling to update goal scaling. Current focus = ', this.FocusLevel() );
|
opt.UpdateGoalScaling( strategymacroplan, slm );
|
debuginfo( 'Found level specific scaling factors = ', not isnull( slm ) );
|
traverse( opt, AlgorithmScaling.ScaleFactor, sf )
|
{
|
debuginfo( 'Using scaling factor ', Optimization::ScaleTypeName( sf.Type() ), 'value = ', sf.Value() );
|
}
|
}
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|