| 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' } | 
| } |