haorenhui
2023-10-30 6d6cc10d9e8e242661da7fd655dec155a09d676c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Quintiq file version 2.0
#parent: #root
Method RunOptimizerWithSelectedStrategy (
  MacroPlan macroplan,
  ScenarioManager scenariomanager,
  Strategy strategy,
  OptimizerPuzzle optpuzzle,
  DateTime horizonStart,
  DateTime horizonEnd
) as stream[Void]
{
  Description: 'Run Optimizer with selected strategy'
  TextBody:
  [*
    if ( isnull( optpuzzle ) ) 
    {
      optpuzzle := macroplan.OptimizerPuzzleWorld(); 
    }
    macroplan.RunOptimizer( false, /* issmartplan */
                            false, /* issmartplanforperiodtask */
                            false, /* hastotalsupplyuser */
                            0.0, /* totalsupplyuser */
                            null( ProductInStockingPointInPeriodPlannings ), /* smartplanpispip */
                            false, /* isupstreamsmartplan */
                            false, /* ismiddleoutsmartplan */
                            false, /* isonlyplanonestepupstream */
                            false, /* ispostprocessing */
                            false, /* forcenoautoscaling */
                            strategy, /*strategy */
                            false, /* overwritemanual */
                            select( macroplan, PlanningPeriod, p, p.Start() = horizonStart ), /* periodstart */
                            select( macroplan, PlanningPeriod, p, p.End() = horizonEnd ), /* periodend */
                            false, /* isinventoryoptimizationrun */
                            false, /* isusingselectedunits */
                            null( Units ),
                            null( Process_MP ),
                            optpuzzle );
    
    return Transaction::GetCurrentTask().OnFinish(); // Only use this in UTF (from core software) to wait all running tasks complete before proceeding next reactive call
  *]
  InterfaceProperties { Accessibility: 'Module' }
}