| Quintiq file version 2.0 | 
| #parent: #root | 
| Method InitVariablesForLevelGoal ( | 
|   CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program, | 
|   const RunContextForCapacityPlanning runcontext | 
| ) const | 
| { | 
|   Description: 'Initialize all KPI variables that used as goal' | 
|   TextBody: | 
|   [* | 
|     traverse( this, MacroPlan.StrategyMacroPlan.StrategyLevelMacroPlan, level )  | 
|     { | 
|       var := program.GoalForLevelVariables().New( level );  | 
|       var.LowerBound( Real::MinReal() );  | 
|       if ( runcontext.IsMetaIteration() )  | 
|       { | 
|         varslack := program.GoalLevelSlackVariables().New( level );  | 
|         varslack.UpperBound( 0.0 ); // only when we set a bound for the level we will allow some small nonzero value  | 
|       } | 
|     } | 
|      | 
|     if ( runcontext.IsMetaIteration() )  | 
|     { | 
|       lotsizevarslack := program.GoalLevelSlackLotSizeVariables().New();  | 
|       lotsizevarslack.UpperBound( 0.0 );  | 
|     } | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |