From 4f426fd0938d68df759fff7570ad6ec2e62bac96 Mon Sep 17 00:00:00 2001
From: renhao <renhui.hao@capgemini.com>
Date: 星期三, 18 十月 2023 09:08:32 +0800
Subject: [PATCH] Merge branch 'dev'

---
 _Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Response_ButtonLoad_OnClick#417.def                                                                           |   20 
 _Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl                                                                                     |   45 
 _Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate.qbl                                                                                             |   11 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def                                                                                        |    4 
 _var/_Main/ModelSettings/Common/Dev-68/_ROOT_Role_Dev-68.properties                                                                                                   |  575 ++++
 _var/_Main/ProjSettings/MacroPlanner/ColSch/Global.cs                                                                                                                 |  574 ++--
 _Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl                                                                                |   45 
 _Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_PanelButton_ButtonTransform_OnClick.def                                                      |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormProducts/Response_TIANMA_JITUAN_ListProduct_844_MenuMarkingPanelMaterial_OnClick.def                                        |    1 
 _Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_ListFillingCapacityOrder_MenuSelectAll_OnClick.def                                            |   17 
 _Main/BL/Type_ManufactureLTImputation/StaticMethod_Refresh.qbl                                                                                                        |    5 
 _Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl                                                                                                                      |   38 
 _Main/BL/Type_CapacityAllocationResults/StaticMethod_Test.qbl                                                                                                         |   16 
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonExportPRHistory_OnClick.def                                               |    3 
 _Main/BL/Type_MacroPlan/StaticMethod_DoSync#618.qbl                                                                                                                   |    4 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def                                                                             |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonGenerateTestData_OnClick.def                                                            |   25 
 _Main/BL/Type_CapacityAllocationResults/StaticMethod_Test1.qbl                                                                                                        |   22 
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def                                                           |   15 
 _Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def                                                      |   12 
 _Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate1.qbl                                                                                                  |   42 
 _Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration3.qbl                                                                                         |   63 
 _Main/UI/MacroPlannerWebApp/Views/Test.vw                                                                                                                             |  323 --
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def                                                                |    2 
 _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_AutomaticallyGenerateRule.qbl                                                                   |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def                                               |    3 
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def                     |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/_ROOT_Component_FormManufactureLT.def                                                                         |   11 
 _Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def                                                                       |   22 
 _Main/BL/Type_PRHistoryData/StaticMethod_Export.qbl                                                                                                                   |   13 
 _Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Component_ListManufactureLTImputation.def                                                                 |    2 
 _Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Method_ClickBtnOk.def                                                                          |   17 
 _Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def                                                                   |    3 
 _Main/BL/Type_GlobalDTOTable/Method_InitTestDataByYear.qbl                                                                                                            |   68 
 _Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def                                                                |    1 
 _Main/UI/MacroPlannerWebApp/Views/面板拉料_各事业部操作.vw                                                                                                                      |    2 
 _Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl                                                                             |   16 
 _Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl                                                                                                      |    6 
 _Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl                                                                                            |   77 
 _Main/BL/Type_GlobalDTOTable/Method_InitTestData#12.qbl                                                                                                               |   59 
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_listContextMenuCapacityAllocationResultsRuleConfiguration_MenuAutoC.def |   20 
 _Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_listContextMenuCustomerAndFillingCapacityOrder.def                                          |   15 
 _Main/UI/MacroPlannerWebApp/Views/填产.vw                                                                                                                               |  607 ++++
 _Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick#549.def                                                    |    3 
 _Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuRefreshManufactureLTProcessSect.def                          |    2 
 _Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New#221.def                                                                                      |    2 
 _Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl                                                                                 |   45 
 _Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Response_SelectionScenario_OnSelectionChanged.def                                                          |    7 
 _Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_SetOrgCodeFromForecast.qbl                                                                                  |   21 
 _Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl                                                                                                     |    3 
 _Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer#25.qbl                                                                                                    |   15 
 _Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedging.qbl                                                                                                        |   12 
 _Main/BL/Type_ManufactureLTImputation/StaticMethod_CreateOrUpdate.qbl                                                                                                 |    6 
 _var/_Main/ProjSettings/MacroPlanner/Views/X_分析视图_[414702.1.50321581].vw                                                                                              | 3216 +++++++++++++++++++++++
 _Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders1.qbl                                                                            |   41 
 _Main/BL/Type_PRData/StaticMethod_Export.qbl                                                                                                                          |   13 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def                                                                       |    1 
 _Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_ListFillingCapacityOrder_MenuDelete_OnClick.def                                               |    1 
 _Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl                                                                                         |   60 
 _Main/BL/Type_PRHistoryData/StaticMethod_Export#527.qbl                                                                                                               |  199 +
 _Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate0.qbl                                                                                            |   13 
 _Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl                                                                                                              |    5 
 _Main/UI/MacroPlannerWebApp/Views/对接ERP进行PR释放.vw                                                                                                                      |   79 
 _Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetUnitBySKU.qbl                                                                                                        |    5 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonGeneratePlannedData_OnClick#124.def                                               |    4 
 _Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def                                                                               |    4 
 _Main/BL/Type_MacroPlan/Method_MappingProductData.qbl                                                                                                                 |    4 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews#633.def                                                              |    4 
 _Main/BL/Type_FillingCapacityOrder/StaticMethod_CreateFillingCapacityOrder.qbl                                                                                        |   37 
 _Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def                                          |   12 
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listContextMenuCapacityAllocationResultsRuleConfiguration.def          |   32 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/_ROOT_Component_FormPanelMaterialSpecializedDisplay.def                                     |    1 
 _Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioSelect_OnClick.def                                                     |   10 
 _var/_Main/ModelSettings/Common/Dev-48/_ROOT_Role_Dev-48.properties                                                                                                   |  575 ++++
 _Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuRefreshManufactureLTImputation_OnCl.def                          |    2 
 _Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply.qbl                                                                                                      |    5 
 _Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_ObtainOrganizationCode.qbl                                                                                      |   19 
 _var/_Main/ProjSettings/MacroPlannerWebApp/Views/ManufactureLT.vw                                                                                                     |  239 +
 _Main/BL/Type_MacroPlan/StaticMethod_DoSync.qbl                                                                                                                       |    2 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def                                                                             |    2 
 _Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuApplyManufactureLTProcessSe#444.def                          |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuGenerateByPeggin.def |   23 
 _Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick#545.def                                           |    3 
 _Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompare.qbl                                                                                                   |   23 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral#549.def                                                                         |   41 
 _Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Refresh.qbl                                                                                                    |    9 
 .gitignore                                                                                                                                                            |    2 
 _Main/BL/Type_PRData/StaticMethod_Export#346.qbl                                                                                                                      |  209 +
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_OrganizationInfomation.qbl                                                                               |    8 
 _Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateData.qbl                                                                                                    |   20 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_TIANMA_JITUAN_PanelGeneral_549_checkboxEnableSync_OnChanged.def                               |    2 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_CopyScenario.def                                                                                |    2 
 _Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuFolderNewMacroPlan_OnClick.def                                                 |   11 
 _Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def                                                        |    3 
 _Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def                                                       |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def                                                                 |    2 
 _Main/BL/Type_ManufactureLTImputation/StaticMethod_Apply.qbl                                                                                                          |    5 
 _Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply#202.qbl                                                                                                  |    7 
 _Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl                                                                                                                  |   18 
 _Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Component_ListManufactureLT#943.def                                                                           |    6 
 _Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateFillingCapacityOrder.qbl                                                                                    |    8 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonSalesFillingCapacity_O.def                        |   16 
 _Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Response_pnlActions_btnOk_OnClick.def                                                          |   12 
 _Main/BL/Type_MPSync/StaticMethod_TestData.qbl                                                                                                                        |   64 
 _Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuApplyManufactureLTImputation_OnClic.def                          |    2 
 /dev/null                                                                                                                                                             |   26 
 _Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New.def                                                                                          |    2 
 _Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl                                                                                                |   52 
 _Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Response_ListManufactureLT_943_MenuApply_OnClick.def                                                          |   23 
 _Main/BL/Relations/Relation_ManufactureLTImputation_GlobalOTDTable_GlobalOTDTable_ManufactureLT.qbl                                                                   |   23 
 _Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioNewMacroPlan_OnClick.def                                               |   12 
 111 files changed, 7,182 insertions(+), 989 deletions(-)

diff --git a/.gitignore b/.gitignore
index 6868dd4..fd82653 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,4 +24,4 @@
 
 /.idea
 _Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
-*.properties
+#*.properties
diff --git a/_Main/BL/Relations/Relation_ManufactureLTImputation_GlobalOTDTable_GlobalOTDTable_ManufactureLT.qbl b/_Main/BL/Relations/Relation_ManufactureLTImputation_GlobalOTDTable_GlobalOTDTable_ManufactureLT.qbl
new file mode 100644
index 0000000..3a23be5
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ManufactureLTImputation_GlobalOTDTable_GlobalOTDTable_ManufactureLT.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ManufactureLTImputation_GlobalOTDTable_GlobalOTDTable_ManufactureLTImputation
+{
+  #keys: '1[414384.0.964611377]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide GlobalOTDTable
+  {
+    #keys: '3[414384.0.964611379][414384.0.964611378][414384.0.964611380]'
+    Cardinality: '0to1'
+    ObjectDefinition: ManufactureLTImputation
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide ManufactureLTImputation
+  {
+    #keys: '3[414384.0.964611382][414384.0.964611381][414384.0.964611383]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_ManufactureLTImputation_MacroPlan_MacroPlan_ManufactureLTImputation.qbl b/_Main/BL/Relations/Relation_ManufactureLTImputation_MacroPlan_MacroPlan_ManufactureLTImputation.qbl
deleted file mode 100644
index 7aa6d28..0000000
--- a/_Main/BL/Relations/Relation_ManufactureLTImputation_MacroPlan_MacroPlan_ManufactureLTImputation.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation ManufactureLTImputation_MacroPlan_MacroPlan_ManufactureLTImputation
-{
-  #keys: '1[414384.0.697090694]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide MacroPlan
-  {
-    #keys: '3[414384.0.697090696][414384.0.697090695][414384.0.697090697]'
-    Cardinality: '0to1'
-    ObjectDefinition: ManufactureLTImputation
-    OwningSide: 'Reference'
-  }
-  RelationSide.RightSide ManufactureLTImputation
-  {
-    #keys: '3[414384.0.697090699][414384.0.697090698][414384.0.697090700]'
-    Cardinality: '1toN'
-    ObjectDefinition: MacroPlan
-    OwningSide: 'Owned'
-  }
-}
diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate1.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate1.qbl
new file mode 100644
index 0000000..2b6d0a6
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate1.qbl
@@ -0,0 +1,42 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateDate1 (
+  MacroPlan macroPlan,
+  GlobalOTDTable globalOTDTable,
+  DependentDemand dependentDemand,
+  NewSupply newSupply,
+  Supply_MP firstNewSupply,
+  CapacityAllocationResultsRuleConfiguration capacityAllocationResultsRuleConfiguration,
+  Real fulfillmentQuantity
+)
+{
+  TextBody:
+  [*
+    panelPISP := dependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP();
+    info( "浜у搧ID锛�", panelPISP.ProductID(), "    搴撳瓨鐐笽D锛�", panelPISP.StockingPointID() );
+    productID := dependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID();
+    
+    if ( capacityAllocationResultsRuleConfiguration.PanelMaterialCode() = productID ) {
+      info( "鎵惧埌浜嗭紒锛侊紒" );
+      globalOTDTable.CapacityAllocationResults( relnew,
+                                                PanelBase             := panelPISP.StockingPointID(),
+                                                PanelMaterialCode     := panelPISP.ProductID(),
+                                                NumberOfPanels        := fulfillmentQuantity,
+                                                PanelMeasurementUnit  := panelPISP.UnitOfMeasure_MP().Name(),
+                                                ModuleMaterialCode    := firstNewSupply.ProductInStockingPointInPeriodPlanning().ProductInStockingPoint_MP().ProductID(),
+                                                NumberOfModules       := firstNewSupply.Quantity(),
+                                                ModuleMeasurementUnit := firstNewSupply.ProductInStockingPointInPeriodPlanning().ProductInStockingPoint_MP().UnitOfMeasureName(),
+                                                ModuleBase            := firstNewSupply.ProductInStockingPointInPeriodPlanning().ProductInStockingPoint_MP().StockingPointID(),
+                                                RequirementDate       := dependentDemand.Start().Date(),
+                                                // 瀵煎嚭澶栭儴渚涘簲瀛楁
+                                                Date                  := dependentDemand.Start().Date(),
+                                                Description           := "",
+                                                ID                    := OS::GenerateGUIDAsString(),
+                                                ProductID             := panelPISP.ProductID(),
+                                                StockingPointID       := panelPISP.StockingPointID(),
+                                                UserQuantity          := fulfillmentQuantity,
+                                                ManufacturedDate      := Date::MinDate()
+                                               );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration3.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration3.qbl
new file mode 100644
index 0000000..1c16b4d
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration3.qbl
@@ -0,0 +1,63 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod IterativeGeneration3 (
+  MacroPlan macroPlan,
+  GlobalOTDTable globalOTDTable,
+  Supply_MP smp,
+  Supply_MP firstSMP,
+  Number numberOfPlies,
+  Real fulfillmentQuantity,
+  CapacityAllocationResultsRuleConfiguration capacityAllocationResultsRuleConfiguration
+)
+{
+  TextBody:
+  [*
+    info( "灞傛暟锛�", numberOfPlies );
+    ontype ( smp ) {
+      NewSupply as ns : {
+        info( "渚涘簲绫诲瀷锛圢ewSupply锛�", "    渚涘簲閲忥細", ns.Quantity(), "    瀹為檯鐢ㄩ噺锛�", fulfillmentQuantity );
+        ontype ( ns.PeriodTask_MP() ) {
+          PeriodTaskOperation as pto : {
+            info( "鎿嶄綔鍛ㄦ湡浠诲姟    ", "渚涘簲鏃堕棿锛�", ns.Start().Format( "Y-M2-D2" ), "    鍛ㄦ湡浠诲姟KEY锛�", pto.Key(), "    ",
+                  ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name() );
+            traverse ( pto, DependentDemand, dd, dd.Quantity() > 0 ) {
+              traverse ( dd, Fulfillment, f ) {
+                smp1 := f.Supply_MP();
+                numberOfPlies++;
+                fulfillmentQuantity := ( dd.Quantity() / ns.Quantity() ) * fulfillmentQuantity;
+                info( "--------------------------------------------------------------" );
+                if ( not isnull( capacityAllocationResultsRuleConfiguration ) ) {
+                  CapacityAllocationResults::CreateDate1( macroPlan, globalOTDTable, dd, ns, firstSMP, capacityAllocationResultsRuleConfiguration, fulfillmentQuantity );
+                }
+                CapacityAllocationResults::IterativeGeneration3( macroPlan, globalOTDTable, smp1, firstSMP, numberOfPlies, fulfillmentQuantity, capacityAllocationResultsRuleConfiguration );
+                numberOfPlies--;
+              }
+            }
+          }
+           
+          PeriodTaskLaneLeg as ptll : {
+            targetDependentDemand := select( ptll, DependentDemand, dd, dd.ProcessInput().ProductInStockingPoint_MP().ProductID() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() and
+                                             dd.Quantity() = ns.Quantity() );
+            info( "杞﹂亾鍛ㄦ湡浠诲姟    ", "渚涘簲鏃堕棿锛�", ns.Start().Format( "Y-M2-D2" ), "    鍛ㄦ湡浠诲姟KEY锛�", ptll.Key(), "    ", 
+                  ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name() );
+            traverse ( targetDependentDemand, Fulfillment, f ) {
+              smp1 := f.Supply_MP();
+              numberOfPlies++;
+              info( "--------------------------------------------------------------" );
+              if ( not isnull( capacityAllocationResultsRuleConfiguration ) ) {
+                CapacityAllocationResults::CreateDate1( macroPlan, globalOTDTable, targetDependentDemand, ns, firstSMP, capacityAllocationResultsRuleConfiguration, f.Quantity() );
+              }
+              CapacityAllocationResults::IterativeGeneration3( macroPlan, globalOTDTable, smp1, firstSMP, numberOfPlies, f.Quantity(), capacityAllocationResultsRuleConfiguration );
+              numberOfPlies--;
+            }
+          }
+        }
+      }
+          
+      InventorySupply as is : {
+        info( "渚涘簲绫诲瀷锛圛nventorySupply锛�    ", "渚涘簲鏃堕棿锛�", is.Date().Format( "Y-M2-D2" ), "    渚涘簲閲忥細", is.Quantity(), 
+              "    瀹為檯鐢ㄩ噺锛�", fulfillmentQuantity, "    ", is.ProductInStockingPoint_MP().Name() );
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Test.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Test.qbl
index 46856be..416ea24 100644
--- a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Test.qbl
+++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Test.qbl
@@ -1,13 +1,25 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod Test (
-  MacroPlan macroPlan
+  MacroPlan macroPlan,
+  GlobalOTDTable globalOTDTable
 )
 {
   TextBody:
   [*
-    traverse ( macroPlan, SalesDemand, sd, sd.ProductID() = "Chassis - SUV 1" ) {
+    globalOTDTable.CapacityAllocationResults( relflush );
     
+    capacityAllocationResultsRuleConfiguration := select( globalOTDTable, CapacityAllocationResultsRuleConfiguration, carrc, 
+                                                          carrc.ModuleMaterialCode() = "ProXOver 1 D2.6 A" and
+                                                          carrc.StockingPointID() = "Carco Philadelphia" );
+    
+    traverse ( macroPlan, Product_MP.ProductInStockingPoint_MP, pisp, pisp.ProductID() = "ProXOver 1 D2.6 A"        and 
+                                                                      pisp.StockingPointID() = "Carco Philadelphia" ) {
+      traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ).Supply_MP, smp, 
+                 /*smp.ProductInStockingPointInPeriodPlanning().Start().Date() = Date::Construct( 2020, 4, 7 ) and*/
+                 smp.Quantity() > 0 ) {                                                                  
+        CapacityAllocationResults::IterativeGeneration3( macroPlan, globalOTDTable, smp, smp, 1, smp.Quantity(), capacityAllocationResultsRuleConfiguration );
+      }
     }
   *]
 }
diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Test1.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Test1.qbl
new file mode 100644
index 0000000..a56cf1b
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Test1.qbl
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Test1 (
+  MacroPlan macroPlan,
+  GlobalOTDTable globalOTDTable,
+  CapacityAllocationResultsRuleConfigurations capacityAllocationResultsRuleConfigurations
+)
+{
+  TextBody:
+  [*
+    traverse ( capacityAllocationResultsRuleConfigurations, Elements, carrc ) {
+      pisp := select( macroPlan, Product_MP.ProductInStockingPoint_MP, tempPISP, tempPISP.ProductID() = carrc.ModuleMaterialCode() and
+                                                                       tempPISP.StockingPointID() = carrc.StockingPointID() );
+      traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ).Supply_MP, smp, 
+                 /*smp.ProductInStockingPointInPeriodPlanning().Start().Date() = Date::Construct( 2020, 4, 7 ) and*/
+                 smp.Quantity() > 0 ) {                                                                  
+        CapacityAllocationResults::IterativeGeneration3( macroPlan, globalOTDTable, smp, smp, 1, smp.Quantity(), carrc );
+        info( "=======================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" );
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_AutomaticallyGenerateRule.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_AutomaticallyGenerateRule.qbl
new file mode 100644
index 0000000..c2effb5
--- /dev/null
+++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_AutomaticallyGenerateRule.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod AutomaticallyGenerateRule (
+  MacroPlan macroPlan,
+  GlobalOTDTable globalOTDTable
+)
+{
+}
diff --git a/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateData.qbl b/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateData.qbl
index 0f86052..9109ec9 100644
--- a/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateData.qbl
+++ b/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateData.qbl
@@ -1,21 +1,25 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod CreateData (
-  MacroPlan macroPlan
+  MacroPlan macroPlan,
+  Scenario scenario
 )
 {
   TextBody:
   [*
+    macroPlan.CustomerAndForecastOrder( relflush );
+    
     traverse ( macroPlan, SalesDemand.astype( CustomerOrder ), co, true ) {
       macroPlan.CustomerAndForecastOrder( relnew,
-                                          OrderID := co.OrderID(),
-                                          ProductID := co.ProductID(),
-                                          BusinessType := co.BusinessType(),
-                                          Customer := co.CustomerName(),
-                                          CustomerID := co.CustomerID(),
-                                          Quantity := co.Quantity(),
+                                          VerNo             := scenario.Name(),
+                                          OrderID           := co.ID(),
+                                          ProductID         := co.ProductID(),
+                                          BusinessType      := co.BusinessType(),
+                                          Customer          := co.CustomerName(),
+                                          CustomerID        := co.CustomerID(),
+                                          Quantity          := co.Quantity(),
                                           UnitOfMeasureName := co.UnitOfMeasureName(),
-                                          DemandDate := co.StartDate()
+                                          DemandDate        := co.StartDate()
                                          );
     }
   *]
diff --git a/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateFillingCapacityOrder.qbl b/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateFillingCapacityOrder.qbl
index dc39665..9bc36fc 100644
--- a/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateFillingCapacityOrder.qbl
+++ b/_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateFillingCapacityOrder.qbl
@@ -9,9 +9,9 @@
   [*
     // NBoTk Sep-13-2023 (created)
     
-    owner.FillingCapacityOrder(relnew,ProductID := data.ProductID(),BusinessType := data.BusinessType(),Customer := data.Customer(),CustomerID := data.CustomerID(),
-                                    Quantity := data.Quantity(),UnitOfMeasureName := data.UnitOfMeasureName(),PanelBigSheetQuantity := data.PanelBigSheetQuantity(),SalesAmount := data.SalesAmount(),
-                                    ForecastDemandDate := data.ForecastDemandDate(),DemandDate := data.DemandDate(),VerNo := data.VerNo(),SalesSegmentName := data.SalesSegmentName()
-                                    );
+    //owner.FillingCapacityOrder(relnew,ProductID := data.ProductID(),BusinessType := data.BusinessType(),Customer := data.Customer(),CustomerID := data.CustomerID(),
+    //                                Quantity := data.Quantity(),UnitOfMeasureName := data.UnitOfMeasureName(),PanelBigSheetQuantity := data.PanelBigSheetQuantity(),SalesAmount := data.SalesAmount(),
+    //                                ForecastDemandDate := data.ForecastDemandDate(),DemandDate := data.DemandDate(),VerNo := data.VerNo(),SalesSegmentName := data.SalesSegmentName()
+    //                                );
   *]
 }
diff --git a/_Main/BL/Type_FillingCapacityOrder/StaticMethod_CreateFillingCapacityOrder.qbl b/_Main/BL/Type_FillingCapacityOrder/StaticMethod_CreateFillingCapacityOrder.qbl
new file mode 100644
index 0000000..38c7f8a
--- /dev/null
+++ b/_Main/BL/Type_FillingCapacityOrder/StaticMethod_CreateFillingCapacityOrder.qbl
@@ -0,0 +1,37 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateFillingCapacityOrder (
+  MacroPlan macroPlan,
+  String id,
+  Real quantity,
+  Date demandDate,
+  Date forecastDemandDate,
+  String orderType,
+  String verNo
+)
+{
+  TextBody:
+  [*
+    targetCustomOrder := select( macroPlan, SalesDemand.astype( CustomerOrder ), tempCO, tempCO.ID() = id );
+    info( "id锛�", id, "    ", not isnull( targetCustomOrder ), "    鐗堟湰鍙凤細", verNo );
+    if ( not isnull( targetCustomOrder ) ) {
+      macroPlan.FillingCapacityOrder( relnew,
+                                      ID                 := OS::GenerateGUIDAsString(),
+                                      ProductID          := targetCustomOrder.ProductID(),
+                                      BusinessType       := targetCustomOrder.BusinessType(),
+                                      SalesSegmentName   := targetCustomOrder.SalesSegmentName(),
+                                      StockingPointID    := targetCustomOrder.StockingPointID(),
+                                      Customer           := targetCustomOrder.CustomerName(),
+                                      CustomerID         := targetCustomOrder.CustomerID(),
+                                      Quantity           := quantity,
+                                      UnitOfMeasureName  := targetCustomOrder.UnitOfMeasureName(),
+                                      ForecastDemandDate := forecastDemandDate,
+                                      DemandDate         := demandDate,
+                                      OrderType          := orderType,
+                                      SalesAmount        := [Number]quantity,
+                                      CurrencyID         := targetCustomOrder.CurrencyID(),
+                                      VerNo              := verNo
+                                     );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompare.qbl b/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompare.qbl
index ccbd232..6937389 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompare.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompare.qbl
@@ -36,22 +36,23 @@
     this.CapacityAndSaleBudgeCompareItemColumn( relflush );
     // ====姹囨�绘墍鏈夊嚭鐜扮殑浜у搧====
     historyData := selectset( this, Global_MappingAnnualBudgetData, item, true );
-    debuginfo( "historyData : " + [String]historyData.Size() )
+    debuginfo( "historyData : " + [String]historyData.Size() );
+    
     traverse( historyData, Elements, one ) {
       productCode := one.ProductID();
-      Global_MappingOperationBOM::CreateTestData( otdTable, "浜嬩笟閮�" + [String](productCode.Length() mod 3), "闈㈡澘鍩哄湴" + [String](productCode.Length() mod 4), productCode );
-      boms := selectset( otdTable, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
-      if( boms.Size() > 0 ) {
-        bom := boms.First();
-        businessType := bom.BusinessType();
-        placeOfProductionOfArray := bom.OrganCode();
+    //  Global_MappingOperationBOM::CreateTestData( otdTable, "浜嬩笟閮�" + [String](productCode.Length() mod 3), "闈㈡澘鍩哄湴" + [String](productCode.Length() mod 4), productCode );
+    //  boms := selectset( otdTable, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
+    //  if( boms.Size() > 0 ) {
+    //    bom := boms.First();
+    //    businessType := bom.BusinessType();
+    //    placeOfProductionOfArray := bom.OrganCode();
         // 鐩稿悓闈㈡澘鍩哄湴鍜屼簨涓氶儴鐨勬斁涓�琛�
-        row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, businessType, placeOfProductionOfArray );
+        row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, one.BusinessType(), one.OrgCodeFromBom() );
         // 璁板綍姣忚鍖呭惈鍝簺product
         CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode );
-      } else {
-        debuginfo( "no boms for product : " + productCode );
-      }
+    //  } else {
+    //    debuginfo( "no boms for product : " + productCode );
+    //  }
     }
     debuginfo( "CapacityAndSaleBudgeCompareItemRow : " + [String]selectset( this, CapacityAndSaleBudgeCompareItemRow, item, true ).Size() );
     // ====浠庡乏鍚戝彸鐢熸垚鍒楀ご涓庡唴瀹�====
diff --git "a/_Main/BL/Type_GlobalDTOTable/Method_InitTestData\04312.qbl" "b/_Main/BL/Type_GlobalDTOTable/Method_InitTestData\04312.qbl"
index f59360c..b83e909 100644
--- "a/_Main/BL/Type_GlobalDTOTable/Method_InitTestData\04312.qbl"
+++ "b/_Main/BL/Type_GlobalDTOTable/Method_InitTestData\04312.qbl"
@@ -6,34 +6,35 @@
 {
   TextBody:
   [*
-    // yypsybs Oct-7-2023 (created)
-    productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
-    debuginfo( "productCodeList : " + [String]productCodeList.Size() );
-    
-    if( this.Global_MappingAnnualBudgetData( relsize ) = 0 ) {
-      debuginfo( "create Global_MappingAnnualBudgetData test data" );
-      id := 1;
-      for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) {
-        for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
-          productCode := productCodeList.Element( i - 1 );
-          mappingAnnualBudget := this.Global_MappingAnnualBudgetData( relnew, 
-                                                                      ID := [String]id,
-                                                                      YearNo := [String]year,
-                                                                      BusinessType := "浜嬩笟閮�" + [String](productCode.Length() mod 3),
-                                                                      ProductID := productCode);
-          id := id + 1;
-          for( month := 1; month <= 12; month := month + 1 ) {
-            field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlyModCapacity" + [String]month );
-            field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
-            field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySheetCapacity" + [String]month );
-            field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
-            field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySales" + [String]month );
-            field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
-          }
-        }
-      }
-      result2 := selectset( this, Global_MappingAnnualBudgetData, item, true );
-      debuginfo( "test MappingAnnualBudget size : " + [String]result2.Size() );
-    }
+    //// yypsybs Oct-7-2023 (created)
+    //productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
+    //debuginfo( "productCodeList : " + [String]productCodeList.Size() );
+    //
+    //this.Global_MappingAnnualBudgetData( relflush );
+    //if( this.Global_MappingAnnualBudgetData( relsize ) = 0 ) {
+    //  debuginfo( "create Global_MappingAnnualBudgetData test data" );
+    //  id := 1;
+    //  for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) {
+    //    for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
+    //      productCode := productCodeList.Element( i - 1 );
+    //      mappingAnnualBudget := this.Global_MappingAnnualBudgetData( relnew, 
+    //                                                                  ID := [String]id,
+    //                                                                  YearNo := [String]year,
+    //                                                                  BusinessType := "浜嬩笟閮�" + [String](productCode.Length() mod 3),
+    //                                                                  ProductID := productCode);
+    //      id := id + 1;
+    //      for( month := 1; month <= 12; month := month + 1 ) {
+    //        field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlyModCapacity" + [String]month );
+    //        field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
+    //        field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySheetCapacity" + [String]month );
+    //        field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
+    //        field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySales" + [String]month );
+    //        field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
+    //      }
+    //    }
+    //  }
+    //  result2 := selectset( this, Global_MappingAnnualBudgetData, item, true );
+    //  debuginfo( "test MappingAnnualBudget size : " + [String]result2.Size() );
+    //}
   *]
 }
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl b/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl
index 2cb4752..abebe3c 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl
@@ -7,14 +7,14 @@
     //this.MatAttrSettingAndPlanStrategy( relflush );
     
     // yypsybs Sep-8-2023 (created)
-    debuginfo( "CapacityAndSaleBudge::InitTestData" )
-    mat1 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 1, "鎵嬫満浜嬩笟閮�", "MAT_1", "MAT_1", "TYPE_1", 233.0, "閫氱敤", "闀垮懆鏈�" );
-    MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat1, "PROD_1", 666.0, "PROD_1_DESC" );
-    MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat1, "PROD_2", 777.0, "PROD_2_DESC" );
-    mat2 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 2, "鎵嬫満浜嬩笟閮�", "MAT_2", "MAT_2", "TYPE_2", 233.0, "涓撶敤", "闀垮懆鏈�" );
-    MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat2, "PROD_1", 1666.0, "PROD_1_DESC" );
-    MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat2, "PROD_2", 1777.0, "PROD_2_DESC" );
-    MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 3, "鎵嬫満浜嬩笟閮�", "MAT_3", "MAT_3", "TYPE_1", 233.0, "閫氱敤", "鐭懆鏈�" );
-    MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 4, "鎵嬫満浜嬩笟閮�", "MAT_4", "MAT_4", "TYPE_2", 233.0, "涓撶敤", "鐭懆鏈�" );
+    //debuginfo( "CapacityAndSaleBudge::InitTestData" )
+    //mat1 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 1, "鎵嬫満浜嬩笟閮�", "MAT_1", "MAT_1", "TYPE_1", 233.0, "閫氱敤", "闀垮懆鏈�" );
+    //MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat1, "PROD_1", 666.0, "PROD_1_DESC" );
+    //MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat1, "PROD_2", 777.0, "PROD_2_DESC" );
+    //mat2 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 2, "鎵嬫満浜嬩笟閮�", "MAT_2", "MAT_2", "TYPE_2", 233.0, "涓撶敤", "闀垮懆鏈�" );
+    //MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat2, "PROD_1", 1666.0, "PROD_1_DESC" );
+    //MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat2, "PROD_2", 1777.0, "PROD_2_DESC" );
+    //MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 3, "鎵嬫満浜嬩笟閮�", "MAT_3", "MAT_3", "TYPE_1", 233.0, "閫氱敤", "鐭懆鏈�" );
+    //MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 4, "鎵嬫満浜嬩笟閮�", "MAT_4", "MAT_4", "TYPE_2", 233.0, "涓撶敤", "鐭懆鏈�" );
   *]
 }
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_InitTestDataByYear.qbl b/_Main/BL/Type_GlobalDTOTable/Method_InitTestDataByYear.qbl
new file mode 100644
index 0000000..c84f323
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_InitTestDataByYear.qbl
@@ -0,0 +1,68 @@
+Quintiq file version 2.0
+#parent: #root
+Method InitTestDataByYear (
+  MacroPlan macroPlan,
+  CapacityAndSaleBudgeFilterYears years
+)
+{
+  TextBody:
+  [*
+    // yypsybs Oct-7-2023 (created)
+    productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
+    debuginfo( "productCodeList : " + [String]productCodeList.Size() );
+    
+    this.Global_MappingAnnualBudgetData( relflush );
+    debuginfo( "create Global_MappingAnnualBudgetData test data" );
+    id := 1;
+    traverse( years, Elements, year ) {
+      for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
+        productCode := productCodeList.Element( i - 1 );
+        mappingAnnualBudget := this.Global_MappingAnnualBudgetData( relnew, 
+                                                                    ID := [String]id,
+                                                                    YearNo := [String]year.YearNo(),
+                                                                    BusinessType := "浜嬩笟閮�" + [String](productCode.Length() mod 3),
+                                                                    OrganCode := "I13",
+                                                                    ProductID := productCode);
+        id := id + 1;
+        mappingAnnualBudget.MonthlyModCapacity1( [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlyModCapacity2( [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlyModCapacity3( [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlyModCapacity4( [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlyModCapacity5( [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlyModCapacity6( [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlyModCapacity7( [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlyModCapacity8( [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlyModCapacity9( [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlyModCapacity10( [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlyModCapacity11( [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlyModCapacity12( [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySheetCapacity1(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySheetCapacity2(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySheetCapacity3(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySheetCapacity4(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySheetCapacity5(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySheetCapacity6(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySheetCapacity7(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySheetCapacity8(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySheetCapacity9(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySheetCapacity10(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySheetCapacity11(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySheetCapacity12(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySales1(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySales2(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySales3(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySales4(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySales5(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySales6(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySales7(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySales8(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySales9(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySales10(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySales11(  [String]Real::Random( 20000.0, 30000.0 ) );
+        mappingAnnualBudget.MonthlySales12(  [String]Real::Random( 20000.0, 30000.0 ) );
+      }
+    }
+    result2 := selectset( this, Global_MappingAnnualBudgetData, item, true );
+    debuginfo( "test MappingAnnualBudget size : " + [String]result2.Size() );
+  *]
+}
diff --git "a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl" "b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl"
index 6d84c07..12a5633 100644
--- "a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl"
+++ "b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl"
@@ -47,6 +47,8 @@
       organcodelist := selectvalues( this, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
       }
     
+    macroPlan.InitialUnitAndStockingPoint();
+    
     if ( isUnitOfMeasure_MP ) {
       Global_MappingUnitOfMeasure_MP::SynchronizeMacroPlanData( this, macroPlan );
     }
@@ -106,35 +108,25 @@
     //if ( isCustomerGrade ) {
     //  Global_MappingCustomerGrade::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_CustomerGrade" );
     //}
-    //
-    //if ( isStockingPoint_MP ) {
-    //  this.Global_MappingStockingPoint_MP( relflush );
-    //  Global_BrokerExecuteLog::CreateInOperation( this, "StockingPoint_MP", executionUser );
-    ////  this -> Global_MappingStockingPoint_MP::CreateByAPI() -> Exception() -> Global_MappingStockingPoint_MP::OnException( this );
-    //}
-    //
-    //if ( isCurrency_MP ) {
-    //  this.Global_MappingCurrency_MP( relflush );
-    //  Global_BrokerExecuteLog::CreateInOperation( this, "Currency_MP", executionUser );
-    ////  this -> Global_MappingCurrency_MP::CreateByAPI() -> Exception() -> Global_MappingCurrency_MP::OnException( this );
-    //}
-    //
-    //if ( isCurrencyRate_MP ) {
-    //  this.Global_MappingCurrencyRate_MP( relflush );
-    //  Global_BrokerExecuteLog::CreateInOperation( this, "CurrencyRate_MP", executionUser );
-    ////  this -> Global_MappingCurrencyRate_MP::CreateByAPI() -> Exception() -> Global_MappingCurrencyRate_MP::OnException( this );
-    //}
-    //
-    //if ( isLane ) {
-    //  this.Global_MappingLane( relflush );
-    //  Global_BrokerExecuteLog::CreateInOperation( this, "Lane", executionUser );
-    ////  this -> Global_MappingLane::CreateByAPI() -> Exception() -> Global_MappingLane::OnException( this );
-    //}
-    //
-    //if ( isLaneLeg ) {
-    //  this.Global_MappingLaneLeg( relflush );
-    //  Global_BrokerExecuteLog::CreateInOperation( this, "LaneLeg", executionUser );
-    ////  this -> Global_MappingLaneLeg::CreateByAPI() -> Exception() -> Global_MappingLaneLeg::OnException( this );
-    //}
+    
+    if ( isStockingPoint_MP ) {
+      Global_MappingStockingPoint_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
+    }
+    
+    if ( isCurrency_MP ) {
+      Global_MappingCurrency_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
+    }
+    
+    if ( isCurrencyRate_MP ) {
+      Global_MappingCurrencyRate_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
+    }
+    
+    if ( isLane ) {
+      Global_MappingLane::SynchronizeMacroPlanData( this, macroPlan, executionUser );
+    }
+    
+    if ( isLaneLeg ) {
+      Global_MappingLaneLeg::SynchronizeMacroPlanData( this, macroPlan, executionUser );
+    }
   *]
 }
diff --git a/_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_SetOrgCodeFromForecast.qbl b/_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_SetOrgCodeFromForecast.qbl
index 149ef2e..67f51c6 100644
--- a/_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_SetOrgCodeFromForecast.qbl
+++ b/_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_SetOrgCodeFromForecast.qbl
@@ -7,18 +7,19 @@
   TextBody:
   [*
     // yypsybs Oct-7-2023 (created)
+    
     traverse( parent, Global_MappingAnnualBudgetData, item ) {
-      productCode := item.ProductID();
-      Global_MappingOperationBOM::CreateTestData( parent, "浜嬩笟閮�" + [String](productCode.Length() mod 3), "闈㈡澘鍩哄湴" + [String](productCode.Length() mod 4), productCode );
-      boms := selectset( parent, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
-      if( boms.Size() > 0 ) {
-        bom := boms.First();
-        placeOfProductionOfArray := bom.OrganCode();
-        item.OrgCodeFromBom( placeOfProductionOfArray );
-      } else {
-        debuginfo( "no boms for product : " + productCode );
+    //  productCode := item.ProductID();
+    ////  Global_MappingOperationBOM::CreateTestData( parent, "浜嬩笟閮�" + [String](productCode.Length() mod 3), "闈㈡澘鍩哄湴" + [String](productCode.Length() mod 4), productCode );
+    //  boms := selectset( parent, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
+    //  if( boms.Size() > 0 ) {
+    //    bom := boms.First();
+    //    placeOfProductionOfArray := bom.OrganCode();
+    //    item.OrgCodeFromBom( placeOfProductionOfArray );
+    //  } else {
+    //    debuginfo( "no boms for product : " + productCode );
         item.OrgCodeFromBom( item.OrganCode() );
-      }
+    //  }
     }
   *]
 }
diff --git a/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl
new file mode 100644
index 0000000..5913ebe
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl
@@ -0,0 +1,45 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeMacroPlanData (
+  GlobalOTDTable globalOTDTable,
+  MacroPlan macroPlan,
+  String executionUser
+)
+{
+  TextBody:
+  [*
+    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
+                                                                       Name        := "鍚屾璐у竵姹囩巼鏁版嵁",
+                                                                       IsSuccess   := true,
+                                                                       ExecuteUser := executionUser
+                                                                      );
+                                            
+      
+    try {
+      updates := construct( CurrencyRate_MPs );
+      traverse( globalOTDTable, Global_MappingCurrencyRate_MP, gcr, true )
+      {
+        a := CurrencyRate_MP::CreateCurrencyRate( gcr.CurrencyID(), gcr.Start(), gcr.Rate() );
+        updates.Add( a );
+        }
+      origindataset := selectset( macroPlan, Currency_MP.CurrencyRate_MP, cr, true );
+      obsoletes := origindataset.Difference( updates );
+      // delete obsoleted
+      difflength := obsoletes.Size();
+      for( j:=0; j<difflength; j++ )
+      {
+        obsolete := obsoletes.Element( j );
+        obsolete.Delete();
+        }
+      
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+    } onerror {
+      global_BrokerExecuteLog.IsSuccess( false );
+      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
+      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
+      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl
new file mode 100644
index 0000000..38ac6bb
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl
@@ -0,0 +1,45 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeMacroPlanData (
+  GlobalOTDTable globalOTDTable,
+  MacroPlan macroPlan,
+  String executionUser
+)
+{
+  TextBody:
+  [*
+    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
+                                                                       Name        := "鍚屾璐у竵鏁版嵁",
+                                                                       IsSuccess   := true,
+                                                                       ExecuteUser := executionUser
+                                                                      );
+                                            
+      
+    try {
+      updates := construct( Currency_MPs );
+      traverse( globalOTDTable, Global_MappingCurrency_MP, gc, true )
+      {
+        a := Currency_MP::CreateCurrency( macroPlan, gc.ID(), gc.Name(), " ", gc.IsBase() );
+        updates.Add( a );
+        }
+      origindataset := selectset( macroPlan, Currency_MP, c, true );
+      obsoletes := origindataset.Difference( updates );
+      // delete obsoleted
+      difflength := obsoletes.Size();
+      for( j:=0; j<difflength; j++ )
+      {
+        obsolete := obsoletes.Element( j );
+        obsolete.Delete();
+        }
+      
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+    } onerror {
+      global_BrokerExecuteLog.IsSuccess( false );
+      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
+      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
+      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl
new file mode 100644
index 0000000..60224b2
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl
@@ -0,0 +1,77 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeMacroPlanData (
+  GlobalOTDTable globalOTDTable,
+  MacroPlan macroPlan,
+  String executionUser
+)
+{
+  TextBody:
+  [*
+    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
+                                                                       Name        := "鍚屾杞﹂亾鏁版嵁",
+                                                                       IsSuccess   := true,
+                                                                       ExecuteUser := executionUser
+                                                                      );
+                                            
+      
+    try {
+      updates := construct( Lanes );
+      traverse( globalOTDTable, Global_MappingLane, gl, true )
+      {
+        id := gl.ID();
+        unitid := gl.UnitID();
+        name := gl.Name();
+        userleadtime := gl.UserLeadTime();
+        processingtime := Duration::Zero();
+        
+        unitofmeasurename := "PCS";
+        currencyid := "CNY";
+        startdate := Date::Date( 1900, 1, 1 );
+        enddate := Date::Date( 9999, 12, 31 );
+        capacitytype := "Transport quantity";
+        if( userleadtime.Length() = 0 )
+        {
+          processingtime := Duration::Zero(); 
+          }
+        else
+        {
+          processingtime := Duration::Hours( [Number]userleadtime );
+          };
+        
+        unit := Unit::FindUnitTypeIndex( unitid );
+        if( isnull( unit)){
+          unit :=macroPlan.Unit( relnew, 
+                                 ID := unitid, 
+                                 Name := unitid, 
+                                 UnitOfMeasureName := unitofmeasurename, 
+                                 CurrencyID := currencyid, 
+                                 StartDate := startdate, 
+                                 EndDate := enddate, 
+                                 CapacityType := capacitytype );
+        }
+        
+        a := Lane::CreateLane( unit, id, name, processingtime);
+        updates.Add( a );
+        }
+      origindataset := selectset( macroPlan, Unit.Lane, l, true );
+      obsoletes := origindataset.Difference( updates );
+      // delete obsoleted
+      difflength := obsoletes.Size();
+      for( j:=0; j<difflength; j++ )
+      {
+        obsolete := obsoletes.Element( j );
+        obsolete.Delete();
+        }
+      
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+    } onerror {
+      global_BrokerExecuteLog.IsSuccess( false );
+      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
+      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
+      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl
new file mode 100644
index 0000000..d1743ec
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl
@@ -0,0 +1,60 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeMacroPlanData (
+  GlobalOTDTable globalOTDTable,
+  MacroPlan macroPlan,
+  String executionUser
+)
+{
+  TextBody:
+  [*
+    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
+                                                                       Name        := "鍚屾杞﹂亾璺嚎鏁版嵁",
+                                                                       IsSuccess   := true,
+                                                                       ExecuteUser := executionUser
+                                                                      );
+                                            
+      
+    try {
+      updates := construct( LaneLegs );
+      traverse( globalOTDTable, Global_MappingLaneLeg, gll, true )
+      {
+        processingtime := Duration::Zero();
+        hasprocessingtime := true;
+        userleadtime := gll.UserLeadTime();
+        if( userleadtime.Length() = 0 )
+        {
+          hasprocessingtime := false;
+          processingtime := Duration::Zero(); 
+          }
+        else
+        {
+          hasprocessingtime := true;
+          processingtime := Duration::Hours( [Number]userleadtime );
+          };
+        
+        lane := Lane::FindLaneTypeIndex( gll.LaneID() );
+        a := LaneLeg::CreateLaneleg(lane, gll.LaneID(), gll.OriginStockingPointID(), gll.DestinationStockingPointID(), gll.Name(), hasprocessingtime, processingtime);
+        updates.Add( a );
+        }
+      origindataset := selectset( macroPlan, Unit.Lane.LaneLeg, ll, true );
+      obsoletes := origindataset.Difference( updates );
+      // delete obsoleted
+      difflength := obsoletes.Size();
+      for( j:=0; j<difflength; j++ )
+      {
+        obsolete := obsoletes.Element( j );
+        obsolete.Delete();
+        }
+      
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+    } onerror {
+      global_BrokerExecuteLog.IsSuccess( false );
+      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
+      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
+      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl
new file mode 100644
index 0000000..7db4814
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl
@@ -0,0 +1,45 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeMacroPlanData (
+  GlobalOTDTable globalOTDTable,
+  MacroPlan macroPlan,
+  String executionUser
+)
+{
+  TextBody:
+  [*
+    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
+                                                                       Name        := "鍚屾搴撳瓨鐐规暟鎹�",
+                                                                       IsSuccess   := true,
+                                                                       ExecuteUser := executionUser
+                                                                      );
+                                            
+      
+    try {
+      updates := construct( StockingPoint_MPs );
+      traverse( globalOTDTable, Global_MappingStockingPoint_MP, sp, true )
+      {
+        a := StockingPoint_MP::CreateStockingpoint( macroPlan, sp.ID(), sp.UnitID(), sp.Name() );
+        updates.Add( a );
+        }
+      origindataset := selectset( macroPlan, StockingPoint_MP, sp, true );
+      obsoletes := origindataset.Difference( updates );
+      // delete obsoleted
+      difflength := obsoletes.Size();
+      for( j:=0; j<difflength; j++ )
+      {
+        obsolete := obsoletes.Element( j );
+        obsolete.Delete();
+        }
+      
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+    } onerror {
+      global_BrokerExecuteLog.IsSuccess( false );
+      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
+      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
+      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl
index 2f75b5f..4cc3e53 100644
--- a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl
+++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl
@@ -63,7 +63,7 @@
                 MaterialType:= ObjProduct.ParentID();
                 MaterialName:=ObjProduct.Name();
               }
-              ObjUnit:= H_FunctionClass::SM_GetUnitBySKU( Owner,Obj.ComponentCode());
+              ObjUnit:= H_FunctionClass::SM_GetUnitBySKU( Owner,Obj.ComponentCode(),GlobData);
               if( not isnull( ObjUnit))
               {
                 StockPoint:= ObjUnit.Name();
@@ -83,6 +83,7 @@
       // 娌℃湁BOM 娣诲姞娴嬭瘯鏁版嵁
       else
       {
+        //error( "BOM 鏁版嵁鑾峰彇澶辫触锛屾棤娉曟墿灞曞師鏉愭枡淇℃伅锛�");
         nCount :=Owner.H_MaterialInfo(relsize );
         Owner.H_MaterialInfo(relnew,ParentSKU := ParentSKU,SKU := "SKU"+ nCount.AsQUILL() ,ForecastID := ForecastId,OrgCode := "ORG_000",VCode := VCode
                                     ,ID := H_FunctionClass::SM_GenerateID( "MI"),MaterialType := "鍘熸潗鏂�",NeedDate := NDate
diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetUnitBySKU.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetUnitBySKU.qbl
index cfa808a..1be87a9 100644
--- a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetUnitBySKU.qbl
+++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetUnitBySKU.qbl
@@ -2,7 +2,8 @@
 #parent: #root
 StaticMethod SM_GetUnitBySKU (
   MacroPlan Owner,
-  String SKU
+  String SKU,
+  GlobalOTDTable GlobData
 ) as Unit
 {
   Description: '閫氳繃SKU鑾峰彇搴撳瓨鐐逛俊鎭�'
@@ -11,7 +12,7 @@
     Obj :=null( Unit,constcontent );
     if( not isnull( Owner) and SKU.Length()>0)
     {
-      OrgCode := select( Owner,MappingBOM,ObjM,ObjM.ProductCode()=SKU);
+      OrgCode := select( GlobData,Global_MappingOperationBOM,ObjM,ObjM.ProductCode()=SKU);
       if( not isnull( OrgCode))
       {
         Obj := select( Owner,Unit,ObjU,ObjU.ID()=  OrgCode.OrganCode());
diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedging.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedging.qbl
index 88c8f1d..02a2296 100644
--- a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedging.qbl
+++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedging.qbl
@@ -15,6 +15,10 @@
     *鍒涘缓浜猴細yunying
     *鍒涘缓鏃堕棿锛�20230-09-24
     *鎻忚堪锛氱郴缁熷唴璁㈠崟鍐插噺璋冪敤鍑芥暟锛孖sNew=true鏃讹紝閲嶆柊澶勭悊棰勬祴淇℃伅锛孖sNew=false鏃讹紝鐢ㄩ娴嬬疮璁′俊鎭��
+    *鍙傛暟锛欼sNew 鏄惁鏃舵柊鐨勮绠楄〃绀�
+    *     Operator 鎿嶄綔浜�
+    *     OperatorType 鎿嶄綔绫诲瀷[鍙嶇,鎺堟潈,ERP璁㈠崟]锛岃繖閲屽簲璇ユ槸ERP璁㈠崟
+    *澶囨敞锛氬鎴峰叏閮ㄤ娇鐢ㄥ鎴峰悕绉帮紝涓嶈浣跨敤瀹㈡埛ID锛岄娴嬪師濮嬫暟鎹病鏈夊鎴稩D淇℃伅
     *****************************************************************************/
     // 鍒濆鍖栫粨鏋�
     bStatus := false;
@@ -58,9 +62,9 @@
               nHaveForecastQty :=0; //鏈夐娴嬫暟閲�
               nNoHaveForecastQty:=0;//浜旈娴嬫暟閲�
               OrderQuantity := 0;   //鍓╀綑璁㈠崟鏁伴噺
-              // 鑾峰彇棰勬祴鏁伴噺锛堝鎴�+SKU+鏈堜唤 鐞嗚鏄病鏈夌墿鏂欓娴嬶級
+              // 鑾峰彇棰勬祴鏁伴噺锛堝鎴峰悕绉�+SKU+鏈堜唤 鐞嗚鏄病鏈夌墿鏂欓娴嬶級
               OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = ObjOrder.ProductID() 
-                                                    and Obj.CustomCode() = ObjOrder.CustomerName() 
+                                                    and Obj.CustomName() = ObjOrder.CustomerName() 
                                                     and Obj.Month().Format( "YM2") =ObjOrder.EndDate().Format( "YM2"));
               if ( not isnull(OrderForecast))
               {
@@ -74,9 +78,9 @@
                   nReverseQtyOld := ObjReverse.ReverseRealQty();
                   nReverseQtyNew := nReverseQtyOld;
               }
-              // 鑾峰彇鎺堟潈鏁伴噺锛堝鎴稩D+SKU锛�
+              // 鑾峰彇鎺堟潈鏁伴噺锛堝鎴峰悕绉�+SKU锛�
               ObjAuthorize := select(Owner, H_AuthorizeRealQty , Obj, Obj.SKU() = ObjOrder.ProductID() 
-                                                                      and Obj.CustomID() = ObjOrder.CustomerName());
+                                                                      and Obj.CustomName() = ObjOrder.CustomerName());
               if ( not isnull(ObjAuthorize))
               {
                   nAuthorizeQtyOld := ObjAuthorize.AuthorizeRealQty();
diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl
index 4379bdc..1143233 100644
--- a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl
+++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl
@@ -170,9 +170,9 @@
     {
       strMsg :="濉骇鍚庤鍗曞啿鍑忓彂鐢熼敊璇紝璇疯仈绯荤郴缁熺鐞嗗憳锛�";
       // 璁板綍閿欒鏃ュ織
-    //  Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_OrderHedgingEx",
-    //                     DeveloperInformation :=  e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
-    //                     GeneralInformation := e.GeneralInformation());                
+      Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_OrderHedgingEx",
+                         DeveloperInformation :=  e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
+                         GeneralInformation := e.GeneralInformation());                
     }
     return JSON::Object().Add( "Status",bStatus)
                          .Add( "Count",nCount)
diff --git a/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl b/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl
index c720051..5d66729 100644
--- a/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl
+++ b/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl
@@ -7,37 +7,37 @@
 {
   TextBody:
   [*
-    // yypsybs Sep-20-2023 (created)
-    
-    debuginfo( "MPSync::TestData" );
-    
-    productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
-    debuginfo( "productCodeList : " + [String]productCodeList.Size() );
-    
-    mpSync.MappingCapacityAndSaleBudge( relflush );
-    for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) {
-      for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
-        productCode := productCodeList.Element( i - 1 );
-        mappingCapacityAndSaleBudge := mpSync.MappingCapacityAndSaleBudge( relnew, 
-                                                                           YearNo := year,
-                                                                           ProductCode := productCode,
-                                                                           BusinessType := "浜嬩笟閮�" + [String](productCode.Length() mod 3 + 1), 
-                                                                           PlaceOfProductionOfArray := "闈㈡澘鍩哄湴" + [String](productCode.Length() mod 4 + 1)
-                                                                            );
-        for( month := 1; month <= 12; month := month + 1 ) {
-          field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInPCSInMonth" + [String]month );
-          field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
-          field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInSheetInMonth" + [String]month );
-          field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
-          field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "SaleAmountInMonth" + [String]month );
-          field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
-        }
-        mappingCapacityAndSaleBudge.CapacityInPCSTotal( mappingCapacityAndSaleBudge.GetCapacityInPCSInYear() );
-        mappingCapacityAndSaleBudge.CapacityInSheetTotal( mappingCapacityAndSaleBudge.GetCapacityInSheetInYear() );
-        mappingCapacityAndSaleBudge.SaleAmountTotal( mappingCapacityAndSaleBudge.GetSaleAmountInYear() );
-      }
-    }
-    result1 := selectset( mpSync, MappingCapacityAndSaleBudge, item, true );
-    debuginfo( "test MappingCapacityAndSaleBudge size : " + [String]result1.Size() );
+    //// yypsybs Sep-20-2023 (created)
+    //
+    //debuginfo( "MPSync::TestData" );
+    //
+    //productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
+    //debuginfo( "productCodeList : " + [String]productCodeList.Size() );
+    //
+    //mpSync.MappingCapacityAndSaleBudge( relflush );
+    //for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) {
+    //  for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
+    //    productCode := productCodeList.Element( i - 1 );
+    //    mappingCapacityAndSaleBudge := mpSync.MappingCapacityAndSaleBudge( relnew, 
+    //                                                                       YearNo := year,
+    //                                                                       ProductCode := productCode,
+    //                                                                       BusinessType := "浜嬩笟閮�" + [String](productCode.Length() mod 3 + 1), 
+    //                                                                       PlaceOfProductionOfArray := "闈㈡澘鍩哄湴" + [String](productCode.Length() mod 4 + 1)
+    //                                                                        );
+    //    for( month := 1; month <= 12; month := month + 1 ) {
+    //      field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInPCSInMonth" + [String]month );
+    //      field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
+    //      field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInSheetInMonth" + [String]month );
+    //      field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
+    //      field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "SaleAmountInMonth" + [String]month );
+    //      field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
+    //    }
+    //    mappingCapacityAndSaleBudge.CapacityInPCSTotal( mappingCapacityAndSaleBudge.GetCapacityInPCSInYear() );
+    //    mappingCapacityAndSaleBudge.CapacityInSheetTotal( mappingCapacityAndSaleBudge.GetCapacityInSheetInYear() );
+    //    mappingCapacityAndSaleBudge.SaleAmountTotal( mappingCapacityAndSaleBudge.GetSaleAmountInYear() );
+    //  }
+    //}
+    //result1 := selectset( mpSync, MappingCapacityAndSaleBudge, item, true );
+    //debuginfo( "test MappingCapacityAndSaleBudge size : " + [String]result1.Size() );
   *]
 }
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl
index 1e0929e..fdacd72 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl
@@ -16,14 +16,14 @@
     
     if( isnull( businesstypes ) or businesstypes.Size() = 0 ) {
         if( iskeyproduct = true ){
-          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true );
+          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.ProductMajorType()="鎴愬搧" or item.ProductMajorType()="鍗婃垚鍝�" );
           }
         else{
           listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, true );
           }
     } else {
         if( iskeyproduct = true ){
-          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true and businesstypes.Find( item.BusinessType() ) >= 0 );
+          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, (item.ProductMajorType()="鎴愬搧" or item.ProductMajorType()="鍗婃垚鍝�") and businesstypes.Find( item.BusinessType() ) >= 0 );
          }
         else{
           listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, businesstypes.Find( item.BusinessType() ) >= 0 );
diff --git "a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync\043618.qbl" "b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync\043618.qbl"
index 9d29f63..d7a38f2 100644
--- "a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync\043618.qbl"
+++ "b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync\043618.qbl"
@@ -12,9 +12,9 @@
   TextBody:
   [*
     // yypsybs Aug-17-2023 (created)
-    businessTypes := construct( Strings );
+    businessTypes := construct( BusinessType );
     if( businessTypeStr.Length() > 0 ) {
-        businessTypes := businessTypeStr.Tokenize( ',' );
+    //    businessTypes := businessTypeStr.Tokenize( ',' );
     }
     MacroPlan::DoSync( macroPlan, businessTypes, isKeyProduct, createPurchaseSupplyMaterial ,globalOTDTable);
   *]
diff --git a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync.qbl b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync.qbl
index 49fac75..2b1d5ae 100644
--- a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync.qbl
+++ b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync.qbl
@@ -11,7 +11,7 @@
   TextBody:
   [*
     // yypsybs Aug-17-2023 (created)
-    businessTypes := construct( Strings );
+    businessTypes := construct( BusinessType );
     MacroPlan::DoSync( macroPlan, businessTypes, isKeyProduct, createPurchaseSupplyMaterial ,globalOTDTable);
   *]
 }
diff --git a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
index 5178d37..8cb5656 100644
--- a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
+++ b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
@@ -2,7 +2,7 @@
 #parent: #root
 StaticMethod DoSync (
   MacroPlan macroPlan,
-  Strings businessTypes,
+  BusinessType businessType,
   Boolean isKeyProduct,
   Boolean createPurchaseSupplyMaterial,
   GlobalOTDTable globalOTDTable
@@ -16,20 +16,8 @@
     //Currency_MP::CreateCurrencyFromJson( macroPlan, jsonDataRow );
     info( "Prepare to do sync" )
     info( "Get organ code list" )
-    organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
-    if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) {
-        traverse( businessTypes, Elements, item ) {
-            info( "Business type : " + item )  
-        }
-        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
-    }
-    else{
-      if( businessTypes.Size() = 0 ){
-        if( not isnull( selectset( globalOTDTable, BusinessType, b, b.BusinessTypeName() = "" ) ) ){
-          organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, organ.BusinessType().BusinessTypeName() = "", organ.OrganCodeName() );
-          }
-        }
-      }
+    businessTypeName := businessType.BusinessTypeName().Tokenize( "," );
+    organcodelist := selectvalues( businessType, OrganCode, organ, true, organ.OrganCodeName() );
     
     if( organcodelist.Size() = 0 ){
       organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
@@ -46,14 +34,14 @@
     UnitOfMeasure_MP::DoSync( globalOTDTable,macroPlan );
     
     // 閿�鍞儴闂�-2
-    SalesSegment_MP::DoSync( macroPlan, businessTypes,globalOTDTable );
+    SalesSegment_MP::DoSync( macroPlan, businessTypeName, globalOTDTable );
     
     // Unit-9 
     // 涓嶰peration涓�鍚屽鐞�
     //info( "BaseConversionFactor Finished, Start Operation Data Broker" );
     //macroPlan.Broker_OTD_Operation().Execute();
     info( "Operation Data Broker Finished, Start Unit Mapping" );
-    macroPlan.MappingUnitData( businessTypes ,globalOTDTable, organcodelist);
+    macroPlan.MappingUnitData( businessTypeName ,globalOTDTable, organcodelist);
     
     // 搴撳瓨鐐�-3
     info( "Sales Segment Finished, Start Get StockingPoint From Api" )
@@ -90,18 +78,18 @@
     //macroPlan.Broker_OTD_Product().Execute();
     info( "Product Data Broker Finished, Start Product Mapping" );
     //testproduct := construct( Strings );
-    macroPlan.MappingProductData( businessTypes, globalOTDTable,isKeyProduct );
+    macroPlan.MappingProductData( businessTypeName, globalOTDTable,isKeyProduct );
     
     //鍗曚綅杞崲-7
     BaseConversionFactor::DoSync( macroPlan ,globalOTDTable);
     
     // 宸ヨ壓璺嚎 + BOM-9
     info( "Unit Finished, Start Operation Mapping" );
-    macroPlan.MappingOperationData( businessTypes ,globalOTDTable, organcodelist );  
+    macroPlan.MappingOperationData( businessTypeName ,globalOTDTable, organcodelist );  
     //info( "Operation Finished, Start BOM Data Broker" );
     //macroPlan.Broker_OTD_BOM().Execute();
     info( "BOM Data Broker Finished, Start BOM Mapping" );
-    macroPlan.MappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist );
+    macroPlan.MappingOperationBOMData( businessTypeName, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist );
     
     //杞﹂亾淇℃伅-10
     info( "BOM Finished, Start Get Lanes From Api" );
@@ -133,26 +121,26 @@
     //info( "ProductInLane Finished, Start ActualPISPIP Data Broker" );
     //macroPlan.Broker_OTD_ActualPISPIP().Execute();
     info( "ActualPISPIP Data Broker Finished, Start ActualPISPIP Mapping" );
-    macroPlan.MappingActualPISPIPData( businessTypes, globalOTDTable,isKeyProduct, organcodelist );
+    macroPlan.MappingActualPISPIPData( businessTypeName, globalOTDTable,isKeyProduct, organcodelist );
     
     // 鍦ㄩ�斿簱瀛�-14
     //info( "ActualPISPIP Finished, Start ExternalSupply Data Broker" );
     //macroPlan.Broker_OTD_ExternalSupply().Execute();
     info( "ExternalSupply Data Broker Finished, Start ExternalSupply Mapping" );
-    macroPlan.MappingExternalSupplyData( businessTypes, isKeyProduct ,globalOTDTable, organcodelist );
+    macroPlan.MappingExternalSupplyData( businessTypeName, isKeyProduct ,globalOTDTable, organcodelist );
     
     // 搴撳瓨鎴愭湰-15
     InventoryValueAndCost::DoSync( macroPlan,globalOTDTable );
     
     // todo 鍒堕�犳垚鏈�-16
     info( "InventoryCost Finished, Start OperationCost Mapping" );
-    macroPlan.MappingOperationCostData( globalOTDTable, businessTypes, organcodelist );
+    macroPlan.MappingOperationCostData( globalOTDTable, businessTypeName, organcodelist );
     
     // 璁㈠崟棰勬祴-17
-    Forecast::DoSync( macroPlan, businessTypes, globalOTDTable, organcodelist );
+    Forecast::DoSync( macroPlan, businessTypeName, globalOTDTable, organcodelist );
     
     // 璁㈠崟闇�姹�-18
-    CustomerOrder::DoSync( macroPlan, businessTypes, globalOTDTable, organcodelist );
+    CustomerOrder::DoSync( macroPlan, businessTypeName, globalOTDTable, organcodelist );
     
     //鍒犻櫎澶氫綑鎶ラ敊鏁版嵁-19
     macroPlan.DeleteSnaityCheck();
diff --git a/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Apply.qbl b/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Apply.qbl
index 8e7f10e..12288b1 100644
--- a/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Apply.qbl
+++ b/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Apply.qbl
@@ -1,7 +1,8 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod Apply (
-  ManufactureLTImputations toApply
+  ManufactureLTImputations toApply,
+  MacroPlan macroPlan
 )
 {
   TextBody:
@@ -9,7 +10,7 @@
     // yypsybs Aug-28-2023 (created)
     traverse( toApply, Elements, parent ) {
       traverse( parent, ManufactureLTProcessSection, child ) {
-        ManufactureLTProcessSection::Apply( child );  
+        ManufactureLTProcessSection::Apply( child, macroPlan );  
       }
     }
   *]
diff --git a/_Main/BL/Type_ManufactureLTImputation/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_ManufactureLTImputation/StaticMethod_CreateOrUpdate.qbl
index 3190688..27fc818 100644
--- a/_Main/BL/Type_ManufactureLTImputation/StaticMethod_CreateOrUpdate.qbl
+++ b/_Main/BL/Type_ManufactureLTImputation/StaticMethod_CreateOrUpdate.qbl
@@ -1,7 +1,7 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod CreateOrUpdate (
-  MacroPlan macroPlan,
+  GlobalOTDTable parent,
   String orgCode,
   String productId,
   String desc
@@ -10,9 +10,9 @@
   TextBody:
   [*
     // yypsybs Aug-25-2023 (created)
-    value := select( macroPlan, ManufactureLTImputation, item, item.OrgCode() = orgCode and item.SkuID() = productId );
+    value := select( parent, ManufactureLTImputation, item, item.OrgCode() = orgCode and item.SkuID() = productId );
     if( isnull( value ) ) {
-        value := macroPlan.ManufactureLTImputation( relnew, OrgCode := orgCode, SkuID := productId, Describe := desc );
+        value := parent.ManufactureLTImputation( relnew, OrgCode := orgCode, SkuID := productId, Describe := desc );
     } else {
         value.Describe( desc );  
     }
diff --git a/_Main/BL/Type_ManufactureLTImputation/StaticMethod_NewStaticMethod.qbl b/_Main/BL/Type_ManufactureLTImputation/StaticMethod_NewStaticMethod.qbl
deleted file mode 100644
index 5884b30..0000000
--- a/_Main/BL/Type_ManufactureLTImputation/StaticMethod_NewStaticMethod.qbl
+++ /dev/null
@@ -1,9 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod NewStaticMethod
-{
-  TextBody:
-  [*
-    // yypsybs Sep-19-2023 (created)
-  *]
-}
diff --git a/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Refresh.qbl b/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Refresh.qbl
index 90c199f..c36ff8f 100644
--- a/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Refresh.qbl
+++ b/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Refresh.qbl
@@ -1,7 +1,8 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod Refresh (
-  ManufactureLTImputations toRefresh
+  ManufactureLTImputations toRefresh,
+  MacroPlan macroPlan
 )
 {
   TextBody:
@@ -9,7 +10,7 @@
     // yypsybs Aug-28-2023 (created)
     traverse( toRefresh, Elements, parent ) {
       traverse( parent, ManufactureLTProcessSection, child ) {
-        ManufactureLTProcessSection::Apply( child );  
+        ManufactureLTProcessSection::Apply( child, macroPlan );  
       }
     }
   *]
diff --git "a/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer\04325.qbl" "b/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer\04325.qbl"
new file mode 100644
index 0000000..2845682
--- /dev/null
+++ "b/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer\04325.qbl"
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Transfer (
+  MacroPlan macroPlan,
+  GlobalOTDTable parent
+)
+{
+  TextBody:
+  [*
+    // yypsybs Oct-11-2023 (created)
+    traverse( macroPlan, Routing.RoutingStep.Operation, item ) {
+         ManufactureLTProcessSection::CreateOrUpdate( item, parent );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer.qbl b/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer.qbl
deleted file mode 100644
index ae70b83..0000000
--- a/_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer.qbl
+++ /dev/null
@@ -1,33 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod Transfer (
-  MacroPlan oldMP,
-  MacroPlan newMP
-)
-{
-  Description: '绉讳氦鎺у埗鏉�'
-  TextBody:
-  [*
-    //// yypsybs Aug-25-2023 (created)
-    //if( isnull( oldMP ) ) {
-    //    info( "========transfer ManufactureLTImputations to macroPlan " + [String]newMP.MDSID() + "========" );
-    //} else {
-    //    info( "========transfer ManufactureLTImputations from macroPlan " + [String]oldMP.MDSID() + " to macroPlan " + [String]newMP.MDSID() + "========" );
-    //}
-    //// 娓呯┖鏂扮殑锛岃�佺殑澶嶅埗鍒版柊鐨勶紝娓呯┖鑰佺殑
-    //if( not isnull( oldMP ) and not isnull( newMP ) ) {
-    //    info( "old ManufactureLTImputation size : " + [String]oldMP.ManufactureLTImputation( relsize ) )
-    //    traverse( oldMP, ManufactureLTImputation, parent, true ) {
-    //        traverse( parent, ManufactureLTProcessSection, child, true ) {
-    //              ManufactureLTProcessSection::CreateOrUpdate( newMP, parent.OrgCode(), parent.SkuID(), parent.Describe(), 
-    //                                                            child.ProcessSection(), child.Sequence(), child.Line(), child.SystemLT(),
-    //                                                           child.Edited(), child.EditLT(), child.Describe() );
-    //        }
-    //    }  
-    //}
-    //// 澶勭悊鏂扮殑鐨刼peration
-    //traverse( newMP, Routing.RoutingStep.Operation, item ) {
-    //     ManufactureLTProcessSection::CreateOrUpdate( item );
-    //}
-  *]
-}
diff --git "a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply\043202.qbl" "b/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply\043202.qbl"
index 502281f..278b5f3 100644
--- "a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply\043202.qbl"
+++ "b/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply\043202.qbl"
@@ -1,14 +1,15 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod Apply (
-  ManufactureLTProcessSection toApply
+  ManufactureLTProcessSection toApply,
+  MacroPlan macroPlan
 )
 {
   TextBody:
   [*
     // yypsybs Aug-28-2023 (created)
     parent := toApply.ManufactureLTImputation();
-    toUpdate := select( toApply, ManufactureLTImputation.MacroPlan.Routing.RoutingStep.Operation, op,
+    toUpdate := select( macroPlan, Routing.RoutingStep.Operation, op,
                         op.RoutingID() = parent.OrgCode() + "_" + parent.SkuID() 
                         and op.RoutingStepName() = toApply.ProcessSection() + "_" + toApply.Sequence()
                         and op.Name() = ifexpr( toApply.Line() <> "", 
@@ -18,7 +19,7 @@
       toUpdate.UserLeadTime( Duration::Days( toApply.EditLT() ) );
       toApply.SystemLT( toApply.EditLT() );
     } else {
-      info( "operation to update not found" );  
+      debuginfo(  "operation to update not found" );  
     }
   *]
 }
diff --git a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply.qbl b/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply.qbl
index 2b410b4..7f69c3f 100644
--- a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply.qbl
+++ b/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply.qbl
@@ -1,14 +1,15 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod Apply (
-  ManufactureLTProcessSections toApply
+  ManufactureLTProcessSections toApply,
+  MacroPlan macroPlan
 )
 {
   TextBody:
   [*
     // yypsybs Aug-28-2023 (created)
     traverse( toApply, Elements, child ) {
-      ManufactureLTProcessSection::Apply( child );
+      ManufactureLTProcessSection::Apply( child, macroPlan );
     }
   *]
 }
diff --git a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate.qbl
index fe55479..662ef7e 100644
--- a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate.qbl
+++ b/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate.qbl
@@ -1,7 +1,8 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod CreateOrUpdate (
-  Operation op
+  Operation op,
+  GlobalOTDTable parent
 ) as ManufactureLTProcessSection
 {
   TextBody:
@@ -31,9 +32,11 @@
     }
     child := null( ManufactureLTProcessSection );
     //if( orgCode <> "" and productId <> "" and processStep <> "" and sequence <> "" ) {
-    //    parent := ManufactureLTImputation::CreateOrUpdate( op.RoutingStep().Routing().MacroPlan(), orgCode, productId, "" );
-    //    info( "DaysAsReal : " + [String]op.UserLeadTime().DaysAsReal() );
-    //    child := ManufactureLTProcessSection::CreateOrUpdate( parent, processStep, false, sequence, line, op.UserLeadTime().DaysAsReal(), 0.0, "" );
+      ltParent := ManufactureLTImputation::CreateOrUpdate( parent, orgCode, productId, "" );
+      info( "DaysAsReal : " + [String]op.UserLeadTime().DaysAsReal() );
+      child := ManufactureLTProcessSection::CreateOrUpdate( ltParent, processStep, false, sequence, line, op.UserLeadTime().DaysAsReal(), 0.0, "" );
+    //} else {
+    //  info( "skip operation" );
     //}
     return child;
   *]
diff --git a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate0.qbl b/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate0.qbl
index b18ed17..533457a 100644
--- a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate0.qbl
+++ b/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate0.qbl
@@ -1,6 +1,7 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod CreateOrUpdate (
+  GlobalOTDTable parent,
   MacroPlan macroPlan,
   String orgCode,
   String productId,
@@ -17,15 +18,15 @@
   TextBody:
   [*
     // yypsybs Aug-25-2023 (created)
-    parent := select( macroPlan, ManufactureLTImputation, item, item.OrgCode() = orgCode and item.SkuID() = productId );
-    if( isnull( parent ) ) {
-        parent := macroPlan.ManufactureLTImputation( relnew, OrgCode := orgCode, SkuID := productId, Describe := parentDesc );
+    ltParent := select( parent, ManufactureLTImputation, item, item.OrgCode() = orgCode and item.SkuID() = productId );
+    if( isnull( ltParent ) ) {
+        ltParent := parent.ManufactureLTImputation( relnew, OrgCode := orgCode, SkuID := productId, Describe := parentDesc );
     } else {
-        parent.Describe( parentDesc );  
+        ltParent.Describe( parentDesc );  
     }
-    child := select( parent, ManufactureLTProcessSection, item, item.ProcessSection() = processSection and item.Sequence() = seq and item.Line() = line );
+    child := select( ltParent, ManufactureLTProcessSection, item, item.ProcessSection() = processSection and item.Sequence() = seq and item.Line() = line );
     if( isnull( child ) ) {
-        child := parent.ManufactureLTProcessSection( relnew, 
+        child := ltParent.ManufactureLTProcessSection( relnew, 
                                                      ProcessSection := processSection, Sequence := seq, Line := line, SystemLT := systemLt, 
                                                      Edited := edited, EditLT := editLt, Describe := childDesc );
     } else {
diff --git "a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Refresh\0431.qbl" "b/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Refresh\0431.qbl"
deleted file mode 100644
index 069eb30..0000000
--- "a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Refresh\0431.qbl"
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod Refresh (
-  ManufactureLTProcessSection toRefresh
-)
-{
-  TextBody:
-  [*
-    // yypsybs Aug-28-2023 (created)
-    parent := toRefresh.ManufactureLTImputation();
-    toUpdate := select( toRefresh, ManufactureLTImputation.MacroPlan.Routing.RoutingStep.Operation, op,
-                        op.RoutingID() = parent.OrgCode() + "_" + parent.SkuID() 
-                        and op.RoutingStepName() = toRefresh.ProcessSection() + "_" + toRefresh.Sequence()
-                        and op.Name() = ifexpr( toRefresh.Line() <> "", 
-                                                parent.OrgCode() + "_" + toRefresh.ProcessSection() + "_" + toRefresh.Line(),
-                                                parent.OrgCode() + "_" + toRefresh.ProcessSection() ) );
-    if( not isnull( toUpdate ) ) {
-      toRefresh.SystemLT( toUpdate.UserLeadTime().DaysAsReal() );
-    } else {
-      info( "operation to refresh not found" );  
-    }
-  *]
-}
diff --git a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Refresh.qbl b/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Refresh.qbl
index b39c91c..94cf504 100644
--- a/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Refresh.qbl
+++ b/_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Refresh.qbl
@@ -1,14 +1,15 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod Refresh (
-  ManufactureLTProcessSections toApply
+  ManufactureLTProcessSections toDeals,
+  MacroPlan macroPlan
 )
 {
   TextBody:
   [*
-    // yypsybs Aug-28-2023 (created)
-    traverse( toApply, Elements, child ) {
-      ManufactureLTProcessSection::Refresh( child );
+    // yypsybs Oct-13-2023 (created)
+    traverse( toDeals, Elements, one ) {
+      ManufactureLTProcessSection::Apply( one, macroPlan );  
     }
   *]
 }
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl
index 3673ac7..97a091d 100644
--- a/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl
@@ -1,7 +1,8 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod GenerateAndDistributeWorkOrders (
-  MacroPlan macroPlan
+  MacroPlan macroPlan,
+  GlobalOTDTable globalOTDTable
 )
 {
   TextBody:
@@ -18,17 +19,24 @@
     
     orderNumber := 1;
     
+    organCodes := selectuniquevalues( globalOTDTable, Global_MappingOperation, tempGMO, true, tempGMO.OrganCode() );
+    
     traverse ( macroPlan, Product_MP.ProductInStockingPoint_MP, pisp, pisp.IsLeaf() and not pisp.IsSystem() ) {
       traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl ) {
-        plannedQuantity := sum( pispippl, NewSupply, ns, guard( not isnull( ns.Process_MP().astype( Operation ) ), false ), ns.Quantity() );
-        if ( plannedQuantity > 0 ) {
+        traverse ( pispippl, NewSupply, ns, ns.Quantity() > 0 ) {
+          organCode := "鏃犵粍缁囦俊鎭�";
+          unit := guard( ns.Process_MP().astype( Operation ).Unit(), null( Unit ) );
+          if ( not isnull( unit ) ){
+            MasterPlanReleaseWorkOrder::ObtainOrganizationCode( unit, organCodes, organCode );
+          }
           newMasterPlanReleaseWorkOrder.MasterPlanReleaseWorkOrderTabulation( relnew,
                                                                               ProductionWorkOrderNumber := universalPrefixForWorkOrderNumber + [String]orderNumber,
                                                                               ProductModel              := pisp.ProductID(),
                                                                               MaterialDescription       := pisp.ProductID(),
                                                                               StartDate                 := pispippl.Start().Date(),
                                                                               EndDate                   := pispippl.End().Date(),
-                                                                              PlannedQuantity           := plannedQuantity
+                                                                              PlannedQuantity           := ns.Quantity(),
+                                                                              OrganizationInfomation    := organCode
                                                                              );
           orderNumber++;
         }
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders1.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders1.qbl
new file mode 100644
index 0000000..b854ffd
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders1.qbl
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GenerateAndDistributeWorkOrders1 (
+  MacroPlan macroPlan
+)
+{
+  TextBody:
+  [*
+    macroPlan.MasterPlanReleaseWorkOrder( relflush );
+    
+    newMasterPlanReleaseWorkOrder := macroPlan.MasterPlanReleaseWorkOrder( relnew, IsGenerateAndPublishWorkOrders := true );
+    
+    universalPrefixForWorkOrderNumber := [String]Date::ActualDate().Year() + 
+                                         ifexpr( ( [String]Date::ActualDate().Month() ).Length() = 1, "0" + [String]Date::ActualDate().Month(), [String]Date::ActualDate().Month() )                         +
+                                         ifexpr( ( [String]Date::ActualDate().Day() ).Length() = 1, "0" + [String]Date::ActualDate().Day(), [String]Date::ActualDate().Day() )                               +
+                                         ifexpr( ( [String]DateTime::ActualTime().HourOfDay() ).Length() = 1, "0" + [String]DateTime::ActualTime().HourOfDay(), [String]DateTime::ActualTime().HourOfDay() ) +
+                                         ifexpr( ( [String]DateTime::ActualTime().MinuteOfHour() ).Length() = 1, "0" + [String]DateTime::ActualTime().MinuteOfHour(), [String]DateTime::ActualTime().MinuteOfHour() );
+    
+    orderNumber := 1;
+    
+    traverse ( macroPlan, Product_MP.ProductInStockingPoint_MP, pisp, pisp.IsLeaf()       and 
+                                                                      not pisp.IsSystem() ) {   
+      exists( macroPlan, Product_MP.ProductInStockingPoint_MP.ProcessInput.ProductInStockingPoint_MP, tempPISP, 
+                          tempPISP = pisp );                                                                                                                              
+      traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl ) {
+        plannedQuantity := sum( pispippl, NewSupply, ns, guard( not isnull( ns.Process_MP().astype( Operation ) ), false ), ns.Quantity() );
+        if ( plannedQuantity > 0 ) {
+          newMasterPlanReleaseWorkOrder.MasterPlanReleaseWorkOrderTabulation( relnew,
+                                                                              ProductionWorkOrderNumber := universalPrefixForWorkOrderNumber + [String]orderNumber,
+                                                                              ProductModel              := pisp.ProductID(),
+                                                                              MaterialDescription       := pisp.ProductID(),
+                                                                              StartDate                 := pispippl.Start().Date(),
+                                                                              EndDate                   := pispippl.End().Date(),
+                                                                              PlannedQuantity           := plannedQuantity
+                                                                             );
+          orderNumber++;
+        }
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_ObtainOrganizationCode.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_ObtainOrganizationCode.qbl
new file mode 100644
index 0000000..9f14e0d
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_ObtainOrganizationCode.qbl
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ObtainOrganizationCode (
+  Unit unit,
+  Strings organCodes,
+  output String organCode
+)
+{
+  TextBody:
+  [*
+    if ( exists( organCodes, Elements, oc, oc = unit.ID() ) ) {
+      organCode := unit.ID();
+    } else {
+      if ( not isnull( unit.Parent() ) ) {
+        MasterPlanReleaseWorkOrder::ObtainOrganizationCode( unit.Parent(), organCodes, organCode );
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_OrganizationInfomation.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_OrganizationInfomation.qbl
new file mode 100644
index 0000000..f8af291
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_OrganizationInfomation.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrganizationInfomation
+{
+  #keys: '3[414702.1.53467738][414702.1.53467737][414702.1.53467739]'
+  Description: '缁勭粐淇℃伅'
+  ValueType: String
+}
diff --git "a/_Main/BL/Type_PRData/StaticMethod_Export\043346.qbl" "b/_Main/BL/Type_PRData/StaticMethod_Export\043346.qbl"
new file mode 100644
index 0000000..e699b8c
--- /dev/null
+++ "b/_Main/BL/Type_PRData/StaticMethod_Export\043346.qbl"
@@ -0,0 +1,209 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Export (
+  PRDatas toExportList
+) as String
+{
+  TextBody:
+  [*
+    // generate by generate_export_method.py
+    xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?>
+    <table>
+      <name>PRData</name>
+    ';
+    convDateToString := DateToString::StandardConverter();
+    convDateToString.SetCustomConversion();
+    convDateToString.CustomFormatString( 'yyyy-MM-dd' );
+    
+    debuginfo( "export start" );
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鐗╂枡缂栫爜</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      productID := toExportItem.ProductID();
+      cellStr := '<cell value="' + productID + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鐗╂枡鍚嶇О</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      productName := toExportItem.ProductName();
+      cellStr := '<cell value="' + productName + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>闈㈡澘鐗╂枡鏍囪瘑</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      isPanelMaterial := toExportItem.IsPanelMaterial();
+      cellStr := '<cell value="' + isPanelMaterial + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>浜よ揣鏃ユ湡</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      deliveryDate := toExportItem.DeliveryDate();
+      cellStr := '<cell value="' + ifexpr( deliveryDate = Date::MinDate(), "", convDateToString.Convert( deliveryDate )) + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>PR寤鸿鏃ユ湡</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      pRSuggestionDate := toExportItem.PRSuggestionDate();
+      cellStr := '<cell value="' + ifexpr( pRSuggestionDate = Date::MinDate(), "", convDateToString.Convert( pRSuggestionDate )) + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>浜よ揣鏁伴噺</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      quantity := toExportItem.Quantity();
+      cellStr := '<cell value="' + [String]quantity + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>MRP璁$畻鐗堟湰鍙�</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      mRPCalverNo := toExportItem.MRPCalverNo();
+      cellStr := '<cell value="' + mRPCalverNo + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>涓氬姟绫诲瀷</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      businessType := toExportItem.BusinessType();
+      cellStr := '<cell value="' + businessType + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>缁勭粐缂栫爜</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      organCode := toExportItem.OrganCode();
+      cellStr := '<cell value="' + organCode + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鏄惁闀垮懆鏈�</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      isLongLeadItem := toExportItem.IsLongLeadItem();
+      cellStr := '<cell value="' + isLongLeadItem + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鏄惁涓撶敤鏂�</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      isGenericMaterial := toExportItem.IsGenericMaterial();
+      cellStr := '<cell value="' + isGenericMaterial + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鐗╂枡璁″垝绛栫暐</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      materialMRPType := toExportItem.MaterialMRPType();
+      cellStr := '<cell value="' + materialMRPType + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鎻愬墠鏈�</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      leadTime := toExportItem.LeadTime();
+      cellStr := '<cell value="' + [String]leadTime + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>渚涘簲鍟嗕唬鐮�</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      providerCode := toExportItem.ProviderCode();
+      cellStr := '<cell value="' + providerCode + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>渚涘簲鍟嗗悕绉�</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      providerName := toExportItem.ProviderName();
+      cellStr := '<cell value="' + providerName + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鏀惰揣搴撳瓨鐐�</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      stockingPointID := toExportItem.StockingPointID();
+      cellStr := '<cell value="' + stockingPointID + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>璁¢噺鍗曚綅</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      unitOfMeasure := toExportItem.UnitOfMeasure();
+      cellStr := '<cell value="' + unitOfMeasure + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>PR鏁版嵁鍙戦�佺姸鎬�</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      pRReleaseStatus := toExportItem.PRReleaseStatus();
+      cellStr := '<cell value="' + pRReleaseStatus + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鍙戦�佹椂闂�</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      createTimeString := toExportItem.CreateTimeString();
+      cellStr := '<cell value="' + createTimeString + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鍙戦�佷汉</name><type>String</type>";
+    traverse( toExportList, Elements, toExportItem ) {
+      createBy := toExportItem.CreateBy();
+      cellStr := '<cell value="' + createBy + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    xmlTemplate := xmlTemplate + "</table>";
+    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) );
+    XLS::SaveTable( tableHandle, OS::TempPath() + "PRData.xlsx" );
+    file := OSFile::Construct();
+    file.Open( OS::TempPath() + "PRData.xlsx", "Read", true );
+    data := file.ReadBinary()
+    debuginfo( "export end" );
+    return data.AsBase64EncodedString();
+  *]
+}
diff --git a/_Main/BL/Type_PRData/StaticMethod_Export.qbl b/_Main/BL/Type_PRData/StaticMethod_Export.qbl
new file mode 100644
index 0000000..46ff06e
--- /dev/null
+++ b/_Main/BL/Type_PRData/StaticMethod_Export.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Export (
+  MacroPlan parent
+) as String
+{
+  TextBody:
+  [*
+    // generate by generate_export_method.py
+    toExportList := selectset( parent, PRData, item, true );
+    return PRData::Export( toExportList );
+  *]
+}
diff --git "a/_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream\043595.qbl" "b/_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream\043595.qbl"
deleted file mode 100644
index 540295e..0000000
--- "a/_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream\043595.qbl"
+++ /dev/null
@@ -1,12 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod ExportTheFileStream (
-  MacroPlan parent
-) as BinaryValue
-{
-  TextBody:
-  [*
-    // yypsybs Sep-20-2023 (created)
-    return PRData::ExportTheFileStream( selectset( parent, PRData, item, true ) );
-  *]
-}
diff --git a/_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl b/_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl
deleted file mode 100644
index 1b706e0..0000000
--- a/_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl
+++ /dev/null
@@ -1,78 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod ExportTheFileStream (
-  PRDatas toExportList
-) as BinaryValue
-{
-  TextBody:
-  [*
-    // generate by generate_export.py
-    dateTimeToString := DateTimeToString::StandardConverter();
-    dateTimeToString.SetCustomConversion();
-    dateTimeToString.CustomFormatString( "yyyy/MM/dd H:mm:ss" );
-    
-    dateToString := DateToString::StandardConverter();
-    dateToString.SetCustomConversion();
-    dateToString.CustomFormatString( "yyyy/MM/dd" );
-    
-    text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>PR</name>
-    <column><name>鐗╂枡缂栫爜</name><type>String</type></column>
-    <column><name>鐗╂枡鍚嶇О</name><type>String</type></column>
-    <column><name>闈㈡澘鐗╂枡鏍囪瘑</name><type>String</type></column>
-    <column><name>浜よ揣鏃ユ湡</name><type>String</type></column>
-    <column><name>PR寤鸿鏃ユ湡</name><type>String</type></column>
-    <column><name>浜よ揣鏁伴噺</name><type>Number</type></column>
-    <column><name>MRP璁$畻鐗堟湰鍙�</name><type>String</type></column>
-    <column><name>涓氬姟绫诲瀷</name><type>String</type></column>
-    <column><name>缁勭粐缂栫爜</name><type>String</type></column>
-    <column><name>鏄惁闀垮懆鏈�</name><type>String</type></column>
-    <column><name>鏄惁涓撶敤鏂�</name><type>String</type></column>
-    <column><name>鐗╂枡璁″垝绛栫暐</name><type>String</type></column>
-    <column><name>鎻愬墠鏈�</name><type>Number</type></column>
-    <column><name>渚涘簲鍟嗕唬鐮�</name><type>String</type></column>
-    <column><name>渚涘簲鍟嗗悕绉�</name><type>String</type></column>
-    <column><name>鏀惰揣搴撳瓨鐐�</name><type>String</type></column>
-    <column><name>璁¢噺鍗曚綅</name><type>String</type></column>
-    <column><name>PR鏁版嵁鍙戦�佺姸鎬�</name><type>String</type></column>
-    <column><name>鍙戦�佹椂闂�</name><type>String</type></column>
-    <column><name>鍙戦�佷汉</name><type>String</type></column>
-    </table>';
-    xmlDOMImplementation := XMLDOMImplementation::Create();
-    xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text );
-    
-    tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
-    
-    traverse ( toExportList, Elements, toExport ) {
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductID(), "鐗╂枡缂栫爜" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductName(), "鐗╂枡鍚嶇О" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.IsPanelMaterial(), "闈㈡澘鐗╂枡鏍囪瘑" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.DeliveryDate() = Date::MinDate(), "", dateToString.Convert( toExport.DeliveryDate() ) ), "浜よ揣鏃ユ湡" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.PRSuggestionDate() = Date::MinDate(), "", dateToString.Convert( toExport.PRSuggestionDate() ) ), "PR寤鸿鏃ユ湡" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.Quantity(), "浜よ揣鏁伴噺" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MRPCalverNo(), "MRP璁$畻鐗堟湰鍙�" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.BusinessType(), "涓氬姟绫诲瀷" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.OrganCode(), "缁勭粐缂栫爜" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.IsLongLeadItem(), "鏄惁闀垮懆鏈�" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.IsGenericMaterial(), "鏄惁涓撶敤鏂�" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MaterialMRPType(), "鐗╂枡璁″垝绛栫暐" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.LeadTime(), "鎻愬墠鏈�" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderCode(), "渚涘簲鍟嗕唬鐮�" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderName(), "渚涘簲鍟嗗悕绉�" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.StockingPointID(), "鏀惰揣搴撳瓨鐐�" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.UnitOfMeasure(), "璁¢噺鍗曚綅" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.PRReleaseStatus(), "PR鏁版嵁鍙戦�佺姸鎬�" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.CreateTimeString(), "鍙戦�佹椂闂�" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.CreateBy(), "鍙戦�佷汉" );
-    }
-    
-    xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
-    xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
-    
-    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
-    tableGroupHandle := TableGroupHandle::Create( "PR" );
-    tableGroupHandle.Add( tableHandle );
-    tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
-    
-    return tableBinaryData.AsBinaryValue();
-  *]
-}
diff --git a/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl
index 7c5d308..dff5567 100644
--- a/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl
+++ b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl
@@ -14,10 +14,15 @@
     // 鎸塎RPCalverNo鏌ワ紝宸叉湁鏃ц褰曟椂涓嶅鐞�
     oldRecords := selectset( macroPlan, PRData, item,
                              item.MRPCalverNo() = mrpCalverNo );
+    nowNo := 1;
     if( isnull( oldRecords ) or oldRecords.Size() = 0 ) {
       pispips := ProductInStockingPointInPeriod::GetByMRPCalverNo( macroPlan, mrpCalverNo );
       traverse( pispips, Elements, item, item.NewSupplyQuantity() > 0 ) {
         PRData::FromSupplyPlanning( otdTable, macroPlan, item, userId );
+        nowNo := nowNo + 1;
+        if( nowNo mod 1000 = 0 ) {
+          info( "SupplyPlanning to prData : " + [String]nowNo );
+        }
       }
     }
   *]
diff --git "a/_Main/BL/Type_PRHistoryData/StaticMethod_Export\043527.qbl" "b/_Main/BL/Type_PRHistoryData/StaticMethod_Export\043527.qbl"
new file mode 100644
index 0000000..55d80be
--- /dev/null
+++ "b/_Main/BL/Type_PRHistoryData/StaticMethod_Export\043527.qbl"
@@ -0,0 +1,199 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Export (
+  PRHistoryDatas toExportList
+) as String
+{
+  TextBody:
+  [*
+    // generate by generate_export_method.py
+    xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?>
+    <table>
+      <name>PRHistoryData</name>
+    ';
+    convDateToString := DateToString::StandardConverter();
+    convDateToString.SetCustomConversion();
+    convDateToString.CustomFormatString( 'yyyy-MM-dd' );
+    
+    debuginfo( "export start" );
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鐗╂枡缂栫爜</name><type>String</type>";
+    debuginfo( "export column ProductID" );
+    traverse( toExportList, Elements, toExportItem ) {
+      productID := toExportItem.ProductID();
+      cellStr := '<cell value="' + productID + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鐗╂枡鍚嶇О</name><type>String</type>";
+    debuginfo( "export column ProductName" );
+    traverse( toExportList, Elements, toExportItem ) {
+      productName := toExportItem.ProductName();
+      cellStr := '<cell value="' + productName + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>浜よ揣鏃ユ湡</name><type>String</type>";
+    debuginfo( "export column DeliveryDate" );
+    traverse( toExportList, Elements, toExportItem ) {
+      deliveryDate := toExportItem.DeliveryDate();
+      cellStr := '<cell value="' + ifexpr( deliveryDate = Date::MinDate(), "", convDateToString.Convert( deliveryDate )) + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>浜よ揣鏁伴噺</name><type>String</type>";
+    debuginfo( "export column Quantity" );
+    traverse( toExportList, Elements, toExportItem ) {
+      quantity := toExportItem.Quantity();
+      cellStr := '<cell value="' + [String]quantity + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>MRP璁$畻鐗堟湰鍙�</name><type>String</type>";
+    debuginfo( "export column MRPCalverNo" );
+    traverse( toExportList, Elements, toExportItem ) {
+      mRPCalverNo := toExportItem.MRPCalverNo();
+      cellStr := '<cell value="' + mRPCalverNo + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>涓氬姟绫诲瀷</name><type>String</type>";
+    debuginfo( "export column BusinessType" );
+    traverse( toExportList, Elements, toExportItem ) {
+      businessType := toExportItem.BusinessType();
+      cellStr := '<cell value="' + businessType + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>缁勭粐缂栫爜</name><type>String</type>";
+    debuginfo( "export column OrganCode" );
+    traverse( toExportList, Elements, toExportItem ) {
+      organCode := toExportItem.OrganCode();
+      cellStr := '<cell value="' + organCode + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>渚涘簲鍟嗕唬鐮�</name><type>String</type>";
+    debuginfo( "export column ProviderCode" );
+    traverse( toExportList, Elements, toExportItem ) {
+      providerCode := toExportItem.ProviderCode();
+      cellStr := '<cell value="' + providerCode + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>渚涘簲鍟嗗悕绉�</name><type>String</type>";
+    debuginfo( "export column ProviderName" );
+    traverse( toExportList, Elements, toExportItem ) {
+      providerName := toExportItem.ProviderName();
+      cellStr := '<cell value="' + providerName + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鏀惰揣搴撳瓨鐐�</name><type>String</type>";
+    debuginfo( "export column StockingPointID" );
+    traverse( toExportList, Elements, toExportItem ) {
+      stockingPointID := toExportItem.StockingPointID();
+      cellStr := '<cell value="' + stockingPointID + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>璁¢噺鍗曚綅</name><type>String</type>";
+    debuginfo( "export column UnitOfMeasure" );
+    traverse( toExportList, Elements, toExportItem ) {
+      unitOfMeasure := toExportItem.UnitOfMeasure();
+      cellStr := '<cell value="' + unitOfMeasure + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>PR鏁版嵁鍙戦�佺姸鎬�</name><type>String</type>";
+    debuginfo( "export column SendStatus" );
+    traverse( toExportList, Elements, toExportItem ) {
+      sendStatus := toExportItem.SendStatus();
+      cellStr := '<cell value="' + sendStatus + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鍙戦�佹椂闂�</name><type>String</type>";
+    debuginfo( "export column SendTimeString" );
+    traverse( toExportList, Elements, toExportItem ) {
+      sendTimeString := toExportItem.SendTimeString();
+      cellStr := '<cell value="' + sendTimeString + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>鍙戦�佷汉</name><type>String</type>";
+    debuginfo( "export column ReleaseBy" );
+    traverse( toExportList, Elements, toExportItem ) {
+      releaseBy := toExportItem.ReleaseBy();
+      cellStr := '<cell value="' + releaseBy + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>ERP鎺ユ敹鏃堕棿</name><type>String</type>";
+    debuginfo( "export column ReceiveTimeString" );
+    traverse( toExportList, Elements, toExportItem ) {
+      receiveTimeString := toExportItem.ReceiveTimeString();
+      cellStr := '<cell value="' + receiveTimeString + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>ERP鎺ユ敹鐘舵��</name><type>String</type>";
+    debuginfo( "export column ReceiveStatus" );
+    traverse( toExportList, Elements, toExportItem ) {
+      receiveStatus := toExportItem.ReceiveStatus();
+      cellStr := '<cell value="' + receiveStatus + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    columnStr := "<column><name>閿欒淇℃伅鎻忚堪</name><type>String</type>";
+    debuginfo( "export column ReceiveError" );
+    traverse( toExportList, Elements, toExportItem ) {
+      receiveError := toExportItem.ReceiveError();
+      cellStr := '<cell value="' + receiveError.ReplaceAll( '"', "'" ) + '"/>';
+      columnStr := columnStr + cellStr;
+    }
+    columnStr := columnStr + "</column>";
+    xmlTemplate := xmlTemplate + columnStr;
+    //---------------------------------------------------------------------------------------------
+    xmlTemplate := xmlTemplate + "</table>";
+    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) );
+    XLS::SaveTable( tableHandle, OS::TempPath() + "PRHistoryData.xlsx" );
+    file := OSFile::Construct();
+    file.Open( OS::TempPath() + "PRHistoryData.xlsx", "Read", true );
+    data := file.ReadBinary()
+    debuginfo( "export end" );
+    return data.AsBase64EncodedString();
+  *]
+}
diff --git a/_Main/BL/Type_PRHistoryData/StaticMethod_Export.qbl b/_Main/BL/Type_PRHistoryData/StaticMethod_Export.qbl
new file mode 100644
index 0000000..132c301
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/StaticMethod_Export.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Export (
+  GlobalOTDTable parent
+) as String
+{
+  TextBody:
+  [*
+    // generate by generate_export_method.py
+    toExportList := selectset( parent, PRHistoryData, item, true );
+    return PRHistoryData::Export( toExportList );
+  *]
+}
diff --git "a/_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream\04345.qbl" "b/_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream\04345.qbl"
deleted file mode 100644
index a04fd41..0000000
--- "a/_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream\04345.qbl"
+++ /dev/null
@@ -1,12 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod ExportTheFileStream (
-  GlobalOTDTable parent
-) as BinaryValue
-{
-  TextBody:
-  [*
-    // yypsybs Sep-20-2023 (created)
-    return PRHistoryData::ExportTheFileStream( selectset( parent, PRHistoryData, item, true ) );
-  *]
-}
diff --git a/_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl b/_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl
deleted file mode 100644
index edd753d..0000000
--- a/_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl
+++ /dev/null
@@ -1,72 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod ExportTheFileStream (
-  PRHistoryDatas toExportList
-) as BinaryValue
-{
-  TextBody:
-  [*
-    // generate by generate_export.py
-    dateTimeToString := DateTimeToString::StandardConverter();
-    dateTimeToString.SetCustomConversion();
-    dateTimeToString.CustomFormatString( "yyyy/MM/dd H:mm:ss" );
-    
-    dateToString := DateToString::StandardConverter();
-    dateToString.SetCustomConversion();
-    dateToString.CustomFormatString( "yyyy/MM/dd" );
-    
-    text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>PR</name>
-    <column><name>闆朵欢鍙�</name><type>String</type></column>
-    <column><name>闆朵欢鍚嶇О</name><type>String</type></column>
-    <column><name>浜よ揣鏃ユ湡</name><type>String</type></column>
-    <column><name>闇�姹傛暟閲�</name><type>Number</type></column>
-    <column><name>MRP璁$畻鐗堟湰鍙�</name><type>String</type></column>
-    <column><name>浜嬩笟閮�</name><type>String</type></column>
-    <column><name>缁勭粐缂栫爜</name><type>String</type></column>
-    <column><name>渚涘簲鍟嗕唬鐮�</name><type>String</type></column>
-    <column><name>渚涘簲鍟嗗悕绉�</name><type>String</type></column>
-    <column><name>鏀惰揣搴撳瓨鐐�</name><type>String</type></column>
-    <column><name>璁¢噺鍗曚綅</name><type>String</type></column>
-    <column><name>PR鏁版嵁鍙戦�佺姸鎬�</name><type>String</type></column>
-    <column><name>鍙戦�佹椂闂�</name><type>String</type></column>
-    <column><name>鍙戦�佷汉</name><type>String</type></column>
-    <column><name>ERP鎺ユ敹鏃堕棿</name><type>String</type></column>
-    <column><name>ERP鎺ユ敹鐘舵��</name><type>String</type></column>
-    <column><name>閿欒淇℃伅鎻忚堪</name><type>String</type></column>
-    </table>';
-    xmlDOMImplementation := XMLDOMImplementation::Create();
-    xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text );
-    
-    tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
-    
-    traverse ( toExportList, Elements, toExport ) {
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductID(), "闆朵欢鍙�" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductName(), "闆朵欢鍚嶇О" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.DeliveryDate() = Date::MinDate(), "", dateToString.Convert( toExport.DeliveryDate() ) ), "浜よ揣鏃ユ湡" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.Quantity(), "闇�姹傛暟閲�" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MRPCalverNo(), "MRP璁$畻鐗堟湰鍙�" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.BusinessType(), "浜嬩笟閮�" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.OrganCode(), "缁勭粐缂栫爜" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderCode(), "渚涘簲鍟嗕唬鐮�" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderName(), "渚涘簲鍟嗗悕绉�" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.StockingPointID(), "鏀惰揣搴撳瓨鐐�" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.UnitOfMeasure(), "璁¢噺鍗曚綅" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendStatus(), "PR鏁版嵁鍙戦�佺姸鎬�" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendTimeString(), "鍙戦�佹椂闂�" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReleaseBy(), "鍙戦�佷汉" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReceiveTimeString(), "ERP鎺ユ敹鏃堕棿" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReceiveStatus(), "ERP鎺ユ敹鐘舵��" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReceiveError(), "閿欒淇℃伅鎻忚堪" );
-    }
-    
-    xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
-    xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
-    
-    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
-    tableGroupHandle := TableGroupHandle::Create( "PR" );
-    tableGroupHandle.Add( tableHandle );
-    tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
-    
-    return tableBinaryData.AsBinaryValue();
-  *]
-}
diff --git a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Response_SelectionScenario_OnSelectionChanged.def b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Response_SelectionScenario_OnSelectionChanged.def
index c8e9a52..30ca8f6 100644
--- a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Response_SelectionScenario_OnSelectionChanged.def
+++ b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Response_SelectionScenario_OnSelectionChanged.def
@@ -6,9 +6,6 @@
   [*
     // Select a secnario, will also be triggered when scenario is activated via scn mgr list
     
-    macroPlanOld := MacroPlan;
-    info( "SelectionScenario.OnSelectionCHanged  macroPlanOld : " + [String]macroPlanOld.MDSID() )
-    
     ApplicationLibMacroPlanner.SelectScenarioReadOnly( SelectionScenario.Data() );
     
     // Set active scenario on form
@@ -18,9 +15,5 @@
     {
       ApplicationLibMacroPlanner.ComponentMDS_SelectInstance( frm, SelectionScenario.Data() );
     }
-    
-    macroPlanNew := MacroPlan;
-    info( "SelectionScenario.OnSelectionCHanged  macroPlanNew : " + [String]macroPlanOld.MDSID() )
-    ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew );
   *]
 }
diff --git "a/_Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New\043221.def" "b/_Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New\043221.def"
index 0c1477f..e6a3de6 100644
--- "a/_Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New\043221.def"
+++ "b/_Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New\043221.def"
@@ -2,7 +2,7 @@
 #parent: #root
 Method New (
   internal[GUIComponent] parent,
-  shadow[MacroPlan] owner
+  shadow[GlobalOTDTable] owner
 ) as shadow[ManufactureLTImputation] id:Method_DialogManufactureLTImputation_New_221
 {
   #keys: '[414384.0.703976688]'
diff --git a/_Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New.def b/_Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New.def
index ad061a1..fb1599a 100644
--- a/_Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New.def
+++ b/_Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New.def
@@ -2,7 +2,7 @@
 #parent: #root
 Method New (
   internal[GUIComponent] parent,
-  MacroPlan owner
+  GlobalOTDTable owner
 ) as ManufactureLTImputation id:Method_DialogManufactureLTImputation_New
 {
   #keys: '[414384.0.703976686]'
diff --git a/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Component_ListManufactureLTImputation.def b/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Component_ListManufactureLTImputation.def
index 35cf717..4121997 100644
--- a/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Component_ListManufactureLTImputation.def
+++ b/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Component_ListManufactureLTImputation.def
@@ -66,7 +66,7 @@
       BaseType: 'GUIDataSetLevel'
       Properties:
       [
-        Columns: 'ManufactureLTImputationColumns'
+        Columns: 'MacroPlanColumns'
         DataExtractor: 'GUIDataExtractor689'
         PosX: 35
         PosY: 30
diff --git a/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuApplyManufactureLTImputation_OnClic.def b/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuApplyManufactureLTImputation_OnClic.def
index 6be18ef..1fa1b8e 100644
--- a/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuApplyManufactureLTImputation_OnClic.def
+++ b/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuApplyManufactureLTImputation_OnClic.def
@@ -8,7 +8,7 @@
   Body:
   [*
     // Delete a ManufactureLTImputation
-    ManufactureLTImputation::Apply( selection );
+    ManufactureLTImputation::Apply( selection, MacroPlan );
   *]
   DefinitionID => /ListManufactureLTImputation/Responsedef_ListManufactureLTImputation_Menu_OnClick
   Initiator: 'MenuApplyManufactureLTImputation'
diff --git a/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuRefreshManufactureLTImputation_OnCl.def b/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuRefreshManufactureLTImputation_OnCl.def
index 2d692c9..a9ac93a 100644
--- a/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuRefreshManufactureLTImputation_OnCl.def
+++ b/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuRefreshManufactureLTImputation_OnCl.def
@@ -7,7 +7,7 @@
   #keys: '[414384.0.720985420]'
   Body:
   [*
-    ManufactureLTImputation::Refresh( selection );
+    ManufactureLTImputation::Refresh( selection, MacroPlan );
   *]
   CanBindMultiple: false
   DefinitionID => /ListManufactureLTImputation/Responsedef_ListManufactureLTImputation_Menu_OnClick
diff --git "a/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuApplyManufactureLTProcessSe\043444.def" "b/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuApplyManufactureLTProcessSe\043444.def"
index b222947..1561db2 100644
--- "a/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuApplyManufactureLTProcessSe\043444.def"
+++ "b/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuApplyManufactureLTProcessSe\043444.def"
@@ -8,7 +8,7 @@
   Body:
   [*
     // Delete a ManufactureLTProcessSection
-    ManufactureLTProcessSection::Apply( selection );
+    ManufactureLTProcessSection::Apply( selection, MacroPlan );
   *]
   DefinitionID => /ListManufactureLTProcessSection/Responsedef_ListManufactureLTProcessSection_Menu_OnClick
   Initiator: 'MenuApplyManufactureLTProcessSection'
diff --git a/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuRefreshManufactureLTProcessSect.def b/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuRefreshManufactureLTProcessSect.def
index aeb0cc1..16f0493 100644
--- a/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuRefreshManufactureLTProcessSect.def
+++ b/_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuRefreshManufactureLTProcessSect.def
@@ -7,7 +7,7 @@
   #keys: '[414384.0.720985521]'
   Body:
   [*
-    ManufactureLTProcessSection::Refresh( selection );
+    ManufactureLTProcessSection::Refresh( selection, MacroPlan );
   *]
   CanBindMultiple: false
   DefinitionID => /ListManufactureLTProcessSection/Responsedef_ListManufactureLTProcessSection_Menu_OnClick
diff --git a/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def b/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def
index dde6eff..4209271 100644
--- a/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def
+++ b/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def
@@ -7,7 +7,9 @@
   [*
     //CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan, SelectionScenario.Data() );
     
-    CapacityAllocationResultsRuleConfiguration::AutomaticallyGenerateCapacityRules( GlobalOTDTable, MacroPlan );
+    //CapacityAllocationResultsRuleConfiguration::AutomaticallyGenerateCapacityRules( GlobalOTDTable, MacroPlan );
+    
+    CapacityAllocationResults::Test( MacroPlan, GlobalOTDTable );
   *]
   CanBindMultiple: false
   DefinitionID: 'Responsedef_GUIButtonBase_OnClick'
diff --git a/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuFolderNewMacroPlan_OnClick.def b/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuFolderNewMacroPlan_OnClick.def
index 86bb0cb..f68ce19 100644
--- a/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuFolderNewMacroPlan_OnClick.def
+++ b/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuFolderNewMacroPlan_OnClick.def
@@ -8,11 +8,6 @@
   [*
     // To be derived
     
-    macroPlanOld := MacroPlan;
-    if ( not isnull( macroPlanOld ) ) {
-        info( "ListScrnario.MenuFolderNewMacroPlan.OnClick  macroPlanOld : " + [String]macroPlanOld.MDSID() );
-    }
-    
     // Create a new MP Scenario
     dlg := construct( ScenarioManager_DialogCreateEditMPScenario );
     
@@ -39,12 +34,6 @@
         ApplicationLibMacroPlanner.LaunchInitializationWizard( MacroPlan );
       }
     }
-    
-    macroPlanNew := MacroPlan;
-    if ( not isnull( macroPlanNew ) ) {
-        info( "ListScrnario.MenuFolderNewMacroPlan.OnClick  macroPlanNew : " + [String]macroPlanNew.MDSID() );
-    }
-    ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew );
   *]
   Precondition:
   [*
diff --git a/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioNewMacroPlan_OnClick.def b/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioNewMacroPlan_OnClick.def
index 4b2b485..93eb901 100644
--- a/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioNewMacroPlan_OnClick.def
+++ b/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioNewMacroPlan_OnClick.def
@@ -8,12 +8,6 @@
   [*
     // To be derived - ScenarioMP
     
-    macroPlanOld := MacroPlan;
-    if ( not isnull( macroPlanOld ) ) {
-        info( "ListScrnario.MenuScenarioNewMacroPlan.OnClick  macroPlanOld : " + [String]macroPlanOld.MDSID() );
-    }
-    
-    
     // Create a new Scenario
     dlg := construct( ScenarioManager_DialogCreateEditMPScenario );
     parent := selection.Element( 0 ).Parent();
@@ -31,12 +25,6 @@
         ApplicationLibMacroPlanner.LaunchInitializationWizard( MacroPlan );
       }
     }
-    
-    macroPlanNew := MacroPlan;
-    if ( not isnull( macroPlanNew ) ) {
-        info( "ListScrnario.MenuScenarioNewMacroPlan.OnClick  macroPlanNew : " + [String]macroPlanNew.MDSID() );
-    }
-    ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew );
   *]
   Precondition:
   [*
diff --git a/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioSelect_OnClick.def b/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioSelect_OnClick.def
index 4395e1a..c47dc33 100644
--- a/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioSelect_OnClick.def
+++ b/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioSelect_OnClick.def
@@ -8,17 +8,7 @@
   [*
     // Select a scenario
     
-    macroPlanOld := MacroPlan;
-    if ( not isnull( macroPlanOld ) ) {
-        info( "ListScrnario.MenuScenarioSelect.OnClick  macroPlanOld : " + [String]macroPlanOld.MDSID() );
-    }
     Form.SelectScenario( selection );
-    
-    macroPlanNew := MacroPlan;
-    if ( not isnull( macroPlanNew ) ) {
-        info( "ListScrnario.MenuScenarioSelect.OnClick  macroPlanNew : " + [String]macroPlanNew.MDSID() );
-    }
-    ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew );
   *]
   Precondition:
   [*
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def" "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def"
index de9515e..71b9352 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def"
@@ -7,10 +7,6 @@
     {
       #keys: '[414382.0.436830247]'
       BaseType: 'WebButton'
-      Children:
-      [
-        #child: ContextMenuSalesFillingCapacity
-      ]
       Properties:
       [
         Image: 'BLOT'
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def
deleted file mode 100644
index 0aae48c..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def
+++ /dev/null
@@ -1,49 +0,0 @@
-Quintiq file version 2.0
-Component ContextMenuSalesFillingCapacity
-{
-  #keys: '[414382.0.437003283]'
-  BaseType: 'WebContextMenu'
-  Children:
-  [
-    Component MenuSalesFillingCapacity
-    {
-      #keys: '[414382.0.437003284]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Image: 'ELEMENT_BLUE'
-        Taborder: 0
-        Title: '澶栧崠CELL'
-        Tooltip: '澶栧崠CELL'
-      ]
-    }
-    Component MenuSalesFillingSchemeDetail
-    {
-      #keys: '[414382.0.436840646]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Image: 'ELEMENT_ORANGE'
-        Taborder: 1
-        Title: '濉骇鏂规鍒楄〃'
-        Tooltip: '濉骇鏂规鍒楄〃'
-      ]
-    }
-    Component MenuSalesFillingSchemeHistorical
-    {
-      #keys: '[414382.0.455751651]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Image: 'ELEMENT_ORANGE'
-        Taborder: 2
-        Title: '濉骇鍘嗗彶璁㈠崟鍒楄〃'
-        Tooltip: '濉骇鍘嗗彶璁㈠崟鍒楄〃'
-      ]
-    }
-  ]
-  Properties:
-  [
-    Taborder: 0
-  ]
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def
index 4a5d5b5..9dd6fd4 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def
@@ -13,7 +13,7 @@
       [
         Image: 'WATER_FISH'
         Taborder: 0
-        Title: '浜ц兘鍒嗛厤&濉骇'
+        Title: '浜ц兘鍒嗛厤'
       ]
     }
     Component mnAnnualProductionAndSalesReview
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonSalesFillingCapacity_O.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonSalesFillingCapacity_O.def
new file mode 100644
index 0000000..21b1e4c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonSalesFillingCapacity_O.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: ActionBarGroupSalesViews/ButtonSalesFillingCapacity
+Response OnClick () id:Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonSalesFillingCapacity_OnClick
+{
+  #keys: '[414702.1.55424758]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      ApplicationScope.ViewManager().ResetUserViewById( "濉骇", true );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapac.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapac.def
deleted file mode 100644
index 73a0e05..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapac.def
+++ /dev/null
@@ -1,18 +0,0 @@
-Quintiq file version 2.0
-#parent: ContextMenuSalesFillingCapacity/MenuSalesFillingCapacity
-Response OnClick () id:Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapacity_OnClick
-{
-  #keys: '[414382.0.437390498]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebMenu_OnClick'
-  QuillAction
-  {
-    Body:
-    [*
-      // Open view
-      //ApplicationMacroPlanner.OpenView( 'FillingCapacityOrder', ButtonSalesFillingCapacity );
-      ApplicationScope.ViewManager().ResetUserViewById( "FillingCapacityOrder",true);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingS\043360.def" "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingS\043360.def"
deleted file mode 100644
index 067c423..0000000
--- "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingS\043360.def"
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#parent: ContextMenuSalesFillingCapacity/MenuSalesFillingSchemeHistorical
-Response OnClick () id:Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchemeHistorical_OnClick
-{
-  #keys: '[414382.0.455751650]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebMenu_OnClick'
-  QuillAction
-  {
-    Body:
-    [*
-      // Open view
-      ApplicationScope.ViewManager().ResetUserViewById( "FillingCapacityOrderHistorical",true);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchem.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchem.def
deleted file mode 100644
index 22b6bc7..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchem.def
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#parent: ContextMenuSalesFillingCapacity/MenuSalesFillingSchemeDetail
-Response OnClick () id:Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchemeDetail_OnClick
-{
-  #keys: '[414382.0.439022595]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebMenu_OnClick'
-  QuillAction
-  {
-    Body:
-    [*
-      // Open view
-      ApplicationScope.ViewManager().ResetUserViewById( "FillingCapacitySchemeList",true);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def
index f885a86..2e2c2fc 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def
@@ -13,7 +13,7 @@
       [
         DataBinding: 'DataHolderDialogData.Data.PanelMaterialCode'
         Label: '闈㈡澘鐗╂枡缂栫爜'
-        Taborder: 0
+        Taborder: 2
       ]
     }
     Component efModuleMaterialCode
@@ -24,7 +24,7 @@
       [
         DataBinding: 'DataHolderDialogData.Data.ModuleMaterialCode'
         Label: '妯℃澘浜ф垚鍝両D'
-        Taborder: 1
+        Taborder: 0
       ]
     }
     Component efDivision
@@ -35,7 +35,7 @@
       [
         DataBinding: 'DataHolderDialogData.Data.Division'
         Label: '浜嬩笟閮�'
-        Taborder: 2
+        Taborder: 3
       ]
     }
     Component efStockingPointID
@@ -46,7 +46,7 @@
       [
         DataBinding: 'DataHolderDialogData.Data.StockingPointID'
         Label: '妯$粍浜ф垚鍝佸簱瀛樼偣ID'
-        Taborder: 3
+        Taborder: 1
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def
index 336e9a8..9d16e0c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def
@@ -19,11 +19,13 @@
                                                                    StockingPointID    := efStockingPointID.Text()
                                                                   );
       } else {
-        DataHolderDialogData.Data().PanelMaterialCode( efPanelMaterialCode.Text() );
-        DataHolderDialogData.Data().ModuleMaterialCode( efModuleMaterialCode.Text() );
-        DataHolderDialogData.Data().Division( efDivision.Text() );
-        DataHolderDialogData.Data().StockingPointID( efStockingPointID.Text() );
-        DataHolderDialogData.Data().Commit();
+        data.Delete();
+        GlobalOTDTable.CapacityAllocationResultsRuleConfiguration( relnew,
+                                                                   PanelMaterialCode  := efPanelMaterialCode.Text(),
+                                                                   ModuleMaterialCode := efModuleMaterialCode.Text(),
+                                                                   Division           := efDivision.Text(),
+                                                                   StockingPointID    := efStockingPointID.Text()
+                                                                  );
       }
       
       
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral\043549.def" "b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral\043549.def"
index 158887f..687eea6 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral\043549.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral\043549.def"
@@ -39,18 +39,6 @@
         Taborder: 3
       ]
     }
-    Component dropDownStringListGeneral
-    {
-      #keys: '[414384.0.692930324]'
-      BaseType: 'WebDropDownStringList'
-      Properties:
-      [
-        AllowEmpty: true
-        DataBinding: 'DataHolderDialogData.Data.ScenarioName'
-        Label: 'Scenario Name'
-        Taborder: 4
-      ]
-    }
     Component CheckboxIsCreateNewVersion
     {
       #keys: '[412960.0.157150313]'
@@ -62,5 +50,34 @@
         Taborder: 7
       ]
     }
+    Component DropDownListGeneral
+    {
+      #keys: '[412960.0.324971441]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'BusinessType'
+      Children:
+      [
+        Component DataExtractorGeneral
+        {
+          #keys: '[412960.0.324971443]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'GlobalOTDTable'
+            Description: '浼犲叆Business Type绫昏繘Dosync'
+            Source: 'GlobalOTDTable'
+            Taborder: 0
+            Transformation: 'BusinessType'
+          ]
+        }
+      ]
+      Properties:
+      [
+        AllowEmpty: true
+        DisplayField: 'ScenarioName'
+        Label: 'Scenario Name'
+        Taborder: 4
+      ]
+    }
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_CopyScenario.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_CopyScenario.def
index c0a6fa5..40534a1 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_CopyScenario.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_CopyScenario.def
@@ -20,7 +20,7 @@
     // do not distribute
     DataHolderDialogData.Data().EnableSync( false );
     checkboxEnableSync.Visible( false );
-    dropDownStringListGeneral.Visible( false );
+    DropDownListGeneral.Visible( false );
     checkboxIsKeyProduct.Visible( false );
     checkboxCreatePurchaseSupplyProduct.Visible( false );
     
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def
index 66ea53b..d2fe1c9 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def
@@ -6,7 +6,7 @@
   [*
     // Disabled button to prevent the possibility of multiple firing
     
-    macroPlanOld := MacroPlan;
+    //macroPlanOld := MacroPlan;
     
     btnOK.Enabled( false, '' )
     
@@ -110,7 +110,7 @@
     }
     
     macroPlanNew := MacroPlan;
-    ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew );
+    //ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew );
     
     // sync data
     if( data.EnableSync() ) {
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_TIANMA_JITUAN_PanelGeneral_549_checkboxEnableSync_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_TIANMA_JITUAN_PanelGeneral_549_checkboxEnableSync_OnChanged.def
index 82006b6..1221c3a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_TIANMA_JITUAN_PanelGeneral_549_checkboxEnableSync_OnChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_TIANMA_JITUAN_PanelGeneral_549_checkboxEnableSync_OnChanged.def
@@ -10,7 +10,7 @@
   {
     Body:
     [*
-      dropDownStringListGeneral.Visible(checkboxEnableSync.Checked());
+      DropDownListGeneral.Visible(checkboxEnableSync.Checked());
       checkboxIsKeyProduct.Visible(checkboxEnableSync.Checked());
       checkboxCreatePurchaseSupplyProduct.Visible(checkboxEnableSync.Checked());
     *]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def
index 34b2cb2..3314383 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def
@@ -24,6 +24,7 @@
       data := guard( DataHolderFillingCapacityOrder.Data().WrappedInstance(), null( FillingCapacityOrder ) );;
       if ( isnull( data ) ) {
         MacroPlan.FillingCapacityOrder( relnew,
+                                        VerNo              := guard( DataHolderActiveScenario.Data().Name(), "" ),
                                         ID                 := OS::GenerateGUIDAsString(),
                                         ProductID          := guard( ddlProduct_MP.Data().ID(), "null" ),
                                         BusinessType       := guard( ddlBusinessType.Data().BusinessTypeName(), "null" ),
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def
index 3c4dba9..71af1e8 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def
@@ -12,6 +12,7 @@
       Properties:
       [
         DataBinding: 'DataHolderFilling.Data.VerNo'
+        Enabled: false
         Label: '鐗堟湰鍙�'
         Taborder: 0
       ]
@@ -24,7 +25,7 @@
       [
         DataBinding: 'DataHolderFilling.Data.BusinessType'
         Enabled: false
-        Label: 'BusinessType'
+        Label: '浜嬩笟閮�'
         ReadOnly: true
         Taborder: 1
       ]
@@ -37,7 +38,7 @@
       [
         DataBinding: 'DataHolderFilling.Data.Customer'
         Enabled: false
-        Label: 'Customer'
+        Label: '瀹㈡埛鍚嶇О'
         ReadOnly: true
         Taborder: 2
       ]
@@ -49,7 +50,7 @@
       Properties:
       [
         DataBinding: 'DataHolderFilling.Data.SalesAmount'
-        Label: 'SalesAmount'
+        Label: '濉骇鏁伴噺'
         Taborder: 3
       ]
     }
@@ -60,7 +61,7 @@
       Properties:
       [
         DataBinding: 'DataHolderFilling.Data.DemandDate'
-        Label: 'Demand Date'
+        Label: '闇�姹傛椂闂�'
         ReadOnly: true
         Taborder: 4
       ]
@@ -72,10 +73,21 @@
       Properties:
       [
         DataBinding: 'DataHolderFilling.Data.ForecastDemandDate'
-        Label: 'Forecast Demand Date'
+        Label: '闇�姹傞娴嬫椂闂�'
         Taborder: 5
       ]
     }
+    Component ddslOrderType id:ddslOrderType_944
+    {
+      #keys: '[414702.1.71083523]'
+      BaseType: 'WebDropDownStringList'
+      Properties:
+      [
+        Label: '璁㈠崟绫诲瀷'
+        Strings: '鍙嶇;鎺堟潈'
+        Taborder: 6
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Method_ClickBtnOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Method_ClickBtnOk.def
index 6519f81..f696a84 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Method_ClickBtnOk.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Method_ClickBtnOk.def
@@ -7,15 +7,15 @@
   [*
     // Disabled button to prevent the possibility of multiple firing
     
-    btnOk.Enabled(false,'');
+    //btnOk.Enabled(false,'');
     
     // OnOk
     this.ApplyChanges();
-    DataHolderFilling.Data().Commit();
+    //DataHolderFilling.Data().Commit();
     
-    fillingData := DataHolderFilling.Data();
+    //fillingData := DataHolderFilling.Data();
     
-    CustomerAndForecastOrder::CreateFillingCapacityOrder( MacroPlan, fillingData.WrappedInstance());
+    //CustomerAndForecastOrder::CreateFillingCapacityOrder( MacroPlan, fillingData.WrappedInstance());
     
     //if( not isnull( DataHolderForm.Data() ) )
     //{
@@ -23,6 +23,15 @@
     //  DataHolderForm.Data().ListAssumptions().SelectByKey( DataHolderDialogData.Data().WrappedInstance().Key() );
     //}
     
+    FillingCapacityOrder::CreateFillingCapacityOrder( MacroPlan, 
+                                                      DataHolderFilling.Data().OrderID(),
+                                                      [Real]edtSalesAmount.Text(),
+                                                      dsDemandDate.Date(),
+                                                      dsForecastDemandDate.Date(),
+                                                      ddslOrderType.Text(),
+                                                      DataHolderFilling.Data().VerNo()
+                                                     );
+    
     this.Close();
   *]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Response_pnlActions_btnOk_OnClick.def
index 4a485e4..f8f3a5d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Response_pnlActions_btnOk_OnClick.def
@@ -6,10 +6,14 @@
   DefinitionID: 'Responsedef_WebButton_OnClick'
   Precondition:
   [*
-    verNo := efVerNo.Text();
-    salesAmount := edtSalesAmount.Text();
-    feedback := Translations::FilllingCapacity_ValidateInput();
-    return not salesAmount = '' and not verNo = '';
+    //verNo := efVerNo.Text();
+    //salesAmount := edtSalesAmount.Text();
+    //feedback := Translations::FilllingCapacity_ValidateInput();
+    //return not salesAmount = '' and not verNo = '';
+    
+    flag := guard( [Real]edtSalesAmount.Text(), 0 ) > 0;
+    
+    return flag;
   *]
   QuillAction
   {
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def
index 69a46cd..b9d8b6e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def
@@ -13,8 +13,7 @@
   {
     Body:
     [*
-      tableBinaryData := PRData::ExportTheFileStream( MacroPlan ).AsBinaryData();
-      Application.Download( "PRData.xlsx", tableBinaryData );
+      Application.Download( "PRData.xlsx", PRData::Export( MacroPlan ) );
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def
index add7c86..8e85a2c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def
@@ -28,7 +28,7 @@
       ]
       Properties:
       [
-        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMaterialCode","title":"PanelMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMaterialCode","title":"ModuleMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Division","title":"Division","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Division"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}}]'
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMaterialCode","title":"ModuleMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ModuleMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMaterialCode","title":"PanelMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"PanelMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Division","title":"Division","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Division"}}]'
         ContextMenu: 'listContextMenuCapacityAllocationResultsRuleConfiguration'
         Taborder: 2
       ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listContextMenuCapacityAllocationResultsRuleConfiguration.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listContextMenuCapacityAllocationResultsRuleConfiguration.def
index 597ad1b..2873ee8 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listContextMenuCapacityAllocationResultsRuleConfiguration.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listContextMenuCapacityAllocationResultsRuleConfiguration.def
@@ -51,6 +51,38 @@
         Title: '鍏ㄩ��'
       ]
     }
+    Component Menu666
+    {
+      #keys: '[414702.1.55207187]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Separator: true
+        Taborder: 7
+      ]
+    }
+    Component MenuAutoCreate
+    {
+      #keys: '[414702.1.55207442]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'COMPONENT'
+        Taborder: 8
+        Title: '鑷姩鍒涘缓瑙勫垯'
+      ]
+    }
+    Component MenuGenerateByPegging
+    {
+      #keys: '[414702.1.60885527]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'PODIUM2'
+        Taborder: 9
+        Title: '閫氳繃Pegging鐢熸垚'
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuGenerateByPeggin.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuGenerateByPeggin.def
new file mode 100644
index 0000000..3bbd52f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuGenerateByPeggin.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: ListCapacityAllocationResultsRuleConfiguration
+Response OnClick (
+  structured[CapacityAllocationResultsRuleConfiguration] selection
+) id:Response_ListCapacityAllocationResultsRuleConfiguration_MenuGenerateByPegging_OnClick
+{
+  #keys: '[414702.1.58432888]'
+  CanBindMultiple: false
+  DefinitionID => /ListCapacityAllocationResultsRuleConfiguration/Responsedef_ListCapacityAllocationResultsRuleConfiguration_WebMenu_OnClick
+  Initiator: 'MenuGenerateByPegging'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      CapacityAllocationResults::Test1( MacroPlan, GlobalOTDTable, selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_listContextMenuCapacityAllocationResultsRuleConfiguration_MenuAutoC.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_listContextMenuCapacityAllocationResultsRuleConfiguration_MenuAutoC.def
new file mode 100644
index 0000000..c4e09ed
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_listContextMenuCapacityAllocationResultsRuleConfiguration_MenuAutoC.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: listContextMenuCapacityAllocationResultsRuleConfiguration/MenuAutoCreate
+Response OnClick () id:Response_listContextMenuCapacityAllocationResultsRuleConfiguration_MenuAutoCreate_OnClick
+{
+  #keys: '[414702.1.55268133]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebMenu_OnClick'
+  GroupServerCalls: true
+  Precondition:
+  [*
+    return not isnull( MacroPlan ) and not isnull( GlobalOTDTable );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      //CapacityAllocationResultsRuleConfiguration::AutomaticallyGenerateRule( MacroPlan, GlobalOTDTable );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def
index 4af954a..a0f1d91 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def
@@ -38,6 +38,6 @@
   ]
   Properties:
   [
-    Taborder: 2
+    Taborder: 3
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def
index 6ff9db2..e09f8c8 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def
@@ -7,7 +7,7 @@
   DefinitionID: 'Responsedef_WebButton_OnClick'
   Precondition:
   [*
-    return not isnull( MPSync );
+    return not isnull( GlobalOTDTable );
   *]
   QuillAction
   {
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonGenerateTestData_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonGenerateTestData_OnClick.def
new file mode 100644
index 0000000..e7dcebd
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonGenerateTestData_OnClick.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: ButtonGenerateTestData
+Response OnClick () id:Response_FormCapacityAndSaleBudge_ButtonGenerateTestData_OnClick
+{
+  #keys: '[414384.0.971540692]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      GlobalOTDTable.InitTestDataByYear( MacroPlan, DataHolderCapacityAndSaleBudgeFilterYear.Data() );
+      Global_MappingAnnualBudgetData::SetOrgCodeFromForecast( GlobalOTDTable );
+      GlobalOTDTable.RefreshCapacityAndSaleBudgeFilter( true );
+      CapacityAndSaleBudgeFilterItem::Initial( GlobalOTDTable );
+      CapacityAndSaleBudgeFilterYear::Initial( GlobalOTDTable );
+      CapacityAndSaleBudgeFilterMonth::Initial( GlobalOTDTable );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def
deleted file mode 100644
index e0e1268..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def
+++ /dev/null
@@ -1,20 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Response OnCreated () id:Response_FormCapacityAndSaleBudge_OnCreated
-{
-  #keys: '[414384.0.813000551]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  GroupServerCalls: true
-  QuillAction
-  {
-    Body:
-    [*
-      MPSync::TestData( MPSync, MacroPlan );
-      GlobalOTDTable.InitTestData();
-      GlobalOTDTable.InitTestData( MacroPlan );
-      Global_MappingAnnualBudgetData::SetOrgCodeFromForecast( GlobalOTDTable );
-      GlobalOTDTable.RefreshCapacityAndSaleBudgeFilter( true );
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def
index c2687d8..995281a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def
@@ -16,7 +16,7 @@
       [
         Image: 'EXPORT1'
         Label: '瀵煎嚭'
-        Taborder: 0
+        Taborder: 1
       ]
     }
     Component ButtonExportTest
@@ -27,10 +27,21 @@
       [
         Image: 'EXPORT1'
         Label: '瀵煎嚭娴嬭瘯'
-        Taborder: 1
+        Taborder: 2
         Visible: false
       ]
     }
+    Component ButtonGenerateTestData
+    {
+      #keys: '[414384.0.971540693]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'IMPORT1'
+        Label: '鏍规嵁绛涢�夋湀浠界敓鎴愭祴璇曟暟鎹�'
+        Taborder: 0
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def
deleted file mode 100644
index 4cba0cb..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def
+++ /dev/null
@@ -1,16 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Response OnCreated () id:Response_FormCapacityAndSaleBudgeChart_OnCreated
-{
-  #keys: '[414384.0.853873350]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  QuillAction
-  {
-    Body:
-    [*
-      //CapacityAndSaleBudgeChartElement::TestData( ScenarioManager );
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Response_OnCreated.def
deleted file mode 100644
index a9ccb24..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Response_OnCreated.def
+++ /dev/null
@@ -1,16 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Response OnCreated () id:Response_FormCapacityAndSaleBudgeFilterItem_OnCreated
-{
-  #keys: '[414384.0.813090410]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  GroupServerCalls: true
-  QuillAction
-  {
-    Body:
-    [*
-      CapacityAndSaleBudgeFilterItem::Initial( GlobalOTDTable );
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Response_OnCreated.def
deleted file mode 100644
index d922a4a..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Response_OnCreated.def
+++ /dev/null
@@ -1,16 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Response OnCreated () id:Response_FormCapacityAndSaleBudgeFilterMonth_OnCreated
-{
-  #keys: '[414384.0.813021080]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  GroupServerCalls: true
-  QuillAction
-  {
-    Body:
-    [*
-      CapacityAndSaleBudgeFilterMonth::Initial( GlobalOTDTable );
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Response_OnCreated.def
deleted file mode 100644
index 19ea091..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Response_OnCreated.def
+++ /dev/null
@@ -1,16 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Response OnCreated () id:Response_FormCapacityAndSaleBudgeFilterYear_OnCreated
-{
-  #keys: '[414384.0.814422656]'
-  CanBindMultiple: false
-  DefinitionID: 'Responsedef_WebComponent_OnCreated'
-  GroupServerCalls: true
-  QuillAction
-  {
-    Body:
-    [*
-      CapacityAndSaleBudgeFilterYear::Initial( GlobalOTDTable );
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def
index 7db97cc..ded91eb 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def
@@ -50,6 +50,18 @@
         Title: 'Save Scheme'
       ]
     }
+    Component MenuSelectAll
+    {
+      #keys: '[414702.1.72339677]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'DOCUMENT_SELECTION'
+        Shortcut: 'Ctrl+A'
+        Taborder: 7
+        Title: '鍏ㄩ��'
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_ListFillingCapacityOrder_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_ListFillingCapacityOrder_MenuDelete_OnClick.def
index 243c7c1..6bf5abd 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_ListFillingCapacityOrder_MenuDelete_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_ListFillingCapacityOrder_MenuDelete_OnClick.def
@@ -5,7 +5,6 @@
 ) id:Response_ListFillingCapacityOrder_MenuDelete_OnClick
 {
   #keys: '[414382.0.402561135]'
-  CanBindMultiple: false
   DefinitionID => /ListFillingCapacityOrder/Responsedef_ListFillingCapacityOrder_WebMenu_OnClick
   GroupServerCalls: true
   Initiator: 'MenuDelete'
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_ListFillingCapacityOrder_MenuSelectAll_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_ListFillingCapacityOrder_MenuSelectAll_OnClick.def
new file mode 100644
index 0000000..3db4945
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_ListFillingCapacityOrder_MenuSelectAll_OnClick.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: ListFillingCapacityOrder
+Response OnClick () id:Response_ListFillingCapacityOrder_MenuSelectAll_OnClick
+{
+  #keys: '[414702.1.72149428]'
+  CanBindMultiple: false
+  DefinitionID => /ListFillingCapacityOrder/Responsedef_ListFillingCapacityOrder_WebMenu_OnClick
+  Initiator: 'MenuSelectAll'
+  QuillAction
+  {
+    Body:
+    [*
+      this.SelectAll();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_listContextMenuCustomerAndFillingCapacityOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_listContextMenuCustomerAndFillingCapacityOrder.def
index cdcd03d..486b097 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_listContextMenuCustomerAndFillingCapacityOrder.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_listContextMenuCustomerAndFillingCapacityOrder.def
@@ -16,17 +16,6 @@
         Title: '濉骇'
       ]
     }
-    Component MenuRefresh
-    {
-      #keys: '[414382.0.415603149]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Image: 'EDITOR_HAS_DECLARATIVE_DEFINITION'
-        Taborder: 4
-        Title: '鍒涘缓娴嬭瘯鏁版嵁'
-      ]
-    }
     Component MenuDelete
     {
       #keys: '[414702.0.472081906]'
@@ -34,7 +23,7 @@
       Properties:
       [
         Image: 'DELETE'
-        Taborder: 5
+        Taborder: 4
         Title: '鍒犻櫎'
       ]
     }
@@ -46,7 +35,7 @@
       [
         Image: 'DOCUMENT_SELECTION'
         Shortcut: 'Ctrl+A'
-        Taborder: 6
+        Taborder: 5
         Title: '鍏ㄩ��'
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuRefresh_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuRefresh_OnClick.def
deleted file mode 100644
index aba413a..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuRefresh_OnClick.def
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#parent: ListCustomerAndFillingCapacityOrder
-Response OnClick () id:Response_ListCustomerAndFillingCapacityOrder_MenuRefresh_OnClick
-{
-  #keys: '[414382.0.415724061]'
-  CanBindMultiple: false
-  DefinitionID => /ListCustomerAndFillingCapacityOrder/Responsedef_ListCustomerAndFillingCapacityOrder_WebMenu_OnClick
-  Initiator: 'MenuRefresh'
-  QuillAction
-  {
-    Body:
-    [*
-      CustomerAndForecastOrder::RefreshData(  MacroPlan,GlobalOTDTable);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_PanelButton_ButtonTransform_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_PanelButton_ButtonTransform_OnClick.def
index 30c3208..e982e5c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_PanelButton_ButtonTransform_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_PanelButton_ButtonTransform_OnClick.def
@@ -13,7 +13,15 @@
   {
     Body:
     [*
-      CustomerAndForecastOrder::CreateData( MacroPlan );
+      CustomerAndForecastOrder::CreateData( MacroPlan, DataHolderActiveScenario.Data() );
+      
+      message := "鎬昏鍗曚釜鏁帮細"                                                               + 
+                [String]counter( MacroPlan, SalesDemand.astype( CustomerOrder ), cs, true )  + 
+                String::NewLine()                                                            +
+                "    鎴愬姛杞崲涓暟锛�"                                                         +
+                [String]counter( MacroPlan, SalesDemand.astype( CustomerOrder ), cs, true )
+      
+      WebMessageBox::Success( message, true );
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def
index c3f47fb..76eb6e7 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def
@@ -28,7 +28,7 @@
       ]
       Properties:
       [
-        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductionWorkOrderNumber","title":"ProductionWorkOrderNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductionWorkOrderNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductModel","title":"Product ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductModel"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaterialDescription","title":"MaterialDescription","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaterialDescription"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlannedQuantity","title":"PlannedQuantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlannedQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WorkOrderType","title":"WorkOrderType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WorkOrderType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WorkOrderStatus","title":"WorkOrderStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WorkOrderStatus"}}]'
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaterialDescription","title":"MaterialDescription","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaterialDescription"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrganizationInfomation","title":"OrganizationInfomation","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrganizationInfomation"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlannedQuantity","title":"PlannedQuantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlannedQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductionWorkOrderNumber","title":"ProductionWorkOrderNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductionWorkOrderNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductModel","title":"ProductModel","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductModel"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WorkOrderStatus","title":"ReleaseStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WorkOrderStatus"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WorkOrderType","title":"WorkOrderType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WorkOrderType"}}]'
         ContextMenu: 'MenuIssueEdit'
         Taborder: 2
       ]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonGeneratePlannedData_OnClick\043124.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonGeneratePlannedData_OnClick\043124.def"
index af53e7d..158adbb 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonGeneratePlannedData_OnClick\043124.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonGeneratePlannedData_OnClick\043124.def"
@@ -7,13 +7,13 @@
   DefinitionID: 'Responsedef_WebButton_OnClick'
   Precondition:
   [*
-    return not isnull( MacroPlan );
+    return not isnull( MacroPlan ) and not isnull( GlobalOTDTable );
   *]
   QuillAction
   {
     Body:
     [*
-      MasterPlanReleaseWorkOrder::GenerateAndDistributeWorkOrders( MacroPlan );
+      MasterPlanReleaseWorkOrder::GenerateAndDistributeWorkOrders( MacroPlan, GlobalOTDTable );
       
       WebMessageBox::Success( "鐢熸垚鎴愬姛锛�", true );
     *]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def
index 24025d0..1d96926 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def
@@ -22,7 +22,6 @@
   ]
   Properties:
   [
-    Description: '涓嬪彂宸ュ崟'
     Image: 'TREE'
     Title: '涓嬪彂宸ュ崟'
   ]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Component_ListManufactureLT\043943.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Component_ListManufactureLT\043943.def"
index c2d85db..d71a6ee 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Component_ListManufactureLT\043943.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Component_ListManufactureLT\043943.def"
@@ -11,8 +11,8 @@
       BaseType: 'WebDataExtractor'
       Properties:
       [
-        DataType: 'MacroPlan'
-        Source: 'MacroPlan'
+        DataType: 'GlobalOTDTable'
+        Source: 'GlobalOTDTable'
         Taborder: 0
         Transformation: 'ManufactureLTImputation'
       ]
@@ -37,7 +37,7 @@
   ]
   Properties:
   [
-    Taborder: 0
+    Taborder: 1
   ]
   ResponseDefinitions:
   [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Response_ButtonLoad_OnClick\043417.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Response_ButtonLoad_OnClick\043417.def"
new file mode 100644
index 0000000..fca0b35
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Response_ButtonLoad_OnClick\043417.def"
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ButtonLoad_657
+Response OnClick () id:Response_PanelPRDataButton_ButtonLoad_OnClick_417
+{
+  #keys: '[414384.0.967076760]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      ManufactureLTImputation::Transfer( MacroPlan, GlobalOTDTable );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Response_ListManufactureLT_943_MenuApply_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Response_ListManufactureLT_943_MenuApply_OnClick.def
new file mode 100644
index 0000000..facd5e2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Response_ListManufactureLT_943_MenuApply_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: ListManufactureLT_943
+Response OnClick (
+  structured[ManufactureLTImputation] selection
+) id:Response_ListManufactureLT_943_MenuApply_OnClick
+{
+  #keys: '[414384.0.967590502]'
+  CanBindMultiple: false
+  DefinitionID => /ListManufactureLT_943/Responsedef_ListManufactureLT_943_WebMenu_OnClick
+  GroupServerCalls: true
+  Initiator: 'MenuApply'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      ManufactureLTImputation::Apply( selection, MacroPlan );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/_ROOT_Component_FormManufactureLT.def b/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/_ROOT_Component_FormManufactureLT.def
index a35f176..a5790c1 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/_ROOT_Component_FormManufactureLT.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/_ROOT_Component_FormManufactureLT.def
@@ -8,6 +8,17 @@
   Children:
   [
     #child: ListManufactureLT_943
+    Component ButtonLoad id:ButtonLoad_657
+    {
+      #keys: '[414384.0.967076761]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'THICK_ARROW_DOWN_BLUE'
+        Label: '閲嶆柊鍔犺浇'
+        Taborder: 0
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonExportPRHistory_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonExportPRHistory_OnClick.def
index 9a9f95e..e83383e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonExportPRHistory_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonExportPRHistory_OnClick.def
@@ -13,8 +13,7 @@
   {
     Body:
     [*
-      tableBinaryData := PRHistoryData::ExportTheFileStream( GlobalOTDTable ).AsBinaryData();
-      Application.Download( "PRData.xlsx", tableBinaryData );
+      Application.Download( "PRHistoryData.xlsx", PRHistoryData::Export( GlobalOTDTable ) );
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/_ROOT_Component_FormPanelMaterialSpecializedDisplay.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/_ROOT_Component_FormPanelMaterialSpecializedDisplay.def
index 74e4ff6..70bf43d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/_ROOT_Component_FormPanelMaterialSpecializedDisplay.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/_ROOT_Component_FormPanelMaterialSpecializedDisplay.def
@@ -32,7 +32,6 @@
   ]
   Properties:
   [
-    Description: '涓撴樉'
     Image: 'LAPTOP2'
     Title: '涓撴樉'
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Response_TIANMA_JITUAN_ListProduct_844_MenuMarkingPanelMaterial_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Response_TIANMA_JITUAN_ListProduct_844_MenuMarkingPanelMaterial_OnClick.def
index 33228b3..af44d53 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Response_TIANMA_JITUAN_ListProduct_844_MenuMarkingPanelMaterial_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormProducts/Response_TIANMA_JITUAN_ListProduct_844_MenuMarkingPanelMaterial_OnClick.def
@@ -5,7 +5,6 @@
 ) id:Response_ListProduct_844_MenuMarkingPanelMaterial_OnClick
 {
   #keys: '[414502.0.406201138]'
-  CanBindMultiple: false
   DefinitionID => /ListProduct_844/Responsedef_ListProduct_844_WebMenu_OnClick
   Initiator: 'MenuMarkingPanelMaterial'
   QuillAction
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick\043545.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick\043545.def"
index 8e69dc4..2a7180e 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick\043545.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick\043545.def"
@@ -15,8 +15,7 @@
       // Create a new scenario
       dlg := construct( DialogCreateEditScenario );
       dlg.checkboxEnableSync().Visible( true );
-      dlg.dropDownStringListGeneral().Visible( true );
-      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
+      dlg.DropDownListGeneral().Visible( true );
       dlg.checkboxIsKeyProduct().Visible( true );
       dlg.checkboxCreatePurchaseSupplyProduct().Visible( true );
       dlg.NewScenario( ScenarioManager, selection, true );
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def
index 4c3b7f0..f62e89a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def
@@ -16,8 +16,7 @@
       // Create a new Scenario
       dlg := construct( DialogCreateEditScenario );
       dlg.checkboxEnableSync().Visible( true );
-      dlg.dropDownStringListGeneral().Visible( true );
-      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
+      dlg.DropDownListGeneral().Visible( true );
       dlg.checkboxIsKeyProduct().Visible( true );
       dlg.checkboxCreatePurchaseSupplyProduct().Visible( true );
       parent := selection.Element( 0 ).Parent();
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick\043549.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick\043549.def"
index 607ae7d..88499fe 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick\043549.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick\043549.def"
@@ -16,8 +16,7 @@
       dlg := construct( DialogCreateEditScenario );
       dlg.checkboxEnableSync().Checked( false );
       dlg.checkboxEnableSync().Visible( false );
-      dlg.dropDownStringListGeneral().Visible( false );
-      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
+      dlg.DropDownListGeneral().Visible( false );
       dlg.checkboxIsKeyProduct().Visible( false );
       dlg.checkboxCreatePurchaseSupplyProduct().Visible( false );
       dlg.NewScenario( ScenarioManager, selection );
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def
index 55945ed..cec0c83 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def
@@ -17,8 +17,7 @@
       dlg := construct( DialogCreateEditScenario );
       dlg.checkboxEnableSync().Checked( false );
       dlg.checkboxEnableSync().Visible( false );
-      dlg.dropDownStringListGeneral().Visible( false );
-      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
+      dlg.DropDownListGeneral().Visible( false );
       dlg.checkboxIsKeyProduct().Visible( false );
       dlg.checkboxCreatePurchaseSupplyProduct().Visible( false );
       parent := selection.Element( 0 ).Parent();
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuSelectScenario_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuSelectScenario_OnClick.def
deleted file mode 100644
index a70f622..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuSelectScenario_OnClick.def
+++ /dev/null
@@ -1,26 +0,0 @@
-Quintiq file version 2.0
-#parent: ListScenario
-Response OnClick (
-  ScenarioMP selection
-) id:Response_ListScenario_MenuSelectScenario_OnClick #extension
-{
-  Precondition:
-  [*
-    selection.CanSelect( feedback, Domain.MDSStorageDefinitionManager().DatasetStoreEnabled() );
-    
-    return feedback = ''
-  *]
-  QuillAction #extension
-  {
-    Body:
-    [*
-      // Select a scenario
-      macroPlanOld := MacroPlan;
-      
-      ApplicationMacroPlanner.SelectScenario( selection );
-      
-      macroPlanNew := MacroPlan;
-      ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew );
-    *]
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Test.vw b/_Main/UI/MacroPlannerWebApp/Views/Test.vw
index 808d3e8..c5e2f28 100644
--- a/_Main/UI/MacroPlannerWebApp/Views/Test.vw
+++ b/_Main/UI/MacroPlannerWebApp/Views/Test.vw
@@ -29,30 +29,12 @@
           FormCapacityAllocationResultsRuleConfiguration_DataSetLevelCapacityAllocationResultsRuleConfiguration
           {
             groupDepth: -1
-            column_PanelMaterialCode
-            {
-              columnId: 'PanelMaterialCode'
-              dataPath: 'PanelMaterialCode'
-              dataType: 'string'
-              index: 0
-              subtotals: ''
-              width: 150
-            }
             column_ModuleMaterialCode
             {
               columnId: 'ModuleMaterialCode'
               dataPath: 'ModuleMaterialCode'
               dataType: 'string'
-              index: 1
-              subtotals: ''
-              width: 150
-            }
-            column_Division
-            {
-              columnId: 'Division'
-              dataPath: 'Division'
-              dataType: 'string'
-              index: 2
+              index: 0
               subtotals: ''
               width: 150
             }
@@ -60,6 +42,24 @@
             {
               columnId: 'StockingPointID'
               dataPath: 'StockingPointID'
+              dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 117
+            }
+            column_PanelMaterialCode
+            {
+              columnId: 'PanelMaterialCode'
+              dataPath: 'PanelMaterialCode'
+              dataType: 'string'
+              index: 2
+              subtotals: ''
+              width: 129
+            }
+            column_Division
+            {
+              columnId: 'Division'
+              dataPath: 'Division'
               dataType: 'string'
               index: 3
               subtotals: ''
@@ -159,300 +159,19 @@
           }
         }
       }
-      form_FormCustomerAndForecastOrder
-      {
-        title: 'QTIANMA_JITUAN::FormCustomerAndForecastOrder'
-        shown: true
-        componentID: 'QTIANMA_JITUAN::FormCustomerAndForecastOrder'
-        layout
-        {
-          mode: 'open'
-          rowPosition: 16
-          rowSpan: 16
-          columnPosition: 1
-          columnSpan: 4
-        }
-        components
-        {
-          FormCustomerAndForecastOrder_PanelButton
-          {
-            sizeRatio: 1
-          }
-          FormCustomerAndForecastOrder_ListCustomerAndFillingCapacityOrder
-          {
-          }
-          FormCustomerAndForecastOrder_DataSetLevelCustomerAndFillingCapacityOrder
-          {
-            groupDepth: -1
-            column_VerNo
-            {
-              columnId: 'VerNo'
-              dataPath: 'VerNo'
-              dataType: 'string'
-              index: 0
-              subtotals: ''
-              width: 150
-            }
-            column_OrderID
-            {
-              columnId: 'OrderID'
-              dataPath: 'OrderID'
-              dataType: 'string'
-              index: 1
-              subtotals: ''
-              width: 150
-            }
-            column_ProductID
-            {
-              columnId: 'ProductID'
-              dataPath: 'ProductID'
-              dataType: 'string'
-              index: 2
-              subtotals: ''
-              width: 150
-            }
-            column_BusinessType
-            {
-              columnId: 'BusinessType'
-              dataPath: 'BusinessType'
-              dataType: 'string'
-              index: 3
-              subtotals: ''
-              width: 150
-            }
-            column_Customer
-            {
-              columnId: 'Customer'
-              dataPath: 'Customer'
-              dataType: 'string'
-              index: 4
-              subtotals: ''
-              width: 150
-            }
-            column_ServiceType
-            {
-              columnId: 'ServiceType'
-              dataPath: 'ServiceType'
-              dataType: 'string'
-              index: 5
-              subtotals: ''
-              width: 150
-            }
-            column_Quantity
-            {
-              columnId: 'Quantity'
-              dataPath: 'Quantity'
-              dataType: 'real'
-              index: 6
-              subtotals: ''
-              width: 150
-            }
-            column_UnitOfMeasureName
-            {
-              columnId: 'UnitOfMeasureName'
-              dataPath: 'UnitOfMeasureName'
-              dataType: 'string'
-              index: 7
-              subtotals: ''
-              width: 150
-            }
-            column_PanelBigSheetQuantity
-            {
-              columnId: 'PanelBigSheetQuantity'
-              dataPath: 'PanelBigSheetQuantity'
-              dataType: 'real'
-              index: 8
-              subtotals: ''
-              width: 150
-            }
-            column_SalesAmount
-            {
-              columnId: 'SalesAmount'
-              dataPath: 'SalesAmount'
-              dataType: 'number'
-              index: 9
-              subtotals: ''
-              width: 150
-            }
-            column_ForecastDemandDate
-            {
-              columnId: 'ForecastDemandDate'
-              dataPath: 'ForecastDemandDate'
-              dataType: 'date'
-              index: 10
-              subtotals: ''
-              width: 150
-            }
-            column_DemandDate
-            {
-              columnId: 'DemandDate'
-              dataPath: 'DemandDate'
-              dataType: 'date'
-              index: 11
-              subtotals: ''
-              width: 150
-            }
-          }
-        }
-      }
-      form_FormFillingCapacityOrder
-      {
-        title: 'QTIANMA_JITUAN::FormFillingCapacityOrder'
-        shown: true
-        componentID: 'QTIANMA_JITUAN::FormFillingCapacityOrder'
-        layout
-        {
-          mode: 'open'
-          rowPosition: 16
-          rowSpan: 16
-          columnPosition: 5
-          columnSpan: 8
-        }
-        components
-        {
-          FormFillingCapacityOrder_PanelFillingCapacityOrder
-          {
-            sizeRatio: 1
-          }
-          FormFillingCapacityOrder_ListFillingCapacityOrder
-          {
-          }
-          FormFillingCapacityOrder_DataSetLevelFillingCapacityOrder
-          {
-            groupDepth: -1
-            column_VerNo
-            {
-              columnId: 'VerNo'
-              dataPath: 'VerNo'
-              dataType: 'string'
-              index: 0
-              subtotals: ''
-              width: 150
-            }
-            column_ProductID
-            {
-              columnId: 'ProductID'
-              dataPath: 'ProductID'
-              dataType: 'string'
-              index: 1
-              subtotals: ''
-              width: 150
-            }
-            column_BusinessType
-            {
-              columnId: 'BusinessType'
-              dataPath: 'BusinessType'
-              dataType: 'string'
-              index: 2
-              subtotals: ''
-              width: 150
-            }
-            column_SalesSegmentName
-            {
-              columnId: 'SalesSegmentName'
-              dataPath: 'SalesSegmentName'
-              dataType: 'string'
-              index: 3
-              subtotals: ''
-              width: 150
-            }
-            column_StockingPointID
-            {
-              columnId: 'StockingPointID'
-              dataPath: 'StockingPointID'
-              dataType: 'string'
-              index: 4
-              subtotals: ''
-              width: 150
-            }
-            column_Customer
-            {
-              columnId: 'Customer'
-              dataPath: 'Customer'
-              dataType: 'string'
-              index: 5
-              subtotals: ''
-              width: 150
-            }
-            column_Quantity
-            {
-              columnId: 'Quantity'
-              dataPath: 'Quantity'
-              dataType: 'real'
-              index: 6
-              subtotals: ''
-              width: 150
-            }
-            column_UnitOfMeasureName
-            {
-              columnId: 'UnitOfMeasureName'
-              dataPath: 'UnitOfMeasureName'
-              dataType: 'string'
-              index: 7
-              subtotals: ''
-              width: 150
-            }
-            column_PanelBigSheetQuantity
-            {
-              columnId: 'PanelBigSheetQuantity'
-              dataPath: 'PanelBigSheetQuantity'
-              dataType: 'real'
-              index: 8
-              subtotals: ''
-              width: 150
-            }
-            column_SalesAmount
-            {
-              columnId: 'SalesAmount'
-              dataPath: 'SalesAmount'
-              dataType: 'number'
-              index: 9
-              subtotals: ''
-              width: 150
-            }
-            column_ForecastDemandDate
-            {
-              columnId: 'ForecastDemandDate'
-              dataPath: 'ForecastDemandDate'
-              dataType: 'date'
-              index: 10
-              subtotals: ''
-              width: 150
-            }
-            column_DemandDate
-            {
-              columnId: 'DemandDate'
-              dataPath: 'DemandDate'
-              dataType: 'date'
-              index: 11
-              subtotals: ''
-              width: 150
-            }
-            column_OrderType
-            {
-              columnId: 'OrderType'
-              dataPath: 'OrderType'
-              dataType: 'string'
-              index: 12
-              subtotals: ''
-              width: 150
-            }
-          }
-        }
-      }
     }
     userconfigurableinformation
     {
     }
+    image: 'BEAR'
     page: ''
     group: ''
     index: 0
-    image: 'BEAR'
     description: ''
   }
   formatversion: 2
   id: 'Test'
-  name: '浜ц兘鍒嗛厤_濉骇'
+  name: '浜ц兘鍒嗛厤'
   isglobal: false
   isroot: true
 }
diff --git "a/_Main/UI/MacroPlannerWebApp/Views/\345\241\253\344\272\247.vw" "b/_Main/UI/MacroPlannerWebApp/Views/\345\241\253\344\272\247.vw"
new file mode 100644
index 0000000..12b8317
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Views/\345\241\253\344\272\247.vw"
@@ -0,0 +1,607 @@
+Quintiq file version 2.0
+{
+  viewcontents
+  {
+    forms
+    {
+      form_FormCustomerAndForecastOrder
+      {
+        title: 'QTIANMA_JITUAN::FormCustomerAndForecastOrder'
+        shown: true
+        componentID: 'QTIANMA_JITUAN::FormCustomerAndForecastOrder'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 1
+          rowSpan: 16
+          columnPosition: 1
+          columnSpan: 4
+        }
+        components
+        {
+          FormCustomerAndForecastOrder_PanelButton
+          {
+            sizeRatio: 1
+          }
+          FormCustomerAndForecastOrder_ListCustomerAndFillingCapacityOrder
+          {
+          }
+          FormCustomerAndForecastOrder_DataSetLevelCustomerAndFillingCapacityOrder
+          {
+            groupDepth: -1
+            column_VerNo
+            {
+              columnId: 'VerNo'
+              dataPath: 'VerNo'
+              dataType: 'string'
+              index: 0
+              subtotals: ''
+              width: 150
+            }
+            column_OrderID
+            {
+              columnId: 'OrderID'
+              dataPath: 'OrderID'
+              dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 150
+            }
+            column_ProductID
+            {
+              columnId: 'ProductID'
+              dataPath: 'ProductID'
+              dataType: 'string'
+              index: 2
+              subtotals: ''
+              width: 150
+            }
+            column_BusinessType
+            {
+              columnId: 'BusinessType'
+              dataPath: 'BusinessType'
+              dataType: 'string'
+              index: 3
+              subtotals: ''
+              width: 150
+            }
+            column_Customer
+            {
+              columnId: 'Customer'
+              dataPath: 'Customer'
+              dataType: 'string'
+              index: 4
+              subtotals: ''
+              width: 150
+            }
+            column_ServiceType
+            {
+              columnId: 'ServiceType'
+              dataPath: 'ServiceType'
+              dataType: 'string'
+              index: 5
+              subtotals: ''
+              width: 150
+            }
+            column_Quantity
+            {
+              columnId: 'Quantity'
+              dataPath: 'Quantity'
+              dataType: 'real'
+              index: 6
+              subtotals: ''
+              width: 150
+            }
+            column_UnitOfMeasureName
+            {
+              columnId: 'UnitOfMeasureName'
+              dataPath: 'UnitOfMeasureName'
+              dataType: 'string'
+              index: 7
+              subtotals: ''
+              width: 150
+            }
+            column_PanelBigSheetQuantity
+            {
+              columnId: 'PanelBigSheetQuantity'
+              dataPath: 'PanelBigSheetQuantity'
+              dataType: 'real'
+              index: 8
+              subtotals: ''
+              width: 150
+            }
+            column_SalesAmount
+            {
+              columnId: 'SalesAmount'
+              dataPath: 'SalesAmount'
+              dataType: 'number'
+              index: 9
+              subtotals: ''
+              width: 150
+            }
+            column_ForecastDemandDate
+            {
+              columnId: 'ForecastDemandDate'
+              dataPath: 'ForecastDemandDate'
+              dataType: 'date'
+              index: 10
+              subtotals: ''
+              width: 150
+            }
+            column_DemandDate
+            {
+              columnId: 'DemandDate'
+              dataPath: 'DemandDate'
+              dataType: 'date'
+              index: 11
+              subtotals: ''
+              width: 150
+            }
+          }
+        }
+      }
+      form_FormFillingCapacityOrder
+      {
+        title: 'QTIANMA_JITUAN::FormFillingCapacityOrder'
+        shown: true
+        componentID: 'QTIANMA_JITUAN::FormFillingCapacityOrder'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 1
+          rowSpan: 16
+          columnPosition: 5
+          columnSpan: 8
+        }
+        components
+        {
+          FormFillingCapacityOrder_PanelFillingCapacityOrder
+          {
+            sizeRatio: 1
+          }
+          FormFillingCapacityOrder_ListFillingCapacityOrder
+          {
+          }
+          FormFillingCapacityOrder_DataSetLevelFillingCapacityOrder
+          {
+            groupDepth: -1
+            column_VerNo
+            {
+              columnId: 'VerNo'
+              dataPath: 'VerNo'
+              dataType: 'string'
+              index: 0
+              subtotals: ''
+              width: 150
+            }
+            column_ProductID
+            {
+              columnId: 'ProductID'
+              dataPath: 'ProductID'
+              dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 150
+            }
+            column_BusinessType
+            {
+              columnId: 'BusinessType'
+              dataPath: 'BusinessType'
+              dataType: 'string'
+              index: 2
+              subtotals: ''
+              width: 150
+            }
+            column_SalesSegmentName
+            {
+              columnId: 'SalesSegmentName'
+              dataPath: 'SalesSegmentName'
+              dataType: 'string'
+              index: 3
+              subtotals: ''
+              width: 150
+            }
+            column_StockingPointID
+            {
+              columnId: 'StockingPointID'
+              dataPath: 'StockingPointID'
+              dataType: 'string'
+              index: 4
+              subtotals: ''
+              width: 150
+            }
+            column_Customer
+            {
+              columnId: 'Customer'
+              dataPath: 'Customer'
+              dataType: 'string'
+              index: 5
+              subtotals: ''
+              width: 150
+            }
+            column_Quantity
+            {
+              columnId: 'Quantity'
+              dataPath: 'Quantity'
+              dataType: 'real'
+              index: 6
+              subtotals: ''
+              width: 150
+            }
+            column_UnitOfMeasureName
+            {
+              columnId: 'UnitOfMeasureName'
+              dataPath: 'UnitOfMeasureName'
+              dataType: 'string'
+              index: 7
+              subtotals: ''
+              width: 150
+            }
+            column_PanelBigSheetQuantity
+            {
+              columnId: 'PanelBigSheetQuantity'
+              dataPath: 'PanelBigSheetQuantity'
+              dataType: 'real'
+              index: 8
+              subtotals: ''
+              width: 150
+            }
+            column_SalesAmount
+            {
+              columnId: 'SalesAmount'
+              dataPath: 'SalesAmount'
+              dataType: 'number'
+              index: 9
+              subtotals: ''
+              width: 150
+            }
+            column_ForecastDemandDate
+            {
+              columnId: 'ForecastDemandDate'
+              dataPath: 'ForecastDemandDate'
+              dataType: 'date'
+              index: 10
+              subtotals: ''
+              width: 150
+            }
+            column_DemandDate
+            {
+              columnId: 'DemandDate'
+              dataPath: 'DemandDate'
+              dataType: 'date'
+              index: 11
+              subtotals: ''
+              width: 150
+            }
+            column_OrderType
+            {
+              columnId: 'OrderType'
+              dataPath: 'OrderType'
+              dataType: 'string'
+              index: 12
+              subtotals: ''
+              width: 150
+            }
+          }
+        }
+      }
+      form_FormCustomerOrders
+      {
+        title: 'QLibMacroPlannerWebUI::FormCustomerOrders'
+        shown: true
+        componentID: 'QLibMacroPlannerWebUI::FormCustomerOrders'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 17
+          rowSpan: 17
+          columnPosition: 1
+          columnSpan: 12
+        }
+        components
+        {
+          FormCustomerOrders_PanelSalesDemands
+          {
+            sizeRatio: 1
+          }
+          FormCustomerOrders_PanelAllSalesDemands
+          {
+            sizeRatio: 2
+          }
+          FormCustomerOrders_ListSalesDemands
+          {
+          }
+          FormCustomerOrders_DataSetLevelSalesDemands
+          {
+            groupDepth: -1
+            column_All_constraints
+            {
+              columnId: 'All constraints'
+              dataPath: 'All constraints'
+              dataType: 'string'
+              index: 0
+              subtotals: ''
+              width: 32
+            }
+            column_StockingPoint_MP_ID
+            {
+              columnId: 'StockingPoint_MP.ID'
+              dataPath: 'StockingPoint_MP.ID'
+              dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 150
+            }
+            column_SalesSegment_MP_Name
+            {
+              columnId: 'SalesSegment_MP.Name'
+              dataPath: 'SalesSegment_MP.Name'
+              dataType: 'string'
+              index: 2
+              subtotals: ''
+              width: 150
+            }
+            column_CustomerName
+            {
+              columnId: 'CustomerName'
+              dataPath: 'CustomerName'
+              dataType: 'string'
+              index: 3
+              subtotals: ''
+              width: 150
+            }
+            column_CustomerID
+            {
+              columnId: 'CustomerID'
+              dataPath: 'CustomerID'
+              dataType: 'string'
+              index: 4
+              subtotals: ''
+              width: 150
+            }
+            column_OrderID
+            {
+              columnId: 'OrderID'
+              dataPath: 'OrderID'
+              dataType: 'string'
+              index: 5
+              subtotals: ''
+              width: 150
+            }
+            column_OrderLineID
+            {
+              columnId: 'OrderLineID'
+              dataPath: 'OrderLineID'
+              dataType: 'string'
+              index: 6
+              subtotals: ''
+              width: 150
+            }
+            column_StartDate
+            {
+              columnId: 'StartDate'
+              dataPath: 'StartDate'
+              dataType: 'date'
+              index: 7
+              subtotals: ''
+              width: 150
+            }
+            column_Product_MP_ID
+            {
+              columnId: 'Product_MP.ID'
+              dataPath: 'Product_MP.ID'
+              dataType: 'string'
+              index: 8
+              subtotals: ''
+              width: 150
+            }
+            column_UnitOfMeasure_MP_Name
+            {
+              columnId: 'UnitOfMeasure_MP.Name'
+              dataPath: 'UnitOfMeasure_MP.Name'
+              dataType: 'string'
+              index: 9
+              subtotals: ''
+              width: 150
+            }
+            column_Quantity
+            {
+              columnId: 'Quantity'
+              dataPath: 'Quantity'
+              dataType: 'real'
+              index: 10
+              subtotals: ''
+              width: 150
+            }
+            column_FulfilledQuantity
+            {
+              columnId: 'FulfilledQuantity'
+              dataPath: 'FulfilledQuantity'
+              dataType: 'real'
+              index: 11
+              subtotals: ''
+              width: 150
+            }
+            column_Fulfillment
+            {
+              columnId: 'Fulfillment'
+              dataPath: 'Fulfillment'
+              dataType: 'string'
+              index: 12
+              subtotals: ''
+              width: 150
+            }
+            column_IsFirmed
+            {
+              columnId: 'IsFirmed'
+              dataPath: 'IsFirmed'
+              dataType: 'boolean'
+              index: 13
+              subtotals: ''
+              width: 150
+            }
+            column_IsEligibleForNetting
+            {
+              columnId: 'IsEligibleForNetting'
+              dataPath: 'IsEligibleForNetting'
+              dataType: 'boolean'
+              index: 14
+              subtotals: ''
+              width: 150
+            }
+            column_Price
+            {
+              columnId: 'Price'
+              dataPath: 'Price'
+              dataType: 'real'
+              index: 15
+              subtotals: ''
+              width: 150
+            }
+            column_PriceUoM
+            {
+              columnId: 'PriceUoM'
+              dataPath: 'PriceUoM'
+              dataType: 'string'
+              index: 16
+              subtotals: ''
+              width: 150
+            }
+            column_OrderTag
+            {
+              columnId: 'OrderTag'
+              dataPath: 'OrderTag'
+              dataType: 'string'
+              index: 17
+              subtotals: ''
+              width: 150
+            }
+          }
+          FormCustomerOrders_PanelSDIP
+          {
+            sizeRatio: 1
+          }
+          FormCustomerOrders_ListSDIP
+          {
+          }
+          FormCustomerOrders_DataSetLevelSDIP
+          {
+            groupDepth: -1
+            column_All_constraints
+            {
+              columnId: 'All constraints'
+              dataPath: 'All constraints'
+              dataType: 'string'
+              index: 0
+              subtotals: ''
+              width: 32
+            }
+            column_ImgIsRestricted
+            {
+              columnId: 'ImgIsRestricted'
+              dataPath: 'ImgIsRestricted'
+              dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 150
+            }
+            column_SalesSegmentName
+            {
+              columnId: 'SalesSegmentName'
+              dataPath: 'SalesSegmentName'
+              dataType: 'string'
+              index: 2
+              subtotals: ''
+              width: 150
+            }
+            column_ProductID
+            {
+              columnId: 'ProductID'
+              dataPath: 'ProductID'
+              dataType: 'string'
+              index: 3
+              subtotals: ''
+              width: 150
+            }
+            column_StockingPointID
+            {
+              columnId: 'StockingPointID'
+              dataPath: 'StockingPointID'
+              dataType: 'string'
+              index: 4
+              subtotals: ''
+              width: 150
+            }
+            column_StartDate
+            {
+              columnId: 'StartDate'
+              dataPath: 'StartDate'
+              dataType: 'date'
+              index: 5
+              subtotals: ''
+              width: 150
+            }
+            column_EndDate
+            {
+              columnId: 'EndDate'
+              dataPath: 'EndDate'
+              dataType: 'date'
+              index: 6
+              subtotals: ''
+              width: 150
+            }
+            column_MasterSalesDemand_UnitOfMeasureName
+            {
+              columnId: 'MasterSalesDemand.UnitOfMeasureName'
+              dataPath: 'MasterSalesDemand.UnitOfMeasureName'
+              dataType: 'string'
+              index: 7
+              subtotals: ''
+              width: 150
+            }
+            column_QuantityInSalesDemandUOM
+            {
+              columnId: 'QuantityInSalesDemandUOM'
+              dataPath: 'QuantityInSalesDemandUOM'
+              dataType: 'real'
+              index: 8
+              subtotals: ''
+              width: 150
+            }
+            column_FulfilledQuantityInSalesDemandUOM
+            {
+              columnId: 'FulfilledQuantityInSalesDemandUOM'
+              dataPath: 'FulfilledQuantityInSalesDemandUOM'
+              dataType: 'real'
+              index: 9
+              subtotals: ''
+              width: 150
+            }
+            column_Fulfillment
+            {
+              columnId: 'Fulfillment'
+              dataPath: 'Fulfillment'
+              dataType: 'string'
+              index: 10
+              subtotals: ''
+              width: 150
+            }
+          }
+        }
+      }
+    }
+    userconfigurableinformation
+    {
+    }
+    image: 'BOOK_BLUE_VIEW'
+    page: ''
+    group: ''
+    index: 0
+    description: ''
+  }
+  formatversion: 2
+  id: '濉骇'
+  name: '濉骇'
+  isglobal: false
+  isroot: true
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Views/\345\257\271\346\216\245ERP\350\277\233\350\241\214PR\351\207\212\346\224\276.vw" "b/_Main/UI/MacroPlannerWebApp/Views/\345\257\271\346\216\245ERP\350\277\233\350\241\214PR\351\207\212\346\224\276.vw"
index 0811978..bc4d12c 100644
--- "a/_Main/UI/MacroPlannerWebApp/Views/\345\257\271\346\216\245ERP\350\277\233\350\241\214PR\351\207\212\346\224\276.vw"
+++ "b/_Main/UI/MacroPlannerWebApp/Views/\345\257\271\346\216\245ERP\350\277\233\350\241\214PR\351\207\212\346\224\276.vw"
@@ -75,21 +75,12 @@
           FormIssueWorkOrder_DataSetLevelIssueWorkOrder
           {
             groupDepth: -1
-            column_ProductionWorkOrderNumber
+            column_EndDate
             {
-              columnId: 'ProductionWorkOrderNumber'
-              dataPath: 'ProductionWorkOrderNumber'
-              dataType: 'string'
+              columnId: 'EndDate'
+              dataPath: 'EndDate'
+              dataType: 'date'
               index: 0
-              subtotals: ''
-              width: 150
-            }
-            column_ProductModel
-            {
-              columnId: 'ProductModel'
-              dataPath: 'ProductModel'
-              dataType: 'string'
-              index: 1
               subtotals: ''
               width: 150
             }
@@ -98,25 +89,16 @@
               columnId: 'MaterialDescription'
               dataPath: 'MaterialDescription'
               dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 150
+            }
+            column_OrganizationInfomation
+            {
+              columnId: 'OrganizationInfomation'
+              dataPath: 'OrganizationInfomation'
+              dataType: 'string'
               index: 2
-              subtotals: ''
-              width: 150
-            }
-            column_StartDate
-            {
-              columnId: 'StartDate'
-              dataPath: 'StartDate'
-              dataType: 'date'
-              index: 3
-              subtotals: ''
-              width: 150
-            }
-            column_EndDate
-            {
-              columnId: 'EndDate'
-              dataPath: 'EndDate'
-              dataType: 'date'
-              index: 4
               subtotals: ''
               width: 150
             }
@@ -125,15 +107,33 @@
               columnId: 'PlannedQuantity'
               dataPath: 'PlannedQuantity'
               dataType: 'real'
+              index: 3
+              subtotals: ''
+              width: 150
+            }
+            column_ProductionWorkOrderNumber
+            {
+              columnId: 'ProductionWorkOrderNumber'
+              dataPath: 'ProductionWorkOrderNumber'
+              dataType: 'string'
+              index: 4
+              subtotals: ''
+              width: 150
+            }
+            column_ProductModel
+            {
+              columnId: 'ProductModel'
+              dataPath: 'ProductModel'
+              dataType: 'string'
               index: 5
               subtotals: ''
               width: 150
             }
-            column_WorkOrderType
+            column_StartDate
             {
-              columnId: 'WorkOrderType'
-              dataPath: 'WorkOrderType'
-              dataType: 'string'
+              columnId: 'StartDate'
+              dataPath: 'StartDate'
+              dataType: 'date'
               index: 6
               subtotals: ''
               width: 150
@@ -147,6 +147,15 @@
               subtotals: ''
               width: 150
             }
+            column_WorkOrderType
+            {
+              columnId: 'WorkOrderType'
+              dataPath: 'WorkOrderType'
+              dataType: 'string'
+              index: 8
+              subtotals: ''
+              width: 150
+            }
           }
         }
       }
diff --git "a/_Main/UI/MacroPlannerWebApp/Views/\351\235\242\346\235\277\346\213\211\346\226\231_\345\220\204\344\272\213\344\270\232\351\203\250\346\223\215\344\275\234.vw" "b/_Main/UI/MacroPlannerWebApp/Views/\351\235\242\346\235\277\346\213\211\346\226\231_\345\220\204\344\272\213\344\270\232\351\203\250\346\223\215\344\275\234.vw"
index 89c5aa2..ae0a867 100644
--- "a/_Main/UI/MacroPlannerWebApp/Views/\351\235\242\346\235\277\346\213\211\346\226\231_\345\220\204\344\272\213\344\270\232\351\203\250\346\223\215\344\275\234.vw"
+++ "b/_Main/UI/MacroPlannerWebApp/Views/\351\235\242\346\235\277\346\213\211\346\226\231_\345\220\204\344\272\213\344\270\232\351\203\250\346\223\215\344\275\234.vw"
@@ -15,7 +15,7 @@
           rowPosition: 1
           rowSpan: 16
           columnPosition: 1
-          columnSpan: 6
+          columnSpan: 12
         }
         components
         {
diff --git a/_var/_Main/ModelSettings/Common/Dev-48/_ROOT_Role_Dev-48.properties b/_var/_Main/ModelSettings/Common/Dev-48/_ROOT_Role_Dev-48.properties
new file mode 100644
index 0000000..73f36eb
--- /dev/null
+++ b/_var/_Main/ModelSettings/Common/Dev-48/_ROOT_Role_Dev-48.properties
@@ -0,0 +1,575 @@
+#The properties belonging to _meta and _self groups are reserved. Please do not change them. Comments on these properties will not be preserved.
+_meta.application=server
+_meta.kind=Quintiq Property File
+_meta.type=model
+_meta.version.config=1.3
+_self.configsettype=Role
+_self.name=Dev-48
+arg=template:serverargs
+arg.architectdependencies=
+arg.custom=""
+arg.versioncontrolmode=true
+domainmodel.ediremotedatasourcedefinition.remotestorage.destination=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.destination.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.destination.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.destination.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.importcim=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.connection=DBODBC1
+domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.parameters=/datasource=CIM_Carco /owner=dbo /user=quintiq
+domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.connection=dbodbc1
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.parameters=/datasource=orclpdb /owner=TIANMA /chardatatypeforstring /characterencoding=UTF-8 /appdatatypeforstring=wchar
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.password=1 E9FE769DABE91891284EBBA6CEA8F41B 479d6f99-cffb-41e6-94f1-d35bdf20703c
+domainmodel.ediremotedatasourcedefinition.remotestorage.oracle=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.connection=dbodbc1
+domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.parameters=/datasource=otd /owner=OTD /chardatatypeforstring /characterencoding=UTF-8 /appdatatypeforstring=wchar
+domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.password=1 A205E2668CFBD9365E030C36BB0A4297 730524bf-f9c9-426f-94a0-953687be1178
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.syncobject=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.syncobject.parameters=/datasource=MPERPIntegrationDataSource /owner=dbo /user=quintiq
+domainmodel.fileprovider.qdrive=template:domainmodel.fileprovider.qdrive
+domainmodel.fileprovider.qdrive.enabled=true
+domainmodel.fileprovider.qdrive.readonly=false
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint=template:domainmodel.integratorconfig.dsendpoint
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.connectiontimeout=0
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.dspassword=1 D27640F00F09F1085D52409202B71B4E 2a9f48ef-2467-4394-afcb-75e45a1c40d9
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.dsserviceurl=https://vdemopro1342dsy.extranet.3ds.com/3DSpace/resources/v1/model/
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.dsuser=Push
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.maxconnections=10
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.receivecontentcharset=ASCII
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.requesttimeout=60
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sendingcontentcharset=UTF-8
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sockettimeout=0
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.trustmanagername=Q3DSpace
+domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
+domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.connectiongroupname=SERVER
+domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.outboundrequesttimeout=60
+domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
+domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.connectiongroupname=SERVER
+domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.outboundrequesttimeout=60
+domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
+domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.connectiongroupname=SERVER
+domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.integratorid=Q3DSpace
+domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.outboundrequesttimeout=60
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver=template:domainmodel.integratorconfig.restendpoint
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam1=
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam2=
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationtype=None
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.connectiontimeout=0
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.contenttype=JSON
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.enablehttpmessagelogging=true
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.includerawcontent=false
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.maxconnections=10
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.passonvalidationerrors=false
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.portnumber=8080
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.proxyportnumber=0
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.receivecontentcharset=ASCII
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.requesttimeout=60
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sendingcontentcharset=utf-8
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sockettimeout=0
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial=template:domainmodel.integratorconfig.restendpoint
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam1=
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam2=
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationtype=None
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.connectiontimeout=0
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.contenttype=JSON
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.enablehttpmessagelogging=false
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.includerawcontent=false
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.maxconnections=10
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.passonvalidationerrors=false
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.portnumber=8080
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.proxyportnumber=0
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.receivecontentcharset=ASCII
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.requesttimeout=60
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sendingcontentcharset=utf-8
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sockettimeout=0
+domainmodel.mdsstoragedefinitionmanager=template:domainmodel.mdsstoragedefinitionmanager
+domainmodel.mdsstoragedefinitionmanager.audittrailenabled=false
+domainmodel.mdsstoragedefinitionmanager.audittraillocation=
+domainmodel.mdsstoragedefinitionmanager.databaseenabled=false
+domainmodel.mdsstoragedefinitionmanager.datasetstoredatasource=MacroPlanner
+domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=false
+domainmodel.mdsstoragedefinitionmanager.datasetstoreislocal=false
+domainmodel.mdsstoragedefinitionmanager.dbformat=Legacy
+domainmodel.mdsstoragedefinitionmanager.defaultencryptioncertificate=
+#domainmodel.mdsstoragedefinitionmanager.defaultencryptioncertificate=
+domainmodel.mdsstoragedefinitionmanager.driver=OCI
+domainmodel.mdsstoragedefinitionmanager.dssfilesystemenabled=false
+domainmodel.mdsstoragedefinitionmanager.maxcolumnname=0
+domainmodel.mdsstoragedefinitionmanager.maxtablename=0
+domainmodel.mdsstoragedefinitionmanager.name=dbodbc1
+domainmodel.mdsstoragedefinitionmanager.ociconnectionbasichost=10.110.14.50
+domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicport=1521
+domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicservice=totddb
+domainmodel.mdsstoragedefinitionmanager.ociconnectiontnsname=totddb
+domainmodel.mdsstoragedefinitionmanager.ociconnectiontype=Basic
+domainmodel.mdsstoragedefinitionmanager.parameters=/datasource=MacroPlannerInternalDB /user=otd
+domainmodel.mdsstoragedefinitionmanager.password=1 463752FBAC1C9172263ADBF875F4CBF3 d5a0fc9a-a372-4807-9f03-34bcf85e582d
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients=template:domainmodel.soapclientinterfacedefinition
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.datasetkind=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.datasetname=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.endpoint=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.groupname=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.hostname=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.idescription=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.password=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.sslkeystore=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.timeout=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.username=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces=template:domainmodel.soapclientinterfacedefinition
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.endpoint=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.groupname=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.idescription=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.password=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.sslkeystore=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.timeout=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.username=
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients=template:domainmodel.soapclientinterfacedefinition
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.endpoint=
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.groupname=
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.idescription=
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.password=
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.sslkeystore=
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.username=
+domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver=template:domainmodel.soapserverinterfacedefinition
+domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver.groupname=
+domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver.idescription=
+domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver.url=
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap=template:domainmodel.soapserverinterfacedefinition
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.encodingstrategy=UseSameAsRequest
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.exporttzoffset=false
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.forssl=false
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.groupname=
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.idescription=
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.securecommunication.protocols=TLSv1,TLSv1.1,TLSv1.2
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.timezone=GMT
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.useoslocaltimezone=true
+domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface=template:domainmodel.soapserverinterfacedefinition
+domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface.groupname=
+domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface.idescription=
+domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface.url=
+domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver=template:domainmodel.soapserverinterfacedefinition
+domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver.groupname=
+domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver.idescription=
+domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver.url=
+domainmodel.soapserverinterfacedefinition.interface.utf=template:domainmodel.soapserverinterfacedefinition
+domainmodel.soapserverinterfacedefinition.interface.utf.groupname=
+domainmodel.soapserverinterfacedefinition.interface.utf.idescription=
+user=template:user
+user.increasestartofplanning=false
+user.sizingparameter=false
diff --git a/_var/_Main/ModelSettings/Common/Dev-68/_ROOT_Role_Dev-68.properties b/_var/_Main/ModelSettings/Common/Dev-68/_ROOT_Role_Dev-68.properties
new file mode 100644
index 0000000..cc88cb1
--- /dev/null
+++ b/_var/_Main/ModelSettings/Common/Dev-68/_ROOT_Role_Dev-68.properties
@@ -0,0 +1,575 @@
+#The properties belonging to _meta and _self groups are reserved. Please do not change them. Comments on these properties will not be preserved.
+_meta.application=server
+_meta.kind=Quintiq Property File
+_meta.type=model
+_meta.version.config=1.3
+_self.configsettype=Role
+_self.name=Dev-68
+arg=template:serverargs
+arg.architectdependencies=
+arg.custom=""
+arg.versioncontrolmode=true
+domainmodel.ediremotedatasourcedefinition.remotestorage.destination=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.destination.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.destination.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.destination.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.importcim=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.connection=DBODBC1
+domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.parameters=/datasource=CIM_Carco /owner=dbo /user=quintiq
+domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.connection=dbodbc1
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.parameters=/datasource=orclpdb /owner=TIANMA /chardatatypeforstring /characterencoding=UTF-8 /appdatatypeforstring=wchar
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.password=1 E9FE769DABE91891284EBBA6CEA8F41B 479d6f99-cffb-41e6-94f1-d35bdf20703c
+domainmodel.ediremotedatasourcedefinition.remotestorage.oracle=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.connection=dbodbc1
+domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.parameters=/datasource=otd /owner=OTD /chardatatypeforstring /characterencoding=UTF-8 /appdatatypeforstring=wchar
+domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.password=1 A205E2668CFBD9365E030C36BB0A4297 730524bf-f9c9-426f-94a0-953687be1178
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel.connection=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel.password=
+domainmodel.ediremotedatasourcedefinition.remotestorage.syncobject=template:domainmodel.ediremotedatasourcedefinition
+domainmodel.ediremotedatasourcedefinition.remotestorage.syncobject.parameters=/datasource=MPERPIntegrationDataSource /owner=dbo /user=quintiq
+domainmodel.fileprovider.qdrive=template:domainmodel.fileprovider.qdrive
+domainmodel.fileprovider.qdrive.enabled=true
+domainmodel.fileprovider.qdrive.readonly=false
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint=template:domainmodel.integratorconfig.dsendpoint
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.connectiontimeout=0
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.dspassword=1 D27640F00F09F1085D52409202B71B4E 2a9f48ef-2467-4394-afcb-75e45a1c40d9
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.dsserviceurl=https://vdemopro1342dsy.extranet.3ds.com/3DSpace/resources/v1/model/
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.dsuser=Push
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.maxconnections=10
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.receivecontentcharset=ASCII
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.requesttimeout=60
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sendingcontentcharset=UTF-8
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sockettimeout=0
+domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.trustmanagername=Q3DSpace
+domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
+domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.connectiongroupname=SERVER
+domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.outboundrequesttimeout=60
+domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
+domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.connectiongroupname=SERVER
+domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.outboundrequesttimeout=60
+domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
+domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.connectiongroupname=SERVER
+domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.integratorid=Q3DSpace
+domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.outboundrequesttimeout=60
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver=template:domainmodel.integratorconfig.restendpoint
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam1=
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam2=
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationtype=None
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.connectiontimeout=0
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.contenttype=JSON
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.enablehttpmessagelogging=true
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.includerawcontent=false
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.maxconnections=10
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.passonvalidationerrors=false
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.portnumber=8080
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.proxyportnumber=0
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.receivecontentcharset=ASCII
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.requesttimeout=60
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sendingcontentcharset=utf-8
+domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sockettimeout=0
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial=template:domainmodel.integratorconfig.restendpoint
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam1=
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam2=
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationtype=None
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.connectiontimeout=0
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.contenttype=JSON
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.enablehttpmessagelogging=false
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.includerawcontent=false
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.maxconnections=10
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.passonvalidationerrors=false
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.portnumber=8080
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.proxyportnumber=0
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.receivecontentcharset=ASCII
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.requesttimeout=60
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sendingcontentcharset=utf-8
+domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sockettimeout=0
+domainmodel.mdsstoragedefinitionmanager=template:domainmodel.mdsstoragedefinitionmanager
+domainmodel.mdsstoragedefinitionmanager.audittrailenabled=false
+domainmodel.mdsstoragedefinitionmanager.audittraillocation=
+domainmodel.mdsstoragedefinitionmanager.databaseenabled=false
+domainmodel.mdsstoragedefinitionmanager.datasetstoredatasource=MacroPlanner
+domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=false
+domainmodel.mdsstoragedefinitionmanager.datasetstoreislocal=false
+domainmodel.mdsstoragedefinitionmanager.dbformat=Legacy
+domainmodel.mdsstoragedefinitionmanager.defaultencryptioncertificate=
+#domainmodel.mdsstoragedefinitionmanager.defaultencryptioncertificate=
+domainmodel.mdsstoragedefinitionmanager.driver=OCI
+domainmodel.mdsstoragedefinitionmanager.dssfilesystemenabled=false
+domainmodel.mdsstoragedefinitionmanager.maxcolumnname=0
+domainmodel.mdsstoragedefinitionmanager.maxtablename=0
+domainmodel.mdsstoragedefinitionmanager.name=dbodbc1
+domainmodel.mdsstoragedefinitionmanager.ociconnectionbasichost=10.110.14.50
+domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicport=1521
+domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicservice=totddb_jtmb
+domainmodel.mdsstoragedefinitionmanager.ociconnectiontnsname=totddb
+domainmodel.mdsstoragedefinitionmanager.ociconnectiontype=Basic
+domainmodel.mdsstoragedefinitionmanager.parameters=/datasource=MacroPlannerInternalDB /user=OTDJTMBUSER
+domainmodel.mdsstoragedefinitionmanager.password=1 463752FBAC1C9172263ADBF875F4CBF3 d5a0fc9a-a372-4807-9f03-34bcf85e582d
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients=template:domainmodel.soapclientinterfacedefinition
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.datasetkind=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.datasetname=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.endpoint=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.groupname=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.hostname=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.idescription=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.password=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.sslkeystore=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.timeout=
+domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.username=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces=template:domainmodel.soapclientinterfacedefinition
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.endpoint=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.groupname=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.idescription=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.password=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.sslkeystore=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.timeout=
+domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.username=
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients=template:domainmodel.soapclientinterfacedefinition
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.endpoint=
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.groupname=
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.idescription=
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.password=
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.sslkeystore=
+domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.username=
+domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver=template:domainmodel.soapserverinterfacedefinition
+domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver.groupname=
+domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver.idescription=
+domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver.url=
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap=template:domainmodel.soapserverinterfacedefinition
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.encodingstrategy=UseSameAsRequest
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.exporttzoffset=false
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.forssl=false
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.groupname=
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.idescription=
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.securecommunication.protocols=TLSv1,TLSv1.1,TLSv1.2
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.timezone=GMT
+domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.useoslocaltimezone=true
+domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface=template:domainmodel.soapserverinterfacedefinition
+domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface.groupname=
+domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface.idescription=
+domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface.url=
+domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver=template:domainmodel.soapserverinterfacedefinition
+domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver.groupname=
+domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver.idescription=
+domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver.url=
+domainmodel.soapserverinterfacedefinition.interface.utf=template:domainmodel.soapserverinterfacedefinition
+domainmodel.soapserverinterfacedefinition.interface.utf.groupname=
+domainmodel.soapserverinterfacedefinition.interface.utf.idescription=
+user=template:user
+user.increasestartofplanning=false
+user.sizingparameter=false
diff --git a/_var/_Main/ProjSettings/MacroPlanner/ColSch/Global.cs b/_var/_Main/ProjSettings/MacroPlanner/ColSch/Global.cs
index a4bffc1..770884d 100644
--- a/_var/_Main/ProjSettings/MacroPlanner/ColSch/Global.cs
+++ b/_var/_Main/ProjSettings/MacroPlanner/ColSch/Global.cs
@@ -95,293 +95,293 @@
     ColorSchemeChartEntry
     {
       Definition: 'CurrencyRates'
-      ChartEntryValue { Access: 738766.584444444 Color: '$B22900' Value: 'HUF' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B2004D' Value: '娓厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$35B2A6' Value: '榛庡反瀚╅晳' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$AFE572' Value: '涔屽吂鍒厠鏂潶鑻忓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$0B00B2' Value: '鍦簹閭e厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$72E58B' Value: '鑻忎腹绗撼灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$729CE5' Value: '鎵樻媺灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E572CC' Value: '娲ュ反甯冮煢鍏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$6AFE00' Value: '鏍兼煡灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$72E5CE' Value: '鑿插緥瀹炬瘮绱�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E5A872' Value: 'TRY' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$981E4D' Value: '绗撼灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$003FFF' Value: 'DKK' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$35B2B0' Value: '闃挎浖閲屼簹灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FEA54C' Value: '宸存尝浜�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$6BB235' Value: '鏅哄埄姣旂储' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$98824C' Value: 'ZAR' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$144ECB' Value: '宸磋タ闆烽樋灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B23542' Value: '濉旀媺' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E572DF' Value: '鍊哄埜甯傚満鍗曚綅 - 娆ф床璁板笎鍗曚綅 17 (E.U.A.-17)' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4CFE6A' Value: '鎽╁皵澶氱摝鍒椾紛' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$00B282' Value: '涔熼棬绗撼灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$7B4C98' Value: '澧ㄨタ鍝ユ瘮绱�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$A000B2' Value: '鏂噷鍏板崱鍗㈡瘮' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FE4C6A' Value: '鍊哄埜甯傚満鍗曚綅 - 娆ф床璐у竵鍚堟垚鍗曚綅 (EURCO)' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$7C35B2' Value: 'CFA 娉曢儙 BEAC' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$984C89' Value: 'CHF' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$6A4CFE' Value: '婢抽棬鍏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B28635' Value: '鍠滃悕' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E5C472' Value: '鍔犵撼濉炶开锛堟棫锛�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB5178' Value: '鍗㈡椇杈炬硶閮�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$5BFE4C' Value: '瀹夐亾灏旀瘮濉炲' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E1FE4C' Value: '宸村反澶氭柉鍏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$8200B2' Value: 'EEK' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4CFED2' Value: '闃垮瘜姹楀凹' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$754C98' Value: '鍏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$981E94' Value: '瑗跨彮鐗欐瘮濉炲' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C9862' Value: '鍒氭灉娉曢儙' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$143FCB' Value: '鍙厬鎹㈡瘮濉炲甯愭埛' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$6E4C98' Value: 'CNY' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$63984C' Value: '鎽╂礇鍝ヨ开鎷夊' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$2DE583' Value: '灏兼硦灏斿崲姣�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E5742D' Value: '鎷夐噷' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$70984C' Value: 'Uruguary Peso en Unidades Indexadas' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$69984C' Value: '濉炲皵缁翠簹绗撼灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4CFEE1' Value: '绾︽棪绗撼灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$411E98' Value: '鏂板姞鍧″厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E52D8F' Value: '鍖楁湞椴滃厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$52E52D' Value: '鏂拌阿鍏嬪皵' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$1E9822' Value: '涔屽悏浜�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$20B200' Value: '鑻忓厠闆�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CBA114' Value: '椹潵瑗夸簹鏋楀悏鐗�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FE3F00' Value: '鍙厬鎹㈤┈鍏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$1E6198' Value: '甯冮殕杩硶閮�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$72E582' Value: '鑻忛噷鍗楀厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$988E4C' Value: '濉炶垖灏斿崲姣�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$72A6E5' Value: '鏂板崡鏂媺澶绾冲皵' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$14CB36' Value: '閽�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C8998' Value: '鏂扮储灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B4FE4C' Value: '鍒╂瘮閲屼簹鍏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$00FE7F' Value: '鏅媺' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CDE52D' Value: '鏂板鎵�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$00B256' Value: 'KRW' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$14CB26' Value: '鏂囪幈鍏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$5196CB' Value: '椹揪鍔犳柉鍔犻樋閲屼簹閲�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B23800' Value: '閲�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$F04CFE' Value: '婢冲ぇ鎷夎タ浜�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$372DE5' Value: '鐗规畩缁撶畻甯佺 - 閲戞硶閮�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$2DE592' Value: '鍥炬牸閲屽厠' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$35B267' Value: '閲屽叞鍚夊凹' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FF00BF' Value: 'PHP' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B2005C' Value: 'RON' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B23595' Value: '涓滃姞鍕掓瘮鍏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$1E6C98' Value: '杈炬媺瑗�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CCE572' Value: 'JPY' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$78CB51' Value: 'USD' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$7F00FF' Value: 'PLN' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FE007F' Value: '鍏嬮瞾鎵庡' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$72E5C4' Value: 'NOK' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$1E5798' Value: '鏂板彴甯�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B2AF00' Value: 'HKD' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C9868' Value: '钀ㄥ皵鐡﹀绉戦儙' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E57289' Value: '绂忔灄' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B12DE5' Value: '姣斿埄鏃舵硶閮�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$51ABCB' Value: '鍗楁柉鎷夊か绗撼灏旓紙宸蹭綔搴燂級' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$7135B2' Value: '闃块瞾宸村矝鐩�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$3FFE00' Value: '鍏嬮瞾鎭�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$2900B2' Value: '鍔犳嬁澶у厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FE00AA' Value: '鍙ゅ痉' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$2C1E98' Value: '鑽峰睘瀹夌殑鍒楁柉缇ゅ矝鐩�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FE4CF0' Value: '閾�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$0079B2' Value: '鑽峰叞鐩�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$6ECB51' Value: '闃垮鎷滅枂椹鐗癸紙鏃э級' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$359FB2' Value: '缁熻' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$7CCB14' Value: '鐗欎拱鍔犲厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C6398' Value: 'INR' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$BFCB51' Value: '濂堟媺' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B5CB51' Value: '鍗㈡.鍫℃硶閮�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B29B35' Value: '鍊哄埜甯傚満鍗曚綅 - 娆ф床璁板笎鍗曚綅 9 (E.U.A.-9)' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$D2FE4C' Value: '闃垮鎷滅枂椹鐗�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$51CB9B' Value: '鐟炲吀鍏嬫湕' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$8A981E' Value: '涓归害鍏嬫湕' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C9895' Value: 'SEK' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$63CB51' Value: '鍔皵鐗归瞾濮�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$A872E5' Value: '鍗″皵浼摝鑱傚吂' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FE4C5B' Value: '缇庡厓锛堟鏃ワ級' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$2FB200' Value: 'MYR' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C5D98' Value: '濮斿唴鐟炴媺鍗氬埄鐡�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB14B9' Value: '鍒楀厠' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C9098' Value: '绾冲厠娉�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$8635B2' Value: '鍏堜护' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FEFE00' Value: '鍏嬫湕' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$A551CB' Value: 'Euro' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$54FE00' Value: '鐧戒縿缃楁柉鍗㈠竷' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$00FE6A' Value: '淇濆姞鍒╀簹鍒楀紬' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$0000FE' Value: '鍏嬬綏鍦颁簹绗撼灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$8BCB14' Value: '鐗规畩缁撶畻甯佺 - UIC 娉曢儙' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$97B200' Value: '鍑犲唴浜氭瘮缁嶆瘮绱�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E52D9F' Value: '椹揪鍔犳柉鍔犳硶閮�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$824C98' Value: '鑻忛噷鍗楃浘' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$61E52D' Value: '缂呭厓锛堝凡搴熷純锛�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$0002B2' Value: 'THB' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4CFE5B' Value: '鎵庝紛灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B2359F' Value: '鐩村竷缃楅檧闀�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB518C' Value: '宸村搱椹厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$794CFE' Value: '鍊哄埜甯傚満鍗曚綅 - 娆ф床璐у竵鍗曚綅 (E.M.U.-6)' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B25600' Value: 'CFP 娉曢儙' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B2002F' Value: '鍑犲唴浜氭硶閮�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$9E72E5' Value: 'Unidades de formento' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$A22DE5' Value: '鍒╂槀' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B2A635' Value: '瀹芥湱' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB149B' Value: '绉戞懇缃楁硶閮�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C986E' Value: '涔屽共杈惧厛浠わ紙浣滃簾锛�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$14CBB0' Value: '鐡滄媺灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FE0094' Value: '绱㈣帿灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$981E39' Value: '涔屾媺鍦瘮绱�(1)' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4CFE4C' Value: '鐧戒縿缃楁柉鍗㈠竷锛堝凡浣滃簾锛�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$AF00B2' Value: '娲ュ反甯冮煢鍏冿紙涓嶅啀浣跨敤锛�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$874CFE' Value: '鍗板湴' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB7251' Value: '鐟炲皵' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$1E9874' Value: '椹撼鐗癸紙涓嶅啀浣跨敤锛�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$72E578' Value: '鐜涚撼鐗�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$6735B2' Value: 'WIR 娆у厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FE4C87' Value: '鍩冨強闀�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$984B1E' Value: '寰峰浗椹厠' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$1E987E' Value: '鏂板湡鑰冲叾閲屾媺' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$80B235' Value: '鐩�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$88B200' Value: '绉戝宸村竵' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4CFEC3' Value: '鐖卞皵鍏伴晳' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB5182' Value: '鎸▉鍏嬫湕' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B23537' Value: '闃挎媺浼仈鍚堥厠闀垮浗杩媺濮�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB7C51' Value: '姊呰开鍗″皵' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E5D02D' Value: '澶氱背灏煎姞姣旂储' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$0088B2' Value: 'RUB' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$80981E' Value: '浼埄鍏瑰厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$2D43E5' Value: '涓滃笣姹跺焹搴撳' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$1A00B2' Value: '鏂礇浼愬厠鍏嬫湕' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E5B172' Value: '鍏嬬摝鏌�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$24981E' Value: '閾�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B951CB' Value: '娆ф床璐у竵鍗曚綅 (E.C.U.)' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$005CB2' Value: '鍔犵撼濉炶开' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$00E9FE' Value: '鍝ユ柉杈鹃粠鍔犵閮�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$51A1CB' Value: '鐟炲+娉曢儙' }
-      ChartEntryValue { Access: 738766.584444444 Color: 'Red' Value: 'EUR' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$964CFE' Value: '鍏嬬摝鏌�(1)' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$6314CB' Value: '鎷夎彶浜�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$BF00FE' Value: '娲涜拏' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$3542B2' Value: '绔嬮櫠瀹涢噷濉旀柉' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$35B248' Value: '鏂版墡浼婂皵' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E57280' Value: '鎵�缃楅棬缇ゅ矝鍏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$14C8CB' Value: '鏃犲竵绉�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$00BFFE' Value: '绱㈠' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$2E981E' Value: '鍏圭綏鎻愶紙宸蹭綔搴燂級' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B23580' Value: '鎷夎劚缁翠簹鍗㈠竷' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$984C76' Value: '鍒楀紬' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$72AFE5' Value: 'NZD' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C87FE' Value: '鏃ュ渾' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$72E5D8' Value: '濉斿崱' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB142F' Value: '淇勭綏鏂崲甯冿紙鏃у竵锛�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FE4CE1' Value: '鍏嬬綏鍦颁簹搴撶撼' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$985F1E' Value: '鍦熻�冲叾閲屾媺' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E172E5' Value: 'GBP' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$51CB90' Value: '浣涘緱瑙掑焹鏂簱澶�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FE4CFE' Value: '闃垮皵鍙婂埄浜氱绾冲皵' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E5642D' Value: '浼婃湕閲屼簹灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$354CB2' Value: 'Mexican Unidad de Inversion (UDI)' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$A900FE' Value: '鎷夎劚缁翠簹鎷夌壒' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$76B235' Value: '闃垮瘜姹楀凹锛堟棫锛�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$51CBA5' Value: '缇庢彁鍗★紙鏃э級' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B24700' Value: '鍚夊竷鎻愭硶閮�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$14CBBF' Value: '鏂扮綏椹凹浜氬垪浼�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$02B200' Value: '寮�鏇肩兢宀涘厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$61B235' Value: '瀹芥湱锛堝凡浣滃簾锛�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$72E5E1' Value: '鍗″灏旈噷浜氬皵' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FFBF00' Value: 'AUD' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$DCE52D' Value: 'CFA 娉曢儙 BCEAO' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$9100B2' Value: '椹�充粬閲屾媺' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$98954C' Value: '绾崇背姣斾簹鍏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$984C83' Value: '璐㈡斂娉曢儙' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$98884C' Value: '浜氱編灏间簹寰锋媺濮�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$11B200' Value: '澧ㄨタ鍝ユ瘮绱紙宸蹭綔搴燂級' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$5414CB' Value: '淇勭綏鏂崲甯�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C9698' Value: '娌欑壒閲屼簹灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$002AFE' Value: '鍝ヤ鸡姣斾簹姣旂储' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$00B274' Value: '鑻忎腹闀�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$C3E572' Value: '鏂愭祹鍏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$5D51CB' Value: '钁¤悇鐗欏焹鏂簱澶�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$2DBDE5' Value: '鍐板矝鍏嬫湕' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$981E43' Value: '娉曞浗娉曢儙' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C5698' Value: '濮嗙淮澶�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$35AAB2' Value: 'Unidad de Valor Constante (UVC)' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$6DCB14' Value: '姣涢噷姹傛柉鍗㈡瘮' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$6851CB' Value: 'WIR 娉曢儙' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B9E572' Value: '鎰忓ぇ鍒╅噷鎷�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB1420' Value: '涔熼棬閲屼簹灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E57276' Value: '鍧氭垐' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FEE900' Value: '涔屽共杈惧厛浠�' }
-      ChartEntryValue { Access: 738766.584444444 Color: 'Cyan' Value: 'HRK' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$00D4FE' Value: '閭﹀姞' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$76984C' Value: 'SGD' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$1E986A' Value: '娴嬭瘯' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$5351CB' Value: '鍩冨淇勬瘮浜氭瘮灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$00B265' Value: '璧幈' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$984C7C' Value: '缇庡厓锛堝悓鏃ワ級' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$371E98' Value: '缇庡厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B29135' Value: '鍊哄埜甯傚満鍗曚綅 - 娆ф床璁板笎鍗曚綅 17锛堝凡浣滃簾锛�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FEB44C' Value: '鍧︽灏间簹鍏堜护' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E52D80' Value: '鐗瑰埆鎻愭鏉�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4CFEF0' Value: '鑲凹浜氬厛浠�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$51B5CB' Value: 'RMB' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FED400' Value: '鏍奸瞾鍚変簹鎭エ' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$AF51CB' Value: '閲戣瀺鍏板痉' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C96FE' Value: '鍗板害鍗㈡瘮' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CBC351' Value: 'BRL' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$35B25D' Value: 'Unidad de Valor Real' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$2DCDE5' Value: '涔屾媺鍦瘮绱�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$35B252' Value: '闃挎牴寤锋瘮绱�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$881E98' Value: '闊╁厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$76981E' Value: '鐡﹀姫闃垮浘' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$C02DE5' Value: '鐗圭珛灏艰揪鍜屽宸村摜鍏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$A6B200' Value: '鍩烘櫘' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$5159CB' Value: 'TWD' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$006BB2' Value: '鍙欏埄浜氶晳' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$7293E5' Value: '鏂拌タ鍏板厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB8651' Value: '鍗㈡瘮' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$7FFF00' Value: 'BGN' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$921E98' Value: '鍗氬埄鐡�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$98551E' Value: '鐜诲埄缁翠簹姣旂储' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$51CB86' Value: 'Dollar' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$C9CB51' Value: '鍗楁柉鎷夊か绗撼灏�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$14CB45' Value: '鍙厬鎹㈢殑娉曢儙' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$C3FE4C' Value: '鑻遍晳' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$9400FE' Value: '鍙ゅ反姣旂储' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$76E572' Value: 'LVL' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FE964C' Value: '娆у厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB9114' Value: '绉戝宸�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$2DAEE5' Value: '绐佸凹鏂绾冲皵' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$71E52D' Value: '娉伴摙' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C5098' Value: '鍒椾紛' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FEC34C' Value: '鍒╂瘮浜氱绾冲皵' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$FE4C79' Value: '鍏扮壒' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$59CB51' Value: '濉斿悏鍏嬫柉鍧﹀崲甯�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B2003E' Value: '鍦h但鍕掓嬁闀�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E5BB72' Value: '鑻忎腹绗撼灏旓紙鏃э級' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$145DCB' Value: '寰锋媺鍏嬮┈' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$00FE55' Value: '椹厠' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4CA5FE' Value: '濉炴郸璺柉闀�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$2DE574' Value: '澶氬竷鎷�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E572D6' Value: '绱㈤┈閲屽厛浠�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E57293' Value: 'LTL' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$7314CB' Value: '绉戝▉鐗圭绾冲皵' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4C985B' Value: 'MXN' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$0015FE' Value: '鐧炬厱澶у厓锛堢櫨鎱曞ぇ鍏冿級' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$C351CB' Value: '浼︾毊鎷�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$4CB4FE' Value: '婢冲厓' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$3561B2' Value: '鎹峰厠鍏嬫湕' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$9572E5' Value: '绂忓厠鍏扮兢宀涢晳' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$2D34E5' Value: '姣旂储鍙姌鎹�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$984C50' Value: 'CAD' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$3556B2' Value: '浼婃媺鍏嬬绾冲皵' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$E5DF2D' Value: '宸村熀鏂潶鍗㈡瘮' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB5196' Value: '浜烘皯甯�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB8214' Value: '鍗㈠竷' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$B2358A' Value: '鍏圭綏鎻�' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$8B72E5' Value: 'IDR' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$00FF3F' Value: 'CZK' }
-      ChartEntryValue { Access: 738766.584444444 Color: '$CB14AA' Value: '宸存灄绗撼灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B22900' Value: 'HUF' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B2004D' Value: '娓厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$35B2A6' Value: '榛庡反瀚╅晳' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$AFE572' Value: '涔屽吂鍒厠鏂潶鑻忓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$0B00B2' Value: '鍦簹閭e厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$72E58B' Value: '鑻忎腹绗撼灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$729CE5' Value: '鎵樻媺灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E572CC' Value: '娲ュ反甯冮煢鍏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$6AFE00' Value: '鏍兼煡灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$72E5CE' Value: '鑿插緥瀹炬瘮绱�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E5A872' Value: 'TRY' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$981E4D' Value: '绗撼灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$003FFF' Value: 'DKK' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$35B2B0' Value: '闃挎浖閲屼簹灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FEA54C' Value: '宸存尝浜�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$6BB235' Value: '鏅哄埄姣旂储' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$98824C' Value: 'ZAR' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$144ECB' Value: '宸磋タ闆烽樋灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B23542' Value: '濉旀媺' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E572DF' Value: '鍊哄埜甯傚満鍗曚綅 - 娆ф床璁板笎鍗曚綅 17 (E.U.A.-17)' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4CFE6A' Value: '鎽╁皵澶氱摝鍒椾紛' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$00B282' Value: '涔熼棬绗撼灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$7B4C98' Value: '澧ㄨタ鍝ユ瘮绱�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$A000B2' Value: '鏂噷鍏板崱鍗㈡瘮' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FE4C6A' Value: '鍊哄埜甯傚満鍗曚綅 - 娆ф床璐у竵鍚堟垚鍗曚綅 (EURCO)' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$7C35B2' Value: 'CFA 娉曢儙 BEAC' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$984C89' Value: 'CHF' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$6A4CFE' Value: '婢抽棬鍏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B28635' Value: '鍠滃悕' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E5C472' Value: '鍔犵撼濉炶开锛堟棫锛�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB5178' Value: '鍗㈡椇杈炬硶閮�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$5BFE4C' Value: '瀹夐亾灏旀瘮濉炲' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E1FE4C' Value: '宸村反澶氭柉鍏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$8200B2' Value: 'EEK' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4CFED2' Value: '闃垮瘜姹楀凹' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$754C98' Value: '鍏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$981E94' Value: '瑗跨彮鐗欐瘮濉炲' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C9862' Value: '鍒氭灉娉曢儙' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$143FCB' Value: '鍙厬鎹㈡瘮濉炲甯愭埛' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$6E4C98' Value: 'CNY' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$63984C' Value: '鎽╂礇鍝ヨ开鎷夊' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$2DE583' Value: '灏兼硦灏斿崲姣�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E5742D' Value: '鎷夐噷' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$70984C' Value: 'Uruguary Peso en Unidades Indexadas' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$69984C' Value: '濉炲皵缁翠簹绗撼灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4CFEE1' Value: '绾︽棪绗撼灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$411E98' Value: '鏂板姞鍧″厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E52D8F' Value: '鍖楁湞椴滃厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$52E52D' Value: '鏂拌阿鍏嬪皵' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$1E9822' Value: '涔屽悏浜�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$20B200' Value: '鑻忓厠闆�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CBA114' Value: '椹潵瑗夸簹鏋楀悏鐗�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FE3F00' Value: '鍙厬鎹㈤┈鍏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$1E6198' Value: '甯冮殕杩硶閮�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$72E582' Value: '鑻忛噷鍗楀厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$988E4C' Value: '濉炶垖灏斿崲姣�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$72A6E5' Value: '鏂板崡鏂媺澶绾冲皵' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$14CB36' Value: '閽�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C8998' Value: '鏂扮储灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B4FE4C' Value: '鍒╂瘮閲屼簹鍏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$00FE7F' Value: '鏅媺' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CDE52D' Value: '鏂板鎵�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$00B256' Value: 'KRW' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$14CB26' Value: '鏂囪幈鍏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$5196CB' Value: '椹揪鍔犳柉鍔犻樋閲屼簹閲�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B23800' Value: '閲�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$F04CFE' Value: '婢冲ぇ鎷夎タ浜�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$372DE5' Value: '鐗规畩缁撶畻甯佺 - 閲戞硶閮�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$2DE592' Value: '鍥炬牸閲屽厠' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$35B267' Value: '閲屽叞鍚夊凹' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FF00BF' Value: 'PHP' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B2005C' Value: 'RON' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B23595' Value: '涓滃姞鍕掓瘮鍏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$1E6C98' Value: '杈炬媺瑗�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CCE572' Value: 'JPY' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$78CB51' Value: 'USD' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$7F00FF' Value: 'PLN' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FE007F' Value: '鍏嬮瞾鎵庡' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$72E5C4' Value: 'NOK' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$1E5798' Value: '鏂板彴甯�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B2AF00' Value: 'HKD' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C9868' Value: '钀ㄥ皵鐡﹀绉戦儙' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E57289' Value: '绂忔灄' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B12DE5' Value: '姣斿埄鏃舵硶閮�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$51ABCB' Value: '鍗楁柉鎷夊か绗撼灏旓紙宸蹭綔搴燂級' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$7135B2' Value: '闃块瞾宸村矝鐩�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$3FFE00' Value: '鍏嬮瞾鎭�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$2900B2' Value: '鍔犳嬁澶у厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FE00AA' Value: '鍙ゅ痉' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$2C1E98' Value: '鑽峰睘瀹夌殑鍒楁柉缇ゅ矝鐩�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FE4CF0' Value: '閾�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$0079B2' Value: '鑽峰叞鐩�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$6ECB51' Value: '闃垮鎷滅枂椹鐗癸紙鏃э級' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$359FB2' Value: '缁熻' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$7CCB14' Value: '鐗欎拱鍔犲厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C6398' Value: 'INR' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$BFCB51' Value: '濂堟媺' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B5CB51' Value: '鍗㈡.鍫℃硶閮�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B29B35' Value: '鍊哄埜甯傚満鍗曚綅 - 娆ф床璁板笎鍗曚綅 9 (E.U.A.-9)' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$D2FE4C' Value: '闃垮鎷滅枂椹鐗�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$51CB9B' Value: '鐟炲吀鍏嬫湕' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$8A981E' Value: '涓归害鍏嬫湕' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C9895' Value: 'SEK' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$63CB51' Value: '鍔皵鐗归瞾濮�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$A872E5' Value: '鍗″皵浼摝鑱傚吂' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FE4C5B' Value: '缇庡厓锛堟鏃ワ級' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$2FB200' Value: 'MYR' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C5D98' Value: '濮斿唴鐟炴媺鍗氬埄鐡�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB14B9' Value: '鍒楀厠' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C9098' Value: '绾冲厠娉�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$8635B2' Value: '鍏堜护' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FEFE00' Value: '鍏嬫湕' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$A551CB' Value: 'Euro' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$54FE00' Value: '鐧戒縿缃楁柉鍗㈠竷' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$00FE6A' Value: '淇濆姞鍒╀簹鍒楀紬' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$0000FE' Value: '鍏嬬綏鍦颁簹绗撼灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$8BCB14' Value: '鐗规畩缁撶畻甯佺 - UIC 娉曢儙' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$97B200' Value: '鍑犲唴浜氭瘮缁嶆瘮绱�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E52D9F' Value: '椹揪鍔犳柉鍔犳硶閮�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$824C98' Value: '鑻忛噷鍗楃浘' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$61E52D' Value: '缂呭厓锛堝凡搴熷純锛�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$0002B2' Value: 'THB' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4CFE5B' Value: '鎵庝紛灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B2359F' Value: '鐩村竷缃楅檧闀�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB518C' Value: '宸村搱椹厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$794CFE' Value: '鍊哄埜甯傚満鍗曚綅 - 娆ф床璐у竵鍗曚綅 (E.M.U.-6)' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B25600' Value: 'CFP 娉曢儙' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B2002F' Value: '鍑犲唴浜氭硶閮�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$9E72E5' Value: 'Unidades de formento' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$A22DE5' Value: '鍒╂槀' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B2A635' Value: '瀹芥湱' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB149B' Value: '绉戞懇缃楁硶閮�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C986E' Value: '涔屽共杈惧厛浠わ紙浣滃簾锛�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$14CBB0' Value: '鐡滄媺灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FE0094' Value: '绱㈣帿灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$981E39' Value: '涔屾媺鍦瘮绱�(1)' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4CFE4C' Value: '鐧戒縿缃楁柉鍗㈠竷锛堝凡浣滃簾锛�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$AF00B2' Value: '娲ュ反甯冮煢鍏冿紙涓嶅啀浣跨敤锛�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$874CFE' Value: '鍗板湴' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB7251' Value: '鐟炲皵' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$1E9874' Value: '椹撼鐗癸紙涓嶅啀浣跨敤锛�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$72E578' Value: '鐜涚撼鐗�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$6735B2' Value: 'WIR 娆у厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FE4C87' Value: '鍩冨強闀�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$984B1E' Value: '寰峰浗椹厠' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$1E987E' Value: '鏂板湡鑰冲叾閲屾媺' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$80B235' Value: '鐩�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$88B200' Value: '绉戝宸村竵' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4CFEC3' Value: '鐖卞皵鍏伴晳' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB5182' Value: '鎸▉鍏嬫湕' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B23537' Value: '闃挎媺浼仈鍚堥厠闀垮浗杩媺濮�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB7C51' Value: '姊呰开鍗″皵' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E5D02D' Value: '澶氱背灏煎姞姣旂储' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$0088B2' Value: 'RUB' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$80981E' Value: '浼埄鍏瑰厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$2D43E5' Value: '涓滃笣姹跺焹搴撳' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$1A00B2' Value: '鏂礇浼愬厠鍏嬫湕' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E5B172' Value: '鍏嬬摝鏌�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$24981E' Value: '閾�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B951CB' Value: '娆ф床璐у竵鍗曚綅 (E.C.U.)' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$005CB2' Value: '鍔犵撼濉炶开' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$00E9FE' Value: '鍝ユ柉杈鹃粠鍔犵閮�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$51A1CB' Value: '鐟炲+娉曢儙' }
+      ChartEntryValue { Access: 738805.577453704 Color: 'Red' Value: 'EUR' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$964CFE' Value: '鍏嬬摝鏌�(1)' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$6314CB' Value: '鎷夎彶浜�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$BF00FE' Value: '娲涜拏' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$3542B2' Value: '绔嬮櫠瀹涢噷濉旀柉' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$35B248' Value: '鏂版墡浼婂皵' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E57280' Value: '鎵�缃楅棬缇ゅ矝鍏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$14C8CB' Value: '鏃犲竵绉�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$00BFFE' Value: '绱㈠' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$2E981E' Value: '鍏圭綏鎻愶紙宸蹭綔搴燂級' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B23580' Value: '鎷夎劚缁翠簹鍗㈠竷' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$984C76' Value: '鍒楀紬' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$72AFE5' Value: 'NZD' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C87FE' Value: '鏃ュ渾' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$72E5D8' Value: '濉斿崱' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB142F' Value: '淇勭綏鏂崲甯冿紙鏃у竵锛�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FE4CE1' Value: '鍏嬬綏鍦颁簹搴撶撼' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$985F1E' Value: '鍦熻�冲叾閲屾媺' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E172E5' Value: 'GBP' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$51CB90' Value: '浣涘緱瑙掑焹鏂簱澶�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FE4CFE' Value: '闃垮皵鍙婂埄浜氱绾冲皵' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E5642D' Value: '浼婃湕閲屼簹灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$354CB2' Value: 'Mexican Unidad de Inversion (UDI)' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$A900FE' Value: '鎷夎劚缁翠簹鎷夌壒' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$76B235' Value: '闃垮瘜姹楀凹锛堟棫锛�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$51CBA5' Value: '缇庢彁鍗★紙鏃э級' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B24700' Value: '鍚夊竷鎻愭硶閮�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$14CBBF' Value: '鏂扮綏椹凹浜氬垪浼�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$02B200' Value: '寮�鏇肩兢宀涘厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$61B235' Value: '瀹芥湱锛堝凡浣滃簾锛�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$72E5E1' Value: '鍗″灏旈噷浜氬皵' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FFBF00' Value: 'AUD' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$DCE52D' Value: 'CFA 娉曢儙 BCEAO' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$9100B2' Value: '椹�充粬閲屾媺' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$98954C' Value: '绾崇背姣斾簹鍏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$984C83' Value: '璐㈡斂娉曢儙' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$98884C' Value: '浜氱編灏间簹寰锋媺濮�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$11B200' Value: '澧ㄨタ鍝ユ瘮绱紙宸蹭綔搴燂級' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$5414CB' Value: '淇勭綏鏂崲甯�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C9698' Value: '娌欑壒閲屼簹灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$002AFE' Value: '鍝ヤ鸡姣斾簹姣旂储' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$00B274' Value: '鑻忎腹闀�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$C3E572' Value: '鏂愭祹鍏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$5D51CB' Value: '钁¤悇鐗欏焹鏂簱澶�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$2DBDE5' Value: '鍐板矝鍏嬫湕' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$981E43' Value: '娉曞浗娉曢儙' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C5698' Value: '濮嗙淮澶�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$35AAB2' Value: 'Unidad de Valor Constante (UVC)' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$6DCB14' Value: '姣涢噷姹傛柉鍗㈡瘮' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$6851CB' Value: 'WIR 娉曢儙' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B9E572' Value: '鎰忓ぇ鍒╅噷鎷�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB1420' Value: '涔熼棬閲屼簹灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E57276' Value: '鍧氭垐' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FEE900' Value: '涔屽共杈惧厛浠�' }
+      ChartEntryValue { Access: 738805.577453704 Color: 'Cyan' Value: 'HRK' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$00D4FE' Value: '閭﹀姞' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$76984C' Value: 'SGD' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$1E986A' Value: '娴嬭瘯' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$5351CB' Value: '鍩冨淇勬瘮浜氭瘮灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$00B265' Value: '璧幈' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$984C7C' Value: '缇庡厓锛堝悓鏃ワ級' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$371E98' Value: '缇庡厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B29135' Value: '鍊哄埜甯傚満鍗曚綅 - 娆ф床璁板笎鍗曚綅 17锛堝凡浣滃簾锛�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FEB44C' Value: '鍧︽灏间簹鍏堜护' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E52D80' Value: '鐗瑰埆鎻愭鏉�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4CFEF0' Value: '鑲凹浜氬厛浠�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$51B5CB' Value: 'RMB' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FED400' Value: '鏍奸瞾鍚変簹鎭エ' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$AF51CB' Value: '閲戣瀺鍏板痉' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C96FE' Value: '鍗板害鍗㈡瘮' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CBC351' Value: 'BRL' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$35B25D' Value: 'Unidad de Valor Real' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$2DCDE5' Value: '涔屾媺鍦瘮绱�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$35B252' Value: '闃挎牴寤锋瘮绱�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$881E98' Value: '闊╁厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$76981E' Value: '鐡﹀姫闃垮浘' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$C02DE5' Value: '鐗圭珛灏艰揪鍜屽宸村摜鍏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$A6B200' Value: '鍩烘櫘' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$5159CB' Value: 'TWD' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$006BB2' Value: '鍙欏埄浜氶晳' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$7293E5' Value: '鏂拌タ鍏板厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB8651' Value: '鍗㈡瘮' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$7FFF00' Value: 'BGN' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$921E98' Value: '鍗氬埄鐡�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$98551E' Value: '鐜诲埄缁翠簹姣旂储' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$51CB86' Value: 'Dollar' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$C9CB51' Value: '鍗楁柉鎷夊か绗撼灏�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$14CB45' Value: '鍙厬鎹㈢殑娉曢儙' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$C3FE4C' Value: '鑻遍晳' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$9400FE' Value: '鍙ゅ反姣旂储' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$76E572' Value: 'LVL' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FE964C' Value: '娆у厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB9114' Value: '绉戝宸�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$2DAEE5' Value: '绐佸凹鏂绾冲皵' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$71E52D' Value: '娉伴摙' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C5098' Value: '鍒椾紛' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FEC34C' Value: '鍒╂瘮浜氱绾冲皵' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$FE4C79' Value: '鍏扮壒' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$59CB51' Value: '濉斿悏鍏嬫柉鍧﹀崲甯�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B2003E' Value: '鍦h但鍕掓嬁闀�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E5BB72' Value: '鑻忎腹绗撼灏旓紙鏃э級' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$145DCB' Value: '寰锋媺鍏嬮┈' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$00FE55' Value: '椹厠' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4CA5FE' Value: '濉炴郸璺柉闀�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$2DE574' Value: '澶氬竷鎷�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E572D6' Value: '绱㈤┈閲屽厛浠�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E57293' Value: 'LTL' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$7314CB' Value: '绉戝▉鐗圭绾冲皵' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4C985B' Value: 'MXN' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$0015FE' Value: '鐧炬厱澶у厓锛堢櫨鎱曞ぇ鍏冿級' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$C351CB' Value: '浼︾毊鎷�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$4CB4FE' Value: '婢冲厓' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$3561B2' Value: '鎹峰厠鍏嬫湕' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$9572E5' Value: '绂忓厠鍏扮兢宀涢晳' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$2D34E5' Value: '姣旂储鍙姌鎹�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$984C50' Value: 'CAD' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$3556B2' Value: '浼婃媺鍏嬬绾冲皵' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$E5DF2D' Value: '宸村熀鏂潶鍗㈡瘮' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB5196' Value: '浜烘皯甯�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB8214' Value: '鍗㈠竷' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$B2358A' Value: '鍏圭綏鎻�' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$8B72E5' Value: 'IDR' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$00FF3F' Value: 'CZK' }
+      ChartEntryValue { Access: 738805.577453704 Color: '$CB14AA' Value: '宸存灄绗撼灏�' }
     }
     ColorSchemeEntry
     {
diff --git "a/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw" "b/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw"
new file mode 100644
index 0000000..3c61315
--- /dev/null
+++ "b/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw"
@@ -0,0 +1,3216 @@
+锘�# Quintiq GUI View File
+# Version 3.0
+
+PROPERTIES
+{
+  KEY := [414702.1.50321581]
+  NAME := '9.鍒嗘瀽瑙嗗浘'
+  HELPPAGE := ''
+  PARENTKEY := [119650.0.1615272249]
+  FOCUSED := [514.0.2180]
+  MUSTREADMDSSETTINGS := false
+  ISPERSONAL false
+  OWNERNAME 'quintiq/hongjli'
+  ICONIMAGE 'WINDOWS'
+  CREATIONDATETIME '2023-10-12T10:00:44'
+  CREATIONUSER 'quintiq/hongjli'
+  UPDATEDATETIME '2023-10-12T23:32:10'
+  UPDATEUSER 'quintiq/hongjli'
+  LASTACCESSDATE '2023-10-13'
+  VIEWSCOPE 0
+}
+AUTHORIZATIONS
+{
+  OPEN
+  {
+    AUTHORIZATIONS
+    {
+    }
+  }
+  EDIT
+  {
+    AUTHORIZATIONS
+    {
+    }
+  }
+}
+MDSINFO
+{
+  LOCAL ''
+  GLOBAL ''
+}
+INFOOBJECT
+{
+  KEY [626.0.4514905]
+  OBJECTTYPE Application
+  BASEINFOOBJECTS
+  {
+   BASEINFOOBJECT
+   {
+    KEY [626.0.4514905]
+    OBJECTTYPE GUIComponent
+    CONTENTS
+    {
+     SETTINGS_MDS_WITH_FOLDER
+     {
+       [414702.1.62804981]:LibInt_IntegratorProxy:/root:LibInt_IntegratorProxy
+       [414702.1.62833373]:SWF_CommunicationDataset:/root:SWF_CommunicationDataset
+       [414702.1.62828776]:SWF_WorkflowDataset:/root:SWF_WorkflowDataset
+       [414702.1.62800409]:LibDEF_DataBroker:/root:LibDEF_DataBroker
+       [414702.1.61685849]:LibDEF_DataRepository:/root:LibDEF_DataRepository
+       [414702.1.61676708]:DMF_ConvertorDataset:/root:DMF_ConvertorDataset
+       [414702.1.62842521]:LibMon_Monitor:/root:LibMon_Monitor
+       [414702.1.62837950]:LibUTF:/root:UTF
+       [414702.1.62860001]:Lib3DS_RootDataset:/root:Lib3DS_RootDataset
+       [414702.1.62850001]:KpiTracker:/root:KpiTracker
+       [414702.1.62875363]:MacroPlan:/root:MacroPlan
+       [414702.1.61681280]:MPDomainHandler:/root:MPDomainHandler
+       [414702.1.62880001]:MPSync:/root:MPSync
+       [414702.1.62809550]:ScenarioManager:/root:ScenarioManager
+       [414702.1.62870001]:LibSCIIntegrationInterface:/root:LibSCIIntegrationInterface
+       [414702.1.62819619]:GlobalOTDTable:/root:GlobalOTDTable
+     }
+    }
+   }
+  }
+  INFOOBJECTS
+  {
+   INFOOBJECT
+   {
+    KEY [514.0.2180]
+    OBJECTTYPE Frame
+    CONTENTS
+    {
+     State := maximized
+     (200,0,1536,809)
+     WorkspaceLocation :=
+    }
+    INFOOBJECTS
+    {
+     INFOOBJECT
+     {
+      KEY [113694.2.1024236755]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value ''
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [127710.1.721401771]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value '[414702.1.64020493]'
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [132448.0.224582518]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value 'false'
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [146450.2.1404665746]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value 'false'
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [146874.1.233869144]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value 'false'
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [132894.0.1007052496]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value 'false'
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [108684.0.1782661552]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value ''
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [107654.0.557163713]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value ';MRPPlanning;ProductionPlan;BusinessUnitOM;Web_BlendingPlan;Web_Plan;Web_TripPlan;Web_PurchasingPlan;Web_ProductionPlan;KpiTrackerAdmin;Web_SafetyStock;Web_Inventory;Web_CapacitySmoothing;Web_ShelfLife;Web_LotSizes;Web_Optimizer;Web_SupplyDashboard;Web_OptimizerBenchmarking;Web_Integration;Web_MyActivities;Web_WorkFlowConfiguration;Web_SafetyStockCalculation;Web_InventoryMixBalancing;Web_Feedbacks;Web_Financials;Web_Allocation;Web_DemandPostponement;Web_Blending;Web_ScenariosAndSettings;Web;Web_Development;Web_Sales;Web_CampaignPlanning;Web_SupplyChainData;Web_SupplyPlanning;SOAPServerUserGroup;CollaborativeForecasting;DemandPlanner;SupplyPlanner;SupplyChainDirector;OnPremise;Cloud;SOP;Software;Functionalities;Workflow;TransportationPlanning;SupplySpecifications;SupplyChainMap;ShelfLife;SalesDemandPostponement;SafetyStockCalculation;ProductPlanningGanttChart;Pegging;OptimizerBenchmarking;LotSizes;InventorySupplies;InventorySpecifications;InventoryMixBalancing;Groups;Feedback;Development;DatabaseIntegration;CapacitySmoothing;CampaignPlanning;Blending;AggregatedPlanning;Developer;Administrator;Implementors;AppConfigurators'
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [113694.1.227882923]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value ''
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [126224.0.581715]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value 'Feasible'
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [132894.0.388222255]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value ''
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [127238.1.80067038]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value 'true'
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [122192.0.103731718]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value '39'
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [113694.2.1085093394]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value 'true'
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [132448.0.331221783]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value '1'
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [127238.1.502176570]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value 'false'
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [112884.1.706803944]
+      OBJECTTYPE ValueHolder
+      CONTENTS
+      {
+       Value '2'
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [132448.0.662420775]
+      OBJECTTYPE GUIDataSetLevel
+      CONTENTS
+      {
+       Columns
+       {
+         Definition := [11122.0.37341573]
+         {
+           [132448.0.662420039]
+         }
+         SubTotals := true
+         Visible
+         {
+           Column internal[DataSetDataColumn] [132448.0.662420039]
+           {
+             Header := 'Name'
+             Width := 100
+             Subtotals := false
+             Specific
+             {
+               DataPath := 'DisplayNameForSelection [132448.0.661217036]'
+             }
+           }
+           Column internal[DataSetImageColumn] [110880.7.47894550]
+           {
+             Header := 'Optimizer status'
+             Width := 100
+             Subtotals := false
+             Specific
+             {
+               DataPath := 'ImgOptimizerStatus [137862.0.1442841447]'
+             }
+           }
+         }
+       }
+       DataMemberSort 'Name [11660.0.899152500]' true true
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [136682.0.314428046]
+      OBJECTTYPE GUIComponent
+      INFOOBJECTS
+      {
+       INFOOBJECT
+       {
+        KEY [105690.0.246954464]
+        OBJECTTYPE ValueHolder
+        CONTENTS
+        {
+         Value ''
+        }
+       }
+       INFOOBJECT
+       {
+        KEY [104342.0.773994982]
+        OBJECTTYPE ValueHolder
+        CONTENTS
+        {
+         Value ''
+        }
+       }
+       INFOOBJECT
+       {
+        KEY [104342.0.867521338]
+        OBJECTTYPE ValueHolder
+        CONTENTS
+        {
+         Value ''
+        }
+       }
+       INFOOBJECT
+       {
+        KEY [104342.0.867524820]
+        OBJECTTYPE ValueHolder
+        CONTENTS
+        {
+         Value '\\\\CNLEN1845000693\\PTF_Repository\\'
+        }
+       }
+       INFOOBJECT
+       {
+        KEY [105690.0.892938783]
+        OBJECTTYPE ValueHolder
+        CONTENTS
+        {
+         Value ''
+        }
+       }
+       INFOOBJECT
+       {
+        KEY [105690.0.247211998]
+        OBJECTTYPE ValueHolder
+        CONTENTS
+        {
+         Value ''
+        }
+       }
+       INFOOBJECT
+       {
+        KEY [105690.0.892939622]
+        OBJECTTYPE ValueHolder
+        CONTENTS
+        {
+         Value 'Inactive'
+        }
+       }
+       INFOOBJECT
+       {
+        KEY [103546.0.81355542]
+        OBJECTTYPE ValueHolder
+        CONTENTS
+        {
+         Value ''
+        }
+       }
+       INFOOBJECT
+       {
+        KEY [103546.0.54652306]
+        OBJECTTYPE ValueHolder
+        CONTENTS
+        {
+         Value ''
+        }
+       }
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [113694.2.1146370710]
+      OBJECTTYPE Toolbar
+      CONTENTS
+      {
+       'vertical' '50' '0'
+      }
+      INFOOBJECTS
+      {
+       INFOOBJECT
+       {
+        KEY [113694.2.1146375645]
+        OBJECTTYPE CustomDrawComponent
+        INFOOBJECTS
+        {
+         INFOOBJECT
+         {
+          KEY [132478.0.288924864]
+          OBJECTTYPE ValueHolder
+          CONTENTS
+          {
+           Value '12-10-2023, 20:12:19'
+          }
+         }
+        }
+       }
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [11660.0.360702312]
+      OBJECTTYPE Toolbar
+      CONTENTS
+      {
+       'horizontal' '50' '336'
+      }
+      INFOOBJECTS
+      {
+       INFOOBJECT
+       {
+        KEY [113694.2.1070869880]
+        OBJECTTYPE ValueHolder
+        CONTENTS
+        {
+         Value 'true'
+        }
+       }
+       INFOOBJECT
+       {
+        KEY [113694.2.1070870209]
+        OBJECTTYPE ValueHolder
+        CONTENTS
+        {
+         Value '336'
+        }
+       }
+       INFOOBJECT
+       {
+        KEY [113694.2.1033284312]
+        OBJECTTYPE SplitterWnd
+        INFOOBJECTS
+        {
+         INFOOBJECT
+         {
+          KEY [113694.2.1033284313]
+          OBJECTTYPE SplitterPane
+          CONTENTS
+          {
+           VISIBLE true
+          }
+          INFOOBJECTS
+          {
+           INFOOBJECT
+           {
+            KEY [127238.0.1883499282]
+            OBJECTTYPE TabComponent
+            CONTENTS
+            {
+             ActivePageIndex 0
+            }
+            INFOOBJECTS
+            {
+             INFOOBJECT
+             {
+              KEY [132448.0.71838188]
+              OBJECTTYPE List
+              CONTENTS
+              {
+               Quantorrow := false
+              }
+              INFOOBJECTS
+              {
+               INFOOBJECT
+               {
+                KEY [127238.0.1883514459]
+                OBJECTTYPE ValueHolder
+                CONTENTS
+                {
+                 Value 'Products'
+                }
+               }
+               INFOOBJECT
+               {
+                KEY [127238.0.1883514458]
+                OBJECTTYPE GUIDataSetLevel
+                CONTENTS
+                {
+                 Columns
+                 {
+                   Definition := [113694.2.1025339746]
+                   {
+                     [113694.2.1025342095]
+                   }
+                   SubTotals := true
+                   Visible
+                   {
+                     Column internal[DataSetDataColumn] [113694.2.1025342095]
+                     {
+                       Width := 100
+                       Subtotals := false
+                       Specific
+                       {
+                         DataPath := 'Name [113694.2.1025096770]'
+                       }
+                     }
+                   }
+                 }
+                 DataMemberSort 'SequenceNr [113694.2.1025096776]' true true
+                }
+               }
+              }
+             }
+             INFOOBJECT
+             {
+              KEY [127238.0.1883516525]
+              OBJECTTYPE SplitterWnd
+              INFOOBJECTS
+              {
+               INFOOBJECT
+               {
+                KEY [127238.0.1883516526]
+                OBJECTTYPE SplitterPane
+                CONTENTS
+                {
+                 Size 100
+                 VISIBLE true
+                }
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [127238.0.1883516528]
+                  OBJECTTYPE List
+                  CONTENTS
+                  {
+                   Quantorrow := false
+                  }
+                  INFOOBJECTS
+                  {
+                   INFOOBJECT
+                   {
+                    KEY [113694.2.1026852831]
+                    OBJECTTYPE GUIDataSetLevel
+                    CONTENTS
+                    {
+                     Columns
+                     {
+                       Definition := [127710.1.1014097713]
+                       {
+                         [127710.1.1014102531]
+                       }
+                       SubTotals := true
+                       Visible
+                       {
+                         Column internal[DataSetDataColumn] [127710.1.1014102531]
+                         {
+                           Header := 'Name'
+                           Width := 60
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'DisplayName [127710.1.1013707791]'
+                           }
+                         }
+                       }
+                     }
+                     DataMemberSort 'DefinitionName [1.2.1944]' true true
+                     DataMemberSort 'DisplayIndex [127710.1.1014879496]' true true
+                    }
+                   }
+                  }
+                 }
+                }
+               }
+               INFOOBJECT
+               {
+                KEY [127238.0.1883516541]
+                OBJECTTYPE SplitterPane
+                CONTENTS
+                {
+                 Size 0
+                 VISIBLE true
+                }
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [127238.0.1883516544]
+                  OBJECTTYPE List
+                  CONTENTS
+                  {
+                   Quantorrow := false
+                  }
+                  INFOOBJECTS
+                  {
+                   INFOOBJECT
+                   {
+                    KEY [113694.2.1025678105]
+                    OBJECTTYPE GUIDataSetLevel
+                    CONTENTS
+                    {
+                     Columns
+                     {
+                       Definition := [113694.2.1026639210]
+                       {
+                         [113694.2.1026641039]
+                       }
+                       SubTotals := true
+                       Visible
+                       {
+                         Column internal[DataSetDataColumn] [127710.1.791646005]
+                         {
+                           Width := 60
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'Name [101472.1.1551142288]'
+                           }
+                         }
+                       }
+                     }
+                     DataMemberSort 'DisplayIndex [101472.1.1550630686]' true true
+                    }
+                   }
+                  }
+                 }
+                }
+               }
+               INFOOBJECT
+               {
+                KEY [127238.0.1883516552]
+                OBJECTTYPE SplitterPane
+                CONTENTS
+                {
+                 Size 0
+                 VISIBLE true
+                }
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [127238.0.1883516554]
+                  OBJECTTYPE List
+                  CONTENTS
+                  {
+                   Quantorrow := false
+                  }
+                  INFOOBJECTS
+                  {
+                   INFOOBJECT
+                   {
+                    KEY [11660.0.1616690288]
+                    OBJECTTYPE GUIDataSetLevel
+                    CONTENTS
+                    {
+                     Columns
+                     {
+                       Definition := [113694.2.1026633433]
+                       {
+                         [113694.2.1026637315]
+                       }
+                       SubTotals := true
+                       Visible
+                       {
+                         Column internal[DataSetDataColumn] [127710.1.791646006]
+                         {
+                           Width := 60
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'Name [101472.1.1552565832]'
+                           }
+                         }
+                       }
+                     }
+                     DataMemberSort 'DisplayIndex [101472.1.1552054710]' true true
+                    }
+                   }
+                  }
+                 }
+                }
+               }
+               INFOOBJECT
+               {
+                KEY [131438.0.356639347]
+                OBJECTTYPE SplitterPane
+                CONTENTS
+                {
+                 Size 0
+                 VISIBLE true
+                }
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [131438.0.353247249]
+                  OBJECTTYPE List
+                  CONTENTS
+                  {
+                   Quantorrow := false
+                  }
+                  INFOOBJECTS
+                  {
+                   INFOOBJECT
+                   {
+                    KEY [131438.0.371333408]
+                    OBJECTTYPE GUIDataSetLevel
+                    CONTENTS
+                    {
+                     Columns
+                     {
+                       Definition := [131438.0.360617528]
+                       {
+                         [131438.0.360619967]
+                       }
+                       SubTotals := true
+                       Visible
+                       {
+                         Column internal[DataSetDataColumn] [131438.0.360619967]
+                         {
+                           Header := 'Name'
+                           Width := 60
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'ID [112884.1.819834135]'
+                           }
+                         }
+                       }
+                     }
+                     DataMemberSort 'TimeUnitLevel [110702.1.442080356]' true true
+                     DataMemberSort 'NrOfTimeUnit [113694.2.259953597]' true true
+                    }
+                    INFOOBJECTS
+                    {
+                     INFOOBJECT
+                     {
+                      KEY [131438.0.402834330]
+                      OBJECTTYPE GUIDataSetLevel
+                      CONTENTS
+                      {
+                       Columns
+                       {
+                         Definition := [131438.0.360619043]
+                         {
+                           [131438.0.373648709]
+                           [131438.0.373648710]
+                         }
+                         SubTotals := true
+                         Visible
+                         {
+                           Column internal[DataSetDataColumn] [131438.0.373648709]
+                           {
+                             Header := 'Start'
+                             Width := 100
+                             Subtotals := false
+                             Specific
+                             {
+                               DataPath := 'Period_MP [133004.0.129306565]|StartDate [11660.0.1924712308]'
+                             }
+                           }
+                           Column internal[DataSetDataColumn] [131438.0.373648710]
+                           {
+                             Header := 'End'
+                             Width := 100
+                             Subtotals := false
+                             Specific
+                             {
+                               DataPath := 'Period_MP [133004.0.129306565]|EndDate [11660.0.1924712413]'
+                             }
+                           }
+                         }
+                       }
+                       ColumnSort [131438.0.373648709] true false
+                      }
+                     }
+                    }
+                   }
+                  }
+                 }
+                }
+               }
+              }
+             }
+             INFOOBJECT
+             {
+              KEY [127238.0.1884468404]
+              OBJECTTYPE SplitterWnd
+              INFOOBJECTS
+              {
+               INFOOBJECT
+               {
+                KEY [127238.0.1884468405]
+                OBJECTTYPE SplitterPane
+                CONTENTS
+                {
+                 VISIBLE true
+                }
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [127238.0.1884468597]
+                  OBJECTTYPE List
+                  CONTENTS
+                  {
+                   Quantorrow := false
+                  }
+                  INFOOBJECTS
+                  {
+                   INFOOBJECT
+                   {
+                    KEY [130238.0.368320209]
+                    OBJECTTYPE GUIDataSetLevel
+                    CONTENTS
+                    {
+                     Columns
+                     {
+                       Definition := [121072.0.291112455]
+                       {
+                         [121072.0.291113667]
+                       }
+                       SubTotals := true
+                       Visible
+                       {
+                         Column internal[DataSetDataColumn] [121072.0.291113667]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'Name [121072.0.290461471]'
+                           }
+                         }
+                       }
+                     }
+                     DataMemberSort 'IsFolder [127238.0.1889576073]' false true
+                     ColumnSort [121072.0.291113667] true false
+                    }
+                    INFOOBJECTS
+                    {
+                     INFOOBJECT
+                     {
+                      KEY [130238.0.368320210]
+                      OBJECTTYPE GUIDataSetLevel
+                      CONTENTS
+                      {
+                       Columns
+                       {
+                         Definition := [121072.0.291112455]
+                         {
+                           [121072.0.291113667]
+                         }
+                         SubTotals := true
+                         Visible
+                         {
+                           Column internal[DataSetDataColumn] [121072.0.291113667]
+                           {
+                             Width := 100
+                             Subtotals := false
+                             Specific
+                             {
+                               DataPath := 'Name [121072.0.290461471]'
+                             }
+                           }
+                         }
+                       }
+                       DataMemberSort 'IsFolder [127238.0.1889576073]' false true
+                       ColumnSort [121072.0.291113667] true false
+                      }
+                     }
+                    }
+                   }
+                  }
+                 }
+                }
+               }
+              }
+             }
+            }
+           }
+          }
+         }
+        }
+       }
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [108486.1.1170974339]
+      SINGLEINSTANCE false
+      ID 'Pegging'
+      PARENTKEY [514.0.2180]
+      OBJECTTYPE Form
+      CREATETYPE FormPegging
+      CONTENTS
+      {
+       State := normal
+       (354,421,990,664)
+       DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[0]Selection[NONE]
+      }
+      INFOOBJECTS
+      {
+       INFOOBJECT
+       {
+        KEY [108486.1.1171911809]
+        OBJECTTYPE SplitterWnd
+        INFOOBJECTS
+        {
+         INFOOBJECT
+         {
+          KEY [108486.1.1171911810]
+          OBJECTTYPE SplitterPane
+          CONTENTS
+          {
+           Size 50.132802124834
+           VISIBLE true
+          }
+          INFOOBJECTS
+          {
+           INFOOBJECT
+           {
+            KEY [108486.1.1171921411]
+            OBJECTTYPE SplitterWnd
+            INFOOBJECTS
+            {
+             INFOOBJECT
+             {
+              KEY [108486.1.1171921412]
+              OBJECTTYPE SplitterPane
+              CONTENTS
+              {
+               Size 52.6515151515151
+               VISIBLE true
+              }
+              INFOOBJECTS
+              {
+               INFOOBJECT
+               {
+                KEY [108486.1.1171921414]
+                OBJECTTYPE List
+                CONTENTS
+                {
+                 Quantorrow := false
+                }
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [108486.1.1171924299]
+                  OBJECTTYPE GUIDataSetLevel
+                  CONTENTS
+                  {
+                   Columns
+                   {
+                     Definition := [11766.0.1025088210]
+                     {
+                       [11766.1.490215920]
+                     }
+                     SubTotals := true
+                     Visible
+                     {
+                       Column internal[DataSetImageColumn] [108486.1.2111697545]
+                       {
+                         Width := 19
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'DemandType [11660.0.340434965]'
+                         }
+                       }
+                       Column internal[DataSetImageColumn] [108486.2.15728337]
+                       {
+                         Header := 'HasValidPeggedQuantity'
+                         Width := 21
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ImgHasValidPeggedQuantity [108486.2.15494714]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [127710.1.1139010297]
+                       {
+                         Header := 'Stocking point'
+                         Width := 137
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ProductInStockingPointInPeriodPlanning [134266.1.219045427]|AsPlanningProductInStockingPoint [134266.1.8545642]|StockingPoint_MP [11660.0.488414369]|Name [101472.1.1554218718]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [108486.1.2110122000]
+                       {
+                         Header := 'Product'
+                         Width := 184
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ProductInStockingPointInPeriodPlanning [134266.1.219045427]|ProductInStockingPoint_MP [134266.1.5798354]|Product_MP [11660.0.486228287]|Name [101472.1.1551142288]'
+                         }
+                       }
+                       Column internal[DataSetConfigurableColumn] [108486.1.2112140291]
+                       {
+                         Header := 'Period start'
+                         Width := 115
+                         Subtotals := false
+                         Specific
+                         {
+                           Text := 'VALUE( object.GetPeriodStart() )'
+                           Alignment := ''
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [11766.1.490215920]
+                       {
+                         Width := 80
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'Quantity [101320.0.110374989]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [108486.1.2110122001]
+                       {
+                         Header := 'Fulfilled'
+                         Width := 82
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'FulfilledQuantity [11660.0.157649047]'
+                         }
+                       }
+                       Column internal[DataSetConfigurableColumn] [110880.2.1142677800]
+                       {
+                         Header := 'Available'
+                         Width := 79
+                         Subtotals := false
+                         Specific
+                         {
+                           Text := 'VALUE( object.GetAvailableQuantityForPegging() )'
+                           Alignment := ''
+                         }
+                       }
+                       Column internal[DataSetChartColumn] [108486.1.2112734746]
+                       {
+                         Header := 'Fulfillment'
+                         Width := 104
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           Type := 'Stacked Bar'
+                           Relative := true
+                           Points
+                           {
+                             PointDefinition
+                             {
+                               Text := 'minvalue( object.GetPeggedQuantity(), object.FulfilledQuantity() )'
+                               Color := 'Green'
+                               NegativeColor := 'Red'
+                               Description := 'Fulfilled pegged quantity'
+                             }
+                             PointDefinition
+                             {
+                               Text := 'maxvalue( object.FulfilledQuantity() - object.GetPeggedQuantity(), 0 )'
+                               Color := '$FF9900'
+                               NegativeColor := 'Red'
+                               Description := 'Unpegged quantity'
+                             }
+                             PointDefinition
+                             {
+                               Text := 'maxvalue( object.GetPeggedQuantity() - object.FulfilledQuantity(), 0 )'
+                               Color := 'Red'
+                               NegativeColor := 'Red'
+                               Description := 'Overpegged quantity'
+                             }
+                           }
+                         }
+                       }
+                     }
+                   }
+                   ColumnSort [108486.1.2112140291] true false
+                  }
+                 }
+                }
+               }
+              }
+             }
+             INFOOBJECT
+             {
+              KEY [108486.1.1171921413]
+              OBJECTTYPE SplitterPane
+              CONTENTS
+              {
+               Size 47.3484848484849
+               VISIBLE true
+              }
+              INFOOBJECTS
+              {
+               INFOOBJECT
+               {
+                KEY [113694.0.1490022148]
+                OBJECTTYPE List
+                CONTENTS
+                {
+                 Quantorrow := false
+                }
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [113694.0.1490022154]
+                  OBJECTTYPE GUIDataSetLevel
+                  CONTENTS
+                  {
+                   Columns
+                   {
+                     Definition := [108486.1.1171928381]
+                     {
+                       [108486.1.1171960868]
+                       [108486.1.1320715923]
+                     }
+                     SubTotals := true
+                     Visible
+                     {
+                       Column internal[DataSetImageColumn] [135072.0.40676723]
+                       {
+                         Width := 22
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'Supply_MP [134266.1.11843917]|SupplyType [108486.1.1185051348]'
+                         }
+                       }
+                       Column internal[DataSetImageColumn] [110880.9.1181376772]
+                       {
+                         Header := 'HasUserQuantity'
+                         Width := 23
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ImgHasUserQuantity [108486.1.1707654857]'
+                         }
+                       }
+                       Column internal[DataSetImageColumn] [113694.0.1490534244]
+                       {
+                         Width := 21
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ImgHasSupply [108486.2.16148330]'
+                         }
+                       }
+                       Column internal[DataSetConfigurableColumn] [113694.0.1490809329]
+                       {
+                         Header := 'Period start'
+                         Width := 115
+                         Subtotals := false
+                         Specific
+                         {
+                           Text := 'VALUE( object.Supply_MP().GetPeriodStart() )'
+                           Alignment := 'Default'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [113694.0.1490521540]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Quantor
+                         {
+                           Simple := 'sum' DataMemberString := 'Quantity [134266.1.8545959]'
+                         }
+                         Specific
+                         {
+                           DataPath := 'Quantity [134266.1.8545959]'
+                         }
+                       }
+                       Column internal[DataSetConfigurableColumn] [112884.0.2032524903]
+                       {
+                         Header := 'Cost'
+                         Width := 100
+                         Subtotals := false
+                         Quantor
+                         {
+                           Expression := 'sum' 'object.Supply_MP().GetBaseCostPerQuantity() * object.Quantity()'
+                         }
+                         Specific
+                         {
+                           Text := 'VALUE( object.Supply_MP().GetBaseCostPerQuantity() * object.Quantity() )'
+                           Alignment := 'Default'
+                         }
+                       }
+                     }
+                   }
+                   Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="Fulfillment Q134266_1_8545931">\n  <GEBFiltering Key="@Default_Filter1" TargetType="Fulfillment Q134266_1_8545931">\n    <CurrentFilter>true</CurrentFilter>\n    <Name>Default Filter</Name>\n    <Active>true</Active>\n    <IsFavorite>false</IsFavorite>\n    <SortIndex>0</SortIndex>\n    <GEBFilteringData Key="@2">\n      <DefaultColumnPrefix></DefaultColumnPrefix>\n      <ColumnPostfix></ColumnPostfix>\n      <GEBSelectColumn Key="@Quantity1" ElementType="Fulfillment Q134266_1_8545931" ValueType="Real">\n        <ColumnID>[112610.0.1005221707]</ColumnID>\n        <BaseName>Quantity</BaseName>\n        <Name>Quantity</Name>\n        <Title>Quantity</Title>\n        <IsTarget>false</IsTarget>\n        <NameHasBeenSet>false</NameHasBeenSet>\n        <ColumnFinal>Fail</ColumnFinal>\n        <AttributePathText>Quantity</AttributePathText>\n        <AttributePathIdentifier>\n        </AttributePathIdentifier>\n      </GEBSelectColumn>\n      <GEBFilter Key="@3">\n        <FreeFilterEnabled>true</FreeFilterEnabled>\n        <GEBFilterColumn Key="@4" Column="@Quantity1">\n          <ColumnID>[112610.0.1005221707]</ColumnID>\n        </GEBFilterColumn>\n        <GEBFreeFilterBody Key="@5">\n          <ExpressionText></ExpressionText>\n          <Converter>\n          </Converter>\n        </GEBFreeFilterBody>\n      </GEBFilter>\n    </GEBFilteringData>\n  </GEBFiltering>\n</GEBObjectsFilter>\n'
+                   ColumnSort [113694.0.1490809329] true false
+                   ColumnSort [113694.0.1490521540] true false
+                  }
+                 }
+                }
+               }
+              }
+             }
+            }
+           }
+          }
+         }
+         INFOOBJECT
+         {
+          KEY [108486.1.1171911811]
+          OBJECTTYPE SplitterPane
+          CONTENTS
+          {
+           Size 49.867197875166
+           VISIBLE true
+          }
+          INFOOBJECTS
+          {
+           INFOOBJECT
+           {
+            KEY [108486.1.1175693802]
+            OBJECTTYPE SplitterWnd
+            INFOOBJECTS
+            {
+             INFOOBJECT
+             {
+              KEY [108486.1.1175693803]
+              OBJECTTYPE SplitterPane
+              CONTENTS
+              {
+               Size 52.6315789473684
+               VISIBLE true
+              }
+              INFOOBJECTS
+              {
+               INFOOBJECT
+               {
+                KEY [108486.1.1175693804]
+                OBJECTTYPE List
+                CONTENTS
+                {
+                 Quantorrow := false
+                }
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [108486.1.1175693807]
+                  OBJECTTYPE GUIDataSetLevel
+                  CONTENTS
+                  {
+                   Columns
+                   {
+                     Definition := [108486.1.1175456932]
+                     {
+                       [108486.1.1175896212]
+                     }
+                     SubTotals := true
+                     Visible
+                     {
+                       Column internal[DataSetImageColumn] [108486.1.2113319927]
+                       {
+                         Width := 23
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'SupplyType [108486.1.1185051348]'
+                         }
+                       }
+                       Column internal[DataSetImageColumn] [108486.2.521730743]
+                       {
+                         Header := 'HasValidPegging'
+                         Width := 21
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ImgHasValidPegging [108486.2.479981617]'
+                         }
+                       }
+                       Column internal[DataSetImageColumn] [108486.2.14534947]
+                       {
+                         Header := 'HasValidPeggedQuantity'
+                         Width := 23
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ImgHasValidPeggedQuantity [108486.1.2146810434]'
+                         }
+                       }
+                       Column internal[DataSetConfigurableColumn] [108486.1.2113344305]
+                       {
+                         Header := 'Period start'
+                         Width := 115
+                         Subtotals := false
+                         Specific
+                         {
+                           Text := 'VALUE( object.GetPeriodStart() )'
+                           Alignment := ''
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [108486.1.2110122007]
+                       {
+                         Width := 116
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'Quantity [112884.1.1160030032]'
+                         }
+                       }
+                       Column internal[DataSetChartColumn] [108486.1.2113393570]
+                       {
+                         Header := 'Supply'
+                         Width := 72
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           Type := 'Stacked Bar'
+                           Relative := true
+                           Points
+                           {
+                             PointDefinition
+                             {
+                               Text := 'minvalue( object.GetPeggedQuantity(), object.Quantity() )'
+                               Color := '$CCCCCC'
+                               NegativeColor := 'Red'
+                               Description := 'Used quantity for pegging'
+                             }
+                             PointDefinition
+                             {
+                               Text := 'object.GetAvailableQuantityForPegging()'
+                               Color := 'Green'
+                               NegativeColor := 'Red'
+                               Description := 'Available quantity for pegging'
+                             }
+                             PointDefinition
+                             {
+                               Text := 'maxvalue( object.GetPeggedQuantity() - object.Quantity(), 0 )'
+                               Color := 'Red'
+                               NegativeColor := 'Red'
+                               Description := 'Overused quantity'
+                             }
+                           }
+                         }
+                       }
+                       Column internal[DataSetConfigurableColumn] [110880.2.1142925855]
+                       {
+                         Header := 'Available'
+                         Width := 79
+                         Subtotals := false
+                         Specific
+                         {
+                           Text := 'VALUE( object.GetAvailableQuantityForPegging() )'
+                           Alignment := ''
+                         }
+                       }
+                     }
+                   }
+                   ColumnSort [108486.1.2113344305] true false
+                  }
+                 }
+                }
+               }
+              }
+             }
+             INFOOBJECT
+             {
+              KEY [108486.1.1175693810]
+              OBJECTTYPE SplitterPane
+              CONTENTS
+              {
+               Size 47.3684210526316
+               VISIBLE true
+              }
+              INFOOBJECTS
+              {
+               INFOOBJECT
+               {
+                KEY [108486.1.1175693811]
+                OBJECTTYPE List
+                CONTENTS
+                {
+                 Quantorrow := false
+                }
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [108486.1.1175693814]
+                  OBJECTTYPE GUIDataSetLevel
+                  CONTENTS
+                  {
+                   Columns
+                   {
+                     Definition := [108486.1.1175456935]
+                     {
+                       [108486.1.1175896215]
+                       [108486.1.1320715924]
+                     }
+                     SubTotals := true
+                     Visible
+                     {
+                       Column internal[DataSetImageColumn] [108486.1.2113733284]
+                       {
+                         Header := 'DemandType'
+                         Width := 23
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'Demand_MP [134266.1.16794407]|DemandType [11660.0.340434965]'
+                         }
+                       }
+                       Column internal[DataSetImageColumn] [110880.9.1181425511]
+                       {
+                         Header := 'HasUserQuantity'
+                         Width := 25
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ImgHasUserQuantity [108486.1.1707654857]'
+                         }
+                       }
+                       Column internal[DataSetImageColumn] [113694.0.1488690244]
+                       {
+                         Width := 21
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ImgHasDemand [113694.0.1488476421]'
+                         }
+                       }
+                       Column internal[DataSetConfigurableColumn] [108486.1.2113843687]
+                       {
+                         Header := 'Period start'
+                         Width := 115
+                         Subtotals := false
+                         Specific
+                         {
+                           Text := 'VALUE( object.Demand_MP().GetPeriodStart() )'
+                           Alignment := ''
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [108486.1.2110122012]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Quantor
+                         {
+                           Simple := 'sum' DataMemberString := 'Quantity [134266.1.8545959]'
+                         }
+                         Specific
+                         {
+                           DataPath := 'Quantity [134266.1.8545959]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [108486.1.2110122013]
+                       {
+                         Header := 'Cost'
+                         Width := 100
+                         Subtotals := false
+                         Quantor
+                         {
+                           Simple := 'sum' DataMemberString := 'BaseCost [134266.1.8545935]'
+                         }
+                         Specific
+                         {
+                           DataPath := 'BaseCost [134266.1.8545935]'
+                         }
+                       }
+                     }
+                   }
+                   ColumnSort [108486.1.2113843687] true false
+                  }
+                 }
+                }
+               }
+              }
+             }
+            }
+           }
+          }
+         }
+        }
+       }
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [127710.1.818301225]
+      SINGLEINSTANCE false
+      ID '浜у搧瑙勫垝鏁版嵁鐭╅樀'
+      PARENTKEY [514.0.2180]
+      OBJECTTYPE Form
+      CREATETYPE FormProductPlanningMatrix
+      CONTENTS
+      {
+       State := normal
+       (0,0,0,0)
+       DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4493;]TabIdx[0]Selection[FRONT]
+      }
+      INFOOBJECTS
+      {
+       INFOOBJECT
+       {
+        KEY [127710.1.821866707]
+        OBJECTTYPE CheckBox
+        CONTENTS
+        {
+         Checkstate 1
+        }
+       }
+       INFOOBJECT
+       {
+        KEY [127710.1.821866918]
+        OBJECTTYPE StringSelection
+        CONTENTS
+        {
+         BoundValue '[Leaf product]'
+        }
+       }
+       INFOOBJECT
+       {
+        KEY [127710.1.818312567]
+        OBJECTTYPE MatrixEditor
+        CONTENTS
+        {
+         RowHeight 29
+         ColumnWidth 82
+         FirstColumnWidth 433
+         Attributes 'SupplyQuantity;DependentDemandAndSalesDemandQuantity;TargetInventoryLevel;InventoryLevelEnd;StockLevelInDays'
+        }
+        INFOOBJECTS
+        {
+         INFOOBJECT
+         {
+          KEY [127710.1.819572713]
+          OBJECTTYPE GUIScaleView
+          INFOOBJECTS
+          {
+           INFOOBJECT
+           {
+            KEY [127710.1.820829335]
+            OBJECTTYPE UserConfigurableInformation
+            CONTENTS
+            {
+             ObjectText 'VALUE(object.Start())'
+            }
+           }
+          }
+         }
+         INFOOBJECT
+         {
+          KEY [127710.1.819572710]
+          OBJECTTYPE GUIScaleView
+          INFOOBJECTS
+          {
+           INFOOBJECT
+           {
+            KEY [127710.1.820300549]
+            OBJECTTYPE UserConfigurableInformation
+            CONTENTS
+            {
+             ObjectText 'VALUE( object.Name() ) (VALUE( object.UnitOfMeasureName() ))'
+            }
+           }
+          }
+         }
+        }
+       }
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [107654.0.139602704]
+      SINGLEINSTANCE false
+      ID '閿�鍞渶姹�'
+      PARENTKEY [514.0.2180]
+      OBJECTTYPE Form
+      CREATETYPE FormSalesDemands
+      CONTENTS
+      {
+       State := normal
+       (1344,0,192,928)
+       DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4493;]TabIdx[1]Selection[NONE]
+      }
+      INFOOBJECTS
+      {
+       INFOOBJECT
+       {
+        KEY [124112.0.87054864]
+        OBJECTTYPE SplitterWnd
+        INFOOBJECTS
+        {
+         INFOOBJECT
+         {
+          KEY [124112.0.87054865]
+          OBJECTTYPE SplitterPane
+          CONTENTS
+          {
+           Size 72.2642807983482
+           VISIBLE true
+          }
+          INFOOBJECTS
+          {
+           INFOOBJECT
+           {
+            KEY [124112.0.87250426]
+            OBJECTTYPE List
+            CONTENTS
+            {
+             Quantorrow := false
+            }
+            INFOOBJECTS
+            {
+             INFOOBJECT
+             {
+              KEY [124112.0.87253131]
+              OBJECTTYPE GUIDataSetLevel
+              CONTENTS
+              {
+               Columns
+               {
+                 SubTotals := true
+                 Visible
+                 {
+                   Column internal[DataSetDataColumn] [414702.1.48371364]
+                   {
+                     Width := 155
+                     SizedByUser := true
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'StartDate [151892.1.1091152440]'
+                       AttributePathIdentifier := "StartType('external[Forecast]')
+                       Attribute([151892.1.1091152440])"
+                     }
+                   }
+                   Column internal[DataSetImageColumn] [124112.0.127773359]
+                   {
+                     Width := 46
+                     SizedByUser := true
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'ImgNotLinkedToPeriod [11766.1.1447220213]'
+                     }
+                   }
+                   Column internal[DataSetImageColumn] [124112.0.127773360]
+                   {
+                     Width := 20
+                     SizedByUser := true
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'ImgIsPostponed [101472.1.1295487708]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [124112.0.127773361]
+                   {
+                     Header := 'Sales segment'
+                     Width := 136
+                     Subtotals := true
+                     Specific
+                     {
+                       DataPath := 'SalesSegment_MP [124112.0.66357172]|Name [101472.1.1552565832]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [124112.0.127773362]
+                   {
+                     Header := 'Product'
+                     Width := 171
+                     SizedByUser := true
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'ProductInStockingPoint_MP [124112.0.61687182]|Product_MP [11660.0.486228287]|Name [101472.1.1551142288]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [124112.0.127773363]
+                   {
+                     Header := 'Stocking point'
+                     Width := 182
+                     SizedByUser := true
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'ProductInStockingPoint_MP [124112.0.61687182]|StockingPoint_MP [11660.0.488414369]|Name [101472.1.1554218718]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [112610.0.1212432722]
+                   {
+                     Width := 93
+                     Subtotals := false
+                     Quantor
+                     {
+                       Simple := 'sum' DataMemberString := 'Quantity [151892.1.1091152476]'
+                     }
+                     Specific
+                     {
+                       DataPath := 'Quantity [151892.1.1091152476]'
+                     }
+                   }
+                   Column internal[DataSetChartColumn] [112610.0.1108107591]
+                   {
+                     Header := 'Fulfillment'
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       Type := 'Stacked Bar'
+                       Relative := false
+                       Points
+                       {
+                         PointDefinition
+                         {
+                           Text := 'object.FulfilledQuantity() * object.DefaultUOMConversionFactor()'
+                           Color := 'Green'
+                           NegativeColor := 'Red'
+                           Description := ''
+                         }
+                         PointDefinition
+                         {
+                           Text := 'sum( object, SalesDemandInPeriod, sdip, sdip.UnfulfilledQuantity() * object.DefaultUOMConversionFactor() )'
+                           Color := '$FFA300'
+                           NegativeColor := 'Green'
+                           Description := ''
+                         }
+                       }
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [124112.0.127773364]
+                   {
+                     Width := 56
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'Price [151892.1.1091152449]'
+                     }
+                   }
+                 }
+               }
+               Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="Forecast Q124112_0_61686821">\n  <GEBFiltering Key="@Default_Filter1" TargetType="Forecast Q124112_0_61686821">\n    <CurrentFilter>true</CurrentFilter>\n    <Name>Default Filter</Name>\n    <Active>true</Active>\n    <IsFavorite>false</IsFavorite>\n    <SortIndex>0</SortIndex>\n    <GEBFilteringData Key="@2">\n      <DefaultColumnPrefix></DefaultColumnPrefix>\n      <ColumnPostfix></ColumnPostfix>\n      <GEBSelectColumn Key="@Quantity1" ElementType="Forecast Q124112_0_61686821" ValueType="Real">\n        <ColumnID>[112610.0.1212345820]</ColumnID>\n        <BaseName>Quantity</BaseName>\n        <Name>Quantity</Name>\n        <Title>Quantity</Title>\n        <IsTarget>false</IsTarget>\n        <NameHasBeenSet>false</NameHasBeenSet>\n        <ColumnFinal>Fail</ColumnFinal>\n        <AttributePathText>Quantity</AttributePathText>\n        <AttributePathIdentifier>\n        </AttributePathIdentifier>\n      </GEBSelectColumn>\n      <GEBSelectColumn Key="@FulfilledQuantity1" ElementType="Forecast Q124112_0_61686821" ValueType="Real">\n        <ColumnID>[112610.0.1212349003]</ColumnID>\n        <BaseName>FulfilledQuantity</BaseName>\n        <Name>FulfilledQuantity</Name>\n        <Title>FulfilledQuantity</Title>\n        <IsTarget>false</IsTarget>\n        <NameHasBeenSet>false</NameHasBeenSet>\n        <ColumnFinal>Fail</ColumnFinal>\n        <AttributePathText>FulfilledQuantity</AttributePathText>\n        <AttributePathIdentifier>\n        </AttributePathIdentifier>\n      </GEBSelectColumn>\n      <GEBFilter Key="@3">\n        <FreeFilterEnabled>true</FreeFilterEnabled>\n        <GEBFilterColumn Key="@4" Column="@Quantity1">\n          <ColumnID>[112610.0.1212345820]</ColumnID>\n        </GEBFilterColumn>\n        <GEBFilterColumn Key="@5" Column="@FulfilledQuantity1">\n          <ColumnID>[112610.0.1212349003]</ColumnID>\n        </GEBFilterColumn>\n        <GEBFreeFilterBody Key="@6">\n          <ExpressionText></ExpressionText>\n          <Converter>\n          </Converter>\n        </GEBFreeFilterBody>\n      </GEBFilter>\n    </GEBFilteringData>\n  </GEBFiltering>\n</GEBObjectsFilter>\n'
+               ColumnSort [414702.1.48371364] true false
+              }
+             }
+            }
+           }
+          }
+         }
+         INFOOBJECT
+         {
+          KEY [124112.0.87054866]
+          OBJECTTYPE SplitterPane
+          CONTENTS
+          {
+           Size 27.7357192016518
+           VISIBLE true
+          }
+          INFOOBJECTS
+          {
+           INFOOBJECT
+           {
+            KEY [116826.1.6886965]
+            OBJECTTYPE SplitterWnd
+            INFOOBJECTS
+            {
+             INFOOBJECT
+             {
+              KEY [116826.1.6886966]
+              OBJECTTYPE SplitterPane
+              CONTENTS
+              {
+               VISIBLE true
+              }
+              INFOOBJECTS
+              {
+               INFOOBJECT
+               {
+                KEY [116826.1.6887229]
+                OBJECTTYPE List
+                CONTENTS
+                {
+                 Quantorrow := false
+                }
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [116826.1.6887235]
+                  OBJECTTYPE GUIDataSetLevel
+                  CONTENTS
+                  {
+                   Columns
+                   {
+                     Definition := [11766.0.1025088210]
+                     {
+                       [11766.1.490215920]
+                     }
+                     SubTotals := true
+                     Visible
+                     {
+                       Column internal[DataSetDataColumn] [127710.1.899918256]
+                       {
+                         Header := 'Sales segment'
+                         Width := 120
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'SalesSegmentName [123718.0.362599768]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [127710.1.899918258]
+                       {
+                         Header := 'Product'
+                         Width := 103
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ProductID [123718.0.362599725]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [127710.1.899918257]
+                       {
+                         Header := 'Stocking point'
+                         Width := 121
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'StockingPointID [123718.0.362599783]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [127710.1.899918259]
+                       {
+                         Header := 'Start'
+                         Width := 96
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'StartDate [123718.0.362599776]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [127710.1.899918260]
+                       {
+                         Header := 'End'
+                         Width := 98
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'EndDate [123718.0.362599633]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [127710.1.899918261]
+                       {
+                         Width := 77
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'Quantity [101320.0.110374989]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [127710.1.899918262]
+                       {
+                         Header := 'Fulfilled'
+                         Width := 69
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'FulfilledQuantity [11660.0.157649047]'
+                         }
+                       }
+                     }
+                   }
+                   ColumnSort [127710.1.899918259] true false
+                  }
+                 }
+                }
+               }
+              }
+             }
+             INFOOBJECT
+             {
+              KEY [116826.1.6886967]
+              OBJECTTYPE SplitterPane
+              CONTENTS
+              {
+               VISIBLE true
+              }
+              INFOOBJECTS
+              {
+               INFOOBJECT
+               {
+                KEY [116826.1.6889558]
+                OBJECTTYPE List
+                CONTENTS
+                {
+                 Quantorrow := false
+                }
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [116826.1.6889563]
+                  OBJECTTYPE GUIDataSetLevel
+                  CONTENTS
+                  {
+                   Columns
+                   {
+                     Definition := [11766.0.1025088210]
+                     {
+                       [11766.1.490215920]
+                     }
+                     SubTotals := true
+                     Visible
+                     {
+                       Column internal[DataSetDataColumn] [127710.1.899918256]
+                       {
+                         Header := 'Sales segment'
+                         Width := 212
+                         Subtotals := true
+                         Specific
+                         {
+                           DataPath := 'SalesSegmentName [123718.0.362599768]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [127710.1.899918258]
+                       {
+                         Header := 'Product'
+                         Width := 118
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ProductID [123718.0.362599725]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [127710.1.899918257]
+                       {
+                         Header := 'Stocking point'
+                         Width := 124
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'StockingPointID [123718.0.362599783]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [127710.1.899918259]
+                       {
+                         Header := 'Start'
+                         Width := 103
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'StartDate [123718.0.362599776]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [127710.1.899918260]
+                       {
+                         Header := 'End'
+                         Width := 103
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'EndDate [123718.0.362599633]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [127710.1.899918261]
+                       {
+                         Width := 77
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'Quantity [101320.0.110374989]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [127710.1.899918262]
+                       {
+                         Header := 'Fulfilled'
+                         Width := 69
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'FulfilledQuantity [11660.0.157649047]'
+                         }
+                       }
+                     }
+                   }
+                   DataMemberSort 'ProductInStockingPoint_MP [123718.0.362599994]|Product_MP [11660.0.486228287]|Name [101472.1.1551142288]' true true
+                   DataMemberSort 'ProductInStockingPoint_MP [123718.0.362599994]|StockingPoint_MP [11660.0.488414369]|Name [101472.1.1554218718]' true true
+                  }
+                 }
+                }
+               }
+              }
+             }
+            }
+           }
+          }
+         }
+        }
+       }
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [136682.0.365472357]
+      SINGLEINSTANCE false
+      ID '鍔犲伐璺緞'
+      PARENTKEY [514.0.2180]
+      OBJECTTYPE Form
+      CREATETYPE FormRoutings
+      CONTENTS
+      {
+       State := normal
+       (0,0,0,0)
+       DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[1]Selection[NONE]
+      }
+      INFOOBJECTS
+      {
+       INFOOBJECT
+       {
+        KEY [136682.0.365497231]
+        OBJECTTYPE SplitterWnd
+        INFOOBJECTS
+        {
+         INFOOBJECT
+         {
+          KEY [136682.0.365497232]
+          OBJECTTYPE SplitterPane
+          CONTENTS
+          {
+           VISIBLE true
+          }
+          INFOOBJECTS
+          {
+           INFOOBJECT
+           {
+            KEY [136682.0.365497233]
+            OBJECTTYPE List
+            CONTENTS
+            {
+             Quantorrow := false
+            }
+            INFOOBJECTS
+            {
+             INFOOBJECT
+             {
+              KEY [136682.0.365497235]
+              OBJECTTYPE GUIDataSetLevel
+              CONTENTS
+              {
+               Columns
+               {
+                 SubTotals := true
+                 Visible
+                 {
+                   Column internal[DataSetDataColumn] [414702.1.14320987]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'AllowWIPInventory [127238.0.1952375105]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14320988]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'BackgroundRegionHeight [110994.0.1957900049]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14320989]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'BackgroundRegionWidth [110994.0.1957900066]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14320990]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'CopyHelper [145808.0.1360181115]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14320991]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'End [113694.1.1906651480]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14320992]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'HasInputOrOutput [127710.1.662345328]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14320993]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'HasNonSystemInputOrOutput [158636.0.308982340]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14320994]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'HasStep [127710.1.661407939]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14320995]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'ID [113694.1.1906651466]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14320996]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'IsEnabled [113694.1.1929700744]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14320997]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'IsManuallyConfigured [129442.0.45566327]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14320998]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'IsSoftDeleted [124808.0.1333363657]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14320999]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'IsValidData [124808.0.1255490063]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14321000]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'LeftRegionHeight [110994.0.1930836805]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14321001]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'LeftRegionWidth [110994.0.1921226998]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14321002]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'MaxNrOfOperations [110994.0.1912206775]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14321003]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'MinXOutputPISP [113694.1.1978168643]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14321004]
+                   {
+                     Width := 376
+                     SizedByUser := true
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'Name [113694.1.1906651470]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14321005]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'SanityCheckDataMostSevere [122192.0.113673777]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14321006]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'SanityCheckDataMostSevereCount [122192.0.113673781]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14321007]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'SanityCheckDataTotalViolationCount [122192.0.170828320]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14321008]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'Start [113694.1.1906651474]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14321009]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'TopRegionHeight [110994.0.1930538690]'
+                     }
+                   }
+                   Column internal[DataSetDataColumn] [414702.1.14321010]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'TopRegionWidth [110994.0.1921955322]'
+                     }
+                   }
+                   Column internal[DataSetImageColumn] [414702.1.14321011]
+                   {
+                     Width := 100
+                     Subtotals := false
+                     Specific
+                     {
+                       DataPath := 'ImgIsEnabled [113694.1.1934081987]'
+                     }
+                   }
+                 }
+               }
+              }
+             }
+            }
+           }
+          }
+         }
+         INFOOBJECT
+         {
+          KEY [136682.0.365497250]
+          OBJECTTYPE SplitterPane
+          CONTENTS
+          {
+           VISIBLE true
+          }
+          INFOOBJECTS
+          {
+           INFOOBJECT
+           {
+            KEY [136682.0.365497251]
+            OBJECTTYPE SplitterWnd
+            INFOOBJECTS
+            {
+             INFOOBJECT
+             {
+              KEY [136682.0.365497252]
+              OBJECTTYPE SplitterPane
+              CONTENTS
+              {
+               VISIBLE true
+              }
+             }
+            }
+           }
+          }
+         }
+        }
+       }
+       INFOOBJECT
+       {
+        KEY [136682.0.365502343]
+        OBJECTTYPE CheckBox
+        CONTENTS
+        {
+         Checkstate 1
+        }
+       }
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [414702.0.340554698]
+      SINGLEINSTANCE false
+      ID '鍔熻兘娴嬭瘯鎸夐挳'
+      PARENTKEY [514.0.2180]
+      OBJECTTYPE Form
+      CREATETYPE FormTestButtonCollection
+      CONTENTS
+      {
+       State := normal
+       (0,0,0,0)
+       DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[3]Selection[FOCUS]
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [514.0.2141306]
+      SINGLEINSTANCE false
+      ID '鍚庡彴杈撳嚭'
+      PARENTKEY [514.0.2180]
+      OBJECTTYPE Dialog
+      CREATETYPE dlgServerMessages
+      CONTENTS
+      {
+       State := normal
+       (0,0,0,0)
+       DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[2]Selection[NONE]
+      }
+      INFOOBJECTS
+      {
+       INFOOBJECT
+       {
+        KEY [514.0.2141287]
+        OBJECTTYPE List
+        CONTENTS
+        {
+         Quantorrow := false
+        }
+        INFOOBJECTS
+        {
+         INFOOBJECT
+         {
+          KEY [536.0.860799]
+          OBJECTTYPE GUIDataSetLevel
+          CONTENTS
+          {
+           Columns
+           {
+             Definition := [514.0.2141302]
+             {
+               [514.0.2141305]
+             }
+             SubTotals := true
+             Visible
+             {
+               Column internal[DataSetDataColumn] [514.0.2141305]
+               {
+                 Header := 'Message'
+                 Width := 100
+                 Subtotals := false
+                 Specific
+                 {
+                   DataPath := 'Message [1.2.530]'
+                 }
+               }
+             }
+           }
+           Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="internal[ClientReport]">\n  <GEBFiltering Key="@Default_Filter1" TargetType="internal[ClientReport]">\n    <CurrentFilter>true</CurrentFilter>\n    <Name>Default Filter</Name>\n    <Active>true</Active>\n    <IsFavorite>false</IsFavorite>\n    <SortIndex>0</SortIndex>\n    <GEBFilteringData Key="@2">\n      <DefaultColumnPrefix></DefaultColumnPrefix>\n      <ColumnPostfix></ColumnPostfix>\n      <GEBSelectColumn Key="@Message1" ElementType="internal[ClientReport]" ValueType="String">\n        <ColumnID>[414702.1.53972260]</ColumnID>\n        <BaseName>Message</BaseName>\n        <Name>Message</Name>\n        <Title>Message</Title>\n        <IsTarget>false</IsTarget>\n        <NameHasBeenSet>true</NameHasBeenSet>\n        <ColumnFinal>Fail</ColumnFinal>\n        <AttributePathText>Message</AttributePathText>\n        <AttributePathIdentifier>\n        </AttributePathIdentifier>\n      </GEBSelectColumn>\n      <GEBFilter Key="@3">\n        <FreeFilterEnabled>true</FreeFilterEnabled>\n        <GEBFilterColumn Key="@4" Column="@Message1">\n          <ColumnID>[414702.1.53972260]</ColumnID>\n        </GEBFilterColumn>\n        <GEBFreeFilterBody Key="@5">\n          <ExpressionText></ExpressionText>\n          <Converter>\n          </Converter>\n        </GEBFreeFilterBody>\n      </GEBFilter>\n    </GEBFilteringData>\n  </GEBFiltering>\n</GEBObjectsFilter>\n'
+           DataMemberSort 'Index [1.2.531]' true true
+          }
+         }
+        }
+       }
+      }
+     }
+     INFOOBJECT
+     {
+      KEY [414702.0.137524322]
+      SINGLEINSTANCE false
+      ID 'Analysis GlobalOTDTable'
+      PARENTKEY [514.0.2180]
+      OBJECTTYPE Form
+      CREATETYPE frmStandardAnalysisGlobalOTDTable
+      CONTENTS
+      {
+       State := normal
+       (0,0,0,0)
+       DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4493;]TabIdx[2]Selection[NONE]
+      }
+      INFOOBJECTS
+      {
+       INFOOBJECT
+       {
+        KEY [530.0.3531801]
+        OBJECTTYPE SplitterWnd
+        INFOOBJECTS
+        {
+         INFOOBJECT
+         {
+          KEY [530.0.3531802]
+          OBJECTTYPE SplitterPane
+          CONTENTS
+          {
+           VISIBLE true
+          }
+          INFOOBJECTS
+          {
+           INFOOBJECT
+           {
+            KEY [530.0.3531806]
+            OBJECTTYPE SplitterWnd
+            INFOOBJECTS
+            {
+             INFOOBJECT
+             {
+              KEY [530.0.3531807]
+              OBJECTTYPE SplitterPane
+              CONTENTS
+              {
+               VISIBLE true
+              }
+              INFOOBJECTS
+              {
+               INFOOBJECT
+               {
+                KEY [530.0.3532065]
+                OBJECTTYPE GUIAnalysis
+                CONTENTS
+                {
+                 START(0,0,0,0,false)
+                 ANALYSIS(0,0,0,0,false,'Analysis1')
+                 {
+                   SOURCE 'Types' '[414702.0.340560328]' 0
+                 
+                   NAME 'Analysis1'
+                 }
+                 COLUMNSETTINGS
+                 {
+                   CapacityAllocationResults
+                   {
+                     Columns
+                     {
+                       Visible
+                       {
+                         Column internal[DataSetDataColumn] [414702.1.64628063]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'Date [414702.0.388471425]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628064]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'Description [414702.0.388471435]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628065]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'Division [414702.0.340560477]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628066]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'ID [414702.0.388471445]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628067]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'ManufacturedDate [414702.0.388471485]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628068]
+                         {
+                           Width := 173
+                           SizedByUser := true
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'ModuleBase [414702.0.340560467]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628069]
+                         {
+                           Width := 199
+                           SizedByUser := true
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'ModuleMaterialCode [414702.0.340560428]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628070]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'ModuleMeasurementUnit [414702.0.340560457]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628071]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'NumberOfModules [414702.0.340560441]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628072]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'NumberOfPanels [414702.0.340560390]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628073]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'PanelBase [414702.0.340560370]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628074]
+                         {
+                           Width := 180
+                           SizedByUser := true
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'PanelMaterialCode [414702.0.340560380]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628075]
+                         {
+                           Width := 231
+                           SizedByUser := true
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'PanelMeasurementUnit [414702.0.340560403]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628076]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'ProductID [414702.0.388471455]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628077]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'RequirementDate [414702.0.340560505]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628078]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'StockingPointID [414702.0.388471465]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628079]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'UserQuantity [414702.0.388471475]'
+                           }
+                         }
+                         Column internal[DataSetDataColumn] [414702.1.64628080]
+                         {
+                           Width := 100
+                           Subtotals := false
+                           Specific
+                           {
+                             DataPath := 'VersionNumber [414702.0.340560354]'
+                           }
+                         }
+                       }
+                     }
+                   }
+                 }
+                 CURRENT 'Analysis1'
+                 FIXEDANALYSIS
+                 {
+                 }
+                }
+               }
+               INFOOBJECT
+               {
+                KEY [530.1.25480335]
+                OBJECTTYPE List
+                CONTENTS
+                {
+                 Quantorrow := false
+                }
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [530.1.25480340]
+                  OBJECTTYPE GUIDataSetLevel
+                  CONTENTS
+                  {
+                   Columns
+                   {
+                     Definition := [530.1.25480345]
+                     {
+                       [530.1.25480393]
+                       [530.1.25480394]
+                     }
+                     SubTotals := true
+                     Visible
+                     {
+                       Column internal[DataSetDataColumn] [530.1.25480393]
+                       {
+                         Header := 'Name'
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'Name [1.2.2366]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [530.1.25480394]
+                       {
+                         Header := 'Description'
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'Description [1.2.1211]'
+                         }
+                       }
+                     }
+                   }
+                   ColumnSort [530.1.25480393] true false
+                  }
+                 }
+                }
+               }
+              }
+             }
+             INFOOBJECT
+             {
+              KEY [530.0.3531808]
+              OBJECTTYPE SplitterPane
+              CONTENTS
+              {
+               VISIBLE true
+              }
+              INFOOBJECTS
+              {
+               INFOOBJECT
+               {
+                KEY [530.0.3532013]
+                OBJECTTYPE GUIAnalysisGrid
+                CONTENTS
+                {
+                 NEWFORMAT
+                 COLUMN 102 50
+                 COLUMN 103 50
+                }
+               }
+              }
+             }
+            }
+           }
+          }
+         }
+         INFOOBJECT
+         {
+          KEY [530.0.3531803]
+          OBJECTTYPE SplitterPane
+          CONTENTS
+          {
+           VISIBLE true
+          }
+          INFOOBJECTS
+          {
+           INFOOBJECT
+           {
+            KEY [530.0.3531811]
+            OBJECTTYPE SplitterWnd
+            INFOOBJECTS
+            {
+             INFOOBJECT
+             {
+              KEY [530.0.3531812]
+              OBJECTTYPE SplitterPane
+              CONTENTS
+              {
+               Size 44.6569920844327
+               VISIBLE true
+              }
+              INFOOBJECTS
+              {
+               INFOOBJECT
+               {
+                KEY [530.0.3532136]
+                OBJECTTYPE SplitterWnd
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [530.0.3532137]
+                  OBJECTTYPE SplitterPane
+                  CONTENTS
+                  {
+                   VISIBLE true
+                  }
+                  INFOOBJECTS
+                  {
+                   INFOOBJECT
+                   {
+                    KEY [530.0.3532138]
+                    OBJECTTYPE SplitterWnd
+                    INFOOBJECTS
+                    {
+                     INFOOBJECT
+                     {
+                      KEY [530.0.3532139]
+                      OBJECTTYPE SplitterPane
+                      CONTENTS
+                      {
+                       VISIBLE true
+                      }
+                      INFOOBJECTS
+                      {
+                       INFOOBJECT
+                       {
+                        KEY [530.0.3532140]
+                        OBJECTTYPE List
+                        CONTENTS
+                        {
+                         Quantorrow := false
+                        }
+                        INFOOBJECTS
+                        {
+                         INFOOBJECT
+                         {
+                          KEY [530.0.3532156]
+                          OBJECTTYPE GUIDataSetLevel
+                          CONTENTS
+                          {
+                           Columns
+                           {
+                             Definition := [514.0.499727]
+                             {
+                               [514.0.499730]
+                               [530.1.32701549]
+                               [678.0.64301138]
+                             }
+                             SubTotals := true
+                             Visible
+                             {
+                               Column internal[DataSetDataColumn] [514.0.499730]
+                               {
+                                 Header := 'Name'
+                                 Width := 68
+                                 Subtotals := false
+                                 Specific
+                                 {
+                                   DataPath := 'Name [1.2.34]'
+                                 }
+                               }
+                               Column internal[DataSetDataColumn] [530.1.32701549]
+                               {
+                                 Header := 'Description'
+                                 Width := 105
+                                 Subtotals := false
+                                 Specific
+                                 {
+                                   DataPath := 'Description [1.2.2564]'
+                                 }
+                               }
+                               Column internal[DataSetDataColumn] [678.0.64301138]
+                               {
+                                 Header := 'astype(UITypeDataMember).DataType.FullName'
+                                 Width := 404
+                                 Subtotals := false
+                                 Specific
+                                 {
+                                   DataPath := 'downcast(internal[UITypeDataMember]) [1.1.1409]|DataType [1.3.1182]|FullName [1.2.8615]'
+                                 }
+                               }
+                             }
+                           }
+                           ColumnSort [514.0.499730] true false
+                          }
+                         }
+                        }
+                       }
+                      }
+                     }
+                     INFOOBJECT
+                     {
+                      KEY [530.0.3532169]
+                      OBJECTTYPE SplitterPane
+                      CONTENTS
+                      {
+                       VISIBLE true
+                      }
+                      INFOOBJECTS
+                      {
+                       INFOOBJECT
+                       {
+                        KEY [530.0.3532170]
+                        OBJECTTYPE List
+                        CONTENTS
+                        {
+                         Quantorrow := false
+                        }
+                        INFOOBJECTS
+                        {
+                         INFOOBJECT
+                         {
+                          KEY [530.0.3532175]
+                          OBJECTTYPE GUIDataSetLevel
+                          CONTENTS
+                          {
+                           Columns
+                           {
+                             Definition := [514.0.499727]
+                             {
+                               [514.0.499730]
+                               [530.1.32701549]
+                               [678.0.64301138]
+                             }
+                             SubTotals := true
+                             Visible
+                             {
+                               Column internal[DataSetDataColumn] [514.0.499730]
+                               {
+                                 Header := 'Name'
+                                 Width := 100
+                                 Subtotals := false
+                                 Specific
+                                 {
+                                   DataPath := 'Name [1.2.34]'
+                                 }
+                               }
+                               Column internal[DataSetDataColumn] [530.1.32701549]
+                               {
+                                 Header := 'Description'
+                                 Width := 100
+                                 Subtotals := false
+                                 Specific
+                                 {
+                                   DataPath := 'Description [1.2.2564]'
+                                 }
+                               }
+                               Column internal[DataSetDataColumn] [678.0.64301138]
+                               {
+                                 Header := 'astype(UITypeDataMember).DataType.FullName'
+                                 Width := 100
+                                 Subtotals := false
+                                 Specific
+                                 {
+                                   DataPath := 'downcast(internal[UITypeDataMember]) [1.1.1409]|DataType [1.3.1182]|FullName [1.2.8615]'
+                                 }
+                               }
+                             }
+                           }
+                           ColumnSort [514.0.499730] true false
+                          }
+                         }
+                        }
+                       }
+                      }
+                     }
+                    }
+                   }
+                  }
+                 }
+                 INFOOBJECT
+                 {
+                  KEY [530.0.3532181]
+                  OBJECTTYPE SplitterPane
+                  CONTENTS
+                  {
+                   VISIBLE true
+                  }
+                  INFOOBJECTS
+                  {
+                   INFOOBJECT
+                   {
+                    KEY [530.1.8006303]
+                    OBJECTTYPE SplitterWnd
+                    INFOOBJECTS
+                    {
+                     INFOOBJECT
+                     {
+                      KEY [530.1.8006304]
+                      OBJECTTYPE SplitterPane
+                      CONTENTS
+                      {
+                       VISIBLE true
+                      }
+                     }
+                     INFOOBJECT
+                     {
+                      KEY [530.1.8006305]
+                      OBJECTTYPE SplitterPane
+                      CONTENTS
+                      {
+                       VISIBLE true
+                      }
+                      INFOOBJECTS
+                      {
+                       INFOOBJECT
+                       {
+                        KEY [530.0.3532182]
+                        OBJECTTYPE GUIAnalysisBarChart
+                        CONTENTS
+                        {
+                         LeftSize 207
+                        }
+                       }
+                      }
+                     }
+                    }
+                   }
+                  }
+                 }
+                }
+               }
+              }
+             }
+             INFOOBJECT
+             {
+              KEY [530.0.3531813]
+              OBJECTTYPE SplitterPane
+              CONTENTS
+              {
+               Size 55.3430079155673
+               VISIBLE true
+              }
+              INFOOBJECTS
+              {
+               INFOOBJECT
+               {
+                KEY [530.0.3531950]
+                OBJECTTYPE List
+                CONTENTS
+                {
+                 Quantorrow := false
+                }
+                INFOOBJECTS
+                {
+                 INFOOBJECT
+                 {
+                  KEY [530.0.3531958]
+                  OBJECTTYPE GUIDataSetLevel
+                  CONTENTS
+                  {
+                   Columns
+                   {
+                     SubTotals := true
+                     Visible
+                     {
+                       Column internal[DataSetDataColumn] [414702.1.64628063]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'Date [414702.0.388471425]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628064]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'Description [414702.0.388471435]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628065]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'Division [414702.0.340560477]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628066]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ID [414702.0.388471445]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628067]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ManufacturedDate [414702.0.388471485]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628068]
+                       {
+                         Width := 173
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ModuleBase [414702.0.340560467]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628069]
+                       {
+                         Width := 199
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ModuleMaterialCode [414702.0.340560428]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628070]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ModuleMeasurementUnit [414702.0.340560457]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628071]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'NumberOfModules [414702.0.340560441]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628072]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'NumberOfPanels [414702.0.340560390]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628073]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'PanelBase [414702.0.340560370]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628074]
+                       {
+                         Width := 180
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'PanelMaterialCode [414702.0.340560380]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628075]
+                       {
+                         Width := 231
+                         SizedByUser := true
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'PanelMeasurementUnit [414702.0.340560403]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628076]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'ProductID [414702.0.388471455]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628077]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'RequirementDate [414702.0.340560505]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628078]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'StockingPointID [414702.0.388471465]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628079]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'UserQuantity [414702.0.388471475]'
+                         }
+                       }
+                       Column internal[DataSetDataColumn] [414702.1.64628080]
+                       {
+                         Width := 100
+                         Subtotals := false
+                         Specific
+                         {
+                           DataPath := 'VersionNumber [414702.0.340560354]'
+                         }
+                       }
+                     }
+                   }
+                  }
+                 }
+                }
+               }
+              }
+             }
+            }
+           }
+          }
+         }
+        }
+       }
+      }
+     }
+    }
+   }
+  }
+}
diff --git a/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/ManufactureLT.vw b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/ManufactureLT.vw
new file mode 100644
index 0000000..76e471c
--- /dev/null
+++ b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/ManufactureLT.vw
@@ -0,0 +1,239 @@
+Quintiq file version 2.0
+{
+  viewcontents
+  {
+    forms
+    {
+      form_legacy_1
+      {
+        title: 'Scenario manager'
+        shown: true
+        componentID: 'FormScenarioManager'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 1
+          rowSpan: 8
+          columnPosition: 1
+          columnSpan: 5
+        }
+        components
+        {
+          FormScenarioManager_ListScenario
+          {
+          }
+          FormScenarioManager_DataSetLevelScenario
+          {
+            groupDepth: -1
+            column_All_constraints
+            {
+              columnId: 'All constraints'
+              dataPath: 'All constraints'
+              dataType: 'string'
+              title: 'All constraints'
+              index: 0
+              subtotals: ''
+              width: 90
+            }
+            column_Name
+            {
+              columnId: 'Name'
+              dataPath: 'Name'
+              dataType: 'string'
+              title: '鍚嶇О'
+              index: 1
+              subtotals: ''
+              width: 197
+            }
+            column_ChangedBy
+            {
+              columnId: 'ChangedBy'
+              dataPath: 'ChangedBy'
+              dataType: 'string'
+              title: 'Changed by'
+              index: 2
+              subtotals: ''
+              width: 91
+            }
+            column_ChangedOn
+            {
+              columnId: 'ChangedOn'
+              dataPath: 'ChangedOn'
+              dataType: 'datetime'
+              title: 'Changed on'
+              index: 3
+              subtotals: ''
+              width: 99
+            }
+            column_StorageMode
+            {
+              columnId: 'StorageMode'
+              dataPath: 'StorageMode'
+              dataType: 'string'
+              title: 'StorageMode'
+              index: 4
+              subtotals: ''
+              width: 40
+            }
+          }
+        }
+      }
+      form_FormOptimizerPuzzles
+      {
+        title: 'Optimizer Puzzles'
+        shown: false
+        componentID: 'FormOptimizerPuzzles'
+        layout
+        {
+          mode: 'dockright'
+          index: 0
+        }
+        components
+        {
+          FormOptimizerPuzzles_ListOptimizerPuzzles
+          {
+          }
+          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+          {
+            groupDepth: -1
+            column_All_constraints
+            {
+              columnId: 'All constraints'
+              dataPath: 'All constraints'
+              dataType: 'string'
+              title: 'All constraints'
+              index: 0
+              subtotals: ''
+              width: 32
+            }
+            column_Name
+            {
+              columnId: 'Name'
+              dataPath: 'Name'
+              dataType: 'string'
+              title: '鍚嶇О'
+              index: 1
+              subtotals: ''
+              width: 109
+            }
+            column_Description
+            {
+              columnId: 'Description'
+              dataPath: 'Description'
+              dataType: 'string'
+              title: '鎻忚堪'
+              index: 2
+              subtotals: ''
+              width: 207
+            }
+          }
+        }
+      }
+      form_FormKPI
+      {
+        title: 'KPI Dashboard'
+        shown: false
+        componentID: 'FormKPI'
+        layout
+        {
+          mode: 'dockright'
+          index: 1
+        }
+        components
+        {
+          FormKPI_PanelKPI
+          {
+            sizeRatio: 1
+            activeChild: 'PanelKPISelection'
+          }
+          FormKPI_PanelKPIDashboard
+          {
+            sizeRatio: 1
+          }
+          FormKPI_PanelKPISelection
+          {
+            sizeRatio: 1
+          }
+          FormKPI_ListKPISelection
+          {
+            QuillViewData
+            {
+              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+            }
+          }
+          FormKPI_DataSetLevelKPISelection
+          {
+            groupDepth: -1
+            column_All_constraints
+            {
+              columnId: 'All constraints'
+              dataPath: 'All constraints'
+              dataType: 'string'
+              title: 'All constraints'
+              index: 0
+              subtotals: ''
+              width: 32
+            }
+            column_Name
+            {
+              columnId: 'Name'
+              dataPath: 'Name'
+              dataType: 'string'
+              title: '鍚嶇О'
+              index: 1
+              subtotals: ''
+              width: 200
+            }
+          }
+        }
+      }
+      form_SWF_DialogWorkflowParameter
+      {
+        title: 'S&OP Workflow Parameters'
+        shown: true
+        componentID: 'SWF_DialogWorkflowParameter'
+        layout
+        {
+          mode: 'dockright'
+          index: 2
+        }
+        components
+        {
+          SWF_DialogWorkflowParameter_PanelCurrentDate
+          {
+            sizeRatio: 1
+          }
+          SWF_DialogWorkflowParameter_PanelIntegration
+          {
+            sizeRatio: 1
+          }
+          SWF_DialogWorkflowParameter_PanelSynchronizeRoles
+          {
+            sizeRatio: 1
+          }
+          SWF_DialogWorkflowParameter_PanelRequestDatasetSync
+          {
+            sizeRatio: 1
+          }
+          SWF_DialogWorkflowParameter_PanelKickQueues
+          {
+            sizeRatio: 1
+          }
+        }
+      }
+    }
+    userconfigurableinformation
+    {
+    }
+    page: 'ActionBarPageData'
+    group: ''
+    index: 1
+    image: 'CODE_LINE'
+    description: '鍒堕�燣T'
+  }
+  formatversion: 2
+  id: 'ManufactureLT'
+  name: 'ManufactureLT'
+  isglobal: false
+  isroot: true
+}

--
Gitblit v1.9.3