| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod Update ( | 
|   ProductInStockingPoint_MPs pisps, | 
|   Boolean isbatcheditunitofmeasure, | 
|   Boolean hasunitofmeasure, | 
|   String unitofmeasurename, | 
|   Boolean isbatcheditisnegativeinventoryallowed, | 
|   Boolean isnegativeinventoryallowed, | 
|   Boolean isbatcheditisexcluded, | 
|   Boolean isexcluded, | 
|   Boolean isbatcheditisexcludedfrombalancing, | 
|   Boolean isexcludedfrombalancing, | 
|   Boolean isbatcheditisssafetystockkept, | 
|   Boolean issafetystockkept, | 
|   Boolean isbatcheditinputlotsize, | 
|   Real inputlotsize, | 
|   Boolean isbatcheditexcludeshelflife, | 
|   Boolean isexcludeshelflife, | 
|   Boolean isfromdb | 
| ) | 
| { | 
|   Description: 'Batch update' | 
|   TextBody: | 
|   [* | 
|     // Batch update the selected set of ProductInStockingPoint_MPs' PISPSpecification | 
|     // Traverse the selected set of ProductInStockingPoint_MPs | 
|     traverse( pisps, Elements, pisp ) | 
|     { | 
|       // Get PISPSpecification of the current ProductInStockingPoint_MP | 
|       spec := pisp.PISPSpecification(); | 
|        | 
|       // Populate the respective variables with data according to whether the attributes are selected for batch updating | 
|       hasunitofmeasure := ifexpr( isbatcheditunitofmeasure, hasunitofmeasure, guard( spec.HasUnitOfMeasure(), false ) ); | 
|       unitofmeasurename := ifexpr( isbatcheditunitofmeasure, unitofmeasurename, guard( spec.UnitOfMeasureName(), pisp.UnitOfMeasureName() ) ); | 
|       isnegativeinvetoryallowed := ifexpr( isbatcheditisnegativeinventoryallowed, isnegativeinventoryallowed, guard( spec.IsNegativeInventoryAllowed(), false ) ); | 
|       isexcluded := ifexpr( isbatcheditisexcluded, isexcluded, guard( spec.IsExcluded(), false ) ); | 
|       isexcludedfrombalancing := ifexpr( isbatcheditisexcludedfrombalancing, isexcludedfrombalancing, guard( spec.IsExcludedFromBalancing(), false ) ); | 
|       issafetystockkept := ifexpr( isbatcheditisssafetystockkept, issafetystockkept, guard( spec.IsSafetyStockKept(), false ) ); | 
|       inputlotsize := ifexpr( isbatcheditinputlotsize, inputlotsize, guard( spec.InputLotSize(), 0.0 ) );     | 
|       isexcludeshelflife := ifexpr( isbatcheditexcludeshelflife, isexcludeshelflife, guard( spec.IsExcludeShelfLifeAndMaturation(), false ) ); | 
|      | 
|       // Create/Update PISPSpecification | 
|       PISPSpecification::CreateUpdate( pisp.Product_MP(), | 
|                                        pisp.StockingPoint_MP(),  | 
|                                        hasunitofmeasure, | 
|                                        unitofmeasurename, | 
|                                        isnegativeinvetoryallowed, | 
|                                        isexcluded, | 
|                                        isexcludedfrombalancing, | 
|                                        issafetystockkept, | 
|                                        inputlotsize, | 
|                                        isexcludeshelflife, | 
|                                        isfromdb | 
|                                        ); | 
|        | 
|     } | 
|   *] | 
| } |