Quintiq file version 2.0
|
#parent: #root
|
MethodOverride CreateComponents (
|
LibOpt_Run run
|
)
|
{
|
TextBody:
|
[*
|
|
|
// create CapacityPlanningSubOptimizer
|
// note userperiodtasks and userproductintrips are set as relations on this object, pispipssmartplan is empty for this suboptimizer
|
|
//run.DebugScope( true );
|
prepostcomp := run.Component( relnew, OptimizerPrePostProcessing, Name := 'PrePostProcessing_FullRun' );
|
runcontext := RunContextForCapacityPlanning::GetRunContextCapacityPlanning( run );
|
|
transformerforuserperiodtasks := run.Component( relnew, TransformerFullRun, Name := 'TransformerFullRun' );
|
selectorfullpuzzle := run.Component( relnew, SelectorFullPuzzle, Name := 'SelectorFullPuzzle' );
|
|
suboptimizer := CapacityPlanningSuboptimizer::Create( runcontext.MaxLevel(), // focuslevel
|
false, // ispriorlevelsfixed
|
runcontext.IsAutoScalingEnabled(), // isupdatescaling
|
false, // runpastfocuslevel
|
run,
|
'CapacityPlanningSubOptimizerForFullRun', // name
|
false, // user supply correction carried fwd inventory
|
false, // keep total available supply
|
false, // do not use periodtaskoperation in definition
|
false, // only plan demand smart plan pispips
|
false, // no extra level to minimize ptqty
|
false, // not applicable
|
0.0, // not applicable
|
true, // apply noise treshold
|
run.Optimization().astype( Optimization ).MacroPlan().StrategyMacroPlan().UseHierarchicalSolver(), // hierarchical cplex goals
|
runcontext.SmallestIntegralityTolerance(),
|
runcontext.SmallestFeasibilityTolerance(),
|
false, // full plan for meta
|
false, // collapse level
|
0.0 ); // collapse level weight
|
|
|
RollbackKPIMeta::Create( suboptimizer,
|
RunContextForCapacityPlanning::GetRunContextCapacityPlanning( run ),
|
0, // unused
|
0.0, // unused
|
0.0, // unused
|
runcontext.SmallestFeasibilityTolerance(), // blending KPI accuracy
|
true, // unused
|
runcontext.MaxLevel(),
|
true ); // always accept - just want to see scores in snapshots
|
|
prepostcomp.To( selectorfullpuzzle );
|
selectorfullpuzzle.To( transformerforuserperiodtasks );
|
transformerforuserperiodtasks.To( suboptimizer );
|
|
startexcludedproducts := Optimization::GetStartComponentForExcludedProductsOptimization( run );
|
if ( not isnull( startexcludedproducts ) )
|
{
|
suboptimizer.To( startexcludedproducts );
|
}
|
|
this.ConfigureForOneTransaction( run );
|
run.InOneTransaction( false );
|
suboptimizer.InOneTransaction( false );
|
*]
|
}
|