| Quintiq file version 2.0 | 
| #parent: #root | 
| Method GetIncludedRoutings ( | 
|   Units includedunits, | 
|   ProductInStockingPoint_MPs includedPISP | 
| ) as owning Routings | 
| { | 
|   Description: 'Get Operations that are in the scope of the optimizer puzzle ( product and sp included )' | 
|   TextBody: | 
|   [* | 
|     // Get Process in optimizer puzzle scope | 
|     routings := construct( Routings ); | 
|      | 
|     if( this.IsWorld() ) | 
|     { | 
|       routings := this.MacroPlan().Routing( relget ); | 
|     } | 
|     else | 
|     {                       | 
|       // Include Routing IF AND ONLY IF | 
|       // ALL UNIT and PISP Output of the Routing are included | 
|       // WIP should be followed   | 
|      | 
|       routings := selectset( this.MacroPlan(), Routing, routing, | 
|                              forall( routing, OperationOutput, oo,                             // Using for all at OO level to check both condition all together | 
|                                      includedunits.Find( oo.Operation().Unit() ) > -1          // Check if units is in | 
|                                      and ( oo.ProductInStockingPoint_MP().IsSystem()           // If units is in and is WIP, skip pisp check | 
|                                            or ( not oo.ProductInStockingPoint_MP().IsSystem()  // If is output bom, chcek PISP | 
|                                                 and includedPISP.Find( oo.ProductInStockingPoint_MP() ) > -1 ) ) ) );      | 
|                  | 
|     } | 
|      | 
|     return &routings; | 
|   *] | 
| } |