Quintiq file version 2.0
|
#parent: #root
|
Method GetPISPIPInputsToUnitPeriodBottleNeck (
|
LibOpt_Scope out_scope,
|
RunContextForCapacityPlanning runcontext,
|
Number maxperiodtasks
|
) as owning ProductInStockingPointInPeriodPlanningLeafs
|
{
|
TextBody:
|
[*
|
detectunitperiodbottleneck := this.MustDetectUnitPeriodCapacityBottleneck( runcontext );
|
pispips_inputs_to_bottleneck := construct( ProductInStockingPointInPeriodPlanningLeafs );
|
if ( detectunitperiodbottleneck )
|
{
|
// collect bottleneck points unit capacity
|
unitperiodsbottleneck := selectset( out_scope.GetPeriodTaskOperationInOptimizerRun(), Elements.UnitPeriod, up, true, up.HasBottleNeckUtilization() );
|
ptos_nonzero := selectsortedset( unitperiodsbottleneck, Elements.PeriodTaskOperation, pto, not pto.Quantity() = 0.0, Real::Random() );
|
if ( maxperiodtasks.IsFinite() )
|
{
|
ptos_nonzero := ptos_nonzero.SelectFirst( maxperiodtasks );
|
}
|
pispips_inputs_to_bottleneck := selectset( ptos_nonzero, Elements.DependentDemand.ProductInStockingPointInPeriodPlanningLeaf, p, true, true );
|
}
|
return &pispips_inputs_to_bottleneck;
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|