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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  Method DataMockupGenerateRoutings ( 
 |    Unit unit, 
 |    Number nrofroutings, 
 |    Number nrofinputsperrouting, 
 |    Number nrofoutputsperrouting 
 |  ) 
 |  { 
 |    TextBody: 
 |    [* 
 |      macroplan := this.MacroPlan(); 
 |       
 |      // Create Routing for the number of passed in nrofroutings 
 |      for( i := 0; i < nrofroutings; i++ ) 
 |      { 
 |        // Routing ID 
 |        id := 'Routing_' + [String] i; 
 |         
 |        // Create Routing 
 |        routing := Routing::Create( macroplan, id, id,  
 |                                    Date::MinDate(), 
 |                                    Date::MaxDate(), 
 |                                    false, 
 |                                    false ); 
 |         
 |        // Create RoutingStep 
 |        routingstep := RoutingStep::Create( routing, id, '', false ); 
 |         
 |        // Randomly select an input StockingPoint_MP 
 |        inputsp := minselect( macroplan, StockingPoint_MP, sp, true, Real::Random() ); 
 |        // Randomly select an output StockingPoint_MP 
 |        outputsp := minselect( macroplan, StockingPoint_MP, sp, true, Real::Random() ); 
 |         
 |        // Create Operation 
 |        operation := Operation::Create( unit, routingstep, false ); 
 |        // Create input OperationBOM for the number of passed in nrofinputsperrouting 
 |        for( j := 0; j < nrofinputsperrouting; j++ ) 
 |        {                                   
 |          // Randomly select one Product_MP given that that it is not being used in any input OperationBOM of the current Operation 
 |          product := minselect( macroplan, Product_MP, p,  
 |                                not exists( operation, OperationBOM, oi, 
 |                                            oi.IsInput() 
 |                                            and oi.ProductID() = p.ID() ), 
 |                                Real::Random() ); 
 |                             
 |          // Create input OperationBOM 
 |          OperationBOM::Create( operation,  
 |                                product.ID(),  
 |                                inputsp.ID(),  
 |                                true,  
 |                                1,  
 |                                false,  
 |                                1.0,  
 |                                0.0,  
 |                                0.0,  
 |                                false,  
 |                                false ); 
 |                                  
 |        } 
 |        // Create out OperationBOM for the number of passed in nrofoutputsperrouting 
 |        for( k := 0; k < nrofoutputsperrouting; k++ ) 
 |        {                           
 |          // Randomly select one Product_MP given that that it is not being used in any output OperationBOM of the current Operation 
 |          product := minselect( macroplan, Product_MP, p,  
 |                                not exists( operation, OperationBOM, oo, 
 |                                            not oo.IsInput() 
 |                                            and oo.ProductID() = p.ID() ), 
 |                                Real::Random() ); 
 |                                    
 |          // Create output OperationBOM 
 |          OperationBOM::Create( operation,  
 |                                product.ID(),  
 |                                outputsp.ID(),  
 |                                false,  
 |                                1,  
 |                                false,  
 |                                1.0,  
 |                                0.0,  
 |                                0.0,  
 |                                false,  
 |                                false ); 
 |        } 
 |      } 
 |       
 |      Transaction::Transaction().Propagate(); 
 |    *] 
 |  } 
 |  
  |