| Quintiq file version 2.0 | 
| #parent: #root | 
| Method RemoveUnusedOperationPeriodTaskAfterSmartPlan ( | 
|   LibOpt_Task task | 
| ) | 
| { | 
|   Description: 'Remove the period task with quantity = 0 after running optimizer, to reduce memory consumption' | 
|   TextBody: | 
|   [* | 
|     runcontext := RunContextForCapacityPlanning::GetRunContextCapacityPlanning( task.Run() );  | 
|     userperiodtasks := runcontext.GetUserPeriodTaskOperations();  | 
|      | 
|     periodtasks := selectset( task, TaskContext.astype( TaskContextSmartPlan ).PeriodTaskOperation, periodtask,  | 
|                               not periodtask.HasFeedback()  | 
|                               and not periodtask.UnitPeriod().IsPeriodFrozen()  | 
|                               and periodtask.OptimizerQuantity() = 0 );  | 
|      | 
|     periodtasks := periodtasks.Difference( userperiodtasks );   // Remove those with manual planning quantity set to 0. | 
|      | 
|     traverse( periodtasks, Elements, pt ) | 
|     { | 
|       pt.Delete(); | 
|     } | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |