Quintiq file version 2.0
|
#parent: #root
|
Method DoInitializeNonConst (
|
LibOpt_Task task
|
)
|
{
|
TextBody:
|
[*
|
start := OS::PrecisionCounter();
|
this.CheckScalingFactors(); // Prevent badly initialized zero or negative scaling factors
|
|
this.BaseForActualTime( DateTime::ActualTime() );
|
this.DebugStoreScopeInfo( task.Scope() );
|
this.DetailsCPLEX( '' );
|
this.AllLevelsOptimal( true );
|
|
scope := task.Scope();
|
this.SetPeriodTaskOperationRelationInScope( scope ); // set relation so we can go from Operation in scope directly to its period tasks in scope
|
|
runcontext := this.GetRunContextConst();
|
|
this.CreateSubOptimizerLevels( runcontext, task );
|
|
if ( runcontext.IsMetaIteration() and this.Optimization().astype( Optimization ).DebugMode() )
|
{
|
valuesmodel := this.MPVarValuesModel();
|
valuesmodel.KPIStockingPointCapacity( this.MacroPlan().GetKPIStockingPointCapacity( scope.GetStockingPointInPeriodInOptimizerRunConst() ) );
|
valuesmodel.KPIMaxInventoryLevel( this.MacroPlan().GetKPIMaximumInventoryLevel( scope.GetPISPIPInOptimizerRunConst() ) );
|
unitperiods := scope.GetUnitPeriodInOptimizerRunConst();
|
valuesmodel.KPIUnitCapacity( this.MacroPlan().GetKPIUnitCapacity( unitperiods ) );
|
valuesmodel.KPILotSizeTripContinuous( this.MacroPlan().GetKPILotSizeTripContinuous( unitperiods ) );
|
}
|
|
this.SynchronizeTools( scope );
|
|
// Initialize the scaling types instances (used in the auto-scaling)
|
if( this.IsAutoScalingEnabled() )
|
{
|
this.InitScalingTypes();
|
}
|
|
SelectorMeta::ComputeFirstLastPISPIPInScope( scope ); // we need to ensure the relation pisp.LatestLeafPISPIPInScope has been set. We don't want to rely on the fact it has been
|
// computed in the selector already, so we recompute not to break componentized-structure.
|
end := OS::PrecisionCounter();
|
durationinit_nc := (end - start)/ OS::PrecisionCounterFrequency();
|
debuginfo( 'Duration non const init =', durationinit_nc );
|
task.Log( 'Duration init non const = ' + [String] durationinit_nc );
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|