yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  Number focuslevel,
  Boolean ispriorlevelsfixed,
  Boolean isupdatescaling,
  Boolean runpastfocuslevel,
  LibOpt_Run run,
  String name,
  Boolean applyusersupplycorrection_carriedfwdinventory,
  Boolean keeptotalavailablesupplyoverride,
  Boolean useperiodtaskoperations,
  Boolean isonlyplandemandsmartplanpispips,
  Boolean isextraptqtylevel,
  Boolean extraptqtylevel_doinventorybased,
  Real extraptrylevel_goalslack,
  Boolean applynoisethreshold,
  Boolean usehierchicalcplexgoals,
  Real smallestinttolerance,
  Real smallestfeastolerance,
  Boolean isfullplanformeta,
  Boolean collapselevel,
  Real collapselevelweight
) as CapacityPlanningSuboptimizer
{
  TextBody:
  [*
    capplansubopt := run.Component( relnew, CapacityPlanningSuboptimizer, 
                                    Name := name, 
                                    FocusLevel := focuslevel, 
                                    IsPriorLevelsFixed := ispriorlevelsfixed, 
                                    IsAutoScalingEnabled := isupdatescaling, 
                                    RunPastFocusLevel := runpastfocuslevel, 
                                    Setting_Applyusersupplycorrection_CarriedFWDInventory := applyusersupplycorrection_carriedfwdinventory, 
                                    Setting_KeepTotAlavailableSupplyOverride := keeptotalavailablesupplyoverride, 
                                    GetPeriodsFromPeriodTaskOperation := useperiodtaskoperations, 
                                    IsOnlyPlanDemandForSmartPlanPISPIPs := isonlyplandemandsmartplanpispips, 
                                    IsExecutePTQtyLevelAfterFocusLevel := isextraptqtylevel, 
                                    IsExecutePTQtyDoInventoryBased := extraptqtylevel_doinventorybased, 
                                    IsExecutePTQTYRelativeGoalSlack := extraptrylevel_goalslack,
                                    ApplyNoiseThreshold := applynoisethreshold, 
                                    UseHierarchicalCPLEXGoals := usehierchicalcplexgoals, 
                                    SmallestIntegralityTolerance :=  smallestinttolerance, 
                                    SmallestFeasibilityTolerance := smallestfeastolerance,
                                    IsFullPlanMetaPriorFocus := isfullplanformeta, 
                                    OptionCollapseLevel := collapselevel,
                                    OptionCollapseLevelWeight := collapselevelweight
                                   ); 
    
    
    mp := run.StartComponent().Optimization().astype(  Optimization ).MacroPlan(); 
    capplansubopt.MacroPlan( relset, mp ); 
    
    capplansubopt.IsLPFileExported( mp.Optimization().IsLPFileExported() ); 
    capplansubopt.ThreadAParameter( 333 ); 
    capplansubopt.ThreadBParameter( 667 ); 
    capplansubopt.InitTimeThreadA( 0.0 ); 
    capplansubopt.InitTimeThreadB( 0.0 );
    capplansubopt.InitTimeThreadC( 0.0 );  
    
    return capplansubopt;
  *]
  InterfaceProperties { Accessibility: 'Module' }
}