chenqinghong
2024-05-07 3ec06a830367465068963156dcc1d8e522571c13
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
Quintiq file version 2.0
#parent: #root
StaticMethod CreateSanityCheckGroups (
  MacroPlan macroplan
)
{
  Description: 'Create sanity check group for all the object types that uses the sanity check'
  TextBody:
  [*
    // desmondt Oct-3-2014 (created)
    // Extend sanity check here
    /* ------ Reminder -----
    DT: When new sanity check added, these following methods needs to be updated.
    SanityCheckGroupData::
    1. CalcKPI
    2. DoSanityCheck
    3. CreateSanityCheckGroups
    4. Update SanityCheckMessage.CalcIsValid
    */
    
    // Account
    SanityCheckGroupData::Create( macroplan, Account_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetAccountView(), SanityCheckGroup::GetWebAccountView() );
    
    // ActualsUnitPeriod
    SanityCheckGroupData::Create( macroplan, ActualUnitPeriod::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetCapacitiesAndUtilizationView(), SanityCheckGroup::GetWebSupplyChainPlanningView() );
    
    // ActualsPISPIP
    SanityCheckGroupData::Create( macroplan, ActualProductInStockingPointInPeriod::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetEndingInventoriesView(), SanityCheckGroup::GetWebActualInventoryView() );
    
    // Campaign_MP
    SanityCheckGroupData::Create( macroplan, Campaign_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetCampaignPlanningView(), SanityCheckGroup::GetWebCampaignPlanningView() );
    
    // CampaignType_MP
    SanityCheckGroupData::Create( macroplan, CampaignType_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetCampaignTypesView(), SanityCheckGroup::GetWebCampaignTypeAndTransitionTypeView() );
    
    // Campaign TransitionType_MP
    SanityCheckGroupData::Create( macroplan, TransitionType_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetCampaignTypesView(), SanityCheckGroup::GetWebCampaignTypeAndTransitionTypeView() );
    
    // ConversionFactor
    SanityCheckGroupData::Create( macroplan, ConversionFactor::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetUnitsOfMeasurementView(), SanityCheckGroup::GetWebUnitOfMeasurementsView() );
    
    // Currency_MP
    SanityCheckGroupData::Create( macroplan, Currency_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetCurrenciesView(), SanityCheckGroup::GetWebCurrencyView() );
    
    // CurrencyRate_MP
    SanityCheckGroupData::Create( macroplan, CurrencyRate_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetCurrenciesView(), SanityCheckGroup::GetWebCurrencyView() );
    
    // Demand
    SanityCheckGroupData::Create( macroplan, Demand_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetPeggingView(), SanityCheckGroup::GetWebPeggingView() );
    
    // DependentDemand
    SanityCheckGroupData::Create( macroplan, DependentDemand::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetSupplyChainPlanningView(), SanityCheckGroup::GetWebSupplyChainPlanningView() );
    
    // Fulfillment
    SanityCheckGroupData::Create( macroplan, Fulfillment::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetPeggingView(), SanityCheckGroup::GetWebPeggingView() );
    
    // FulfillmentRestriction
    SanityCheckGroupData::Create( macroplan, FulfillmentRestriction::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetFulfillmentRestrictionsView(), SanityCheckGroup::GetWebFulfillmentRestrictionView() );
    
    // FeedbackPeriodTaskOperation
    SanityCheckGroupData::Create( macroplan, FeedbackPeriodTaskOperation::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetSupplyChainPlanningView(), SanityCheckGroup::GetWebFeedbacksView() );
    
    // FeedbackProductInTrip
    SanityCheckGroupData::Create( macroplan, FeedbackProductInTrip::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetSupplyChainPlanningView(), SanityCheckGroup::GetWebFeedbacksView() );
    
    // GlobalParameters_MP , need not set for webclient
    SanityCheckGroupData::Create( macroplan, GlobalParameters_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetEmptyView() );
    
    // Group, not supported in webclient yet
    SanityCheckGroupData::Create( macroplan, Group::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetGroupsView() );
    
    // Ingredient
    SanityCheckGroupData::Create( macroplan, Ingredient::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRecipesView(), SanityCheckGroup::GetWebRecipesView() );
    
    // InventoryValueAndHoldingCost
    SanityCheckGroupData::Create( macroplan, InventoryValueAndCost::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetInventoryValueView(), SanityCheckGroup::GetWebInventoryValueView() );
    
    // InventorySpecification
    SanityCheckGroupData::Create( macroplan, InventorySpecification::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetInventoryTargetsView(), SanityCheckGroup::GetWebInventoryTargetView() );
    
    // InventorySupply
    SanityCheckGroupData::Create( macroplan, InventorySupply::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetInventorySuppliesView(), SanityCheckGroup::GetWebInventorySuppliesView() );
    
    // InventorySupplyCost
    SanityCheckGroupData::Create( macroplan, InventorySupplyCost::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetInventorySuppliesView(), SanityCheckGroup::GetWebInventorySupplyCostView() );
    
    // Lane
    SanityCheckGroupData::Create( macroplan, Lane::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetLaneView(), SanityCheckGroup::GetWebLanesView() );
    
    // LaneCost
    SanityCheckGroupData::Create( macroplan, LaneCost::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetLaneView(), SanityCheckGroup::GetWebTransportationCostView() );
    
    // LaneLeg
    SanityCheckGroupData::Create( macroplan, LaneLeg::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetLaneView(), SanityCheckGroup::GetWebLanesView() );
    
    // LaneLegCost
    SanityCheckGroupData::Create( macroplan, LaneLegCost::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetLaneView(), SanityCheckGroup::GetWebTransportationCostView() );
    
    // MacroPlan
    SanityCheckGroupData::Create( macroplan, macroplan.DefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetEmptyView() );
    
    // Operation
    SanityCheckGroupData::Create( macroplan, Operation::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRoutingsView(), SanityCheckGroup::GetWebRoutingsView() );
    
    // Operation Link
    SanityCheckGroupData::Create( macroplan, OperationLink::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRoutingsView(), SanityCheckGroup::GetWebRoutingsView() );
    
    // OperationCost
    SanityCheckGroupData::Create( macroplan, OperationCost::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRoutingsView(), SanityCheckGroup::GetWebOperationCostView() );
    
    // OperationInCampaignType
    SanityCheckGroupData::Create( macroplan, OperationInCampaignType::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetCampaignTypesView(), SanityCheckGroup::GetWebCampaignTypeAndTransitionTypeView() );
    
    // OperationInput
    SanityCheckGroupData::Create( macroplan, OperationInput::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRoutingsView(), SanityCheckGroup::GetWebRoutingsView() );
    
    // OperationInputGroup
    SanityCheckGroupData::Create( macroplan, OperationInputGroup::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRoutingsView(), SanityCheckGroup::GetWebRoutingsView() );
    
    // OperationInputSet
    SanityCheckGroupData::Create( macroplan, OperationInputSet::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRoutingsView(),SanityCheckGroup::GetWebRoutingsView() );
    
    // OperationOutput
    SanityCheckGroupData::Create( macroplan, OperationOutput::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRoutingsView(),SanityCheckGroup::GetWebRoutingsView() );
    
    
    // PeriodDefinition_MP
    SanityCheckGroupData::Create( macroplan, PeriodSpecification_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetPeriodsView(), SanityCheckGroup::GetWebPeriodsView() );
    
    // PeriodParameter_MP
    
    
    // PeriodTaskLaneLeg
    SanityCheckGroupData::Create( macroplan, PeriodTaskLaneLeg::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetSupplyChainPlanningView(), SanityCheckGroup::GetWebSupplyChainPlanningView() );
    
    // PeriodTaskOperation
    SanityCheckGroupData::Create( macroplan, PeriodTaskOperation::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetSupplyChainPlanningView(), SanityCheckGroup::GetWebSupplyChainPlanningView() );
    
    // PISPAccount
    SanityCheckGroupData::Create( macroplan, PISPAccount::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetProductsView(), SanityCheckGroup::GetWebInventoryValueView() );
    
    // PISPSpecification
    SanityCheckGroupData::Create( macroplan, PISPSpecification::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetProductsView(), SanityCheckGroup::GetWebProductsView() );
    
    // PostponedSalesDemandCost
    SanityCheckGroupData::Create( macroplan, PostponedSalesDemandCost::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetPostponedSalesDemandCostView(), SanityCheckGroup::GetWebPostponementSpecificationView() );
    
    // PostponementSpecification
    SanityCheckGroupData::Create( macroplan, PostponementSpecification::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetSalesDemandView(), SanityCheckGroup::GetWebPostponementSpecificationView() );
    
    // Priority
    SanityCheckGroupData::Create( macroplan, Priority::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetPrioritiesView(), SanityCheckGroup::GetWebPrioritiesView() );
    
    // Product_MP
    SanityCheckGroupData::Create( macroplan, Product_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetProductsView(), SanityCheckGroup::GetWebProductsView() );
    
    // ProductValueAndCost - not supported in web
    SanityCheckGroupData::Create( macroplan, ProductValueAndCost::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetProductsView() );
    
    // ProductInLane
    SanityCheckGroupData::Create( macroplan, ProductInLane::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetLaneView(), SanityCheckGroup::GetWebLanesView() );
    
    // ProductInStockingPoint_MP
    SanityCheckGroupData::Create( macroplan, ProductInStockingPoint_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetProductsView(), SanityCheckGroup::GetWebProductsView() );
    
    // ProductInStockingPointInPeriod
    SanityCheckGroupData::Create( macroplan, ProductInStockingPointInPeriod::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetPeggingView(), SanityCheckGroup::GetWebPeggingView() );
    
    // ProductInTrip
    SanityCheckGroupData::Create( macroplan, ProductInTrip::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Planning(), SanityCheckGroup::GetSupplyChainPlanningView(), SanityCheckGroup::GetWebSupplyChainPlanningView() );
    
    // ProductLevel_MP
    SanityCheckGroupData::Create( macroplan, ProductLevel_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetProductsView(), SanityCheckGroup::GetWebProductsView() );
    
    // Recipe
    SanityCheckGroupData::Create( macroplan, Recipe::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRecipesView(), SanityCheckGroup::GetWebRecipesView() );
    
    // RecipeIngredient
    SanityCheckGroupData::Create( macroplan, RecipeIngredient::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRecipesView(), SanityCheckGroup::GetWebRecipesView() );
    
    
    // RecipeWithEffectiveDateInProduct
    SanityCheckGroupData::Create( macroplan, RecipeWithEffectiveDate::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRecipesView(), SanityCheckGroup::GetWebRecipesView() );
    
    // Routing
    SanityCheckGroupData::Create( macroplan, Routing::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRoutingsView(), SanityCheckGroup::GetWebRoutingsView() );
    
    // Routing step
    SanityCheckGroupData::Create( macroplan, RoutingStep::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRoutingsView(), SanityCheckGroup::GetWebRoutingsView() );
    
    // Safety stocks
    SanityCheckGroupData::Create( macroplan, SafetyStock::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetInventoryTargetsView(), SanityCheckGroup::GetWebSafetyStocksView() );
    
    // Forecast
    SanityCheckGroupData::Create( macroplan, Forecast::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetWebForecastView(), SanityCheckGroup::GetWebForecastView() );
    
    // Customer order
    SanityCheckGroupData::Create( macroplan, CustomerOrder::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetCustomerOrderView(), SanityCheckGroup::GetWebCustomerOrderView() );
    
    // SalesLevel_MP
    SanityCheckGroupData::Create( macroplan, SalesLevel_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetSalesHierarchyView(), SanityCheckGroup::GetWebSalesSegmentView() );
    
    // SalesSegment_MP
    SanityCheckGroupData::Create( macroplan, SalesSegment_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetSalesHierarchyView(), SanityCheckGroup::GetWebSalesSegmentView() );
    
    // ShiftDay
    SanityCheckGroupData::Create( macroplan, ShiftDay::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetUnitCapacitiesView(), SanityCheckGroup::GetWebUnitTimeCapacitiesView() );
    
    // ShiftPattern
    SanityCheckGroupData::Create( macroplan, ShiftPattern::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetUnitCapacitiesView(), SanityCheckGroup::GetWebUnitTimeCapacitiesView() );
    
    // StockingPoint_MP
    SanityCheckGroupData::Create( macroplan, StockingPoint_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetStockingPointsView(), SanityCheckGroup::GetWebEntitiesView() );
    
    // StockingPointInLane
    SanityCheckGroupData::Create( macroplan, StockingPointInLane::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetLaneView(), SanityCheckGroup::GetWebLanesView() );
    
    // StockingPointAccount
    SanityCheckGroupData::Create( macroplan, StockingPointAccount::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetStockingPointsView(), SanityCheckGroup::GetWebStockingPointCostsView() );
    
    // StockingPointCapacity
    SanityCheckGroupData::Create( macroplan, StockingPointCapacity::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetStockingPointCapacitiesView(), SanityCheckGroup::GetWebStockingPointCapacitiesView() );
    
    // StockingPointCost
    SanityCheckGroupData::Create( macroplan, StockingPointCost::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetStockingPointsView(), SanityCheckGroup::GetWebStockingPointCostsView() );
    
    // StockingPointInPeriod
    SanityCheckGroupData::Create( macroplan, StockingPointInPeriod::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetSupplyChainPlanningView() );
    
    // StockingPointUnit
    SanityCheckGroupData::Create( macroplan, StockingPointUnit::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetRoutingsView(), SanityCheckGroup::GetWebRoutingsView() );
    
    //SubsetOptmizerpuzzle
    SanityCheckGroupData::Create( macroplan, SubsetInOptimizerPuzzle::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), "", "" );
    
    // SupplyTarget
    SanityCheckGroupData::Create( macroplan, SupplySpecification::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetUnitCapacitiesView(), SanityCheckGroup::GetWebSupplyTargetsView() );
    
    // service level
    SanityCheckGroupData::Create( macroplan, ServiceLevel::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetSalesHierarchyView(), SanityCheckGroup::GetWebServiceLevelsView() );
    
    // FulfillmentTarget
    SanityCheckGroupData::Create( macroplan, FulfillmentTarget::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetSalesHierarchyView(), SanityCheckGroup::GetWebFulfillmentTargetsView() );
    
    // Tranport Availability - not support in web
    SanityCheckGroupData::Create( macroplan, TransportAvailability::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetUnitCapacitiesView() );
    
    // TransportCapacity
    SanityCheckGroupData::Create( macroplan, TransportCapacity::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetUnitCapacitiesView(), SanityCheckGroup::GetWebTransportCapacitiesView() );
    
    // Trip - not support in web
    SanityCheckGroupData::Create( macroplan, Trip::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Planning(), SanityCheckGroup::GetSupplyChainPlanningView() );
    
    // Unit
    SanityCheckGroupData::Create( macroplan, Unit::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetUnitsView(), SanityCheckGroup::GetWebEntitiesView() );
    
    // UnitAccount
    SanityCheckGroupData::Create( macroplan, UnitAccount::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetUnitsView(), SanityCheckGroup::GetWebUnitCostView() );
    
    // UnitAvailability
    SanityCheckGroupData::Create( macroplan, UnitAvailability::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetUnitCapacitiesView(), SanityCheckGroup::GetWebUnitTimeCapacitiesView() );
    
    // UnitCalendarElement
    SanityCheckGroupData::Create( macroplan, UnitCalendarElement::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetUnitCapacitiesView(), SanityCheckGroup::GetWebCalendarView() );
    
    // UnitCapacity
    SanityCheckGroupData::Create( macroplan, UnitCapacity::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetUnitCapacitiesView(), SanityCheckGroup::GetWebUnitQuantityView());
    
    // UnitCost
    SanityCheckGroupData::Create( macroplan, UnitCost::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetUnitsView(), SanityCheckGroup::GetWebUnitCostView() );
    
    // UnitOfMeasure_MP
    SanityCheckGroupData::Create( macroplan, UnitOfMeasure_MP::GetDefinitionName(), Translations::MP_SanityCheckGroupType_Data(), SanityCheckGroup::GetUnitsOfMeasurementView(), SanityCheckGroup::GetWebUnitOfMeasurementsView() );
  *]
}