Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method DebugWriteVariables ( 
 | 
  CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program, 
 | 
  LibOpt_Scope scope, 
 | 
  ProductInStockingPointInPeriodPlannings pispipsinrun 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    if ( this.MacroPlan().Optimization().DebugMode() )  
 | 
    { 
 | 
      traverse(  scope.GetStockingPointInPeriodInOptimizerRun(), Elements, spip, not spip.StockingPoint_MP().IsPlannedInfinite() )  
 | 
      { 
 | 
        invvar := program.SPInvQtyVariables().Get( spip ); 
 | 
        overloadvar := program.StockingPointCapacityOverloadedVariables().Get( spip );  
 | 
        spip.DebugSPCapacityOverloadedVariable( overloadvar.OptimalValue() );  
 | 
        spip.DebugSPInventoryQtyVariable( invvar.OptimalValue() );  
 | 
      } 
 | 
       
 | 
      traverse( pispipsinrun, Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ), pleaf )  
 | 
      { 
 | 
        pleaf.DebugInventoryEndVariable( program.InvQtyVariables().Get( pleaf ).OptimalValue() );  
 | 
         
 | 
        if ( pleaf.ProductInStockingPoint_MP().IsOptShelfLife() or pleaf.ProductInStockingPoint_MP().IsOptMaturation() ) 
 | 
        { 
 | 
          cwstr := '';  
 | 
          cpstr := '';  
 | 
          cdstr := '';  
 | 
          traverse( pleaf, ProductInStockingPoint_MP.IncomingShelfLifeDay, islday )  
 | 
          { 
 | 
            varcd := program.CumulativeDemandVariables().Get( pleaf, islday ); 
 | 
            varcw := program.CumulativeWasteVariables().Get( pleaf,islday ); 
 | 
            varcp := program.CumulativeProductionVariables().Get( pleaf, islday );  
 | 
             
 | 
            cwstr := cwstr + ',' + [String] varcw.OptimalValue() + '[' + [String] islday.ShelfLifeDays() + ']';  
 | 
            cpstr := cpstr + ',' + [String] varcp.OptimalValue() + '[' + [String] islday.ShelfLifeDays() + ']';  
 | 
            cdstr := cdstr + ',' + [String] varcd.OptimalValue() + '[' + [String] islday.ShelfLifeDays() + ']';  
 | 
          } 
 | 
          pleaf.DebugOptimizerCumulProduction(cpstr);  
 | 
          pleaf.DebugOptimizerCumulDemand(cdstr);  
 | 
          pleaf.DebugOptimizerWaste(cwstr); 
 | 
        }  
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |