From 30010fad767e42c851d8961cdea97a4444a756ae Mon Sep 17 00:00:00 2001
From: yypsybs <yypsybs@foxmail.com>
Date: 星期三, 20 九月 2023 14:58:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_KeyProduct.qbl                                                                                |    7 
 _Main/BL/Relations/Relation_Global_MappingActualProductInStockingPointInPeriod_GlobalOTDTable_G.qbl                                            |   23 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationCost.qbl                                                            |   17 
 _Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorDateTime.qbl                                                                              |    7 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_ShelfLife.qbl                                                                                 |    7 
 _Main/BL/Type_Global_MappingConversionFactor/Attribute_SourceUnitOfMeasureName.qbl                                                             |    8 
 _Main/BL/Type_Global_MappingOperation/Attribute_ActualCapacity.qbl                                                                             |    7 
 _Main/BL/Type_Global_MappingProduct_MP/_ROOT_Type_Global_MappingProduct_MP.qbl                                                                 |    9 
 _Main/BL/EDI/Broker_Broker_OTD_Product.qbl                                                                                                     |    1 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_SalesSegmentName.qbl                                                                         |    7 
 _Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_UnitID.qbl                                                                              |    7 
 _Main/BL/Type_Product_MP/Attribute_BusinessTypeCommon.qbl                                                                                      |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonIDownload_OnClick.def                                      |   25 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_ListPanelMaterialVehicle.def                                          |   41 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomOrder.qbl                                                       |   20 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_UnitOfMeasure_MP.qbl                                                  |   20 
 _Main/BL/Type_Global_MappingProductInLane/Attribute_LineID.qbl                                                                                 |    8 
 _Main/BL/Relations/Relation_Global_MappingCustomOrder_GlobalOTDTable_GlobalOTDTable_Global_Mapp.qbl                                            |   23 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlReceiveDatas.def                                                           |   98 
 _Main/BL/Type_Global_MappingConversionFactor/TypeIndex_TypeIndex.qbl                                                                           |   24 
 _Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_BusinessType.qbl                                                                         |    8 
 _Main/BL/Type_Global_MappingCustomOrder/TypeIndex_TypeIndex.qbl                                                                                |   12 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_Date.qbl                                                            |    8 
 _Main/BL/Relations/Relation_Global_MappingInventorySupply_GlobalOTDTable_GlobalOTDTable_Global_.qbl                                            |   23 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/_ROOT_Component_DialogCreateEditIssueWorkOrder.def                        |   42 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_UnitOfMeasureName.qbl                                                                         |    7 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingLaneLeg_Global_MappingLaneLeg_GlobalOT.qbl                                            |   23 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged#567.def                              |   16 
 _Main/BL/Type_Global_BrokerExecuteLog/Attribute_BrokerName.qbl                                                                                 |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_MenuIssueEdit.def                                                           |   25 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderDate.qbl                                                                                |    7 
 _Main/BL/Type_Global_MappingLane/Attribute_UserLeadTime.qbl                                                                                    |    7 
 _Main/BL/Type_Global_MappingLaneLeg/Attribute_UserLeadTime.qbl                                                                                 |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_Edit.def                                                      |    2 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductionWorkOrderNumber.qbl                                                     |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_listContextMenuPanelMaterialTianHua.def                               |   10 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Operation.qbl                                                                |   17 
 _Main/BL/Type_MappingProduct/TypeIndex_MappingProductTypeIndex.qbl                                                                             |    4 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Product_MP.qbl                                                               |   17 
 _Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl                                                                                    |    5 
 _Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationUnitOfMeasure_MP.qbl                                                                  |   23 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialType.qbl                                                                 |    7 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeRate.qbl                                                                         |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/_ROOT_Component_FormPanelMaterialTM17.def                                          |   39 
 _Main/BL/Type_MacroPlan/Method_ApiLanesData.qbl                                                                                                |    2 
 _Main/BL/Type_Global_MappingOperation/Attribute_PlantName.qbl                                                                                  |    8 
 _Main/BL/Type_Global_MappingProduct_MP/TypeIndex_TypeIndexIDAndBusinessType.qbl                                                                |   16 
 _Main/BL/EDI/Broker_Broker_OTD_Operation.qbl                                                                                                   |    1 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblAutomotiveElectronics_OnCreated.def                         |   17 
 _Main/BL/Type_PanelMaterialTianHua/_ROOT_Type_PanelMaterialTianHua.qbl                                                                         |    2 
 _Main/BL/Type_GlobalDTOTable/Method_ApiBuildPostRequestBody.qbl                                                                                |   27 
 _Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialAutomotiveElectronics.qbl                                                  |   41 
 _Main/UI/MacroPlannerWebApp/Component_FormIT/Component_listActionBarPagePanelMaterialIT.def                                                    |   10 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/_ROOT_Type_Global_MappingActualProductInStockingPointInPeriod.qbl             |    9 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Response_DataHolderPanelSpecializedDisplay_OnDataChanged.def         |   19 
 _Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl                                                                                  |   39 
 _Main/BL/Type_Global_MappingOperation/_ROOT_Type_Global_MappingOperation.qbl                                                                   |    9 
 _Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/Response_ListGlobal_BrokerExecuteLog_MenuDelete_OnClick.def                               |   14 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Response_DataHolderPanelSportsHealth_OnDataChanged.def                     |   19 
 _Main/BL/Type_Global_MappingConversionFactor/Attribute_ProductID.qbl                                                                           |    8 
 _Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorNo.qbl                                                                                    |    7 
 _Main/BL/Type_Global_MappingForecast/Attribute_EndDate.qbl                                                                                     |    7 
 _Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/Component_ListGlobal_BrokerExecuteLog.def                                                 |  117 
 _Main/BL/Type_MacroPlan/Method_MappingProductData.qbl                                                                                          |   45 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlContent.def                                                  |  100 
 _var/_Main/ModelSettings/Common/Dev-40/_ROOT_Role_Dev-40.properties                                                                            |  575 ++++
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlActions.def                                                                |   40 
 _Main/BL/Type_Global_MappingForecast/Attribute_StartDate.qbl                                                                                   |    7 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor.qbl                                                  |   20 
 _Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl                                                                       |   41 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentOutputRate.qbl                                                                     |    7 
 _Main/BL/Type_Global_MappingForecast/Attribute_StockingPointID.qbl                                                                             |    7 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_PlannedQuantity.qbl                                                               |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_listContextMenuPanelMaterialSpecializedDisplay.def         |   10 
 _Main/BL/Type_Global_MappingInventorySupply/Attribute_UserQuantity.qbl                                                                         |    7 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_StockType.qbl                                                       |    7 
 _Main/BL/EDI/Broker_GlobalOTDTable_StockingPointCost.qbl                                                                                       |  107 
 _Main/BL/Type_Global_MappingInventorySupply/_ROOT_Type_Global_MappingInventorySupply.qbl                                                       |    9 
 LibMacroPlannerWebUI/Translations/UI/LibMacroPlannerWebUI/Translations_zh.qtr                                                                  |    0 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationBOM.qbl                                                      |   20 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_SalesSegment_MP.qbl                                                          |   17 
 _Main/BL/Type_Global_MappingStockingPointCost/Attribute_StockingPointID.qbl                                                                    |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_DataHolderPanelMaterialVehicle_OnCreated.def                           |   19 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationCost.qbl                                                     |   20 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentCode.qbl                                                                           |    8 
 _Main/BL/Type_Global_MappingInventorySupply/Attribute_Date.qbl                                                                                 |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_listContextMenuPanelMaterialSportsHealth.def                     |   10 
 _Main/BL/Type_PanelMaterialTianHua/StaticMethod_ReceiveDataGeneration.qbl                                                                      |    2 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblSportsHealth_OnCreated.def                                  |   17 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/_ROOT_Component_FormPanelMaterialVehicle.def                                    |   50 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_CopyScenario.def                                                         |   29 
 _Main/BL/Relations/Relation_MasterPlanReleaseWorkOrder_MacroPlan_MacroPlan_MasterPlanReleaseWor.qbl                                            |   23 
 _Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl                                                                                         |    7 
 _Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl                                                                                     |   31 
 _Main/BL/Type_Global_MappingUnitCost/Attribute_OrgCode.qbl                                                                                     |    7 
 _Main/BL/Type_Global_MappingLaneLeg/_ROOT_Type_Global_MappingLaneLeg.qbl                                                                       |    9 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_StockingPointCost.qbl                                                        |   17 
 _var/_Main/ProjSettings/MacroPlanner/Views/Empty__dialog_initialization__[124808.0.140900041].vw                                               |    2 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_IsCommon.qbl                                                                                  |    7 
 _Main/BL/Type_Global_MappingConversionFactor/Attribute_TargetUnitOfMeasureName.qbl                                                             |    8 
 _Main/BL/Type_Global_MappingLaneLeg/Attribute_LaneID.qbl                                                                                       |    7 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_MaterialDescription.qbl                                                           |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblMaterialVehicle_OnCreated.def                               |   17 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingStockingPoint_MP_Global_MappingStockin.qbl                                            |   23 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_IsAvailable.qbl                                                     |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Method_FusionData.def                                                                   |   10 
 _Main/BL/Type_Global_MappingUnitCost/_ROOT_Type_Global_MappingOperationCost.qbl                                                                |    9 
 _Main/BL/Type_MappingOperation/TypeIndex_MappingOperationTypeIndex.qbl                                                                         |   18 
 _Main/BL/EDI/Broker_Broker_OTD_BaseConversionFactor.qbl                                                                                        |    4 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingSalesSegment_MP_Global_MappingSalesSeg.qbl                                            |   23 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentType.qbl                                                                           |    8 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ProcessSection.qbl                                                                          |    8 
 _Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_DisplayIndex.qbl                                                                         |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_ListPanelMaterialTianHua.def                                          |   41 
 _Main/BL/Type_Global_MappingUnitCost/Attribute_LengthOfTime.qbl                                                                                |    7 
 _Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl                                                                                   |   28 
 _Main/BL/Relations/Relation_MasterPlanReleaseWorkOrderTabulation_MasterPlanReleaseWorkOrder_Mas.qbl                                            |   23 
 _Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialVehicle.qbl                                                                |   41 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ProductInLane.qbl                                                            |   17 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/TypeIndex_MappingActualPISPIPTypeIndex.qbl                                    |   20 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_ListPanelMaterialTM.def                                                  |   41 
 _Main/BL/Type_Global_MappingLaneLeg/Attribute_DestinationStockingPointID.qbl                                                                   |    7 
 _Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl                                                                                               |    3 
 _Main/UI/MacroPlannerWebApp/Component_FormIT/Component_listContextMenuPanelMaterialIT.def                                                      |   10 
 _Main/BL/Type_Global_MappingUnitOfMeasure_MP/Attribute_IsDefault.qbl                                                                           |    7 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ConversionFactor.qbl                                                         |   17 
 _Main/BL/EDI/Broker_GlobalOTDTable_OperationCost.qbl                                                                                           |  142 +
 _Main/BL/Type_Global_MappingForecast/Attribute_BusinessType.qbl                                                                                |    7 
 _Main/BL/Type_Global_MappingConversionFactor/_ROOT_Type_Global_MappingConversionFactor.qbl                                                     |    9 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_BusinessType.qbl                                                                             |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlSelectVersion.def                                                          |   46 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def                                     |   29 
 _Main/BL/Type_Global_MappingForecast/Attribute_Price.qbl                                                                                       |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTianHua_OnCreated.def                                       |   17 
 _Main/BL/Type_Global_MappingInventorySupply/Attribute_ID.qbl                                                                                   |    8 
 _Main/BL/Type_Global_MappingLane/Attribute_ID.qbl                                                                                              |    7 
 _Main/BL/Type_Global_BrokerExecuteLog/Attribute_Name.qbl                                                                                       |    7 
 _Main/BL/EDI/Broker_GlobalOTDTable_Product_MP.qbl                                                                                              |  169 +
 _Main/BL/Type_Global_MappingInventorySupply/Attribute_ManufacturedDate.qbl                                                                     |    7 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingProduct_MP_Global_MappingProduct_MP_Gl.qbl                                            |   23 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_DescriptionOfAlternativeMaterial.qbl                                                        |    7 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_StockingPointCost.qbl                                                 |   20 
 _Main/BL/Type_Global_MappingCurrency_MP/Attribute_ID.qbl                                                                                       |    7 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_ActualInventoryLevelEnd.qbl                                         |    7 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_Quantity.qbl                                                                                 |    7 
 _Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_ParentName.qbl                                                                           |    7 
 _Main/BL/Type_Global_MappingCustomOrder/_ROOT_Type_Global_MappingCustomOrder.qbl                                                               |    9 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderID.qbl                                                                                  |    7 
 _Main/BL/Type_Global_MappingSalesSegment_MP/_ROOT_Type_Global_MappingSalesSegment_MP.qbl                                                       |    9 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_CommonBusiness.qbl                                                                            |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_listActionBarPagePanelMaterialTM.def                                     |   10 
 _Main/BL/Type_Global_MappingUnitOfMeasure_MP/TypeIndex_TypeIndexName.qbl                                                                       |   12 
 _Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialTM17.qbl                                                                   |   41 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductType.qbl                                                                             |    7 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_Price.qbl                                                                                    |    7 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_Name.qbl                                                                                      |    7 
 _Main/BL/Type_Global_MappingSalesSegment_MP/TypeIndex_TypeIndexBusinessTypeAndName.qbl                                                         |   16 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingOperation_Global_MappingOperation_Glob.qbl                                            |   23 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_Notes.qbl                                                                                     |    7 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_ProductID.qbl                                                       |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_listContextMenuPanelMaterialTM.def                                       |   10 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_StockingPointID.qbl                                                 |    8 
 _Main/BL/Type_Global_MappingStockingPointCost/Attribute_ProductID.qbl                                                                          |    7 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentDescription.qbl                                                                    |    7 
 _Main/BL/Type_Global_MappingForecast/Attribute_PriorityName.qbl                                                                                |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Response_DataHolderPanelAutomotiveElectronics_OnDataChanged.def   |   19 
 KpiTracker/Translations/UI/KPITrackerWeb/Translations_zh.qtr                                                                                   |    0 
 _Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialIT.qbl                                                                     |   41 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_StartDate.qbl                                                                     |    8 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_EndDate.qbl                                                                                   |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonGeneratePlannedData_OnClick#124.def                        |   22 
 _Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationAllMappingBrokerAndAPI.qbl                                                            |   48 
 _Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataSupplyPurchase.qbl                                                                       |   19 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def                                      |   21 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_ListPanelMaterialSportsHealth.def                                |   41 
 _Main/BL/Type_PanelMaterialVehicle/StaticMethod_ReceiveDataGeneration.qbl                                                                      |    2 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderLineID.qbl                                                                              |    7 
 _Main/BL/Type_Global_MappingUnitCost/Attribute_AccountName.qbl                                                                                 |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormIT/_ROOT_Component_FormPanelMaterialIT.def                                                           |   39 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AIPISPIP.qbl                                                          |   20 
 _Main/BL/Type_Global_MappingStockingPointCost/Attribute_AccountName.qbl                                                                        |    7 
 _Main/BL/Type_Global_MappingUnitCost/Attribute_Start.qbl                                                                                       |    7 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_ManufacturedDate.qbl                                                |    7 
 _Main/BL/Type_Global_MappingOperation/Attribute_ProcessSection.qbl                                                                             |    8 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_BusinessType.qbl                                                                              |    8 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentUnitDescription.qbl                                                                |    7 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP.qbl                                                         |   17 
 _Main/BL/Type_Global_MappingForecast/Attribute_Quantity.qbl                                                                                    |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_ButtonFusionData_OnClick.def                                           |   17 
 _Main/BL/Type_Product_MP/Attribute_KeyProduct.qbl                                                                                              |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_ListPanelMaterialAutomotiveElectronics.def              |   41 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlContent.def                                                                |   16 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_InventorySupply.qbl                                                   |   20 
 _Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting#576.qbl                                                                          |   16 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Forecast.qbl                                                          |    9 
 _Main/BL/Type_Global_MappingUnitCost/TypeIndex_TypeIndex.qbl                                                                                   |   12 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_listActionBarPagePanelMaterialSportsHealth.def                   |   10 
 _Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl                                                                      |   38 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Response_DataHolderPanelTM18_OnDataChanged.def                                     |   19 
 _Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationStockingPoint_MP.qbl                                                                  |    8 
 _Main/BL/Type_Global_MappingCurrencyRate_MP/_ROOT_Type_Global_MappingCurrencyRate_MP.qbl                                                       |    9 
 _Main/BL/Type_Global_MappingOperation/Attribute_OrganName.qbl                                                                                  |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_listActionBarPagePanelMaterialTM.def                                     |   10 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingCurrencyRate_MP_Global_MappingCurrency.qbl                                            |   23 
 _Main/BL/Type_Global_MappingUnitCost/Attribute_TimeUnit.qbl                                                                                    |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_listActionBarPagePanelMaterialSpecializedDisplay.def       |   10 
 _Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl                                                                                         |   18 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/_ROOT_Component_FormPanelMaterialAutomotiveElectronics.def        |   39 
 _Main/BL/Type_Global_MappingForecast/Attribute_UnitOfMeasureName.qbl                                                                           |    7 
 _Main/BL/Type_Global_BrokerExecuteLog/Attribute_ElementTotal.qbl                                                                               |    7 
 _Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Component_SplitterWndScenarioManager.def                                          |  113 
 _var/_Main/ModelSettings/Common/Dev-42/_ROOT_Role_Dev-42.properties                                                                            |  575 ++++
 _Main/BL/Type_Global_MappingInventorySupply/Attribute_Description.qbl                                                                          |    7 
 _Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationSalesSegment_MP.qbl                                                                   |   31 
 _Main/BL/Type_Global_BrokerExecuteLog/_ROOT_Type_Global_BrokerExecuteLog.qbl                                                                   |    9 
 _Main/BL/Type_Global_MappingUnitOfMeasure_MP/Attribute_Name.qbl                                                                                |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_ListPanelMaterialTM.def                                                  |   41 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_DescriptionOfAlternativeMaterialUnits.qbl                                                   |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlActions_btnCancel_OnClick.def                                               |   15 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingStockingPointCost_Global_MappingStocki.qbl                                            |   23 
 _Main/BL/Type_Global_MappingCurrencyRate_MP/Attribute_CurrencyID.qbl                                                                           |    7 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Operation.qbl                                                         |   20 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_Description.qbl                                                     |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormIT/Response_DataHolderPanelIT_OnCreated.def                                                          |   19 
 _Main/UI/MacroPlannerWebApp/Component_FormIT/Response_DataHolderPanelIT_OnDataChanged.def                                                      |   19 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentUnit.qbl                                                                           |    8 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductModel.qbl                                                                  |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Response_DataHolderPanelTianHua_OnCreated.def                                   |   19 
 _Main/BL/Type_Global_MappingConversionFactor/Attribute_IsEnabled.qbl                                                                           |    8 
 _Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_Name.qbl                                                                                 |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM18_OnCreated.def                                          |   17 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def                                                      |   60 
 _Main/BL/Type_Global_MappingForecast/TypeIndex_TypeIndex.qbl                                                                                   |   12 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingOperationCost_Global_MappingOperationC.qbl                                            |   23 
 _Main/BL/Type_Global_MappingStockingPoint_MP/_ROOT_Type_Global_MappingStockingPoint_MP.qbl                                                     |    9 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_listContextMenuPanelMaterialAutomotiveElectronics.def   |   10 
 _Main/BL/Type_Global_MappingForecast/Attribute_ID.qbl                                                                                          |    8 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderStatus.qbl                                                               |    8 
 _Main/BL/Type_Global_MappingInventorySupply/Attribute_SupplyType.qbl                                                                           |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Response_DataHolderPanelAutomotiveElectronics_OnCreated.def       |   19 
 _Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp                                                                                |    2 
 _Main/BL/Type_Global_BrokerExecuteLog/Attribute_IsSuccess.qbl                                                                                  |    7 
 _Main/BL/Type_Global_MappingUnitCost/Attribute_CostDriver.qbl                                                                                  |    7 
 _Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialSportsHealth.qbl                                                           |   41 
 _Main/BL/Type_Global_MappingOperation/TypeIndex_NewTypeIndex.qbl                                                                               |   36 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Forecast.qbl                                                                 |    5 
 _Main/BL/Type_Global_MappingLane/Attribute_Name.qbl                                                                                            |    7 
 _Main/BL/Type_Global_MappingStockingPointCost/Attribute_CostDriver.qbl                                                                         |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM17_OnCreated.def                                          |   17 
 _Main/BL/Type_Global_MappingUnitCost/Attribute_ProductID.qbl                                                                                   |    7 
 _Main/BL/Type_Global_MappingCurrency_MP/Attribute_IsBase.qbl                                                                                   |    7 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_BusinessType.qbl                                                                            |    8 
 _Main/BL/Type_Global_MappingProductInLane/_ROOT_Type_Global_MappingProductInLane.qbl                                                           |    9 
 _Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl                                                                                             |   11 
 _Main/BL/Type_PanelMaterialSportsHealth/StaticMethod_ReceiveDataGeneration.qbl                                                                 |    2 
 _Main/BL/EDI/Broker_GlobalOTDTable_SalesSegment_MP.qbl                                                                                         |   92 
 _Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_TIANMA_JITUAN_SplitterWndScenarioManager_Button897_OnClick.def           |   12 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlActions_btnOk_OnClick.def                                                   |   30 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ProductInLane.qbl                                                     |   20 
 _Main/BL/Type_Global_MappingInventorySupply/TypeIndex_TypeIndex.qbl                                                                            |   12 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_ProductMajorType.qbl                                                                          |    7 
 _Main/BL/Type_Global_MappingForecast/Attribute_CurrencyID.qbl                                                                                  |    7 
 _Main/BL/Type_Global_MappingForecast/Attribute_ProductID.qbl                                                                                   |    7 
 _Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/_ROOT_Component_FormBrokerExecuteLog.def                                                  |   41 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingConversionFactor_Global_MappingConvers.qbl                                            |   23 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_listContextMenuPanelMaterialVehicle.def                               |   10 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_SalesSegment_MP.qbl                                                   |   20 
 _Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def                                                            |   27 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_UnitUsageOfComponents.qbl                                                                   |    7 
 _Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/Component_ColumnTitles511.def                                                             |   18 
 _Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_id.qbl                                                                                  |    7 
 _Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl                                                                                    |    2 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialUnit.qbl                                                                 |    7 
 _Main/BL/Type_Global_BrokerExecuteLog/Attribute_SuccessDateTime.qbl                                                                            |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/_ROOT_Component_FormPanelMaterialSpecializedDisplay.def              |   39 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_OrganCode.qbl                                                                               |    8 
 _Main/BL/Type_Global_MappingOperation/Attribute_SequenceNumber.qbl                                                                             |    8 
 _Main/BL/Type_Global_MappingOperation/Attribute_OrganCode.qbl                                                                                  |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Response_DataHolderPanelTM17_OnDataChanged.def                                     |   19 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductCode.qbl                                                                             |    8 
 _Main/BL/Type_Global_MappingOperation/Attribute_BusinessType.qbl                                                                               |    8 
 _Main/BL/Type_Global_MappingProductInLane/TypeIndex_TypeIndex.qbl                                                                              |   16 
 _Main/BL/Type_Global_MappingLaneLeg/Attribute_Name.qbl                                                                                         |    7 
 _Main/BL/Type_Global_MappingForecast/Attribute_SalesSegmentName.qbl                                                                            |    7 
 _Main/BL/Type_Global_MappingProductInLane/Attribute_ProductID.qbl                                                                              |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Method_Edit.def                                                           |   25 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductUnitDescription.qbl                                                                  |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblSpecializedDisplay_OnCreated.def                            |   17 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_MaterialSystem.qbl                                                                          |    7 
 _Main/BL/Type_Global_MappingOperation/Attribute_UnitOfMeasureName.qbl                                                                          |    7 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingCurrency_MP_Global_MappingCurrency_MP_.qbl                                            |   23 
 _Main/BL/EDI/Broker_GlobalOTDTable_UnitOfMeasure_MP.qbl                                                                                        |   55 
 _Main/BL/Type_Global_MappingInventorySupply/Attribute_StockingPointID.qbl                                                                      |    7 
 _Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialTianHua.qbl                                                                |   41 
 _Main/BL/Relations/Relation_Global_MappingForecast_GlobalOTDTable_GlobalOTDTable_Global_Mapping.qbl                                            |   23 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblIT_OnCreated.def                                            |   17 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_IsAvailable.qbl                                                                              |    7 
 _Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl                                                                           |   38 
 _Main/BL/Relations/Relation_Global_BrokerExecuteLog_GlobalOTDTable_GlobalOTDTable_Global_Broker.qbl                                            |   23 
 _Main/BL/Type_Global_MappingStockingPointCost/_ROOT_Type_Global_MappingStockingPointCost.qbl                                                   |    9 
 _Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialTM18.qbl                                                                   |   41 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged.def                                  |   18 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_listActionBarPagePanelMaterialTianHua.def                             |   10 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomOrder.qbl                                                              |   17 
 _Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorMessage.qbl                                                                               |    7 
 _Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_Name.qbl                                                                                |    7 
 _Main/BL/Type_Global_MappingOperation/Attribute_MinimumQuantity.qbl                                                                            |    7 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingOperationBOM_Global_MappingOperationBO.qbl                                            |   23 
 SOPWorkflow/Translations/UI/SOPWorkflowWeb/Translations_zh.qtr                                                                                 |    0 
 _Main/BL/Type_Global_MappingInventorySupply/Attribute_ProductID.qbl                                                                            |    7 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_PriorityName.qbl                                                                             |    7 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingProductInLane_Global_MappingProductInL.qbl                                            |   23 
 _Main/BL/Type_Global_MappingUnitCost/Attribute_Cost.qbl                                                                                        |    7 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/StaticMethod_Export.qbl                                                                     |   38 
 _Main/BL/Type_Global_MappingOperation/Attribute_Line.qbl                                                                                       |    8 
 _Main/BL/Type_MappingProduct/Attribute_BusinessType.qbl                                                                                        |    1 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderType.qbl                                                                                |    7 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/_ROOT_Type_MasterPlanReleaseWorkOrderTabulation.qbl                                         |    9 
 _Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl                                                                               |   40 
 _var/_Main/ModelSettings/Common/Dev-38/_ROOT_Role_Dev-38.properties                                                                            |  575 ++++
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingLane_Global_MappingLane_GlobalOTDTable.qbl                                            |   23 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnCancel_OnClick.def                                 |   15 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_listActionBarPagePanelMaterialVehicle.def                             |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_ListPanelMaterialSpecializedDisplay.def                    |   41 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/_ROOT_Component_FormPanelMaterialTM18.def                                          |   39 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_SubstitutionRelationship.qbl                                                                |    7 
 _Main/BL/Type_Global_MappingOperation/Attribute_ProductID.qbl                                                                                  |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/_ROOT_Component_FormPanelMaterialTianHua.def                                    |   39 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_ProductSubclassType.qbl                                                                       |    7 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_UnitOfMeasureName.qbl                                                                        |    7 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_ID.qbl                                                                                        |    8 
 _Main/BL/Type_Global_MappingUnitCost/Attribute_ID.qbl                                                                                          |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Response_DataHolderPanelSportsHealth_OnCreated.def                         |   19 
 _Main/BL/Type_MasterPlanReleaseWorkOrder/_ROOT_Type_MasterPlanReleaseWorkOrder.qbl                                                             |    9 
 _Main/BL/Type_Global_MappingCurrencyRate_MP/Attribute_Start.qbl                                                                                |    7 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AIPISPIP.qbl                                                                 |   17 
 _Main/BL/Type_Global_MappingForecast/_ROOT_Type_Global_MappingForecast.qbl                                                                     |    9 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Response_DataHolderPanelTianHua_OnDataChanged.def                               |   19 
 _Main/BL/Type_GlobalDTOTable/Method_ReceivingPanelMaterials.qbl                                                                                |    4 
 _Main/BL/Type_Global_MappingStockingPointCost/Attribute_Cost.qbl                                                                               |    7 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_EndDate.qbl                                                                       |    8 
 _Main/BL/Type_PanelMaterialAutomotiveElectronics/StaticMethod_ReceiveDataGeneration.qbl                                                        |    2 
 _Main/BL/Type_MacroPlan/Method_DeleteSnaityCheck.qbl                                                                                           |   21 
 _Main/BL/Type_Global_MappingStockingPointCost/Attribute_ID.qbl                                                                                 |    8 
 Calendars/Translations/UI/CalendarsWebUI/Translations_zh.qtr                                                                                   |    0 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_listContextMenuPanelMaterialTM.def                                       |   10 
 _Main/BL/Type_Global_MappingStockingPointCost/TypeIndex_NewTypeIndex.qbl                                                                       |   12 
 _var/_Main/ModelSettings/Common/Dev-21/_ROOT_Role_Dev-21.properties                                                                            |   49 
 _Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl                                                      |   38 
 _Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialSpecializedDisplay.qbl                                                     |   41 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlContent_ddlWorkOrderType_OnCreated.def                        |   23 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Product_MP.qbl                                                        |   20 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Response_DataHolderPanelTM18_OnCreated.def                                         |   19 
 _Main/BL/Type_Product_MP/StaticMethod_CreateOrUpdate.qbl                                                                                       |   11 
 _Main/BL/Type_Global_MappingCurrency_MP/Attribute_Name.qbl                                                                                     |    7 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_Customer.qbl                                                                                 |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def                                                |   29 
 _Main/BL/Type_Global_MappingLane/Attribute_UnitID.qbl                                                                                          |    7 
 _Main/BL/Type_Global_MappingOperationBOM/TypeIndex_TypeIndex.qbl                                                                               |   40 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderType.qbl                                                                 |    8 
 _Main/BL/Type_Global_MappingLane/_ROOT_Type_Global_MappingLane.qbl                                                                             |    9 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_StockingPointID.qbl                                                                          |    7 
 _Main/BL/Type_PanelMaterialTM17/StaticMethod_ReceiveDataGeneration.qbl                                                                         |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_listActionBarPageIssueWorkOrder.def                                         |   10 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_InventorySupply.qbl                                                          |   17 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_CurrencyID.qbl                                                                               |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_listActionBarPagePanelMaterialAutomotiveElectronics.def |   10 
 _Main/BL/Type_MasterPlanReleaseWorkOrder/Attribute_IsGenerateAndPublishWorkOrders.qbl                                                          |    7 
 _Main/BL/Type_Global_MappingOperation/Attribute_MaximumQuantity.qbl                                                                            |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Response_pnlContent_ddslPanelModel_OnCreated.def                     |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_DataHolderPanelMaterialVehicle_OnDataChanged.def                       |   19 
 _Main/BL/Type_Global_MappingConversionFactor/Attribute_Factor.qbl                                                                              |    7 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_UnitOfMeasureName.qbl                                                                       |    7 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductDescribe.qbl                                                                         |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlActions.def                                                  |   40 
 _Main/BL/Type_MappingOperation/Attribute_SequenceNumber.qbl                                                                                    |    1 
 _Main/BL/Type_Global_MappingOperationBOM/_ROOT_Type_Global_MappingOperationBOM.qbl                                                             |    9 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_ProductID.qbl                                                                                |    7 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialCode.qbl                                                                 |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/_ROOT_Component_FormPanelMaterialSportsHealth.def                          |   39 
 _Main/BL/Type_Global_MappingOperation/Attribute_UserLeadTime.qbl                                                                               |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/_ROOT_Component_DialogFusionData.def                                                    |   23 
 _Main/BL/Type_PanelMaterialSpecializedDisplay/StaticMethod_ReceiveDataGeneration.qbl                                                           |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelButton.def                                                             |   59 
 _Main/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl                                                                                 |    6 
 _Main/BL/Type_PanelMaterialTM18/StaticMethod_ReceiveDataGeneration.qbl                                                                         |    2 
 _Main/BL/Type_Global_MappingCurrency_MP/_ROOT_Type_Global_MappingCurrency_MP.qbl                                                               |    9 
 _Main/BL/Type_Global_MappingStockingPointCost/Attribute_Start.qbl                                                                              |    7 
 _Main/BL/Type_PanelMaterialIT/StaticMethod_ReceiveDataGeneration.qbl                                                                           |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Response_DataHolderPanelSpecializedDisplay_OnCreated.def             |   19 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingUnitOfMeasure_MP_Global_MappingUnitOfM.qbl                                            |   23 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Response_DataHolderPanelTM17_OnCreated.def                                         |   19 
 _Main/BL/Type_Global_MappingLaneLeg/Attribute_OriginStockingPointID.qbl                                                                        |    7 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_CustomerID.qbl                                                                               |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormIT/Component_ListPanelMaterialIT.def                                                                 |   41 
 _Main/BL/Type_Global_MappingCurrencyRate_MP/Attribute_Rate.qbl                                                                                 |    7 
 _Main/BL/Type_GlobalDTOTable/Method_SynchronizeOrders.qbl                                                                                      |   31 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelIssueWorkOrder.def                                                     |   14 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_ID.qbl                                                                                       |    8 
 _Main/BL/Type_Global_MappingUnitOfMeasure_MP/_ROOT_Type_Global_MappingUnitOfMeasure_MP.qbl                                                     |    9 
 _Main/BL/Type_PanelMaterial/StaticMethod_Send.qbl                                                                                              |   38 
 401 files changed, 8,321 insertions(+), 107 deletions(-)

diff --git a/Calendars/Translations/UI/CalendarsWebUI/Translations_zh.qtr b/Calendars/Translations/UI/CalendarsWebUI/Translations_zh.qtr
index 69245c9..c22e300 100644
--- a/Calendars/Translations/UI/CalendarsWebUI/Translations_zh.qtr
+++ b/Calendars/Translations/UI/CalendarsWebUI/Translations_zh.qtr
Binary files differ
diff --git a/KpiTracker/Translations/UI/KPITrackerWeb/Translations_zh.qtr b/KpiTracker/Translations/UI/KPITrackerWeb/Translations_zh.qtr
index e5f4026..dde56be 100644
--- a/KpiTracker/Translations/UI/KPITrackerWeb/Translations_zh.qtr
+++ b/KpiTracker/Translations/UI/KPITrackerWeb/Translations_zh.qtr
Binary files differ
diff --git a/LibMacroPlannerWebUI/Translations/UI/LibMacroPlannerWebUI/Translations_zh.qtr b/LibMacroPlannerWebUI/Translations/UI/LibMacroPlannerWebUI/Translations_zh.qtr
index aff905c..8d14dc8 100644
--- a/LibMacroPlannerWebUI/Translations/UI/LibMacroPlannerWebUI/Translations_zh.qtr
+++ b/LibMacroPlannerWebUI/Translations/UI/LibMacroPlannerWebUI/Translations_zh.qtr
Binary files differ
diff --git a/SOPWorkflow/Translations/UI/SOPWorkflowWeb/Translations_zh.qtr b/SOPWorkflow/Translations/UI/SOPWorkflowWeb/Translations_zh.qtr
index b2bb114..acfe811 100644
--- a/SOPWorkflow/Translations/UI/SOPWorkflowWeb/Translations_zh.qtr
+++ b/SOPWorkflow/Translations/UI/SOPWorkflowWeb/Translations_zh.qtr
Binary files differ
diff --git a/_Main/BL/EDI/Broker_Broker_OTD_BaseConversionFactor.qbl b/_Main/BL/EDI/Broker_Broker_OTD_BaseConversionFactor.qbl
index 7f8c525..4bca9ec 100644
--- a/_Main/BL/EDI/Broker_Broker_OTD_BaseConversionFactor.qbl
+++ b/_Main/BL/EDI/Broker_Broker_OTD_BaseConversionFactor.qbl
@@ -34,10 +34,6 @@
       OthersMayFlushTable: true
       OthersMayInsertRow: true
       Parameters: '/owner="YUXTEST"'
-      PrimaryKeyColumns: ISENABLED
-      PrimaryKeyColumns: PRODUCTID
-      PrimaryKeyColumns: SOURCEUNITOFMEASURENAME
-      PrimaryKeyColumns: TARGETUNITOFMEASURENAME
       RecordModificationHintStrategy: 'None'
       EDIODBCLinkColumn FACTOR
       {
diff --git a/_Main/BL/EDI/Broker_Broker_OTD_Operation.qbl b/_Main/BL/EDI/Broker_Broker_OTD_Operation.qbl
index 64aa83d..e269f2f 100644
--- a/_Main/BL/EDI/Broker_Broker_OTD_Operation.qbl
+++ b/_Main/BL/EDI/Broker_Broker_OTD_Operation.qbl
@@ -15,6 +15,7 @@
       PrimaryKeyColumns: PlantName
       PrimaryKeyColumns: ProcessSection
       PrimaryKeyColumns: ProductID
+      PrimaryKeyColumns: SequenceNumber
       TargetType: MappingOperation
       TypeIndex: MappingOperationTypeIndex
       EDIMLColumn ActualCapacity { Attribute: ActualCapacity ValueType: Real }
diff --git a/_Main/BL/EDI/Broker_Broker_OTD_Product.qbl b/_Main/BL/EDI/Broker_Broker_OTD_Product.qbl
index 15ca8ab..7bcabef 100644
--- a/_Main/BL/EDI/Broker_Broker_OTD_Product.qbl
+++ b/_Main/BL/EDI/Broker_Broker_OTD_Product.qbl
@@ -9,6 +9,7 @@
   {
     EDIMLTable MappingProduct
     {
+      PrimaryKeyColumns: BusinessType
       PrimaryKeyColumns: ID
       TargetType: MappingProduct
       TypeIndex: MappingProductTypeIndex
diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_OperationCost.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_OperationCost.qbl
new file mode 100644
index 0000000..c249e43
--- /dev/null
+++ b/_Main/BL/EDI/Broker_GlobalOTDTable_OperationCost.qbl
@@ -0,0 +1,142 @@
+Quintiq file version 2.0
+#parent: #root
+EDIBroker GlobalOTDTable_OperationCost
+{
+  MDSDefinition: GlobalOTDTable
+  TimeZone: 'ACT'
+  UseOSTimeZone: false
+  EDIModelLink.Destination Destination11
+  {
+    EDIMLTable Global_MappingOperationCost
+    {
+      PrimaryKeyColumns: ID
+      TargetType: Global_MappingOperationCost
+      TypeIndex: TypeIndex
+      EDIMLColumn AccountName { Attribute: AccountName ValueType: String }
+      EDIMLColumn Cost { Attribute: Cost ValueType: Real }
+      EDIMLColumn CostDriver { Attribute: CostDriver ValueType: String }
+      EDIMLColumn ID { Attribute: ID ValueType: String }
+      EDIMLColumn LengthOfTime { Attribute: LengthOfTime ValueType: Number }
+      EDIMLColumn OrgCode { Attribute: OrgCode ValueType: String }
+      EDIMLColumn ProductID { Attribute: ProductID ValueType: String }
+      EDIMLColumn Start { Attribute: Start ValueType: Date }
+      EDIMLColumn TimeUnit { Attribute: TimeUnit ValueType: String }
+    }
+  }
+  EDIODBCLink.Source Source10
+  {
+    DataIntegrityStrategy: 'Disabled'
+    SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.oracle'
+    EDIODBCLinkTable MID_OPERATIONCOST
+    {
+      OthersMayCreateTable: true
+      OthersMayDeleteRow: true
+      OthersMayDropTable: true
+      OthersMayFlushTable: true
+      OthersMayInsertRow: true
+      Parameters: '/owner="OTD"'
+      PrimaryKeyColumns: ID
+      RecordModificationHintStrategy: 'None'
+      EDIODBCLinkColumn ACCOUNTNAME
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn COST
+      {
+        OthersMayUpdateColumn: true
+        ValueType: Real
+      }
+      EDIODBCLinkColumn COSTDRIVER
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn ID
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn LENGTHOFTIME
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn ORGCODE
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn PRODUCTID
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn START
+      {
+        OthersMayUpdateColumn: true
+        ValueType: DateTime
+      }
+      EDIODBCLinkColumn TIMEUNIT
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+    }
+  }
+  EDITransformation.Transformation Transformation10
+  {
+    EDITableTransformation
+    {
+      InputTable: MID_OPERATIONCOST
+      OutputTable: Global_MappingOperationCost
+      EDIColumnMatch { InputColumn: ACCOUNTNAME OutputColumn: AccountName }
+      EDIColumnMatch { InputColumn: COST OutputColumn: Cost }
+      EDIColumnMatch { InputColumn: COSTDRIVER OutputColumn: CostDriver }
+      EDIColumnMatch { InputColumn: ID OutputColumn: ID }
+      EDIColumnMatch
+      {
+        InputColumn: LENGTHOFTIME
+        OutputColumn: LengthOfTime
+        Converter
+        {
+          XMLDefinition:
+          [*
+            <?xml version="1.0" encoding="UTF-16"?>
+            <StringToNumber xmlns="http://www.quintiq.com/GEB/StringToNumber" Key="@1">
+              <IsStandard>true</IsStandard>
+              <IsISO>false</IsISO>
+              <IsCustom>false</IsCustom>
+              <ConversionType>0</ConversionType>
+              <NumericFormatString>Standard</NumericFormatString>
+              <LocaleString>Chinese (China)</LocaleString>
+              <CurrencyString></CurrencyString>
+              <CustomFormatString></CustomFormatString>
+            </StringToNumber>
+          *]
+        }
+      }
+      EDIColumnMatch { InputColumn: ORGCODE OutputColumn: OrgCode }
+      EDIColumnMatch { InputColumn: PRODUCTID OutputColumn: ProductID }
+      EDIColumnMatch
+      {
+        InputColumn: START
+        OutputColumn: Start
+        Converter
+        {
+          XMLDefinition:
+          [*
+            <?xml version="1.0" encoding="UTF-16"?>
+            <DateTimeToDate xmlns="http://www.quintiq.com/GEB/DateTimeToDate" Key="@1">
+              <IsStandard>true</IsStandard>
+              <IsISO>false</IsISO>
+              <IsCustom>false</IsCustom>
+              <ConversionType>0</ConversionType>
+            </DateTimeToDate>
+          *]
+        }
+      }
+      EDIColumnMatch { InputColumn: TIMEUNIT OutputColumn: TimeUnit }
+    }
+  }
+}
diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_Product_MP.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_Product_MP.qbl
new file mode 100644
index 0000000..5ff2900
--- /dev/null
+++ b/_Main/BL/EDI/Broker_GlobalOTDTable_Product_MP.qbl
@@ -0,0 +1,169 @@
+Quintiq file version 2.0
+#parent: #root
+EDIBroker GlobalOTDTable_Product_MP
+{
+  MDSDefinition: GlobalOTDTable
+  TimeZone: 'ACT'
+  UseOSTimeZone: false
+  EDIModelLink.Destination Destination3
+  {
+    EDIMLTable Global_MappingProduct_MP
+    {
+      PrimaryKeyColumns: BusinessType
+      PrimaryKeyColumns: ID
+      TargetType: Global_MappingProduct_MP
+      TypeIndex: TypeIndexIDAndBusinessType
+      EDIMLColumn BusinessType { Attribute: BusinessType ValueType: String }
+      EDIMLColumn CommonBusiness { Attribute: CommonBusiness ValueType: String }
+      EDIMLColumn EndDate { Attribute: EndDate ValueType: Date }
+      EDIMLColumn ID { Attribute: ID ValueType: String }
+      EDIMLColumn IsCommon { Attribute: IsCommon ValueType: Boolean }
+      EDIMLColumn KeyProduct { Attribute: KeyProduct ValueType: Boolean }
+      EDIMLColumn Name { Attribute: Name ValueType: String }
+      EDIMLColumn Notes { Attribute: Notes ValueType: String }
+      EDIMLColumn ProductMajorType { Attribute: ProductMajorType ValueType: String }
+      EDIMLColumn ProductSubclassType { Attribute: ProductSubclassType ValueType: String }
+      EDIMLColumn ShelfLife { Attribute: ShelfLife ValueType: Real }
+      EDIMLColumn UnitOfMeasureName { Attribute: UnitOfMeasureName ValueType: String }
+    }
+  }
+  EDIODBCLink.Source Source2
+  {
+    DataIntegrityStrategy: 'Disabled'
+    SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.oracle'
+    EDIODBCLinkTable MID_PRODUCT
+    {
+      OthersMayCreateTable: true
+      OthersMayDeleteRow: true
+      OthersMayDropTable: true
+      OthersMayFlushTable: true
+      OthersMayInsertRow: true
+      Parameters: '/owner="OTD"'
+      PrimaryKeyColumns: BUSINESSTYPE
+      PrimaryKeyColumns: ID
+      RecordModificationHintStrategy: 'None'
+      EDIODBCLinkColumn BUSINESSTYPE
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn COMMONBUSINESS
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn COST
+      {
+        OthersMayUpdateColumn: true
+        ValueType: Real
+      }
+      EDIODBCLinkColumn ENDDATE
+      {
+        OthersMayUpdateColumn: true
+        ValueType: DateTime
+      }
+      EDIODBCLinkColumn ID
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn INTEGRATIONDEGREE
+      {
+        OthersMayUpdateColumn: true
+        ValueType: Real
+      }
+      EDIODBCLinkColumn ISCOMMON
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn KEYPRODUCT
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn MATERIALFLAG1
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn MATERIALFLAG2
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn NAME
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn NOTE
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn NUMBEROFLAYOUTS
+      {
+        OthersMayUpdateColumn: true
+        ValueType: Real
+      }
+      EDIODBCLinkColumn PRODUCTMAJORTYPE
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn PRODUCTSUBCLASSTYPE
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn SHELFLIFE
+      {
+        OthersMayUpdateColumn: true
+        ValueType: Real
+      }
+      EDIODBCLinkColumn UNITOFMEAURENAME
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+    }
+  }
+  EDITransformation.Transformation Transformation2
+  {
+    EDITableTransformation
+    {
+      InputTable: MID_PRODUCT
+      OutputTable: Global_MappingProduct_MP
+      EDIColumnMatch { InputColumn: BUSINESSTYPE OutputColumn: BusinessType }
+      EDIColumnMatch { InputColumn: COMMONBUSINESS OutputColumn: CommonBusiness }
+      EDIColumnMatch
+      {
+        InputColumn: ENDDATE
+        OutputColumn: EndDate
+        Converter
+        {
+          XMLDefinition:
+          [*
+            <?xml version="1.0" encoding="UTF-16"?>
+            <DateTimeToDate xmlns="http://www.quintiq.com/GEB/DateTimeToDate" Key="@1">
+              <IsStandard>true</IsStandard>
+              <IsISO>false</IsISO>
+              <IsCustom>false</IsCustom>
+              <ConversionType>0</ConversionType>
+            </DateTimeToDate>
+          *]
+        }
+      }
+      EDIColumnMatch { InputColumn: ID OutputColumn: ID }
+      EDIColumnMatch { InputColumn: ISCOMMON OutputColumn: IsCommon }
+      EDIColumnMatch { InputColumn: KEYPRODUCT OutputColumn: KeyProduct }
+      EDIColumnMatch { InputColumn: NAME OutputColumn: Name }
+      EDIColumnMatch { InputColumn: NOTE OutputColumn: Notes }
+      EDIColumnMatch { InputColumn: PRODUCTMAJORTYPE OutputColumn: ProductMajorType }
+      EDIColumnMatch { InputColumn: PRODUCTSUBCLASSTYPE OutputColumn: ProductSubclassType }
+      EDIColumnMatch { InputColumn: SHELFLIFE OutputColumn: ShelfLife }
+      EDIColumnMatch { InputColumn: UNITOFMEAURENAME OutputColumn: UnitOfMeasureName }
+    }
+  }
+}
diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_SalesSegment_MP.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_SalesSegment_MP.qbl
new file mode 100644
index 0000000..26442e4
--- /dev/null
+++ b/_Main/BL/EDI/Broker_GlobalOTDTable_SalesSegment_MP.qbl
@@ -0,0 +1,92 @@
+Quintiq file version 2.0
+#parent: #root
+EDIBroker GlobalOTDTable_SalesSegment_MP
+{
+  MDSDefinition: GlobalOTDTable
+  TimeZone: 'ACT'
+  UseOSTimeZone: false
+  EDIModelLink.Destination Destination2
+  {
+    EDIMLTable Global_MappingSalesSegment_MP
+    {
+      PrimaryKeyColumns: BusinessType
+      PrimaryKeyColumns: Name
+      TargetType: Global_MappingSalesSegment_MP
+      TypeIndex: TypeIndexBusinessTypeAndName
+      EDIMLColumn BusinessType { Attribute: BusinessType ValueType: String }
+      EDIMLColumn DisplayIndex { Attribute: DisplayIndex ValueType: Number }
+      EDIMLColumn Name { Attribute: Name ValueType: String }
+      EDIMLColumn ParentName { Attribute: ParentName ValueType: String }
+    }
+  }
+  EDIODBCLink.Source Source1
+  {
+    DataIntegrityStrategy: 'Disabled'
+    SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.oracle'
+    EDIODBCLinkTable MID_SALESSEGMENT
+    {
+      OthersMayCreateTable: true
+      OthersMayDeleteRow: true
+      OthersMayDropTable: true
+      OthersMayFlushTable: true
+      OthersMayInsertRow: true
+      Parameters: '/owner="OTD"'
+      PrimaryKeyColumns: BUSINESSTYPE
+      PrimaryKeyColumns: NAME
+      RecordModificationHintStrategy: 'None'
+      EDIODBCLinkColumn BUSINESSTYPE
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn DISPLAYINDEX
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn NAME
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn PARENTNAME
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+    }
+  }
+  EDITransformation.Transformation Transformation1
+  {
+    EDITableTransformation
+    {
+      InputTable: MID_SALESSEGMENT
+      OutputTable: Global_MappingSalesSegment_MP
+      EDIColumnMatch { InputColumn: BUSINESSTYPE OutputColumn: BusinessType }
+      EDIColumnMatch
+      {
+        InputColumn: DISPLAYINDEX
+        OutputColumn: DisplayIndex
+        Converter
+        {
+          XMLDefinition:
+          [*
+            <?xml version="1.0" encoding="UTF-16"?>
+            <StringToNumber xmlns="http://www.quintiq.com/GEB/StringToNumber" Key="@1">
+              <IsStandard>true</IsStandard>
+              <IsISO>false</IsISO>
+              <IsCustom>false</IsCustom>
+              <ConversionType>0</ConversionType>
+              <NumericFormatString>Standard</NumericFormatString>
+              <LocaleString>Chinese (China)</LocaleString>
+              <CurrencyString></CurrencyString>
+              <CustomFormatString></CustomFormatString>
+            </StringToNumber>
+          *]
+        }
+      }
+      EDIColumnMatch { InputColumn: NAME OutputColumn: Name }
+      EDIColumnMatch { InputColumn: PARENTNAME OutputColumn: ParentName }
+    }
+  }
+}
diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_StockingPointCost.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_StockingPointCost.qbl
new file mode 100644
index 0000000..c1f7632
--- /dev/null
+++ b/_Main/BL/EDI/Broker_GlobalOTDTable_StockingPointCost.qbl
@@ -0,0 +1,107 @@
+Quintiq file version 2.0
+#parent: #root
+EDIBroker GlobalOTDTable_StockingPointCost
+{
+  MDSDefinition: GlobalOTDTable
+  TimeZone: 'ACT'
+  UseOSTimeZone: false
+  EDIModelLink.Destination Destination10
+  {
+    EDIMLTable Global_MappingStockingPointCost
+    {
+      PrimaryKeyColumns: ID
+      TargetType: Global_MappingStockingPointCost
+      TypeIndex: NewTypeIndex
+      EDIMLColumn AccountName { Attribute: AccountName ValueType: String }
+      EDIMLColumn Cost { Attribute: Cost ValueType: Real }
+      EDIMLColumn CostDriver { Attribute: CostDriver ValueType: String }
+      EDIMLColumn ID { Attribute: ID ValueType: String }
+      EDIMLColumn ProductID { Attribute: ProductID ValueType: String }
+      EDIMLColumn Start { Attribute: Start ValueType: Date }
+      EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String }
+    }
+  }
+  EDIODBCLink.Source Source9
+  {
+    DataIntegrityStrategy: 'Disabled'
+    SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.oracle'
+    EDIODBCLinkTable MID_INVENTORYCOST
+    {
+      OthersMayCreateTable: true
+      OthersMayDeleteRow: true
+      OthersMayDropTable: true
+      OthersMayFlushTable: true
+      OthersMayInsertRow: true
+      Parameters: '/owner="OTD"'
+      PrimaryKeyColumns: ID
+      RecordModificationHintStrategy: 'None'
+      EDIODBCLinkColumn ACCOUNTNAME
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn COST
+      {
+        OthersMayUpdateColumn: true
+        ValueType: Real
+      }
+      EDIODBCLinkColumn COSTDRIVER
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn ID
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn PRODUCTID
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn START
+      {
+        OthersMayUpdateColumn: true
+        ValueType: DateTime
+      }
+      EDIODBCLinkColumn STOCKINGPOINTID
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+    }
+  }
+  EDITransformation.Transformation Transformation9
+  {
+    EDITableTransformation
+    {
+      InputTable: MID_INVENTORYCOST
+      OutputTable: Global_MappingStockingPointCost
+      EDIColumnMatch { InputColumn: ACCOUNTNAME OutputColumn: AccountName }
+      EDIColumnMatch { InputColumn: COST OutputColumn: Cost }
+      EDIColumnMatch { InputColumn: COSTDRIVER OutputColumn: CostDriver }
+      EDIColumnMatch { InputColumn: ID OutputColumn: ID }
+      EDIColumnMatch { InputColumn: PRODUCTID OutputColumn: ProductID }
+      EDIColumnMatch
+      {
+        InputColumn: START
+        OutputColumn: Start
+        Converter
+        {
+          XMLDefinition:
+          [*
+            <?xml version="1.0" encoding="UTF-16"?>
+            <DateTimeToDate xmlns="http://www.quintiq.com/GEB/DateTimeToDate" Key="@1">
+              <IsStandard>true</IsStandard>
+              <IsISO>false</IsISO>
+              <IsCustom>false</IsCustom>
+              <ConversionType>0</ConversionType>
+            </DateTimeToDate>
+          *]
+        }
+      }
+      EDIColumnMatch { InputColumn: STOCKINGPOINTID OutputColumn: StockingPointID }
+    }
+  }
+}
diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_UnitOfMeasure_MP.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_UnitOfMeasure_MP.qbl
new file mode 100644
index 0000000..2311cb5
--- /dev/null
+++ b/_Main/BL/EDI/Broker_GlobalOTDTable_UnitOfMeasure_MP.qbl
@@ -0,0 +1,55 @@
+Quintiq file version 2.0
+#parent: #root
+EDIBroker GlobalOTDTable_UnitOfMeasure_MP
+{
+  MDSDefinition: GlobalOTDTable
+  TimeZone: 'ACT'
+  UseOSTimeZone: false
+  EDIModelLink.Destination Destination1
+  {
+    EDIMLTable Global_MappingUnitOfMeasure_MP
+    {
+      PrimaryKeyColumns: Name
+      TargetType: Global_MappingUnitOfMeasure_MP
+      TypeIndex: TypeIndexName
+      EDIMLColumn IsDefault { Attribute: IsDefault ValueType: Boolean }
+      EDIMLColumn Name { Attribute: Name ValueType: String }
+    }
+  }
+  EDIODBCLink.Source Source
+  {
+    DataIntegrityStrategy: 'Disabled'
+    SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.oracle'
+    EDIODBCLinkTable MID_UNITOFMEASURES
+    {
+      OthersMayCreateTable: true
+      OthersMayDeleteRow: true
+      OthersMayDropTable: true
+      OthersMayFlushTable: true
+      OthersMayInsertRow: true
+      Parameters: '/owner="OTD"'
+      PrimaryKeyColumns: NAME
+      RecordModificationHintStrategy: 'None'
+      EDIODBCLinkColumn ISDEFAULT
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn NAME
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+    }
+  }
+  EDITransformation.Transformation Transformation0
+  {
+    EDITableTransformation
+    {
+      InputTable: MID_UNITOFMEASURES
+      OutputTable: Global_MappingUnitOfMeasure_MP
+      EDIColumnMatch { InputColumn: ISDEFAULT OutputColumn: IsDefault }
+      EDIColumnMatch { InputColumn: NAME OutputColumn: Name }
+    }
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingConversionFactor_Global_MappingConvers.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingConversionFactor_Global_MappingConvers.qbl
new file mode 100644
index 0000000..9f0aefd
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingConversionFactor_Global_MappingConvers.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingConversionFactor_Global_MappingConversionFactor_GlobalOTDTable
+{
+  #keys: '1[414702.0.247716835]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingConversionFactor
+  {
+    #keys: '3[414702.0.247716837][414702.0.247716836][414702.0.247716838]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.247716840][414702.0.247716839][414702.0.247716841]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingConversionFactor
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingCurrencyRate_MP_Global_MappingCurrency.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingCurrencyRate_MP_Global_MappingCurrency.qbl
new file mode 100644
index 0000000..e3219cd
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingCurrencyRate_MP_Global_MappingCurrency.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingCurrencyRate_MP_Global_MappingCurrencyRate_MP_GlobalOTDTable
+{
+  #keys: '1[414702.0.247665116]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingCurrencyRate_MP
+  {
+    #keys: '3[414702.0.247665118][414702.0.247665117][414702.0.247665119]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.247665121][414702.0.247665120][414702.0.247665122]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingCurrencyRate_MP
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingCurrency_MP_Global_MappingCurrency_MP_.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingCurrency_MP_Global_MappingCurrency_MP_.qbl
new file mode 100644
index 0000000..fdfa37e
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingCurrency_MP_Global_MappingCurrency_MP_.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingCurrency_MP_Global_MappingCurrency_MP_GlobalOTDTable
+{
+  #keys: '1[414702.0.247705877]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingCurrency_MP
+  {
+    #keys: '3[414702.0.247705879][414702.0.247705878][414702.0.247705880]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.247705882][414702.0.247705881][414702.0.247705883]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingCurrency_MP
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingLaneLeg_Global_MappingLaneLeg_GlobalOT.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingLaneLeg_Global_MappingLaneLeg_GlobalOT.qbl
new file mode 100644
index 0000000..38d8442
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingLaneLeg_Global_MappingLaneLeg_GlobalOT.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingLaneLeg_Global_MappingLaneLeg_GlobalOTDTable
+{
+  #keys: '1[414702.0.261965021]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingLaneLeg
+  {
+    #keys: '3[414702.0.261965023][414702.0.261965022][414702.0.261965024]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.261965026][414702.0.261965025][414702.0.261965027]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingLaneLeg
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingLane_Global_MappingLane_GlobalOTDTable.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingLane_Global_MappingLane_GlobalOTDTable.qbl
new file mode 100644
index 0000000..c746523
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingLane_Global_MappingLane_GlobalOTDTable.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingLane_Global_MappingLane_GlobalOTDTable
+{
+  #keys: '1[414702.0.262115644]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingLane
+  {
+    #keys: '3[414702.0.262115646][414702.0.262115645][414702.0.262115647]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.262115649][414702.0.262115648][414702.0.262115650]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingLane
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingOperationBOM_Global_MappingOperationBO.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingOperationBOM_Global_MappingOperationBO.qbl
new file mode 100644
index 0000000..d29b700
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingOperationBOM_Global_MappingOperationBO.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingOperationBOM_Global_MappingOperationBOM_GlobalOTDTable
+{
+  #keys: '1[414702.0.261405153]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingOperationBOM
+  {
+    #keys: '3[414702.0.261405155][414702.0.261405154][414702.0.261405156]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.261405158][414702.0.261405157][414702.0.261405159]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingOperationBOM
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingOperationCost_Global_MappingOperationC.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingOperationCost_Global_MappingOperationC.qbl
new file mode 100644
index 0000000..ac77edb
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingOperationCost_Global_MappingOperationC.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingOperationCost_Global_MappingOperationCost_GlobalOTDTable
+{
+  #keys: '1[414702.0.264968475]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingOperationCost
+  {
+    #keys: '3[414702.0.264968477][414702.0.264968476][414702.0.264968478]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.264968480][414702.0.264968479][414702.0.264968481]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingOperationCost
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingOperation_Global_MappingOperation_Glob.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingOperation_Global_MappingOperation_Glob.qbl
new file mode 100644
index 0000000..ed54513
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingOperation_Global_MappingOperation_Glob.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingOperation_Global_MappingOperation_GlobalOTDTable
+{
+  #keys: '1[414702.0.261949432]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingOperation
+  {
+    #keys: '3[414702.0.261949434][414702.0.261949433][414702.0.261949435]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.261949437][414702.0.261949436][414702.0.261949438]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingOperation
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingProductInLane_Global_MappingProductInL.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingProductInLane_Global_MappingProductInL.qbl
new file mode 100644
index 0000000..976bb1e
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingProductInLane_Global_MappingProductInL.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingProductInLane_Global_MappingProductInLane_GlobalOTDTable
+{
+  #keys: '1[414702.0.262177985]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingProductInLane
+  {
+    #keys: '3[414702.0.262177987][414702.0.262177986][414702.0.262177988]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.262177990][414702.0.262177989][414702.0.262177991]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingProductInLane
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingProduct_MP_Global_MappingProduct_MP_Gl.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingProduct_MP_Global_MappingProduct_MP_Gl.qbl
new file mode 100644
index 0000000..3b3a458
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingProduct_MP_Global_MappingProduct_MP_Gl.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingProduct_MP_Global_MappingProduct_MP_GlobalOTDTable
+{
+  #keys: '1[414702.0.247665570]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingProduct_MP
+  {
+    #keys: '3[414702.0.247665572][414702.0.247665571][414702.0.247665573]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.247665575][414702.0.247665574][414702.0.247665576]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingProduct_MP
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingSalesSegment_MP_Global_MappingSalesSeg.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingSalesSegment_MP_Global_MappingSalesSeg.qbl
new file mode 100644
index 0000000..47895e9
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingSalesSegment_MP_Global_MappingSalesSeg.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingSalesSegment_MP_Global_MappingSalesSegment_MP_GlobalOTDTable
+{
+  #keys: '1[414702.0.238159190]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingSalesSegment_MP
+  {
+    #keys: '3[414702.0.238159192][414702.0.238159191][414702.0.238159193]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.238159195][414702.0.238159194][414702.0.238159196]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingSalesSegment_MP
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingStockingPointCost_Global_MappingStocki.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingStockingPointCost_Global_MappingStocki.qbl
new file mode 100644
index 0000000..93a0fc7
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingStockingPointCost_Global_MappingStocki.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingStockingPointCost_Global_MappingStockingPointCost_GlobalOTDTable
+{
+  #keys: '1[414702.0.264765171]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingStockingPointCost
+  {
+    #keys: '3[414702.0.264765173][414702.0.264765172][414702.0.264765174]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.264765176][414702.0.264765175][414702.0.264765177]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingStockingPointCost
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingStockingPoint_MP_Global_MappingStockin.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingStockingPoint_MP_Global_MappingStockin.qbl
new file mode 100644
index 0000000..3861954
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingStockingPoint_MP_Global_MappingStockin.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingStockingPoint_MP_Global_MappingStockingPoint_MP_GlobalOTDTable
+{
+  #keys: '1[414702.0.239762044]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingStockingPoint_MP
+  {
+    #keys: '3[414702.0.239762046][414702.0.239762045][414702.0.239762047]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.239762049][414702.0.239762048][414702.0.239762050]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingStockingPoint_MP
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingUnitOfMeasure_MP_Global_MappingUnitOfM.qbl b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingUnitOfMeasure_MP_Global_MappingUnitOfM.qbl
new file mode 100644
index 0000000..a312b2f
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingUnitOfMeasure_MP_Global_MappingUnitOfM.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalOTDTable_Global_MappingUnitOfMeasure_MP_Global_MappingUnitOfMeasure_MP_GlobalOTDTable
+{
+  #keys: '1[414702.0.238140119]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Global_MappingUnitOfMeasure_MP
+  {
+    #keys: '3[414702.0.238140121][414702.0.238140120][414702.0.238140122]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.238140124][414702.0.238140123][414702.0.238140125]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingUnitOfMeasure_MP
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_Global_BrokerExecuteLog_GlobalOTDTable_GlobalOTDTable_Global_Broker.qbl b/_Main/BL/Relations/Relation_Global_BrokerExecuteLog_GlobalOTDTable_GlobalOTDTable_Global_Broker.qbl
new file mode 100644
index 0000000..fc0df60
--- /dev/null
+++ b/_Main/BL/Relations/Relation_Global_BrokerExecuteLog_GlobalOTDTable_GlobalOTDTable_Global_Broker.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation Global_BrokerExecuteLog_GlobalOTDTable_GlobalOTDTable_Global_BrokerExecuteLog
+{
+  #keys: '1[414702.0.265587049]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.265587051][414702.0.265587050][414702.0.265587052]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_BrokerExecuteLog
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide Global_BrokerExecuteLog
+  {
+    #keys: '3[414702.0.265587054][414702.0.265587053][414702.0.265587055]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_Global_MappingActualProductInStockingPointInPeriod_GlobalOTDTable_G.qbl b/_Main/BL/Relations/Relation_Global_MappingActualProductInStockingPointInPeriod_GlobalOTDTable_G.qbl
new file mode 100644
index 0000000..a7c4126
--- /dev/null
+++ b/_Main/BL/Relations/Relation_Global_MappingActualProductInStockingPointInPeriod_GlobalOTDTable_G.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation Global_MappingActualProductInStockingPointInPeriod_GlobalOTDTable_GlobalOTDTable_Global_MappingActualProductInStockingPointInPeriod
+{
+  #keys: '1[414702.0.262251979]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.262251981][414702.0.262251980][414702.0.262251982]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingActualProductInStockingPointInPeriod
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide Global_MappingActualProductInStockingPointInPeriod
+  {
+    #keys: '3[414702.0.262251984][414702.0.262251983][414702.0.262251985]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_Global_MappingCustomOrder_GlobalOTDTable_GlobalOTDTable_Global_Mapp.qbl b/_Main/BL/Relations/Relation_Global_MappingCustomOrder_GlobalOTDTable_GlobalOTDTable_Global_Mapp.qbl
new file mode 100644
index 0000000..208f701
--- /dev/null
+++ b/_Main/BL/Relations/Relation_Global_MappingCustomOrder_GlobalOTDTable_GlobalOTDTable_Global_Mapp.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation Global_MappingCustomOrder_GlobalOTDTable_GlobalOTDTable_Global_MappingCustomOrder
+{
+  #keys: '1[414702.0.264905852]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.264905854][414702.0.264905853][414702.0.264905855]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingCustomOrder
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide Global_MappingCustomOrder
+  {
+    #keys: '3[414702.0.264905857][414702.0.264905856][414702.0.264905858]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_Global_MappingForecast_GlobalOTDTable_GlobalOTDTable_Global_Mapping.qbl b/_Main/BL/Relations/Relation_Global_MappingForecast_GlobalOTDTable_GlobalOTDTable_Global_Mapping.qbl
new file mode 100644
index 0000000..473d427
--- /dev/null
+++ b/_Main/BL/Relations/Relation_Global_MappingForecast_GlobalOTDTable_GlobalOTDTable_Global_Mapping.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation Global_MappingForecast_GlobalOTDTable_GlobalOTDTable_Global_MappingForecast
+{
+  #keys: '1[414702.0.264901309]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.264901311][414702.0.264901310][414702.0.264901312]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingForecast
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide Global_MappingForecast
+  {
+    #keys: '3[414702.0.264901314][414702.0.264901313][414702.0.264901315]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_Global_MappingInventorySupply_GlobalOTDTable_GlobalOTDTable_Global_.qbl b/_Main/BL/Relations/Relation_Global_MappingInventorySupply_GlobalOTDTable_GlobalOTDTable_Global_.qbl
new file mode 100644
index 0000000..eef8db6
--- /dev/null
+++ b/_Main/BL/Relations/Relation_Global_MappingInventorySupply_GlobalOTDTable_GlobalOTDTable_Global_.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation Global_MappingInventorySupply_GlobalOTDTable_GlobalOTDTable_Global_MappingInventorySupply
+{
+  #keys: '1[414702.0.264621764]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide GlobalOTDTable
+  {
+    #keys: '3[414702.0.264621766][414702.0.264621765][414702.0.264621767]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingInventorySupply
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide Global_MappingInventorySupply
+  {
+    #keys: '3[414702.0.264621769][414702.0.264621768][414702.0.264621770]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_MasterPlanReleaseWorkOrderTabulation_MasterPlanReleaseWorkOrder_Mas.qbl b/_Main/BL/Relations/Relation_MasterPlanReleaseWorkOrderTabulation_MasterPlanReleaseWorkOrder_Mas.qbl
new file mode 100644
index 0000000..d5c842d
--- /dev/null
+++ b/_Main/BL/Relations/Relation_MasterPlanReleaseWorkOrderTabulation_MasterPlanReleaseWorkOrder_Mas.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation MasterPlanReleaseWorkOrderTabulation_MasterPlanReleaseWorkOrder_MasterPlanReleaseWorkOrder_MasterPlanReleaseWorkOrderTabulation
+{
+  #keys: '1[414702.0.224201190]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MasterPlanReleaseWorkOrder
+  {
+    #keys: '3[414702.0.224201192][414702.0.224201191][414702.0.224201193]'
+    Cardinality: '0to1'
+    ObjectDefinition: MasterPlanReleaseWorkOrderTabulation
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide MasterPlanReleaseWorkOrderTabulation
+  {
+    #keys: '3[414702.0.224201195][414702.0.224201194][414702.0.224201196]'
+    Cardinality: '1toN'
+    ObjectDefinition: MasterPlanReleaseWorkOrder
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_MasterPlanReleaseWorkOrder_MacroPlan_MacroPlan_MasterPlanReleaseWor.qbl b/_Main/BL/Relations/Relation_MasterPlanReleaseWorkOrder_MacroPlan_MacroPlan_MasterPlanReleaseWor.qbl
new file mode 100644
index 0000000..04f7cf4
--- /dev/null
+++ b/_Main/BL/Relations/Relation_MasterPlanReleaseWorkOrder_MacroPlan_MacroPlan_MasterPlanReleaseWor.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation MasterPlanReleaseWorkOrder_MacroPlan_MacroPlan_MasterPlanReleaseWorkOrder
+{
+  #keys: '1[414702.0.224201157]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[414702.0.224201159][414702.0.224201158][414702.0.224201160]'
+    Cardinality: '0to1'
+    ObjectDefinition: MasterPlanReleaseWorkOrder
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide MasterPlanReleaseWorkOrder
+  {
+    #keys: '3[414702.0.224201162][414702.0.224201161][414702.0.224201163]'
+    Cardinality: '0to1'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_ApiBuildPostRequestBody.qbl b/_Main/BL/Type_GlobalDTOTable/Method_ApiBuildPostRequestBody.qbl
new file mode 100644
index 0000000..d7970e3
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_ApiBuildPostRequestBody.qbl
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+Method ApiBuildPostRequestBody (
+  String bodynumber
+) as String
+{
+  TextBody:
+  [*
+    // Administrator Aug-18-2023 (created)
+    
+    postrequestbody := JSON::Object()
+                        .Add( "serviceInterfaceCode", "ESBOTDH000" + bodynumber )
+                        .Add( "fromSystemCode", "OTDH000" + bodynumber )
+                        .Add( "toInterfaceCode", "QIDH000" + bodynumber )
+                        .Add( "ouZone", "OU_TMSH" )
+                        .Add( "uuid", "1617355496bb588e353e80147eea5f45" )
+                        .Add( "requestTime", DateTime::Now().Format( "Y-M2-D2 H:m:s" ) )
+                        .Add( "dataType", "JSON" )
+                        .Add( "data", JSON::Object()
+                                      .Add( "pageIndex", "1" ) ).Build();
+    
+    info( DateTime::Now().Format( "Y-M2-D2 H:m:s" ) );
+    postrequestbodystring := postrequestbody.AsString();
+    
+    return postrequestbodystring;
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AIPISPIP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AIPISPIP.qbl
new file mode 100644
index 0000000..ac058bb
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AIPISPIP.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_AIPISPIP (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName    := "GlobalOTDTable_AIPISPIP",
+                                  ElementTotal  := 0,
+                                  ErrorMessage  := errorMessage,
+                                  IsSuccess     := false,
+                                  Name          := "瀹為檯搴撳瓨鏁版嵁",
+                                  ErrorNo       := errorNo,
+                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor.qbl
new file mode 100644
index 0000000..fb840ce
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName    := "GlobalOTDTable_ConversionFactor",
+                                  ElementTotal  := 0,
+                                  ErrorMessage  := errorMessage,
+                                  IsSuccess     := false,
+                                  Name          := "鍗曚綅杞崲鍥犲瓙鏁版嵁",
+                                  ErrorNo       := errorNo,
+                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomOrder.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomOrder.qbl
new file mode 100644
index 0000000..66d92a1
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_CustomOrder.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_CustomOrder (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName    := "GlobalOTDTable_CustomOrder",
+                                  ElementTotal  := 0,
+                                  ErrorMessage  := errorMessage,
+                                  IsSuccess     := false,
+                                  Name          := "璁㈠崟鏁版嵁",
+                                  ErrorNo       := errorNo,
+                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Forecast.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Forecast.qbl
new file mode 100644
index 0000000..aafd06e
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Forecast.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_Forecast (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody: 'info( "閿欒鍙凤細", errorNo, "errorNo璇俊鎭細", errorMessage );'
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_InventorySupply.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_InventorySupply.qbl
new file mode 100644
index 0000000..fd32c60
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_InventorySupply.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_InventorySupply (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName    := "GlobalOTDTable_InventorySupply",
+                                  ElementTotal  := 0,
+                                  ErrorMessage  := errorMessage,
+                                  IsSuccess     := false,
+                                  Name          := "搴撳瓨渚涘簲鏁版嵁",
+                                  ErrorNo       := errorNo,
+                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Operation.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Operation.qbl
new file mode 100644
index 0000000..3d491fe
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Operation.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_Operation (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName    := "GlobalOTDTable_Operation",
+                                  ElementTotal  := 0,
+                                  ErrorMessage  := errorMessage,
+                                  IsSuccess     := false,
+                                  Name          := "鎿嶄綔鏁版嵁",
+                                  ErrorNo       := errorNo,
+                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationBOM.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationBOM.qbl
new file mode 100644
index 0000000..8a0c0d2
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationBOM.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_OperationBOM (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName    := "GlobalOTDTable_Operation",
+                                  ElementTotal  := 0,
+                                  ErrorMessage  := errorMessage,
+                                  IsSuccess     := false,
+                                  Name          := "鎿嶄綔鏁版嵁",
+                                  ErrorNo       := errorNo,
+                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationCost.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationCost.qbl
new file mode 100644
index 0000000..2364cd5
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_OperationCost.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_OperationCost (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName    := "GlobalOTDTable_OperationCost",
+                                  ElementTotal  := 0,
+                                  ErrorMessage  := errorMessage,
+                                  IsSuccess     := false,
+                                  Name          := "鎿嶄綔鎴愭湰鏁版嵁",
+                                  ErrorNo       := errorNo,
+                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ProductInLane.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ProductInLane.qbl
new file mode 100644
index 0000000..5bf60a9
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ProductInLane.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_ProductInLane (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName    := "GlobalOTDTable_ProductInLane",
+                                  ElementTotal  := 0,
+                                  ErrorMessage  := errorMessage,
+                                  IsSuccess     := false,
+                                  Name          := "浜у搧鍦ㄨ溅閬撴暟鎹�",
+                                  ErrorNo       := errorNo,
+                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Product_MP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Product_MP.qbl
new file mode 100644
index 0000000..2637fd7
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Product_MP.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_Product_MP (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName    := "GlobalOTDTable_Product_MP",
+                                  ElementTotal  := 0,
+                                  ErrorMessage  := errorMessage,
+                                  IsSuccess     := false,
+                                  Name          := "浜у搧鏁版嵁",
+                                  ErrorNo       := errorNo,
+                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_SalesSegment_MP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_SalesSegment_MP.qbl
new file mode 100644
index 0000000..56d48d9
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_SalesSegment_MP.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_SalesSegment_MP (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName    := "GlobalOTDTable_SalesSegment_MP",
+                                  ElementTotal  := 0,
+                                  ErrorMessage  := errorMessage,
+                                  IsSuccess     := false,
+                                  Name          := "閿�鍞儴闂�",
+                                  ErrorNo       := errorNo,
+                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_StockingPointCost.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_StockingPointCost.qbl
new file mode 100644
index 0000000..0f166b2
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_StockingPointCost.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_StockingPointCost (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName    := "GlobalOTDTable_StockingPointCost",
+                                  ElementTotal  := 0,
+                                  ErrorMessage  := errorMessage,
+                                  IsSuccess     := false,
+                                  Name          := "搴撳瓨鐐规垚鏈暟鎹�",
+                                  ErrorNo       := errorNo,
+                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_UnitOfMeasure_MP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_UnitOfMeasure_MP.qbl
new file mode 100644
index 0000000..4974578
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_UnitOfMeasure_MP.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_UnitOfMeasure_MP (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName    := "GlobalOTDTable_UnitOfMeasure_MP",
+                                  ElementTotal  := 0,
+                                  ErrorMessage  := errorMessage,
+                                  IsSuccess     := false,
+                                  Name          := "鍗曚綅鏁版嵁",
+                                  ErrorNo       := errorNo,
+                                  ErrorDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" )
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AIPISPIP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AIPISPIP.qbl
new file mode 100644
index 0000000..a0a1af4
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AIPISPIP.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_AIPISPIP
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName      := "GlobalOTDTable_AIPISPIP",
+                                  ElementTotal    := this.Global_MappingActualProductInStockingPointInPeriod( relsize ),
+                                  ErrorMessage    := "",
+                                  IsSuccess       := true,
+                                  Name            := "瀹為檯搴撳瓨鏁版嵁",
+                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
+                                  ErrorNo         := 0
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ConversionFactor.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ConversionFactor.qbl
new file mode 100644
index 0000000..b0ad4d2
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ConversionFactor.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_ConversionFactor
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName      := "GlobalOTDTable_ConversionFactor",
+                                  ElementTotal    := this.Global_MappingConversionFactor( relsize ),
+                                  ErrorMessage    := "",
+                                  IsSuccess       := true,
+                                  Name            := "鍗曚綅杞崲鍥犲瓙鏁版嵁",
+                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
+                                  ErrorNo         := 0
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomOrder.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomOrder.qbl
new file mode 100644
index 0000000..677960c
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_CustomOrder.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_CustomOrder
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName      := "GlobalOTDTable_CustomOrder",
+                                  ElementTotal    := this.Global_MappingCustomOrder( relsize ),
+                                  ErrorMessage    := "",
+                                  IsSuccess       := true,
+                                  Name            := "璁㈠崟鏁版嵁",
+                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
+                                  ErrorNo         := 0
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Forecast.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Forecast.qbl
new file mode 100644
index 0000000..52523c5
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Forecast.qbl
@@ -0,0 +1,5 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_Forecast
+{
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_InventorySupply.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_InventorySupply.qbl
new file mode 100644
index 0000000..2ae1628
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_InventorySupply.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_InventorySupply
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName      := "GlobalOTDTable_InventorySupply",
+                                  ElementTotal    := this.Global_MappingInventorySupply( relsize ),
+                                  ErrorMessage    := "",
+                                  IsSuccess       := true,
+                                  Name            := "搴撳瓨渚涘簲鏁版嵁",
+                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
+                                  ErrorNo         := 0
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Operation.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Operation.qbl
new file mode 100644
index 0000000..718b9d0
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Operation.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_Operation
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName      := "GlobalOTDTable_Operation",
+                                  ElementTotal    := this.Global_MappingOperation( relsize ),
+                                  ErrorMessage    := "",
+                                  IsSuccess       := true,
+                                  Name            := "鎿嶄綔鏁版嵁",
+                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
+                                  ErrorNo         := 0
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationCost.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationCost.qbl
new file mode 100644
index 0000000..313be5a
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationCost.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_OperationCost
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName      := "GlobalOTDTable_OperationCost",
+                                  ElementTotal    := this.Global_MappingOperationCost( relsize ),
+                                  ErrorMessage    := "",
+                                  IsSuccess       := true,
+                                  Name            := "鎿嶄綔鎴愭湰鏁版嵁",
+                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
+                                  ErrorNo         := 0
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ProductInLane.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ProductInLane.qbl
new file mode 100644
index 0000000..d4da6d7
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ProductInLane.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_ProductInLane
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName      := "GlobalOTDTable_ProductInLane",
+                                  ElementTotal    := this.Global_MappingProductInLane( relsize ),
+                                  ErrorMessage    := "",
+                                  IsSuccess       := true,
+                                  Name            := "浜у搧鍦ㄨ溅閬撴暟鎹�",
+                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
+                                  ErrorNo         := 0
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Product_MP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Product_MP.qbl
new file mode 100644
index 0000000..bac0207
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Product_MP.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_Product_MP
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName      := "GlobalOTDTable_Product_MP",
+                                  ElementTotal    := this.Global_MappingProduct_MP( relsize ),
+                                  ErrorMessage    := "",
+                                  IsSuccess       := true,
+                                  Name            := "浜у搧鏁版嵁",
+                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
+                                  ErrorNo         := 0
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_SalesSegment_MP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_SalesSegment_MP.qbl
new file mode 100644
index 0000000..4cf7193
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_SalesSegment_MP.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_SalesSegment_MP
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName      := "GlobalOTDTable_SalesSegment_MP",
+                                  ElementTotal    := this.Global_MappingSalesSegment_MP( relsize ),
+                                  ErrorMessage    := "",
+                                  IsSuccess       := true,
+                                  Name            := "閿�鍞儴闂�",
+                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
+                                  ErrorNo         := 0
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_StockingPointCost.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_StockingPointCost.qbl
new file mode 100644
index 0000000..1e75ed5
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_StockingPointCost.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_StockingPointCost
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName      := "GlobalOTDTable_StockingPointCost",
+                                  ElementTotal    := this.Global_MappingStockingPointCost( relsize ),
+                                  ErrorMessage    := "",
+                                  IsSuccess       := true,
+                                  Name            := "搴撳瓨鐐规垚鏈暟鎹�",
+                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
+                                  ErrorNo         := 0
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP.qbl
new file mode 100644
index 0000000..d8eb2dd
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_UnitOfMeasure_MP
+{
+  TextBody:
+  [*
+    this.Global_BrokerExecuteLog( relnew,
+                                  BrokerName      := "GlobalOTDTable_UnitOfMeasure_MP",
+                                  ElementTotal    := this.Global_MappingUnitOfMeasure_MP( relsize ),
+                                  ErrorMessage    := "",
+                                  IsSuccess       := true,
+                                  Name            := "鍗曚綅鏁版嵁",
+                                  SuccessDateTime := DateTime::ActualTime().Format( "Y-M-D H2:m:s" ),
+                                  ErrorNo         := 0
+                                 );
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_ReceivingPanelMaterials.qbl b/_Main/BL/Type_GlobalDTOTable/Method_ReceivingPanelMaterials.qbl
index 7a92a12..08f1d13 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_ReceivingPanelMaterials.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_ReceivingPanelMaterials.qbl
@@ -6,7 +6,7 @@
 {
   TextBody:
   [*
-    logfile( "--------------------------------------1------------------------------------------------" );
+    logfile( "--------------------------------------1锛岃繘鏉ヤ簡------------------------------------------------" );
     nameValue := requestnvt.Root();
     
     bodyHandle := requestnvt.GetHandle( "Body" );
@@ -40,9 +40,7 @@
       PanelMaterialTM18::ReceiveDataGeneration( this, requestnvt );
     }
     
-    
     info( "---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" );
-    
     
     replynvt := LibInt_MessageAccessor::CreateEmptyMessage();
     LibInt_MessageAccessor::SetHeaderProperty( replynvt, "Content-Type", "application/json" );
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeOrders.qbl b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeOrders.qbl
new file mode 100644
index 0000000..8d93ae2
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeOrders.qbl
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#parent: #root
+Method SynchronizeOrders (
+  MacroPlan macroPlan
+)
+{
+  TextBody:
+  [*
+    info( "浜у搧涓暟锛�", macroPlan.Product_MP( relsize ) );
+    
+    traverse ( this, PanelMaterialAll, pma ) {
+      if ( pma.BusinessType() = "姹借溅鐢靛瓙" ) {
+        PanelMaterialAll::SynchronizePanelMaterialAutomotiveElectronics( macroPlan, pma );
+      } else if ( pma.BusinessType() = "IT" ) {
+        PanelMaterialAll::SynchronizePanelMaterialIT( macroPlan, pma );
+      } else if ( pma.BusinessType() = "涓撴樉" ) {
+        PanelMaterialAll::SynchronizePanelMaterialSpecializedDisplay( macroPlan, pma );
+      } else if ( pma.BusinessType() = "杩愬姩鍋ュ悍" ) {
+        PanelMaterialAll::SynchronizePanelMaterialSportsHealth( macroPlan, pma );
+      } else if ( pma.BusinessType() = "澶╁崕" ) {
+        PanelMaterialAll::SynchronizePanelMaterialTianHua( macroPlan, pma );
+      } else if ( pma.BusinessType() = "TM17" ) {
+        PanelMaterialAll::SynchronizePanelMaterialTM17( macroPlan, pma );
+      } else if ( pma.BusinessType() = "TM18" ) {
+        PanelMaterialAll::SynchronizePanelMaterialTM18( macroPlan, pma );
+      } else if ( pma.BusinessType() = "杞﹁浇" ) {
+        PanelMaterialAll::SynchronizePanelMaterialVehicle( macroPlan, pma );
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationAllMappingBrokerAndAPI.qbl b/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationAllMappingBrokerAndAPI.qbl
new file mode 100644
index 0000000..46883f2
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationAllMappingBrokerAndAPI.qbl
@@ -0,0 +1,48 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizationAllMappingBrokerAndAPI (
+  MacroPlan macroPlan,
+  GlobalOTDTable globalOTDTable
+)
+{
+  TextBody:
+  [*
+    globalOTDTable.Global_MappingUnitOfMeasure_MP( relflush );
+    globalOTDTable.Global_MappingSalesSegment_MP( relflush );
+    globalOTDTable.Global_MappingStockingPoint_MP( relflush );
+    globalOTDTable.Global_MappingCurrency_MP( relflush );
+    globalOTDTable.Global_MappingCurrencyRate_MP( relflush );
+    globalOTDTable.Global_MappingProduct_MP( relflush );
+    globalOTDTable.Global_MappingConversionFactor( relflush );
+    globalOTDTable.Global_MappingOperation( relflush );
+    globalOTDTable.Global_MappingOperationBOM( relflush );
+    globalOTDTable.Global_MappingLane( relflush );
+    globalOTDTable.Global_MappingLaneLeg( relflush );
+    globalOTDTable.Global_MappingProductInLane( relflush );
+    globalOTDTable.Global_MappingActualProductInStockingPointInPeriod( relflush );
+    globalOTDTable.Global_MappingInventorySupply( relflush );
+    globalOTDTable.Global_MappingStockingPointCost( relflush );
+    globalOTDTable.Global_MappingOperationCost( relflush );
+    globalOTDTable.Global_MappingForecast( relflush );
+    globalOTDTable.Global_MappingCustomOrder( relflush );
+    
+    //globalOTDTable.GlobalOTDTable_UnitOfMeasure_MP().AsyncExecute();
+    //globalOTDTable.GlobalOTDTable_SalesSegment_MP().AsyncExecute();
+    //Global_MappingStockingPoint_MP::CreateByAPI( globalOTDTable );鍚庨潰琛�
+    //Global_MappingCurrency_MP::CreateByAPI( globalOTDTable );鍚庨潰琛�
+    //Global_MappingCurrencyRate_MP::CreateByAPI( globalOTDTable );鍚庨潰琛�
+    //globalOTDTable.GlobalOTDTable_Product_MP().AsyncExecute();
+    //globalOTDTable.GlobalOTDTable_ConversionFactor().AsyncExecute()寮傚父;
+    //globalOTDTable.GlobalOTDTable_Operation().AsyncExecute();寮傚父
+    //globalOTDTable.GlobalOTDTable_OperationBOM().AsyncExecute();寮傚父
+    //Global_MappingLane::CreateByAPI( globalOTDTable );
+    //Global_MappingLaneLeg::CreateByAPI( globalOTDTable );
+    //globalOTDTable.GlobalOTDTable_ProductInLane().AsyncExecute();寮傚父
+    //globalOTDTable.GlobalOTDTable_AIPISPIP().AsyncExecute();寮傚父
+    //globalOTDTable.GlobalOTDTable_InventorySupply().AsyncExecute();寮傚父
+    //globalOTDTable.GlobalOTDTable_StockingPointCost().AsyncExecute();寮傚父
+    //globalOTDTable.GlobalOTDTable_OperationCost().AsyncExecute();寮傚父
+    //globalOTDTable.GlobalOTDTable_Forecast().AsyncExecute();寮傚父
+    //globalOTDTable.GlobalOTDTable_CustomOrder().AsyncExecute();
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationSalesSegment_MP.qbl b/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationSalesSegment_MP.qbl
new file mode 100644
index 0000000..01a32c3
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationSalesSegment_MP.qbl
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizationSalesSegment_MP (
+  MacroPlan macroPlan,
+  GlobalOTDTable globalOTDTable,
+  Strings businessTypes
+)
+{
+  TextBody:
+  [*
+    businessType := businessTypes.Element( 0 );
+    
+    targetGlobal_MappingSalesSegment_MPs := selectsortedset( globalOTDTable, 
+                                                             Global_MappingSalesSegment_MP,
+                                                             tempGMSSMP,
+                                                             tempGMSSMP.BusinessType() = businessType,
+                                                             tempGMSSMP.DisplayIndex()
+                                                            );
+    
+    maxLevel := 0;
+    traverse ( targetGlobal_MappingSalesSegment_MPs, Elements, gmssmp ) {
+      targetParentSalesSegment_MP := select( macroPlan, SalesSegment_MP, tempSSMP, tempSSMP.Name() = gmssmp.ParentName() );
+      SalesSegment_MP::Create( macroPlan, targetParentSalesSegment_MP, gmssmp.Name(), gmssmp.DisplayIndex(), false );
+      maxLevel := maxvalue( maxLevel, gmssmp.DisplayIndex() );
+    }
+    
+    for ( i := 1; i <= maxLevel; i++ ) {
+      SalesLevel_MP::Create( [String]i, macroPlan, false ); 
+    }
+  *]
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationStockingPoint_MP.qbl b/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationStockingPoint_MP.qbl
new file mode 100644
index 0000000..d933711
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationStockingPoint_MP.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizationStockingPoint_MP (
+  MacroPlan macroPlan,
+  GlobalOTDTable globalOTDTable
+)
+{
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationUnitOfMeasure_MP.qbl b/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationUnitOfMeasure_MP.qbl
new file mode 100644
index 0000000..d4805bf
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationUnitOfMeasure_MP.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizationUnitOfMeasure_MP (
+  MacroPlan macroPlan,
+  GlobalOTDTable globalOTDTable
+)
+{
+  TextBody:
+  [*
+    info( "鍒濆鍖栧畬鎴�, 寮�濮嬫墽琛� UnitOfMeasure_MP Data Broker" );
+    //globalOTDTable.GlobalOTDTable_UnitOfMeasure_MP().Execute();
+    
+    info( "UnitOfMeasure_MP Data Broker 鎵ц瀹屾垚, Start UnitOfMeasure_MP Mapping" )
+    traverse ( globalOTDTable, Global_MappingUnitOfMeasure_MP, tempGMUOMMP, true ) {
+      if ( isnull( UnitOfMeasure_MP::FindByName( macroPlan, tempGMUOMMP.Name() ) ) ) {
+        targetUnitOfMeasure_MP := UnitOfMeasure_MP::Create( macroPlan, tempGMUOMMP.Name(), false, false );
+        if ( tempGMUOMMP.IsDefault() ) {
+          targetUnitOfMeasure_MP.SetAsDefault();
+        }
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_BrokerName.qbl b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_BrokerName.qbl
new file mode 100644
index 0000000..be43894
--- /dev/null
+++ b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_BrokerName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BrokerName
+{
+  #keys: '3[414702.0.265409667][414702.0.265409666][414702.0.265409668]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ElementTotal.qbl b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ElementTotal.qbl
new file mode 100644
index 0000000..875b972
--- /dev/null
+++ b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ElementTotal.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ElementTotal
+{
+  #keys: '3[414702.0.265409647][414702.0.265409646][414702.0.265409648]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorDateTime.qbl b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorDateTime.qbl
new file mode 100644
index 0000000..a40993c
--- /dev/null
+++ b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorDateTime.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ErrorDateTime
+{
+  #keys: '3[414702.0.265409719][414702.0.265409718][414702.0.265409720]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorMessage.qbl b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorMessage.qbl
new file mode 100644
index 0000000..8889795
--- /dev/null
+++ b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorMessage.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ErrorMessage
+{
+  #keys: '3[414702.0.265409677][414702.0.265409676][414702.0.265409678]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorNo.qbl b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorNo.qbl
new file mode 100644
index 0000000..9f859c7
--- /dev/null
+++ b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorNo.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ErrorNo
+{
+  #keys: '3[414702.0.265409730][414702.0.265409729][414702.0.265409731]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_IsSuccess.qbl b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_IsSuccess.qbl
new file mode 100644
index 0000000..9371588
--- /dev/null
+++ b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_IsSuccess.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsSuccess
+{
+  #keys: '3[414702.0.265409687][414702.0.265409686][414702.0.265409688]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_Name.qbl b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_Name.qbl
new file mode 100644
index 0000000..952c519
--- /dev/null
+++ b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[414702.0.265409697][414702.0.265409696][414702.0.265409698]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_SuccessDateTime.qbl b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_SuccessDateTime.qbl
new file mode 100644
index 0000000..118f95e
--- /dev/null
+++ b/_Main/BL/Type_Global_BrokerExecuteLog/Attribute_SuccessDateTime.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SuccessDateTime
+{
+  #keys: '3[414702.0.265409657][414702.0.265409656][414702.0.265409658]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_BrokerExecuteLog/_ROOT_Type_Global_BrokerExecuteLog.qbl b/_Main/BL/Type_Global_BrokerExecuteLog/_ROOT_Type_Global_BrokerExecuteLog.qbl
new file mode 100644
index 0000000..828e927
--- /dev/null
+++ b/_Main/BL/Type_Global_BrokerExecuteLog/_ROOT_Type_Global_BrokerExecuteLog.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_BrokerExecuteLog
+{
+  #keys: '5[414702.0.265587043][414702.0.265587041][0.0.0][414702.0.265587042][414702.0.265587044]'
+  BaseType: Object
+  StructuredName: 'Global_BrokerExecuteLogs'
+}
diff --git a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_ActualInventoryLevelEnd.qbl b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_ActualInventoryLevelEnd.qbl
new file mode 100644
index 0000000..88049ea
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_ActualInventoryLevelEnd.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ActualInventoryLevelEnd
+{
+  #keys: '3[414702.0.262251995][414702.0.262251994][414702.0.262251996]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_Date.qbl b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_Date.qbl
new file mode 100644
index 0000000..6bc7ee6
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_Date.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Date
+{
+  #keys: '3[414702.0.262252005][414702.0.262252004][414702.0.262252006]'
+  IsReadOnly: true
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_Description.qbl b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_Description.qbl
new file mode 100644
index 0000000..8400797
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_Description.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Description
+{
+  #keys: '3[414702.0.262252018][414702.0.262252017][414702.0.262252019]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_IsAvailable.qbl b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_IsAvailable.qbl
new file mode 100644
index 0000000..79fc159
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_IsAvailable.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsAvailable
+{
+  #keys: '3[414702.0.262252028][414702.0.262252027][414702.0.262252029]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_ManufacturedDate.qbl b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_ManufacturedDate.qbl
new file mode 100644
index 0000000..55f70c4
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_ManufacturedDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ManufacturedDate
+{
+  #keys: '3[414702.0.262252041][414702.0.262252040][414702.0.262252042]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_ProductID.qbl b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_ProductID.qbl
new file mode 100644
index 0000000..bf2b39f
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_ProductID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414702.0.262252054][414702.0.262252053][414702.0.262252055]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_StockType.qbl b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_StockType.qbl
new file mode 100644
index 0000000..5fb1718
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_StockType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockType
+{
+  #keys: '3[414702.0.262252080][414702.0.262252079][414702.0.262252081]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_StockingPointID.qbl b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..46d1307
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_StockingPointID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+  #keys: '3[414702.0.262252067][414702.0.262252066][414702.0.262252068]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/TypeIndex_MappingActualPISPIPTypeIndex.qbl b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/TypeIndex_MappingActualPISPIPTypeIndex.qbl
new file mode 100644
index 0000000..da6905e
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/TypeIndex_MappingActualPISPIPTypeIndex.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex MappingActualPISPIPTypeIndex
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: Date
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: ProductID
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: StockingPointID
+    }
+  ]
+}
diff --git a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/_ROOT_Type_Global_MappingActualProductInStockingPointInPeriod.qbl b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/_ROOT_Type_Global_MappingActualProductInStockingPointInPeriod.qbl
new file mode 100644
index 0000000..56520e3
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/_ROOT_Type_Global_MappingActualProductInStockingPointInPeriod.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingActualProductInStockingPointInPeriod
+{
+  #keys: '5[414702.0.262251935][414702.0.262251933][0.0.0][414702.0.262251934][414702.0.262251936]'
+  BaseType: Object
+  StructuredName: 'Global_MappingActualProductInStockingPointInPeriods'
+}
diff --git a/_Main/BL/Type_Global_MappingConversionFactor/Attribute_Factor.qbl b/_Main/BL/Type_Global_MappingConversionFactor/Attribute_Factor.qbl
new file mode 100644
index 0000000..cad933e
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingConversionFactor/Attribute_Factor.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Factor
+{
+  #keys: '3[414702.0.247716851][414702.0.247716850][414702.0.247716852]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingConversionFactor/Attribute_IsEnabled.qbl b/_Main/BL/Type_Global_MappingConversionFactor/Attribute_IsEnabled.qbl
new file mode 100644
index 0000000..74bd9eb
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingConversionFactor/Attribute_IsEnabled.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsEnabled
+{
+  #keys: '3[414702.0.247716861][414702.0.247716860][414702.0.247716862]'
+  IsReadOnly: true
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingConversionFactor/Attribute_ProductID.qbl b/_Main/BL/Type_Global_MappingConversionFactor/Attribute_ProductID.qbl
new file mode 100644
index 0000000..ffb1677
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingConversionFactor/Attribute_ProductID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414702.0.247716871][414702.0.247716870][414702.0.247716872]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingConversionFactor/Attribute_SourceUnitOfMeasureName.qbl b/_Main/BL/Type_Global_MappingConversionFactor/Attribute_SourceUnitOfMeasureName.qbl
new file mode 100644
index 0000000..547cf24
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingConversionFactor/Attribute_SourceUnitOfMeasureName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SourceUnitOfMeasureName
+{
+  #keys: '3[414702.0.247716881][414702.0.247716880][414702.0.247716882]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingConversionFactor/Attribute_TargetUnitOfMeasureName.qbl b/_Main/BL/Type_Global_MappingConversionFactor/Attribute_TargetUnitOfMeasureName.qbl
new file mode 100644
index 0000000..9ef2e49
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingConversionFactor/Attribute_TargetUnitOfMeasureName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TargetUnitOfMeasureName
+{
+  #keys: '3[414702.0.247716891][414702.0.247716890][414702.0.247716892]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingConversionFactor/TypeIndex_TypeIndex.qbl b/_Main/BL/Type_Global_MappingConversionFactor/TypeIndex_TypeIndex.qbl
new file mode 100644
index 0000000..370a05f
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingConversionFactor/TypeIndex_TypeIndex.qbl
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex TypeIndex
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: IsEnabled
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: ProductID
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: SourceUnitOfMeasureName
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: TargetUnitOfMeasureName
+    }
+  ]
+}
diff --git a/_Main/BL/Type_Global_MappingConversionFactor/_ROOT_Type_Global_MappingConversionFactor.qbl b/_Main/BL/Type_Global_MappingConversionFactor/_ROOT_Type_Global_MappingConversionFactor.qbl
new file mode 100644
index 0000000..3d26d6d
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingConversionFactor/_ROOT_Type_Global_MappingConversionFactor.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingConversionFactor
+{
+  #keys: '5[414702.0.247716832][414702.0.247716830][0.0.0][414702.0.247716831][414702.0.247716833]'
+  BaseType: Object
+  StructuredName: 'Global_MappingConversionFactors'
+}
diff --git a/_Main/BL/Type_Global_MappingCurrencyRate_MP/Attribute_CurrencyID.qbl b/_Main/BL/Type_Global_MappingCurrencyRate_MP/Attribute_CurrencyID.qbl
new file mode 100644
index 0000000..70588bf
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrencyRate_MP/Attribute_CurrencyID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CurrencyID
+{
+  #keys: '3[414702.0.247706552][414702.0.247706551][414702.0.247706553]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCurrencyRate_MP/Attribute_Rate.qbl b/_Main/BL/Type_Global_MappingCurrencyRate_MP/Attribute_Rate.qbl
new file mode 100644
index 0000000..a601632
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrencyRate_MP/Attribute_Rate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Rate
+{
+  #keys: '3[414702.0.247706562][414702.0.247706561][414702.0.247706563]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingCurrencyRate_MP/Attribute_Start.qbl b/_Main/BL/Type_Global_MappingCurrencyRate_MP/Attribute_Start.qbl
new file mode 100644
index 0000000..0300fcf
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrencyRate_MP/Attribute_Start.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Start
+{
+  #keys: '3[414702.0.247706575][414702.0.247706574][414702.0.247706576]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl
new file mode 100644
index 0000000..b927816
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateByAPI (
+  GlobalOTDTable globalOTDTable
+)
+{
+  TextBody:
+  [*
+    globalOTDTable.Global_MappingCurrencyRate_MP( relflush );
+    
+    bodynumber := "5";
+    postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
+    address := "api-uat-sgc.tianma.cn";
+    url := "/otdService/https/GetCurrencyRatesInfo";
+    port := 443;
+    i := HTTPInterface::Create( address, port);
+    i.URL( url );
+    i.SSL( true );
+    i.SSLKeystore( "MyKeystore" );
+    i.PostMethod( true ); //it's a POST method
+    
+    i.Call( postrequestbody ); // Call's argument is for POST method's content.
+    htmlresult := i.Result();
+    
+    htmlresponse := JSON::Parse( htmlresult );
+    reponseDataJson := htmlresponse.Get( "responseData" );
+    datalist := reponseDataJson.Get( "dataList" );
+    
+    cnv2 := StringToDate::StandardConverter();
+    cnv2.SetCustomConversion();
+    cnv2.CustomFormatString( 'yyyy-MM-dd' );
+    total := datalist.Size();
+    for ( j := 0; j < total; j++ ) {
+      globalOTDTable.Global_MappingCurrencyRate_MP( relnew,
+                                                    CurrencyID := guard( datalist.Get( j ).Get( "currencyid" ).GetString(), "" ),
+                                                    Rate       := guard( [Real]datalist.Get( j ).Get( "rate" ).GetString(), 0.0 ),
+                                                    Start      := guard( cnv2.Convert( datalist.Get( j ).Get( "start" ).GetString() ), Date::MinDate() )
+                                                   );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingCurrencyRate_MP/_ROOT_Type_Global_MappingCurrencyRate_MP.qbl b/_Main/BL/Type_Global_MappingCurrencyRate_MP/_ROOT_Type_Global_MappingCurrencyRate_MP.qbl
new file mode 100644
index 0000000..95c9609
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrencyRate_MP/_ROOT_Type_Global_MappingCurrencyRate_MP.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingCurrencyRate_MP
+{
+  #keys: '5[414702.0.247665113][414702.0.247665111][0.0.0][414702.0.247665112][414702.0.247665114]'
+  BaseType: Object
+  StructuredName: 'Global_MappingCurrencyRate_MPs'
+}
diff --git a/_Main/BL/Type_Global_MappingCurrency_MP/Attribute_ID.qbl b/_Main/BL/Type_Global_MappingCurrency_MP/Attribute_ID.qbl
new file mode 100644
index 0000000..1ffa886
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrency_MP/Attribute_ID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[414702.0.247705924][414702.0.247705923][414702.0.247705925]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCurrency_MP/Attribute_IsBase.qbl b/_Main/BL/Type_Global_MappingCurrency_MP/Attribute_IsBase.qbl
new file mode 100644
index 0000000..ec6c69b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrency_MP/Attribute_IsBase.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsBase
+{
+  #keys: '3[414702.0.247664837][414702.0.247664836][414702.0.247664838]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingCurrency_MP/Attribute_Name.qbl b/_Main/BL/Type_Global_MappingCurrency_MP/Attribute_Name.qbl
new file mode 100644
index 0000000..59d3a9c
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrency_MP/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[414702.0.247664827][414702.0.247664826][414702.0.247664828]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl
new file mode 100644
index 0000000..a2f745b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl
@@ -0,0 +1,38 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateByAPI (
+  GlobalOTDTable globalOTDTable
+)
+{
+  TextBody:
+  [*
+    globalOTDTable.Global_MappingCurrency_MP( relflush );
+    
+    bodynumber := "1";
+    postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
+    address := "api-uat-sgc.tianma.cn";
+    url := "/otdService/https/GetCurrenciesInfo";
+    port := 443;
+    i := HTTPInterface::Create( address, port);
+    i.URL( url );
+    i.SSL( true );
+    i.SSLKeystore( "MyKeystore" );
+    i.PostMethod( true ); //it's a POST method
+    
+    i.Call( postrequestbody ); // Call's argument is for POST method's content.
+    htmlresult := i.Result();
+    
+    htmlresponse := JSON::Parse( htmlresult );
+    reponseDataJson := htmlresponse.Get( "responseData" );
+    datalist := reponseDataJson.Get( "dataList" );
+    
+    total := datalist.Size();
+    for ( j := 0; j < total; j++ ) {
+      globalOTDTable.Global_MappingCurrency_MP( relnew,
+                                                ID     := guard( datalist.Get( j ).Get( "id" ).GetString(), "" ),
+                                                Name   := guard( datalist.Get( j ).Get( "name" ).GetString(), "" ),
+                                                IsBase := guard( datalist.Get( j ).Get( "isbase" ).GetBoolean(), false )
+                                               );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingCurrency_MP/_ROOT_Type_Global_MappingCurrency_MP.qbl b/_Main/BL/Type_Global_MappingCurrency_MP/_ROOT_Type_Global_MappingCurrency_MP.qbl
new file mode 100644
index 0000000..d93f74c
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrency_MP/_ROOT_Type_Global_MappingCurrency_MP.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingCurrency_MP
+{
+  #keys: '5[414702.0.247705874][414702.0.247705872][0.0.0][414702.0.247705873][414702.0.247705875]'
+  BaseType: Object
+  StructuredName: 'Global_MappingCurrency_MPs'
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_BusinessType.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..bfa20ee
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_BusinessType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+  #keys: '3[414702.0.265050257][414702.0.265050256][414702.0.265050258]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_CurrencyID.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_CurrencyID.qbl
new file mode 100644
index 0000000..72f92fc
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_CurrencyID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CurrencyID
+{
+  #keys: '3[414702.0.265050267][414702.0.265050266][414702.0.265050268]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_Customer.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_Customer.qbl
new file mode 100644
index 0000000..2f17f23
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_Customer.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Customer
+{
+  #keys: '3[414702.0.265050277][414702.0.265050276][414702.0.265050278]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_CustomerID.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_CustomerID.qbl
new file mode 100644
index 0000000..022daa1
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_CustomerID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomerID
+{
+  #keys: '3[414702.0.265050287][414702.0.265050286][414702.0.265050288]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_ID.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_ID.qbl
new file mode 100644
index 0000000..b3f10e8
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[414702.0.265050297][414702.0.265050296][414702.0.265050298]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_IsAvailable.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_IsAvailable.qbl
new file mode 100644
index 0000000..84eb713
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_IsAvailable.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsAvailable
+{
+  #keys: '3[414702.0.265050307][414702.0.265050306][414702.0.265050308]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderDate.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderDate.qbl
new file mode 100644
index 0000000..d43da69
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderDate
+{
+  #keys: '3[414702.0.265050317][414702.0.265050316][414702.0.265050318]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderID.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderID.qbl
new file mode 100644
index 0000000..4cb585c
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderID
+{
+  #keys: '3[414702.0.265050327][414702.0.265050326][414702.0.265050328]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderLineID.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderLineID.qbl
new file mode 100644
index 0000000..b220b24
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderLineID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderLineID
+{
+  #keys: '3[414702.0.265050337][414702.0.265050336][414702.0.265050338]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderType.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderType.qbl
new file mode 100644
index 0000000..7e887b1
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderType
+{
+  #keys: '3[414702.0.265050347][414702.0.265050346][414702.0.265050348]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_Price.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_Price.qbl
new file mode 100644
index 0000000..0b78e7a
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_Price.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Price
+{
+  #keys: '3[414702.0.265050357][414702.0.265050356][414702.0.265050358]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_PriorityName.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_PriorityName.qbl
new file mode 100644
index 0000000..503f72e
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_PriorityName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PriorityName
+{
+  #keys: '3[414702.0.265050367][414702.0.265050366][414702.0.265050368]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_ProductID.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_ProductID.qbl
new file mode 100644
index 0000000..0a36831
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_ProductID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414702.0.265050377][414702.0.265050376][414702.0.265050378]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_Quantity.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_Quantity.qbl
new file mode 100644
index 0000000..a1e5d12
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_Quantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+  #keys: '3[414702.0.265050387][414702.0.265050386][414702.0.265050388]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_SalesSegmentName.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_SalesSegmentName.qbl
new file mode 100644
index 0000000..5852c57
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_SalesSegmentName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SalesSegmentName
+{
+  #keys: '3[414702.0.265050397][414702.0.265050396][414702.0.265050398]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_StockingPointID.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..711c748
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_StockingPointID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+  #keys: '3[414702.0.265050407][414702.0.265050406][414702.0.265050408]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/Attribute_UnitOfMeasureName.qbl b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_UnitOfMeasureName.qbl
new file mode 100644
index 0000000..7db56bb
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/Attribute_UnitOfMeasureName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitOfMeasureName
+{
+  #keys: '3[414702.0.265050417][414702.0.265050416][414702.0.265050418]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/TypeIndex_TypeIndex.qbl b/_Main/BL/Type_Global_MappingCustomOrder/TypeIndex_TypeIndex.qbl
new file mode 100644
index 0000000..29c1c4b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/TypeIndex_TypeIndex.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex TypeIndex
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: ID
+    }
+  ]
+}
diff --git a/_Main/BL/Type_Global_MappingCustomOrder/_ROOT_Type_Global_MappingCustomOrder.qbl b/_Main/BL/Type_Global_MappingCustomOrder/_ROOT_Type_Global_MappingCustomOrder.qbl
new file mode 100644
index 0000000..77bd71b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCustomOrder/_ROOT_Type_Global_MappingCustomOrder.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingCustomOrder
+{
+  #keys: '5[414702.0.264905849][414702.0.264905847][0.0.0][414702.0.264905848][414702.0.264905850]'
+  BaseType: Object
+  StructuredName: 'Global_MappingCustomOrders'
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/Attribute_BusinessType.qbl b/_Main/BL/Type_Global_MappingForecast/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..efba161
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/Attribute_BusinessType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+  #keys: '3[414702.0.264905720][414702.0.264905719][414702.0.264905721]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/Attribute_CurrencyID.qbl b/_Main/BL/Type_Global_MappingForecast/Attribute_CurrencyID.qbl
new file mode 100644
index 0000000..5057465
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/Attribute_CurrencyID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CurrencyID
+{
+  #keys: '3[414702.0.264905730][414702.0.264905729][414702.0.264905731]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/Attribute_EndDate.qbl b/_Main/BL/Type_Global_MappingForecast/Attribute_EndDate.qbl
new file mode 100644
index 0000000..bd2000e
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/Attribute_EndDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndDate
+{
+  #keys: '3[414702.0.264905740][414702.0.264905739][414702.0.264905741]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/Attribute_ID.qbl b/_Main/BL/Type_Global_MappingForecast/Attribute_ID.qbl
new file mode 100644
index 0000000..72bf201
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[414702.0.264905750][414702.0.264905749][414702.0.264905751]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/Attribute_Price.qbl b/_Main/BL/Type_Global_MappingForecast/Attribute_Price.qbl
new file mode 100644
index 0000000..56db917
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/Attribute_Price.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Price
+{
+  #keys: '3[414702.0.264905760][414702.0.264905759][414702.0.264905761]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/Attribute_PriorityName.qbl b/_Main/BL/Type_Global_MappingForecast/Attribute_PriorityName.qbl
new file mode 100644
index 0000000..3e5454c
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/Attribute_PriorityName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PriorityName
+{
+  #keys: '3[414702.0.264905770][414702.0.264905769][414702.0.264905771]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/Attribute_ProductID.qbl b/_Main/BL/Type_Global_MappingForecast/Attribute_ProductID.qbl
new file mode 100644
index 0000000..76fdfb0
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/Attribute_ProductID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414702.0.264905780][414702.0.264905779][414702.0.264905781]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/Attribute_Quantity.qbl b/_Main/BL/Type_Global_MappingForecast/Attribute_Quantity.qbl
new file mode 100644
index 0000000..9a46ce6
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/Attribute_Quantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+  #keys: '3[414702.0.264905790][414702.0.264905789][414702.0.264905791]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/Attribute_SalesSegmentName.qbl b/_Main/BL/Type_Global_MappingForecast/Attribute_SalesSegmentName.qbl
new file mode 100644
index 0000000..001cfa6
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/Attribute_SalesSegmentName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SalesSegmentName
+{
+  #keys: '3[414702.0.264905800][414702.0.264905799][414702.0.264905801]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/Attribute_StartDate.qbl b/_Main/BL/Type_Global_MappingForecast/Attribute_StartDate.qbl
new file mode 100644
index 0000000..b6041b9
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/Attribute_StartDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+  #keys: '3[414702.0.264905810][414702.0.264905809][414702.0.264905811]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/Attribute_StockingPointID.qbl b/_Main/BL/Type_Global_MappingForecast/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..a17318e
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/Attribute_StockingPointID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+  #keys: '3[414702.0.264905823][414702.0.264905822][414702.0.264905824]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/Attribute_UnitOfMeasureName.qbl b/_Main/BL/Type_Global_MappingForecast/Attribute_UnitOfMeasureName.qbl
new file mode 100644
index 0000000..35cf924
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/Attribute_UnitOfMeasureName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitOfMeasureName
+{
+  #keys: '3[414702.0.264905833][414702.0.264905832][414702.0.264905834]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/TypeIndex_TypeIndex.qbl b/_Main/BL/Type_Global_MappingForecast/TypeIndex_TypeIndex.qbl
new file mode 100644
index 0000000..29c1c4b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/TypeIndex_TypeIndex.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex TypeIndex
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: ID
+    }
+  ]
+}
diff --git a/_Main/BL/Type_Global_MappingForecast/_ROOT_Type_Global_MappingForecast.qbl b/_Main/BL/Type_Global_MappingForecast/_ROOT_Type_Global_MappingForecast.qbl
new file mode 100644
index 0000000..fbd4f40
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingForecast/_ROOT_Type_Global_MappingForecast.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingForecast
+{
+  #keys: '5[414702.0.264901306][414702.0.264901304][0.0.0][414702.0.264901305][414702.0.264901307]'
+  BaseType: Object
+  StructuredName: 'Global_MappingForecasts'
+}
diff --git a/_Main/BL/Type_Global_MappingInventorySupply/Attribute_Date.qbl b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_Date.qbl
new file mode 100644
index 0000000..92b5404
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_Date.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Date
+{
+  #keys: '3[414702.0.264621780][414702.0.264621779][414702.0.264621781]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_Global_MappingInventorySupply/Attribute_Description.qbl b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_Description.qbl
new file mode 100644
index 0000000..fa1d524
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_Description.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Description
+{
+  #keys: '3[414702.0.264621790][414702.0.264621789][414702.0.264621791]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingInventorySupply/Attribute_ID.qbl b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_ID.qbl
new file mode 100644
index 0000000..07a5934
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[414702.0.264621800][414702.0.264621799][414702.0.264621801]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingInventorySupply/Attribute_ManufacturedDate.qbl b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_ManufacturedDate.qbl
new file mode 100644
index 0000000..2382366
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_ManufacturedDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ManufacturedDate
+{
+  #keys: '3[414702.0.264621810][414702.0.264621809][414702.0.264621811]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_Global_MappingInventorySupply/Attribute_ProductID.qbl b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_ProductID.qbl
new file mode 100644
index 0000000..fbf35f1
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_ProductID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414702.0.264621820][414702.0.264621819][414702.0.264621821]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingInventorySupply/Attribute_StockingPointID.qbl b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..c1c48b7
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_StockingPointID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+  #keys: '3[414702.0.264621830][414702.0.264621829][414702.0.264621831]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingInventorySupply/Attribute_SupplyType.qbl b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_SupplyType.qbl
new file mode 100644
index 0000000..6d09d45
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_SupplyType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SupplyType
+{
+  #keys: '3[414702.0.264621840][414702.0.264621839][414702.0.264621841]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingInventorySupply/Attribute_UserQuantity.qbl b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_UserQuantity.qbl
new file mode 100644
index 0000000..bad7e8b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingInventorySupply/Attribute_UserQuantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UserQuantity
+{
+  #keys: '3[414702.0.264621850][414702.0.264621849][414702.0.264621851]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingInventorySupply/TypeIndex_TypeIndex.qbl b/_Main/BL/Type_Global_MappingInventorySupply/TypeIndex_TypeIndex.qbl
new file mode 100644
index 0000000..29c1c4b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingInventorySupply/TypeIndex_TypeIndex.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex TypeIndex
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: ID
+    }
+  ]
+}
diff --git a/_Main/BL/Type_Global_MappingInventorySupply/_ROOT_Type_Global_MappingInventorySupply.qbl b/_Main/BL/Type_Global_MappingInventorySupply/_ROOT_Type_Global_MappingInventorySupply.qbl
new file mode 100644
index 0000000..c2fd61d
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingInventorySupply/_ROOT_Type_Global_MappingInventorySupply.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingInventorySupply
+{
+  #keys: '5[414702.0.264621761][414702.0.264621759][0.0.0][414702.0.264621760][414702.0.264621762]'
+  BaseType: Object
+  StructuredName: 'Global_MappingInventorySupplys'
+}
diff --git a/_Main/BL/Type_Global_MappingLane/Attribute_ID.qbl b/_Main/BL/Type_Global_MappingLane/Attribute_ID.qbl
new file mode 100644
index 0000000..94add6c
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLane/Attribute_ID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[414702.0.262115668][414702.0.262115667][414702.0.262115669]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingLane/Attribute_Name.qbl b/_Main/BL/Type_Global_MappingLane/Attribute_Name.qbl
new file mode 100644
index 0000000..9194145
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLane/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[414702.0.261962980][414702.0.261962979][414702.0.261962981]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingLane/Attribute_UnitID.qbl b/_Main/BL/Type_Global_MappingLane/Attribute_UnitID.qbl
new file mode 100644
index 0000000..59552ab
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLane/Attribute_UnitID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitID
+{
+  #keys: '3[414702.0.261962990][414702.0.261962989][414702.0.261962991]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingLane/Attribute_UserLeadTime.qbl b/_Main/BL/Type_Global_MappingLane/Attribute_UserLeadTime.qbl
new file mode 100644
index 0000000..30037ed
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLane/Attribute_UserLeadTime.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UserLeadTime
+{
+  #keys: '3[414702.0.261963000][414702.0.261962999][414702.0.261963001]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl
new file mode 100644
index 0000000..70f08b8
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl
@@ -0,0 +1,39 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateByAPI (
+  GlobalOTDTable globalOTDTable
+)
+{
+  TextBody:
+  [*
+    globalOTDTable.Global_MappingLane( relflush );
+    
+    bodynumber := "3";
+    postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
+    address := "api-uat-sgc.tianma.cn";
+    url := "/otdService/https/GetLanesInfo";
+    port := 443;
+    i := HTTPInterface::Create( address, port);
+    i.URL( url );
+    i.SSL( true );
+    i.SSLKeystore( "MyKeystore" );
+    i.PostMethod( true ); //it's a POST method
+    
+    i.Call( postrequestbody ); // Call's argument is for POST method's content.
+    htmlresult := i.Result();
+    
+    htmlresponse := JSON::Parse( htmlresult );
+    reponseDataJson := htmlresponse.Get( "responseData" );
+    datalist := reponseDataJson.Get( "dataList" );
+    
+    total := datalist.Size();
+    for ( j := 0; j < total; j++ ) {
+      globalOTDTable.Global_MappingLane( relnew,
+                                         ID:= guard( datalist.Get( j ).Get( "id" ).GetString(), "" ),
+                                         Name   := guard( datalist.Get( j ).Get( "name" ).GetString(), "" ),
+                                         UnitID := guard( datalist.Get( j ).Get( "unitid" ).GetString(), "" ),
+                                         UserLeadTime := guard( datalist.Get( j ).Get( "userleadtime" ).GetString(), "" )
+                                        );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingLane/_ROOT_Type_Global_MappingLane.qbl b/_Main/BL/Type_Global_MappingLane/_ROOT_Type_Global_MappingLane.qbl
new file mode 100644
index 0000000..85253a3
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLane/_ROOT_Type_Global_MappingLane.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingLane
+{
+  #keys: '5[414702.0.262115640][414702.0.262115638][0.0.0][414702.0.262115639][414702.0.262115641]'
+  BaseType: Object
+  StructuredName: 'Global_MappingLanes'
+}
diff --git a/_Main/BL/Type_Global_MappingLaneLeg/Attribute_DestinationStockingPointID.qbl b/_Main/BL/Type_Global_MappingLaneLeg/Attribute_DestinationStockingPointID.qbl
new file mode 100644
index 0000000..f847bdb
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLaneLeg/Attribute_DestinationStockingPointID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DestinationStockingPointID
+{
+  #keys: '3[414702.0.262115693][414702.0.262115692][414702.0.262115694]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingLaneLeg/Attribute_LaneID.qbl b/_Main/BL/Type_Global_MappingLaneLeg/Attribute_LaneID.qbl
new file mode 100644
index 0000000..6348e20
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLaneLeg/Attribute_LaneID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LaneID
+{
+  #keys: '3[414702.0.262115703][414702.0.262115702][414702.0.262115704]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingLaneLeg/Attribute_Name.qbl b/_Main/BL/Type_Global_MappingLaneLeg/Attribute_Name.qbl
new file mode 100644
index 0000000..415fc30
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLaneLeg/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[414702.0.262115713][414702.0.262115712][414702.0.262115714]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingLaneLeg/Attribute_OriginStockingPointID.qbl b/_Main/BL/Type_Global_MappingLaneLeg/Attribute_OriginStockingPointID.qbl
new file mode 100644
index 0000000..7b3e636
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLaneLeg/Attribute_OriginStockingPointID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OriginStockingPointID
+{
+  #keys: '3[414702.0.262115723][414702.0.262115722][414702.0.262115724]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingLaneLeg/Attribute_UserLeadTime.qbl b/_Main/BL/Type_Global_MappingLaneLeg/Attribute_UserLeadTime.qbl
new file mode 100644
index 0000000..17c076a
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLaneLeg/Attribute_UserLeadTime.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UserLeadTime
+{
+  #keys: '3[414702.0.262115733][414702.0.262115732][414702.0.262115734]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl
new file mode 100644
index 0000000..122bc25
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateByAPI (
+  GlobalOTDTable globalOTDTable
+)
+{
+  TextBody:
+  [*
+    globalOTDTable.Global_MappingLaneLeg( relflush );
+    
+    bodynumber := "4";
+    postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
+    address := "api-uat-sgc.tianma.cn";
+    url := "/otdService/https/GetLaneLegsInfo";
+    port := 443;
+    i := HTTPInterface::Create( address, port);
+    i.URL( url );
+    i.SSL( true );
+    i.SSLKeystore( "MyKeystore" );
+    i.PostMethod( true ); //it's a POST method
+    
+    i.Call( postrequestbody ); // Call's argument is for POST method's content.
+    htmlresult := i.Result();
+    
+    htmlresponse := JSON::Parse( htmlresult );
+    reponseDataJson := htmlresponse.Get( "responseData" );
+    datalist := reponseDataJson.Get( "dataList" );
+    
+    total := datalist.Size();
+    for ( j := 0; j < total; j++ ) {
+      globalOTDTable.Global_MappingLaneLeg( relnew,
+                                            DestinationStockingPointID := guard( datalist.Get( j ).Get( "destinationstockingpointid" ).GetString(), "" ),
+                                            LaneID                     := guard( datalist.Get( j ).Get( "laneid" ).GetString(), "" ),
+                                            Name                       := guard( datalist.Get( j ).Get( "name" ).GetString(), "" ),
+                                            OriginStockingPointID      := guard( datalist.Get( j ).Get( "originstockingpointid" ).GetString(), "" ),
+                                            UserLeadTime               := guard( datalist.Get( j ).Get( "userleadtime" ).GetString(), "" )
+                                           );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingLaneLeg/_ROOT_Type_Global_MappingLaneLeg.qbl b/_Main/BL/Type_Global_MappingLaneLeg/_ROOT_Type_Global_MappingLaneLeg.qbl
new file mode 100644
index 0000000..3e8f307
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLaneLeg/_ROOT_Type_Global_MappingLaneLeg.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingLaneLeg
+{
+  #keys: '5[414702.0.261965018][414702.0.261965016][0.0.0][414702.0.261965017][414702.0.261965019]'
+  BaseType: Object
+  StructuredName: 'Global_MappingLaneLegs'
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_ActualCapacity.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_ActualCapacity.qbl
new file mode 100644
index 0000000..e1a34fd
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_ActualCapacity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ActualCapacity
+{
+  #keys: '3[414702.0.261949448][414702.0.261949447][414702.0.261949449]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_BusinessType.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..1417ed6
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_BusinessType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+  #keys: '3[414702.0.261949461][414702.0.261949460][414702.0.261949462]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_Line.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_Line.qbl
new file mode 100644
index 0000000..c3760b9
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_Line.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Line
+{
+  #keys: '3[414702.0.261949474][414702.0.261949473][414702.0.261949475]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_MaximumQuantity.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_MaximumQuantity.qbl
new file mode 100644
index 0000000..ef5f8c3
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_MaximumQuantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MaximumQuantity
+{
+  #keys: '3[414702.0.261949484][414702.0.261949483][414702.0.261949485]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_MinimumQuantity.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_MinimumQuantity.qbl
new file mode 100644
index 0000000..0d8733d
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_MinimumQuantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MinimumQuantity
+{
+  #keys: '3[414702.0.261949494][414702.0.261949493][414702.0.261949495]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_OrganCode.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_OrganCode.qbl
new file mode 100644
index 0000000..f536192
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_OrganCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrganCode
+{
+  #keys: '3[414702.0.261949504][414702.0.261949503][414702.0.261949505]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_OrganName.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_OrganName.qbl
new file mode 100644
index 0000000..f8f3a2d
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_OrganName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrganName
+{
+  #keys: '3[414702.0.261949514][414702.0.261949513][414702.0.261949515]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_PlantName.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_PlantName.qbl
new file mode 100644
index 0000000..b5f06b5
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_PlantName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PlantName
+{
+  #keys: '3[414702.0.261949524][414702.0.261949523][414702.0.261949525]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_ProcessSection.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_ProcessSection.qbl
new file mode 100644
index 0000000..e53f1d6
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_ProcessSection.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProcessSection
+{
+  #keys: '3[414702.0.261949537][414702.0.261949536][414702.0.261949538]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_ProductID.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_ProductID.qbl
new file mode 100644
index 0000000..d3238d9
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_ProductID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414702.0.261949547][414702.0.261949546][414702.0.261949548]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_SequenceNumber.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_SequenceNumber.qbl
new file mode 100644
index 0000000..34fec71
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_SequenceNumber.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SequenceNumber
+{
+  #keys: '3[414702.0.261949560][414702.0.261949559][414702.0.261949561]'
+  IsReadOnly: true
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_UnitOfMeasureName.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_UnitOfMeasureName.qbl
new file mode 100644
index 0000000..3b3d6d8
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_UnitOfMeasureName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitOfMeasureName
+{
+  #keys: '3[414702.0.261949573][414702.0.261949572][414702.0.261949574]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_UserLeadTime.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_UserLeadTime.qbl
new file mode 100644
index 0000000..15616b8
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_UserLeadTime.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UserLeadTime
+{
+  #keys: '3[414702.0.261949583][414702.0.261949582][414702.0.261949584]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/TypeIndex_NewTypeIndex.qbl b/_Main/BL/Type_Global_MappingOperation/TypeIndex_NewTypeIndex.qbl
new file mode 100644
index 0000000..e1ca871
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/TypeIndex_NewTypeIndex.qbl
@@ -0,0 +1,36 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex NewTypeIndex
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: BusinessType
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: Line
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: OrganCode
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: PlantName
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: ProcessSection
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: ProductID
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: SequenceNumber
+    }
+  ]
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/_ROOT_Type_Global_MappingOperation.qbl b/_Main/BL/Type_Global_MappingOperation/_ROOT_Type_Global_MappingOperation.qbl
new file mode 100644
index 0000000..b89eac9
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/_ROOT_Type_Global_MappingOperation.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingOperation
+{
+  #keys: '5[414702.0.261400160][414702.0.261400158][0.0.0][414702.0.261400159][414702.0.261400161]'
+  BaseType: Object
+  StructuredName: 'Global_MappingOperations'
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialCode.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialCode.qbl
new file mode 100644
index 0000000..34f2836
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute AlternativeMaterialCode
+{
+  #keys: '3[414702.0.261405175][414702.0.261405174][414702.0.261405176]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialType.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialType.qbl
new file mode 100644
index 0000000..9189cae
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute AlternativeMaterialType
+{
+  #keys: '3[414702.0.261405188][414702.0.261405187][414702.0.261405189]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialUnit.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialUnit.qbl
new file mode 100644
index 0000000..8f0cd9c
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialUnit.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute AlternativeMaterialUnit
+{
+  #keys: '3[414702.0.261405198][414702.0.261405197][414702.0.261405199]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeRate.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeRate.qbl
new file mode 100644
index 0000000..0c92f98
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeRate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute AlternativeRate
+{
+  #keys: '3[414702.0.261405208][414702.0.261405207][414702.0.261405209]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_BusinessType.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..f4f88ac
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_BusinessType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+  #keys: '3[414702.0.261405221][414702.0.261405220][414702.0.261405222]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentCode.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentCode.qbl
new file mode 100644
index 0000000..4b8629f
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ComponentCode
+{
+  #keys: '3[414702.0.261405234][414702.0.261405233][414702.0.261405235]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentDescription.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentDescription.qbl
new file mode 100644
index 0000000..dd9a062
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentDescription.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ComponentDescription
+{
+  #keys: '3[414702.0.261405247][414702.0.261405246][414702.0.261405248]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentOutputRate.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentOutputRate.qbl
new file mode 100644
index 0000000..e8989c1
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentOutputRate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ComponentOutputRate
+{
+  #keys: '3[414702.0.261405257][414702.0.261405256][414702.0.261405258]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentType.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentType.qbl
new file mode 100644
index 0000000..e186807
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ComponentType
+{
+  #keys: '3[414702.0.261405270][414702.0.261405269][414702.0.261405271]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentUnit.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentUnit.qbl
new file mode 100644
index 0000000..6c49c9e
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentUnit.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ComponentUnit
+{
+  #keys: '3[414702.0.261405280][414702.0.261405279][414702.0.261405281]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentUnitDescription.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentUnitDescription.qbl
new file mode 100644
index 0000000..b92ee54
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentUnitDescription.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ComponentUnitDescription
+{
+  #keys: '3[414702.0.261405290][414702.0.261405289][414702.0.261405291]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_DescriptionOfAlternativeMaterial.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_DescriptionOfAlternativeMaterial.qbl
new file mode 100644
index 0000000..de448e3
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_DescriptionOfAlternativeMaterial.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DescriptionOfAlternativeMaterial
+{
+  #keys: '3[414702.0.261405300][414702.0.261405299][414702.0.261405301]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_DescriptionOfAlternativeMaterialUnits.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_DescriptionOfAlternativeMaterialUnits.qbl
new file mode 100644
index 0000000..4014c58
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_DescriptionOfAlternativeMaterialUnits.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DescriptionOfAlternativeMaterialUnits
+{
+  #keys: '3[414702.0.261405310][414702.0.261405309][414702.0.261405311]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_MaterialSystem.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_MaterialSystem.qbl
new file mode 100644
index 0000000..e2499ba
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_MaterialSystem.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MaterialSystem
+{
+  #keys: '3[414702.0.261405320][414702.0.261405319][414702.0.261405321]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_OrganCode.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_OrganCode.qbl
new file mode 100644
index 0000000..42fdd82
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_OrganCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrganCode
+{
+  #keys: '3[414702.0.261405330][414702.0.261405329][414702.0.261405331]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProcessSection.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProcessSection.qbl
new file mode 100644
index 0000000..9718001
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProcessSection.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProcessSection
+{
+  #keys: '3[414702.0.261405343][414702.0.261405342][414702.0.261405344]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductCode.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductCode.qbl
new file mode 100644
index 0000000..3e426ad
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductCode
+{
+  #keys: '3[414702.0.261405356][414702.0.261405355][414702.0.261405357]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductDescribe.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductDescribe.qbl
new file mode 100644
index 0000000..52b7655
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductDescribe.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductDescribe
+{
+  #keys: '3[414702.0.261405366][414702.0.261405365][414702.0.261405367]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductType.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductType.qbl
new file mode 100644
index 0000000..2e7bcfa
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductType
+{
+  #keys: '3[414702.0.261405376][414702.0.261405375][414702.0.261405377]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductUnitDescription.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductUnitDescription.qbl
new file mode 100644
index 0000000..d242d50
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductUnitDescription.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductUnitDescription
+{
+  #keys: '3[414702.0.261405386][414702.0.261405385][414702.0.261405387]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_SubstitutionRelationship.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_SubstitutionRelationship.qbl
new file mode 100644
index 0000000..65e5c42
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_SubstitutionRelationship.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SubstitutionRelationship
+{
+  #keys: '3[414702.0.261405396][414702.0.261405395][414702.0.261405397]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_UnitOfMeasureName.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_UnitOfMeasureName.qbl
new file mode 100644
index 0000000..9d45810
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_UnitOfMeasureName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitOfMeasureName
+{
+  #keys: '3[414702.0.261405406][414702.0.261405405][414702.0.261405407]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/Attribute_UnitUsageOfComponents.qbl b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_UnitUsageOfComponents.qbl
new file mode 100644
index 0000000..cff7d28
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/Attribute_UnitUsageOfComponents.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitUsageOfComponents
+{
+  #keys: '3[414702.0.261405416][414702.0.261405415][414702.0.261405417]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/TypeIndex_TypeIndex.qbl b/_Main/BL/Type_Global_MappingOperationBOM/TypeIndex_TypeIndex.qbl
new file mode 100644
index 0000000..d2e08d2
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/TypeIndex_TypeIndex.qbl
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex TypeIndex
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: AlternativeMaterialCode
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: BusinessType
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: ComponentCode
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: OrganCode
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: ProcessSection
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: ProductCode
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: ComponentUnit
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: ComponentType
+    }
+  ]
+}
diff --git a/_Main/BL/Type_Global_MappingOperationBOM/_ROOT_Type_Global_MappingOperationBOM.qbl b/_Main/BL/Type_Global_MappingOperationBOM/_ROOT_Type_Global_MappingOperationBOM.qbl
new file mode 100644
index 0000000..b3ad2f9
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperationBOM/_ROOT_Type_Global_MappingOperationBOM.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingOperationBOM
+{
+  #keys: '5[414702.0.261400165][414702.0.261400163][0.0.0][414702.0.261400164][414702.0.261400166]'
+  BaseType: Object
+  StructuredName: 'Global_MappingOperationBOMs'
+}
diff --git a/_Main/BL/Type_Global_MappingProductInLane/Attribute_LineID.qbl b/_Main/BL/Type_Global_MappingProductInLane/Attribute_LineID.qbl
new file mode 100644
index 0000000..4a9813d
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProductInLane/Attribute_LineID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LineID
+{
+  #keys: '3[414702.0.262182403][414702.0.262182402][414702.0.262182404]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProductInLane/Attribute_ProductID.qbl b/_Main/BL/Type_Global_MappingProductInLane/Attribute_ProductID.qbl
new file mode 100644
index 0000000..1914ac4
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProductInLane/Attribute_ProductID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414702.0.262182416][414702.0.262182415][414702.0.262182417]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProductInLane/TypeIndex_TypeIndex.qbl b/_Main/BL/Type_Global_MappingProductInLane/TypeIndex_TypeIndex.qbl
new file mode 100644
index 0000000..0612fa5
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProductInLane/TypeIndex_TypeIndex.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex TypeIndex
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: LineID
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: ProductID
+    }
+  ]
+}
diff --git a/_Main/BL/Type_Global_MappingProductInLane/_ROOT_Type_Global_MappingProductInLane.qbl b/_Main/BL/Type_Global_MappingProductInLane/_ROOT_Type_Global_MappingProductInLane.qbl
new file mode 100644
index 0000000..095c710
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProductInLane/_ROOT_Type_Global_MappingProductInLane.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingProductInLane
+{
+  #keys: '5[414702.0.262177982][414702.0.262177980][0.0.0][414702.0.262177981][414702.0.262177983]'
+  BaseType: Object
+  StructuredName: 'Global_MappingProductInLanes'
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_BusinessType.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..0d9f5ca
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_BusinessType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+  #keys: '3[414702.0.247710960][414702.0.247710959][414702.0.247710961]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_CommonBusiness.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_CommonBusiness.qbl
new file mode 100644
index 0000000..f2d8b21
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_CommonBusiness.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CommonBusiness
+{
+  #keys: '3[414702.0.247710970][414702.0.247710969][414702.0.247710971]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_EndDate.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_EndDate.qbl
new file mode 100644
index 0000000..efb4082
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_EndDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndDate
+{
+  #keys: '3[414702.0.247710980][414702.0.247710979][414702.0.247710981]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_ID.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_ID.qbl
new file mode 100644
index 0000000..927e312
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[414702.0.247710990][414702.0.247710989][414702.0.247710991]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_IsCommon.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_IsCommon.qbl
new file mode 100644
index 0000000..32fd75c
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_IsCommon.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsCommon
+{
+  #keys: '3[414702.0.247711000][414702.0.247710999][414702.0.247711001]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_KeyProduct.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_KeyProduct.qbl
new file mode 100644
index 0000000..431f730
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_KeyProduct.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute KeyProduct
+{
+  #keys: '3[414702.0.247711010][414702.0.247711009][414702.0.247711011]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_Name.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_Name.qbl
new file mode 100644
index 0000000..befa0dc
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[414702.0.247711020][414702.0.247711019][414702.0.247711021]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_Notes.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_Notes.qbl
new file mode 100644
index 0000000..81b9008
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_Notes.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Notes
+{
+  #keys: '3[414702.0.247711030][414702.0.247711029][414702.0.247711031]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_ProductMajorType.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_ProductMajorType.qbl
new file mode 100644
index 0000000..0fd5b40
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_ProductMajorType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductMajorType
+{
+  #keys: '3[414702.0.247711040][414702.0.247711039][414702.0.247711041]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_ProductSubclassType.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_ProductSubclassType.qbl
new file mode 100644
index 0000000..935fa0b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_ProductSubclassType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductSubclassType
+{
+  #keys: '3[414702.0.247711050][414702.0.247711049][414702.0.247711051]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_ShelfLife.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_ShelfLife.qbl
new file mode 100644
index 0000000..2dbff7f
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_ShelfLife.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShelfLife
+{
+  #keys: '3[414702.0.247711060][414702.0.247711059][414702.0.247711061]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_UnitOfMeasureName.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_UnitOfMeasureName.qbl
new file mode 100644
index 0000000..741605b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_UnitOfMeasureName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitOfMeasureName
+{
+  #keys: '3[414702.0.247711070][414702.0.247711069][414702.0.247711071]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/TypeIndex_TypeIndexIDAndBusinessType.qbl b/_Main/BL/Type_Global_MappingProduct_MP/TypeIndex_TypeIndexIDAndBusinessType.qbl
new file mode 100644
index 0000000..bca6c7b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/TypeIndex_TypeIndexIDAndBusinessType.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex TypeIndexIDAndBusinessType
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: ID
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: BusinessType
+    }
+  ]
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/_ROOT_Type_Global_MappingProduct_MP.qbl b/_Main/BL/Type_Global_MappingProduct_MP/_ROOT_Type_Global_MappingProduct_MP.qbl
new file mode 100644
index 0000000..7265bc5
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/_ROOT_Type_Global_MappingProduct_MP.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingProduct_MP
+{
+  #keys: '5[414702.0.247665567][414702.0.247665565][0.0.0][414702.0.247665566][414702.0.247665568]'
+  BaseType: Object
+  StructuredName: 'Global_MappingProduct_MPs'
+}
diff --git a/_Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_BusinessType.qbl b/_Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..81da35c
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_BusinessType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+  #keys: '3[414702.0.238159206][414702.0.238159205][414702.0.238159207]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_DisplayIndex.qbl b/_Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_DisplayIndex.qbl
new file mode 100644
index 0000000..92e49ea
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_DisplayIndex.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DisplayIndex
+{
+  #keys: '3[414702.0.238159219][414702.0.238159218][414702.0.238159220]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_Name.qbl b/_Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_Name.qbl
new file mode 100644
index 0000000..b9b05d0
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_Name.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[414702.0.238159229][414702.0.238159228][414702.0.238159230]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_ParentName.qbl b/_Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_ParentName.qbl
new file mode 100644
index 0000000..4b2842b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_ParentName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ParentName
+{
+  #keys: '3[414702.0.238159239][414702.0.238159238][414702.0.238159240]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingSalesSegment_MP/TypeIndex_TypeIndexBusinessTypeAndName.qbl b/_Main/BL/Type_Global_MappingSalesSegment_MP/TypeIndex_TypeIndexBusinessTypeAndName.qbl
new file mode 100644
index 0000000..fef133c
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingSalesSegment_MP/TypeIndex_TypeIndexBusinessTypeAndName.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex TypeIndexBusinessTypeAndName
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: BusinessType
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: Name
+    }
+  ]
+}
diff --git a/_Main/BL/Type_Global_MappingSalesSegment_MP/_ROOT_Type_Global_MappingSalesSegment_MP.qbl b/_Main/BL/Type_Global_MappingSalesSegment_MP/_ROOT_Type_Global_MappingSalesSegment_MP.qbl
new file mode 100644
index 0000000..644aaf7
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingSalesSegment_MP/_ROOT_Type_Global_MappingSalesSegment_MP.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingSalesSegment_MP
+{
+  #keys: '5[414702.0.238159187][414702.0.238159185][0.0.0][414702.0.238159186][414702.0.238159188]'
+  BaseType: Object
+  StructuredName: 'Global_MappingSalesSegment_MPs'
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_AccountName.qbl b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_AccountName.qbl
new file mode 100644
index 0000000..15cd3b3
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_AccountName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute AccountName
+{
+  #keys: '3[414702.0.264769587][414702.0.264769586][414702.0.264769588]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_Cost.qbl b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_Cost.qbl
new file mode 100644
index 0000000..a37b9e9
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_Cost.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Cost
+{
+  #keys: '3[414702.0.264769597][414702.0.264769596][414702.0.264769598]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_CostDriver.qbl b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_CostDriver.qbl
new file mode 100644
index 0000000..149060b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_CostDriver.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CostDriver
+{
+  #keys: '3[414702.0.264769607][414702.0.264769606][414702.0.264769608]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_ID.qbl b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_ID.qbl
new file mode 100644
index 0000000..cba2641
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[414702.0.264769617][414702.0.264769616][414702.0.264769618]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_ProductID.qbl b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_ProductID.qbl
new file mode 100644
index 0000000..f5cdb72
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_ProductID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414702.0.264769630][414702.0.264769629][414702.0.264769631]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_Start.qbl b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_Start.qbl
new file mode 100644
index 0000000..6a1bfbb
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_Start.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Start
+{
+  #keys: '3[414702.0.264769640][414702.0.264769639][414702.0.264769641]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_StockingPointID.qbl b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..d8ba3bb
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPointCost/Attribute_StockingPointID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+  #keys: '3[414702.0.264769653][414702.0.264769652][414702.0.264769654]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPointCost/TypeIndex_NewTypeIndex.qbl b/_Main/BL/Type_Global_MappingStockingPointCost/TypeIndex_NewTypeIndex.qbl
new file mode 100644
index 0000000..d90f313
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPointCost/TypeIndex_NewTypeIndex.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex NewTypeIndex
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: ID
+    }
+  ]
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPointCost/_ROOT_Type_Global_MappingStockingPointCost.qbl b/_Main/BL/Type_Global_MappingStockingPointCost/_ROOT_Type_Global_MappingStockingPointCost.qbl
new file mode 100644
index 0000000..ba439d7
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPointCost/_ROOT_Type_Global_MappingStockingPointCost.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingStockingPointCost
+{
+  #keys: '5[414702.0.264765168][414702.0.264765166][0.0.0][414702.0.264765167][414702.0.264765169]'
+  BaseType: Object
+  StructuredName: 'Global_MappingStockingPointCosts'
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_Name.qbl b/_Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_Name.qbl
new file mode 100644
index 0000000..bc1f32a
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[414702.0.247664695][414702.0.247664694][414702.0.247664696]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_UnitID.qbl b/_Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_UnitID.qbl
new file mode 100644
index 0000000..bd54057
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_UnitID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitID
+{
+  #keys: '3[414702.0.247664705][414702.0.247664704][414702.0.247664706]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_id.qbl b/_Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_id.qbl
new file mode 100644
index 0000000..739ec3d
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_id.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[414702.0.247705763][414702.0.247705762][414702.0.247705764]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl
new file mode 100644
index 0000000..58e6677
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl
@@ -0,0 +1,38 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateByAPI (
+  GlobalOTDTable globalOTDTable
+)
+{
+  TextBody:
+  [*
+    globalOTDTable.Global_MappingStockingPoint_MP( relflush );
+    
+    bodynumber := "2";
+    postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
+    address := "api-uat-sgc.tianma.cn";
+    url := "/otdService/https/GetStockingPointsInfo";
+    port := 443;
+    i := HTTPInterface::Create( address, port);
+    i.URL( url );
+    i.SSL( true );
+    i.SSLKeystore( "MyKeystore" );
+    i.PostMethod( true ); //it's a POST method
+    
+    i.Call( postrequestbody ); // Call's argument is for POST method's content.
+    htmlresult := i.Result();
+    
+    htmlresponse := JSON::Parse( htmlresult );
+    reponseDataJson := htmlresponse.Get( "responseData" );
+    datalist := reponseDataJson.Get( "dataList" );
+    
+    total := datalist.Size();
+    for ( j := 0; j < total; j++ ) {
+      globalOTDTable.Global_MappingStockingPoint_MP( relnew,
+                                                     ID     := guard( datalist.Get( j ).Get( "id" ).GetString(), "" ),
+                                                     Name   := guard( datalist.Get( j ).Get( "name" ).GetString(), "" ),
+                                                     UnitID := guard( datalist.Get( j ).Get( "unitid" ).GetString(), "" )
+                                                    );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPoint_MP/_ROOT_Type_Global_MappingStockingPoint_MP.qbl b/_Main/BL/Type_Global_MappingStockingPoint_MP/_ROOT_Type_Global_MappingStockingPoint_MP.qbl
new file mode 100644
index 0000000..4281efe
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPoint_MP/_ROOT_Type_Global_MappingStockingPoint_MP.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingStockingPoint_MP
+{
+  #keys: '5[414702.0.239762041][414702.0.239762039][0.0.0][414702.0.239762040][414702.0.239762042]'
+  BaseType: Object
+  StructuredName: 'Global_MappingStockingPoint_MPs'
+}
diff --git a/_Main/BL/Type_Global_MappingUnitCost/Attribute_AccountName.qbl b/_Main/BL/Type_Global_MappingUnitCost/Attribute_AccountName.qbl
new file mode 100644
index 0000000..8e9fe48
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitCost/Attribute_AccountName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute AccountName
+{
+  #keys: '3[414702.0.264972890][414702.0.264972889][414702.0.264972891]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingUnitCost/Attribute_Cost.qbl b/_Main/BL/Type_Global_MappingUnitCost/Attribute_Cost.qbl
new file mode 100644
index 0000000..fb6c969
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitCost/Attribute_Cost.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Cost
+{
+  #keys: '3[414702.0.264972900][414702.0.264972899][414702.0.264972901]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_Global_MappingUnitCost/Attribute_CostDriver.qbl b/_Main/BL/Type_Global_MappingUnitCost/Attribute_CostDriver.qbl
new file mode 100644
index 0000000..bbacd80
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitCost/Attribute_CostDriver.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CostDriver
+{
+  #keys: '3[414702.0.264972910][414702.0.264972909][414702.0.264972911]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingUnitCost/Attribute_ID.qbl b/_Main/BL/Type_Global_MappingUnitCost/Attribute_ID.qbl
new file mode 100644
index 0000000..9c80b12
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitCost/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[414702.0.264972920][414702.0.264972919][414702.0.264972921]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingUnitCost/Attribute_LengthOfTime.qbl b/_Main/BL/Type_Global_MappingUnitCost/Attribute_LengthOfTime.qbl
new file mode 100644
index 0000000..fd779ed
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitCost/Attribute_LengthOfTime.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LengthOfTime
+{
+  #keys: '3[414702.0.264972930][414702.0.264972929][414702.0.264972931]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_MappingUnitCost/Attribute_OrgCode.qbl b/_Main/BL/Type_Global_MappingUnitCost/Attribute_OrgCode.qbl
new file mode 100644
index 0000000..e83c5da
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitCost/Attribute_OrgCode.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrgCode
+{
+  #keys: '3[414702.0.264972940][414702.0.264972939][414702.0.264972941]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingUnitCost/Attribute_ProductID.qbl b/_Main/BL/Type_Global_MappingUnitCost/Attribute_ProductID.qbl
new file mode 100644
index 0000000..5269253
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitCost/Attribute_ProductID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414702.0.264972950][414702.0.264972949][414702.0.264972951]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingUnitCost/Attribute_Start.qbl b/_Main/BL/Type_Global_MappingUnitCost/Attribute_Start.qbl
new file mode 100644
index 0000000..e41d3dc
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitCost/Attribute_Start.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Start
+{
+  #keys: '3[414702.0.264972960][414702.0.264972959][414702.0.264972961]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_Global_MappingUnitCost/Attribute_TimeUnit.qbl b/_Main/BL/Type_Global_MappingUnitCost/Attribute_TimeUnit.qbl
new file mode 100644
index 0000000..0f3ca7d
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitCost/Attribute_TimeUnit.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TimeUnit
+{
+  #keys: '3[414702.0.264972970][414702.0.264972969][414702.0.264972971]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingUnitCost/TypeIndex_TypeIndex.qbl b/_Main/BL/Type_Global_MappingUnitCost/TypeIndex_TypeIndex.qbl
new file mode 100644
index 0000000..29c1c4b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitCost/TypeIndex_TypeIndex.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex TypeIndex
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: ID
+    }
+  ]
+}
diff --git a/_Main/BL/Type_Global_MappingUnitCost/_ROOT_Type_Global_MappingOperationCost.qbl b/_Main/BL/Type_Global_MappingUnitCost/_ROOT_Type_Global_MappingOperationCost.qbl
new file mode 100644
index 0000000..7ca24cc
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitCost/_ROOT_Type_Global_MappingOperationCost.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingOperationCost
+{
+  #keys: '5[414702.0.264968472][414702.0.264968470][0.0.0][414702.0.264968471][414702.0.264968473]'
+  BaseType: Object
+  StructuredName: 'Global_MappingOperationCosts'
+}
diff --git a/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/Attribute_IsDefault.qbl b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/Attribute_IsDefault.qbl
new file mode 100644
index 0000000..cbf856e
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/Attribute_IsDefault.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsDefault
+{
+  #keys: '3[414702.0.238140135][414702.0.238140134][414702.0.238140136]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/Attribute_Name.qbl b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/Attribute_Name.qbl
new file mode 100644
index 0000000..6673dd3
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/Attribute_Name.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[414702.0.238140145][414702.0.238140144][414702.0.238140146]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/TypeIndex_TypeIndexName.qbl b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/TypeIndex_TypeIndexName.qbl
new file mode 100644
index 0000000..c459f2c
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/TypeIndex_TypeIndexName.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex TypeIndexName
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: Name
+    }
+  ]
+}
diff --git a/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/_ROOT_Type_Global_MappingUnitOfMeasure_MP.qbl b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/_ROOT_Type_Global_MappingUnitOfMeasure_MP.qbl
new file mode 100644
index 0000000..cadf447
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/_ROOT_Type_Global_MappingUnitOfMeasure_MP.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingUnitOfMeasure_MP
+{
+  #keys: '5[414702.0.238140113][414702.0.238140111][0.0.0][414702.0.238140112][414702.0.238140114]'
+  BaseType: Object
+  StructuredName: 'Global_MappingUnitOfMeasure_MPs'
+}
diff --git a/_Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl b/_Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl
index 6d55643..0c19698 100644
--- a/_Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl
+++ b/_Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl
@@ -1,7 +1,8 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod CreateLaneFromJson (
-  JSON datarow
+  JSON datarow,
+  MacroPlan macroplan
 ) as Lane
 {
   Description: 'Read the json data and use it to create lane data'
@@ -14,6 +15,11 @@
     userleadtime := datarow.Get( "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.IsNull() )
     {
       processingtime := Duration::Zero(); 
@@ -24,6 +30,16 @@
       };
     
     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 );
+    }
     
     result := Lane::CreateLane( unit, id, name, processingtime);
     
diff --git a/_Main/BL/Type_MacroPlan/Method_ApiLanesData.qbl b/_Main/BL/Type_MacroPlan/Method_ApiLanesData.qbl
index 0561aae..0020767 100644
--- a/_Main/BL/Type_MacroPlan/Method_ApiLanesData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_ApiLanesData.qbl
@@ -14,7 +14,7 @@
     for( i:=0; i<data_length; i++ )
     {
       datarow := data.Get( i );
-      a := Lane::CreateLaneFromJson( datarow );
+      a := Lane::CreateLaneFromJson( datarow ,this);
       updates.Add( a );
       }
     origindataset := selectset( this, Unit.Lane, l, true );
diff --git a/_Main/BL/Type_MacroPlan/Method_DeleteSnaityCheck.qbl b/_Main/BL/Type_MacroPlan/Method_DeleteSnaityCheck.qbl
new file mode 100644
index 0000000..d5d02e1
--- /dev/null
+++ b/_Main/BL/Type_MacroPlan/Method_DeleteSnaityCheck.qbl
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: #root
+Method DeleteSnaityCheck
+{
+  TextBody:
+  [*
+    // renhao Sep-13-2023 (created)
+    //鍒犻櫎娌℃湁姹囩巼鐨勮揣甯�
+    traverse(  this,Currency_MP,currency,not currency.IsBase() and currency.CurrencyRate_MP( relsize ) = 0 ){
+      currency.Delete();
+    }
+    //鍒犻櫎娌℃湁浜у搧鐨勮溅閬�
+    traverse( this,Unit.Lane,lane,not isnull( lane) and lane.ProductInLane(relsize )=0 ){
+      lane.Delete();
+    }
+    //鍒犻櫎娌℃湁鐢ㄥ埌浜у搧鍜宭ane鐨勫簱瀛樼偣
+    traverse( this,StockingPoint_MP,stock,stock.ProductInStockingPoint_MP(relsize ) = 0 ){
+      stock.Delete();
+    }
+  *]
+}
diff --git a/_Main/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl b/_Main/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl
index d030255..c71e147 100644
--- a/_Main/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl
@@ -106,5 +106,11 @@
       ProductLevel_MP::Create( "2", isproductcatagory, this, isfromdb );
       ProductLevel_MP::Create( "3", isproductcatagory, this, isfromdb );
       }
+    
+    existsalestlevel := SalesLevel_MP::FindSalesLevelTypeIndex( "2")
+    if( isnull( existsalestlevel ) ){
+        SalesLevel_MP::Create( "1",this,isfromdb);
+        SalesLevel_MP::Create( "2",this,isfromdb);
+      }
   *]
 }
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl
index 873ed35..7ec0576 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl
@@ -17,12 +17,13 @@
     }
     queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
     queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
-    listToDeal := selectset( listToDeal, Elements, item, item.OrderDate() >= queryStartDate and item.OrderDate() <= queryEndDate, not isnull( Product_MP::FindById( this, item.ProductID() ) ) and not isnull( StockingPoint_MP::FindById( this, item.StockPointID() ) ) and not isnull( SalesSegment_MP::FindByName( this, item.SalesSegmentName() ) ) );
+    listToDeal := selectset( listToDeal, Elements, item, item.OrderDate() >= queryStartDate /*and item.OrderDate() <= queryEndDate*/, not isnull( Product_MP::FindById( this, item.ProductID() ) ) and not isnull( StockingPoint_MP::FindById( this, item.StockPointID() ) ) and not isnull( SalesSegment_MP::FindByName( this, item.SalesSegmentName() ) ) );
     
     totalcount := listToDeal.Size();
     info( "CustomerOrder has " + totalcount.AsQUILL() + " rows in total" );
     
     count := 0;
+    priorityName :="Normal";
     // 澶勭悊
     traverse( listToDeal, Elements, item ) {
       count := count + 1;
@@ -33,7 +34,7 @@
     //    info( item.ProductID().AsQUILL() );
       CustomerOrder::CreateOrUpdate( this, item.CurrencyID(), item.Customer(), item.CustomerID(), item.ID(), 
                                      item.OrderDate(), item.OrderID(), item.OrderLineID(), item.Price(), 
-                                     item.PriorityName(), item.ProductID(), 
+                                     priorityName, item.ProductID(), 
                                      item.StockPointID(), 
                                      item.SalesSegmentName(), 
                                      item.Quantity(), item.UnitOfMeasureName(), item.OrderType(), item.IsAvailable());
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl
index ea2ad61..ead549d 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl
@@ -8,9 +8,11 @@
   TextBody:
   [*
     // renhao Aug-14-2023 (created)
-    
-    listtodeal := selectset( this,MappingExternalSupply,externalSupply, true );
+    queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
+    queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
+    listtodeal := selectset( this,MappingExternalSupply,externalSupply, externalSupply.UserQuantity()>0 and externalSupply.Date() >= queryStartDate /*and externalSupply.Date() <= queryEndDate*/);
     totalcount := listtodeal.Size();
+    description := "鍦ㄩ�斿湪鍒�";
     info( "ExternalSupply has " + totalcount.AsQUILL() + " rows in total" );
     
     count := 0;
@@ -18,12 +20,14 @@
       count := count + 1;
       if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){
         info( "Now is dealing with the " + count.AsQUILL() + "ExternalSupply " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
-        }
-      product := select( this,MappingProduct,product,product.ID() = externalSupply.ProductID() and product.KeyProduct() = nuclear,true);
+       }
+      product := select( this,MappingProduct,product,product.ID() = externalSupply.ProductID(),true);
+      
       
       if( not isnull( product)){
-        productMP :=  select( this,Product_MP,productMP,productMP.ID() = externalSupply.ProductID() ,true);
+        productMP :=  Product_MP :: FindProductTypeIndex( externalSupply.ProductID());
         stockingpoint := select( this,StockingPoint_MP,st,st.ID() = externalSupply.StockingPointID(),true);
+        if( not isnull( stockingpoint) and not isnull( productMP)){
         if( not isnull(businessTypes)){
         
           for( i :=0 ;i < businessTypes.Size();i++ ){
@@ -34,25 +38,23 @@
                                                stockingpoint,
                                                externalSupply.Date(),
                                                externalSupply.ManufacturedDate(),
-                                               externalSupply.UserQuantity(),"鍦ㄩ�斿湪鍒�");
+                                               externalSupply.UserQuantity(),description);
             }
           }
           
         }else{
-        if( not isnull( stockingpoint) and not isnull( productMP)){
-          InventorySupply::CreateOrUpdate( externalSupply.ID(),
+          
+            InventorySupply::CreateOrUpdate( externalSupply.ID(),
                                            productMP,
                                            stockingpoint,
                                            externalSupply.Date(),
                                            externalSupply.ManufacturedDate(),
-                                           externalSupply.UserQuantity(),"鍦ㄩ�斿湪鍒�");
-        }
+                                           externalSupply.UserQuantity(),description);
+          }
       
         }
         
-      }else{
-        info( "Invaild product" );
-        }
+      }
     }
   *]
 }
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl
index 903aea0..47e8597 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl
@@ -11,9 +11,9 @@
     // 寰呭鐞嗘暟鎹�
     listToDeal := construct( structured[MappingForecast] );
     if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
-        listToDeal := selectset( this, MappingForecast, item, true );
+        listToDeal := selectset( this, MappingForecast, item, item.Quantity() > 0 );
     } else {
-        listToDeal := selectset( this, MappingForecast, item, businessTypes.Find( item.BusinessType() ) <> -1 );
+        listToDeal := selectset( this, MappingForecast, item, businessTypes.Find( item.BusinessType() ) <> -1 and item.Quantity()>0 );
     }
     queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
     queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
@@ -23,6 +23,7 @@
     info( "Forecast has " + totalcount.AsQUILL() + " rows in total" );
     
     count := 0;
+    priorityName := "Normal";
     // 澶勭悊
     traverse( listToDeal, Elements, item ) {
       count := count + 1;
@@ -31,7 +32,7 @@
         }
     //  if( not isnull( Product_MP::FindById( this, item.ProductID() ) ) ){
       Forecast::CreateOrUpdate( this, 
-                                item.ProductID(), item.SalesSegmentName(), item.StockingPointID(), item.PriorityName(),
+                                item.ProductID(), item.SalesSegmentName(), item.StockingPointID(), priorityName,
                                 item.CurrencyID(), item.UnitOfMeasureName(),
                                 item.ID(), item.StartDate(), item.EndDate(), item.Quantity(), item.Price());
     //  }else{
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl
index 892f5ef..b807827 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl
@@ -12,16 +12,17 @@
     
     keyProductList := construct( Strings );
     if( isKeyProduct ) {
-        keyProductList := selectuniquevalues( this, MappingProduct, item, item.KeyProduct(), item.ID() );
+        keyProductList := selectuniquevalues( this, MappingProduct, item, item.ProductMajorType()="鎴愬搧" or item.ProductMajorType()="鍗婃垚鍝�", item.ID() );
     }
     bomList := selectsortedset(  this, MappingBOM, item,
                                  ifexpr( isnull( businessTypes ) or businessTypes.Size() = 0, 
                                          true, 
     //                                     businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 )
                                          businessTypes.Find( item.BusinessType() ) >= 0 )
-                                 and ifexpr( isKeyProduct, 
-                                             keyProductList.Size() > 0 and keyProductList.Find( item.ComponentCode() ) >= 0,
-                                             true ),
+    //                             and ifexpr( isKeyProduct, 
+    //                                         keyProductList.Size() > 0 and keyProductList.Find( item.ComponentCode() ) >= 0,
+    //                                         true )
+                                 ,
                                  item.OrganCode() + "_" + item.ProductCode() + "_" + item.ProcessSection() );
     // 鎸塺outing鍙妑outingStep鍒嗙粍
     routingIds := selectuniquevalues( bomList, Elements, item, true, item.OrganCode() + "_" + item.ProductCode() );
@@ -29,14 +30,16 @@
         routingRows := selectset( bomList, Elements, item, true, routingId = item.OrganCode() + "_" + item.ProductCode() );
         if( routingRows.Size() > 0 ) {
             firstRow := routingRows.Element( 0 );
-            stockingPointId := firstRow.OrganCode()  + "_" + firstRow.ProductType() + "_Stock";
-            inputStockingPointId := firstRow.OrganCode()  + "_" + firstRow.ComponentType() + "_Stock";
+    //        stockingPointId := firstRow.OrganCode()  + "_" + firstRow.ProductType() + "_Stock";
+    //        inputStockingPointId := firstRow.OrganCode()  + "_" + firstRow.ComponentType() + "_Stock";
+            stockingPointId := firstRow.OrganCode()  + "_Stock";
+    
             // ========妫�鏌�========
             product := Product_MP::FindProductTypeIndex( firstRow.ProductCode() );
             if( not isnull( product ) ) {
     //              error( "product : " + firstRow.ProductCode() + " not found" );
               stockingPoint := StockingPoint_MP::FindStockingPointTypeIndex( stockingPointId );
-              inputStockingPoint := StockingPoint_MP::FindStockingPointTypeIndex(  inputStockingPointId );
+    
     //          info( stockingPointId.AsQUILL() );
       //        if( isnull( stockingPoint ) ) {
       //            error( "stockingPoint : " + stockingPointId + " not found" );
@@ -55,8 +58,14 @@
                   // ========鍒嗙粍澶勭悊杈撳叆========
                   
                 }
-                if( not isnull( inputStockingPoint)){
-                  this.MappingOperationBOMDataRouting( routing,routingRows,inputStockingPoint,keyProductList);
+                if( not isnull( stockingPoint)){
+                  if( isKeyProduct){
+                      keyRows := selectset( routingRows,Elements,routingrow,keyProductList.Find( routingrow.ComponentCode())>=0);
+                      this.MappingOperationBOMDataRouting( routing,keyRows);
+                    }else{
+                      this.MappingOperationBOMDataRouting( routing,routingRows);
+                    }
+                    
                 }
               }
            }
@@ -64,9 +73,9 @@
     }
     if( createPurchaseSupplyMaterial ) {
         toCreateBomList := selectuniquevalues( bomList, Elements, item, 
-                                               item.ProductType() = "P", item.OrganCode() + item.ComponentCode());
+                                               item.ComponentType() = "P", item.OrganCode() + item.ComponentCode());
         traverse( toCreateBomList, Elements, key ) {
-            boms := selectset( bomList, Elements, item, item.ProductType() = "P" and item.OrganCode() + item.ComponentCode() = key );
+            boms := selectset( bomList, Elements, item, item.ComponentType() = "P" and item.OrganCode() + item.ComponentCode() = key );
             bom := boms.First();
             this.MappingOperationBOMDataSupplyPurchase( bom.OrganCode(), bom.ComponentCode(), bom.ComponentType());
         }
diff --git "a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting\043576.qbl" "b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting\043576.qbl"
index 059c6c9..e661d1f 100644
--- "a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting\043576.qbl"
+++ "b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataRouting\043576.qbl"
@@ -2,9 +2,7 @@
 #parent: #root
 Method MappingOperationBOMDataRouting (
   Routing routing,
-  MappingBOMs routingRows,
-  StockingPoint_MP stockingPoint,
-  Strings keyProductIds
+  MappingBOMs routingRows
 )
 {
   TextBody:
@@ -32,6 +30,9 @@
                   if( not isnull( component ) ) {
     //                  error( "component : " + noAlterRow.ComponentCode() + " not found" );
                   // 杩炴帴浜у搧涓巓peration
+    //              inputStockingPointId := noAlterRow.OrganCode()  + "_" + noAlterRow.ComponentType() + "_Stock";
+                  inputStockingPointId := noAlterRow.OrganCode() + "_Stock";
+                  stockingPoint := StockingPoint_MP::FindStockingPointTypeIndex( inputStockingPointId);
                   pisp := ProductInStockingPoint_MP::CreateIfNotFound( component, stockingPoint );
                   trash := construct( OperationBOMs );
                   operationBOM := toLink.LinkProduct( component, true, BaseOperationLink::GetGroupID( toLink, true, false ), pisp, 
@@ -54,6 +55,9 @@
     //          }
                 traverse( routingStep, Operation, toLink ) {
                     // 杩炴帴浜у搧涓巓peration
+    //                inputStockingPointId := firstAlterRow.OrganCode()  + "_" + firstAlterRow.ComponentType() + "_Stock";
+                    inputStockingPointId := firstAlterRow.OrganCode() + "_Stock";
+                    stockingPoint := StockingPoint_MP::FindStockingPointTypeIndex( inputStockingPointId);
                     pisp := ProductInStockingPoint_MP::CreateIfNotFound( component, stockingPoint );
                     trash := construct( OperationBOMs );
                     mainBOM := toLink.LinkProduct( component, true, BaseOperationLink::GetGroupID( toLink, true, false ), pisp, 
@@ -67,13 +71,15 @@
                         alterProd := Product_MP::FindById( this, alterRow.AlternativeMaterialCode() );
                         if( not isnull( alterProd ) ) {
         //                    error( "alterProd : " + alterRow.AlternativeMaterialCode() + " not found" );
-                          stockingPointIdAlter := alterRow.OrganCode()  + "_" + alterRow.ProductType() + "_Stock";
+    //                      stockingPointIdAlter := alterRow.OrganCode()  + "_" + alterRow.ComponentType() + "_Stock";
+                          stockingPointIdAlter := alterRow.OrganCode() + "_Stock";
                           stockingPointAlter := StockingPoint_MP::FindById( this, stockingPointIdAlter );
                           if( isnull( stockingPointAlter ) ) {
                               error( "stockingPoint : " + stockingPointIdAlter + " not found" );
                           }
                           pispAlter := ProductInStockingPoint_MP::CreateIfNotFound( alterProd, stockingPointAlter );
-                          mainInput := toLink.LastOperationInput();
+                          //mainInput := toLink.LastOperationInput(); 
+                          mainInput := select( toLink,OperationInput,operationInut,operationInut.ProductID()=alterRow.ComponentCode());
                           trash := construct( OperationBOMs );
                           if( not isnull( mainInput ) ) {
                               alterBom := mainInput.Operation().LinkPISP( pispAlter, true, mainInput.OperationLinkGroupID(), trash );
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataSupplyPurchase.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataSupplyPurchase.qbl
index 6a24698..7ea305b 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataSupplyPurchase.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMDataSupplyPurchase.qbl
@@ -8,25 +8,26 @@
 {
   TextBody:
   [*
-    routingId := "PR_"+orgCode + "_" + productId;
-    unitId := "渚涘簲鍟�";
-    routingStepName := "Purchase";
-    operationId := orgCode + "_PR_" + productId;
-    routing := Routing::CreateOrUpdate( this, routingId );
-    toDeleteSteps := selectset( routing, RoutingStep, routingStep, true );
-    RoutingStep::Delete( toDeleteSteps );
-    routingStep := RoutingStep::Create( routing, routingStepName, "", true );
+    
     product := Product_MP::FindById( this, productId );
     if( isnull( product ) ) {
         info(  "product : " + productId + " not found" );
     }
-    stockingPointId := orgCode + "_" + productType + "_Stock";
+    stockingPointId := orgCode + "_Stock";
     stockingPoint := StockingPoint_MP::FindById( this, stockingPointId );
     if( isnull( stockingPoint ) ) {
         info( "stockingPoint : " + stockingPointId + " not found" );
     }
     
     if( not isnull( product) and not isnull( stockingPoint)){
+      routingId := "PR_"+orgCode + "_" + productId;
+      unitId := "渚涘簲鍟�";
+      routingStepName := "Purchase";
+      operationId := orgCode + "_PR_" + productId;
+      routing := Routing::CreateOrUpdate( this, routingId );
+      toDeleteSteps := selectset( routing, RoutingStep, routingStep, true );
+      RoutingStep::Delete( toDeleteSteps );
+      routingStep := RoutingStep::Create( routing, routingStepName, "", true );
       unit := Unit::FindById( this, unitId );
       if( isnull( unit ) ) {
         unit := this.Unit( relnew, 
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl
index 98be129..3713cc9 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl
@@ -27,7 +27,7 @@
                           moperation.ProductID() = item.ProductID(), 
                           moperation.SequenceNumber() ).SequenceNumber()
       if( item.SequenceNumber() = maxsn ){
-        listtodealwithmaxsn.Add( item );
+          listtodealwithmaxsn.Add( item );
         }
       }
     
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl
index fa5aa3b..9a854ef 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl
@@ -10,7 +10,7 @@
   [*
     // Administrator Aug-16-2023 (created)
     // list to deal
-    //info( "Get list to deal of product" );
+    info( "Get list to deal of product" );
     listToDeal := construct( structured[MappingProduct] );
     
     if( isnull( businesstypes ) or businesstypes.Size() = 0 ) {
@@ -22,10 +22,10 @@
           }
     } else {
         if( iskeyproduct = true ){
-          listToDeal := selectset( this, MappingProduct, item, item.KeyProduct() = true,  businesstypes.Find(  item.BusinessType()) > 0 );
-          }
+          listToDeal := selectset( this, MappingProduct, item, item.KeyProduct() = true and businesstypes.Find(  item.BusinessType()) >= 0 );
+         }
         else{
-        listToDeal := selectset( this, MappingProduct, item, businesstypes.Find(  item.BusinessType()) > 0 );
+          listToDeal := selectset( this, MappingProduct, item, businesstypes.Find(  item.BusinessType()) >= 0 );
         }
     }
     totalcount := listToDeal.Size();
@@ -38,7 +38,7 @@
                                 "鍏ㄩ儴鐗╂枡浜у搧", 
                                 "PCS", 
                                 "鍏ㄩ儴鐗╂枡浜у搧",
-                                0.0
+                                0.0,false,false
                                 );
     count := 0;
     // Get the ProductMajorType list & ProductSubclassType list
@@ -54,7 +54,7 @@
                                     item.ProductMajorType(), 
                                     "PCS", 
                                     item.ProductMajorType(),
-                                    0.0
+                                    0.0,false,false
                                     );
       }
       productmajortype := item.ProductMajorType();
@@ -62,29 +62,30 @@
         productmajortype := "鍏ㄩ儴鐗╂枡浜у搧";
         }
        
-      if( not item.ProductSubclassType() = "" ){
-        Product_MP::CreateOrUpdate( this, 
-                                    item.ProductSubclassType(), 
-                                    productmajortype, 
-                                    item.ProductSubclassType(), 
-                                    "PCS", 
-                                    item.ProductSubclassType(),
-                                    0.0
-                                    );
-        }
-      productsubclasstype := item.ProductSubclassType();
-      if( productsubclasstype="" ){
-        productsubclasstype := productmajortype;
-        }
+    //  if( not item.ProductSubclassType() = "" ){
+    //    Product_MP::CreateOrUpdate( this, 
+    //                                item.ProductSubclassType(), 
+    //                                productmajortype, 
+    //                                item.ProductSubclassType(), 
+    //                                "PCS", 
+    //                                item.ProductSubclassType(),
+    //                                0.0,false,false
+    //                                );
+    //    }
+    //  productsubclasstype := item.ProductSubclassType();
+    //  if( productsubclasstype="" ){
+    //      productsubclasstype := productmajortype;
+    //    }
       
       if( not item.ID() = "" ){
           Product_MP::CreateOrUpdate( this, 
                                       item.ID(), 
-                                      productsubclasstype, 
+                                      productmajortype, 
                                       item.ID(), 
                                       item.UnitOfMeasureName(), 
                                       item.Name(),
-                                      item.ShelfLife()
+                                      item.ShelfLife(),
+                                      item.KeyProduct(),item.IsCommon()
                                       );
         }
       }
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl
index b5618c6..7c856ff 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl
@@ -22,6 +22,7 @@
     
     //Set the Default values
     unitofmeasurename := "PCS";
+    infinite := "Infinite";
     capacitytype := "Transport quantity";
     
     // Get the root data
@@ -29,7 +30,7 @@
                           "澶╅┈闆嗗洟", 
                           "澶╅┈闆嗗洟", 
                           "", 
-                          capacitytype, 
+                          infinite, 
                           unitofmeasurename );
     
     // Get the sub root data
@@ -37,14 +38,14 @@
                           "鐢熶骇", 
                           "鐢熶骇", 
                           "澶╅┈闆嗗洟", 
-                          capacitytype, 
+                          infinite, 
                           unitofmeasurename );
     
     Unit::CreateOrUpdate( this, 
                           "渚涘簲鍟�", 
                           "渚涘簲鍟�", 
                           "澶╅┈闆嗗洟", 
-                          capacitytype, 
+                          infinite, 
                           unitofmeasurename );
     
     Unit::CreateOrUpdate( this, 
@@ -65,7 +66,7 @@
                             item.OrganCode(), 
                             OrgName, 
                             "鐢熶骇", 
-                            capacitytype, 
+                            infinite, 
                             unitofmeasurename );
                            
       //Get the second level unit
@@ -74,7 +75,7 @@
                             secondlevelid, 
                             secondlevelid, 
                             item.OrganCode(), 
-                            capacitytype, 
+                            infinite, 
                             unitofmeasurename );
         
       //Get the third level unit
diff --git a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
index fe4e7a1..1375c53 100644
--- a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
+++ b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
@@ -140,6 +140,9 @@
     // 璁㈠崟闇�姹�-18
     CustomerOrder::DoSync( macroPlan, businessTypes );
     
+    //鍒犻櫎澶氫綑鎶ラ敊鏁版嵁-19
+    macroPlan.DeleteSnaityCheck();
+    
     //// todo 渚涘簲鍟嗚兘鍔�
     //info( "ProviderCapacity::DoSync" )
     
diff --git a/_Main/BL/Type_MappingOperation/Attribute_SequenceNumber.qbl b/_Main/BL/Type_MappingOperation/Attribute_SequenceNumber.qbl
index 4fc6ea4..fed9689 100644
--- a/_Main/BL/Type_MappingOperation/Attribute_SequenceNumber.qbl
+++ b/_Main/BL/Type_MappingOperation/Attribute_SequenceNumber.qbl
@@ -3,5 +3,6 @@
 Attribute SequenceNumber
 {
   #keys: '3[412960.0.86978408][412960.0.86978407][412960.0.86978409]'
+  IsReadOnly: true
   ValueType: Number
 }
diff --git a/_Main/BL/Type_MappingOperation/TypeIndex_MappingOperationTypeIndex.qbl b/_Main/BL/Type_MappingOperation/TypeIndex_MappingOperationTypeIndex.qbl
index 35ab7e4..2fc4aff 100644
--- a/_Main/BL/Type_MappingOperation/TypeIndex_MappingOperationTypeIndex.qbl
+++ b/_Main/BL/Type_MappingOperation/TypeIndex_MappingOperationTypeIndex.qbl
@@ -6,11 +6,7 @@
   [
     TypeIndexAttribute
     {
-      ModelElement: Line
-    }
-    TypeIndexAttribute
-    {
-      ModelElement: BusinessType
+      ModelElement: ProcessSection
     }
     TypeIndexAttribute
     {
@@ -18,7 +14,11 @@
     }
     TypeIndexAttribute
     {
-      ModelElement: OrganCode
+      ModelElement: BusinessType
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: Line
     }
     TypeIndexAttribute
     {
@@ -26,7 +26,11 @@
     }
     TypeIndexAttribute
     {
-      ModelElement: ProcessSection
+      ModelElement: SequenceNumber
+    }
+    TypeIndexAttribute
+    {
+      ModelElement: OrganCode
     }
   ]
 }
diff --git a/_Main/BL/Type_MappingProduct/Attribute_BusinessType.qbl b/_Main/BL/Type_MappingProduct/Attribute_BusinessType.qbl
index 63b7d6b..1d3a4b3 100644
--- a/_Main/BL/Type_MappingProduct/Attribute_BusinessType.qbl
+++ b/_Main/BL/Type_MappingProduct/Attribute_BusinessType.qbl
@@ -3,5 +3,6 @@
 Attribute BusinessType
 {
   #keys: '3[414480.0.61560268][414480.0.61560267][414480.0.61560269]'
+  IsReadOnly: true
   ValueType: String
 }
diff --git a/_Main/BL/Type_MappingProduct/TypeIndex_MappingProductTypeIndex.qbl b/_Main/BL/Type_MappingProduct/TypeIndex_MappingProductTypeIndex.qbl
index 6cd9f83..56be564 100644
--- a/_Main/BL/Type_MappingProduct/TypeIndex_MappingProductTypeIndex.qbl
+++ b/_Main/BL/Type_MappingProduct/TypeIndex_MappingProductTypeIndex.qbl
@@ -8,5 +8,9 @@
     {
       ModelElement: ID
     }
+    TypeIndexAttribute
+    {
+      ModelElement: BusinessType
+    }
   ]
 }
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrder/Attribute_IsGenerateAndPublishWorkOrders.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrder/Attribute_IsGenerateAndPublishWorkOrders.qbl
new file mode 100644
index 0000000..a287573
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrder/Attribute_IsGenerateAndPublishWorkOrders.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsGenerateAndPublishWorkOrders
+{
+  #keys: '3[414702.0.224201173][414702.0.224201172][414702.0.224201174]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl
new file mode 100644
index 0000000..3673ac7
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl
@@ -0,0 +1,38 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GenerateAndDistributeWorkOrders (
+  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() ) {
+      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/_ROOT_Type_MasterPlanReleaseWorkOrder.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrder/_ROOT_Type_MasterPlanReleaseWorkOrder.qbl
new file mode 100644
index 0000000..22de573
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrder/_ROOT_Type_MasterPlanReleaseWorkOrder.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type MasterPlanReleaseWorkOrder
+{
+  #keys: '5[414702.0.224201152][414702.0.224201150][0.0.0][414702.0.224201151][414702.0.224201153]'
+  BaseType: Object
+  StructuredName: 'MasterPlanReleaseWorkOrders'
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_EndDate.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_EndDate.qbl
new file mode 100644
index 0000000..082a777
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_EndDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndDate
+{
+  #keys: '3[414702.0.224201255][414702.0.224201254][414702.0.224201256]'
+  Description: '缁撴潫鏃堕棿'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_MaterialDescription.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_MaterialDescription.qbl
new file mode 100644
index 0000000..cc8ae05
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_MaterialDescription.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MaterialDescription
+{
+  #keys: '3[414702.0.224201232][414702.0.224201231][414702.0.224201233]'
+  Description: '鐗╂枡鎻忚堪'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_PlannedQuantity.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_PlannedQuantity.qbl
new file mode 100644
index 0000000..bd6926d
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_PlannedQuantity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PlannedQuantity
+{
+  #keys: '3[414702.0.224201265][414702.0.224201264][414702.0.224201266]'
+  Description: '璁″垝鏁伴噺'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductModel.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductModel.qbl
new file mode 100644
index 0000000..f8432f1
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductModel.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductModel
+{
+  #keys: '3[414702.0.224201216][414702.0.224201215][414702.0.224201217]'
+  Description: '浜у搧鍨嬪彿'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductionWorkOrderNumber.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductionWorkOrderNumber.qbl
new file mode 100644
index 0000000..fd4d164
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductionWorkOrderNumber.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductionWorkOrderNumber
+{
+  #keys: '3[414702.0.224201206][414702.0.224201205][414702.0.224201207]'
+  Description: '鐢熶骇宸ュ崟鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_StartDate.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_StartDate.qbl
new file mode 100644
index 0000000..4395db2
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_StartDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+  #keys: '3[414702.0.224201245][414702.0.224201244][414702.0.224201246]'
+  Description: '寮�濮嬫椂闂�'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderStatus.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderStatus.qbl
new file mode 100644
index 0000000..a2f9f37
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderStatus.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute WorkOrderStatus
+{
+  #keys: '3[414702.0.224201285][414702.0.224201284][414702.0.224201286]'
+  Description: '宸ュ崟鐘舵��'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderType.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderType.qbl
new file mode 100644
index 0000000..07a22be
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute WorkOrderType
+{
+  #keys: '3[414702.0.224201275][414702.0.224201274][414702.0.224201276]'
+  Description: '宸ュ崟绫诲瀷'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/StaticMethod_Export.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/StaticMethod_Export.qbl
new file mode 100644
index 0000000..40450f1
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/StaticMethod_Export.qbl
@@ -0,0 +1,38 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Export (
+  MasterPlanReleaseWorkOrderTabulations masterPlanReleaseWorkOrderTabulations
+) as BinaryValue
+{
+  TextBody:
+  [*
+    text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>鐢熶骇宸ュ崟</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>缁撴潫鏃堕棿</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></table>';
+    
+    xmlDOMImplementation := XMLDOMImplementation::Create();
+    xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text );
+    
+    mprwots := selectsortedset( masterPlanReleaseWorkOrderTabulations, Elements, tempMPRWOT, true, tempMPRWOT.ProductionWorkOrderNumber() );
+    tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
+    
+    traverse ( mprwots, Elements, mprwot ) {
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.ProductionWorkOrderNumber(), "鐢熶骇宸ュ崟鍙�" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.ProductModel(), "浜у搧鍨嬪彿" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.MaterialDescription(), "鐗╂枡鎻忚堪" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.StartDate().Format( "Y-M2-D2" ), "寮�濮嬫椂闂�" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.EndDate().Format( "Y-M2-D2" ), "缁撴潫鏃堕棿" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]mprwot.PlannedQuantity().Round( 0 ), "璁″垝鏁伴噺" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.WorkOrderType(), "宸ュ崟绫诲瀷" );
+      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, mprwot.WorkOrderStatus(), "宸ュ崟鐘舵��" );
+    }
+    
+    xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
+    xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
+    
+    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
+    tableGroupHandle := TableGroupHandle::Create( "鐢熶骇宸ュ崟" );
+    tableGroupHandle.Add( tableHandle );
+    tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
+    
+    return tableBinaryData.AsBinaryValue();
+  *]
+}
diff --git a/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/_ROOT_Type_MasterPlanReleaseWorkOrderTabulation.qbl b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/_ROOT_Type_MasterPlanReleaseWorkOrderTabulation.qbl
new file mode 100644
index 0000000..4bf81d7
--- /dev/null
+++ b/_Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/_ROOT_Type_MasterPlanReleaseWorkOrderTabulation.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type MasterPlanReleaseWorkOrderTabulation
+{
+  #keys: '5[414702.0.224201184][414702.0.224201182][0.0.0][414702.0.224201183][414702.0.224201185]'
+  BaseType: Object
+  StructuredName: 'MasterPlanReleaseWorkOrderTabulations'
+}
diff --git a/_Main/BL/Type_PanelMaterial/StaticMethod_Send.qbl b/_Main/BL/Type_PanelMaterial/StaticMethod_Send.qbl
index d1dcf3b..fec169c 100644
--- a/_Main/BL/Type_PanelMaterial/StaticMethod_Send.qbl
+++ b/_Main/BL/Type_PanelMaterial/StaticMethod_Send.qbl
@@ -13,7 +13,7 @@
     
     jsonBuilder := JSON::Object();
     
-    jsonBuilder.Add( "releaseDate", Date::ActualDate().Format( "Y-M2-D2" ) );
+    jsonBuilder.Add( "releaseDate", DateTime::ActualTime().Format( "Y-M2-D2 H2:m:s" ) );
     jsonBuilder.Add( "businessType", businessType );
     jsonBuilder.Add( "scenarioName", scenario.Name() );
     
@@ -32,6 +32,40 @@
     
     json := jsonBuilder.Build();
     
-    info( json.AsPrettyString() );
+    //url := "/panelMaterial/send";
+     
+    // for HTTPS requests:
+    //i := HTTPInterface::Create( address, 8080 );
+    //i.URL( url );
+    i := HTTPInterface::Create( address, 8080 );
+    i.MediaType( "application/json" );
+    i.URL( "/panelMaterial/send" ); 
+    i.PostMethod( true ); //it's not a POST method
+    //postrequestbody := '{
+    //    "releaseDate": "2023-09-15 17:47:29",
+    //    "businessType": "杞﹁浇",
+    //    "scenarioName": "1.0 Base",
+    //    "panelMaterials": [
+    //        {
+    //            "productID": "Body side left - E series",
+    //            "productDescription": "娴嬭瘯A",
+    //            "startDate": "2023-09-13",
+    //            "quantity": 100.0
+    //        },
+    //        {
+    //            "productID": "Body side left - E series",
+    //            "productDescription": "娴嬭瘯B",
+    //            "startDate": "2023-09-22",
+    //            "quantity": 200.0
+    //        }
+    //    ]
+    //}';
+    postrequestbody := json.AsString();
+    
+    i.Call( postrequestbody ); // Call's argument is for POST method's content.
+    htmlresult := i.Result();
+    
+    info( "-----------------------鍙戦�佹柟--------------------------------" );
+    info( htmlresult.AsQUILL() );
   *]
 }
diff --git a/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialAutomotiveElectronics.qbl b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialAutomotiveElectronics.qbl
new file mode 100644
index 0000000..0fc4454
--- /dev/null
+++ b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialAutomotiveElectronics.qbl
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizePanelMaterialAutomotiveElectronics (
+  MacroPlan macroPlan,
+  PanelMaterialAll pma
+)
+{
+  TextBody:
+  [*
+    traverse ( pma, PanelMaterialAutomotiveElectronics, pm ) {
+      targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = pm.ProductID() );
+      if ( isnull( targetProduct_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪浜у搧锛�", pm.ProductID() );
+      }
+      targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = "鎴愬搧浠�" );
+      if ( isnull( targetStockingPoint_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪搴撳瓨鐐癸細", pm.StockingPointID() );
+      }
+          
+      CustomerOrder::Create( targetProduct_MP,
+                             targetStockingPoint_MP,
+                             pm.ID(),
+                             pm.OrderDate(),
+                             [Real]pm.Quantity(),
+                             [Real]pm.Price(),
+                             pm.PriorityName(),
+                             pm.SalesSegmentName(),
+                             pm.CurrencyID(),
+                             pm.UnitOfMeasureName(),
+                             false,
+                             pm.Customer(),
+                             pm.CustomerID(),
+                             "",
+                             "",
+                             true,
+                             true,
+                             false
+                            );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialIT.qbl b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialIT.qbl
new file mode 100644
index 0000000..48f5eed
--- /dev/null
+++ b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialIT.qbl
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizePanelMaterialIT (
+  MacroPlan macroPlan,
+  PanelMaterialAll pma
+)
+{
+  TextBody:
+  [*
+    traverse ( pma, PanelMaterialIT, pm ) {
+      targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = pm.ProductID() );
+      if ( isnull( targetProduct_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪浜у搧锛�", pm.ProductID() );
+      }
+      targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = "鎴愬搧浠�" );
+      if ( isnull( targetStockingPoint_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪搴撳瓨鐐癸細", pm.StockingPointID() );
+      }
+          
+      CustomerOrder::Create( targetProduct_MP,
+                             targetStockingPoint_MP,
+                             pm.ID(),
+                             pm.OrderDate(),
+                             [Real]pm.Quantity(),
+                             [Real]pm.Price(),
+                             pm.PriorityName(),
+                             pm.SalesSegmentName(),
+                             pm.CurrencyID(),
+                             pm.UnitOfMeasureName(),
+                             false,
+                             pm.Customer(),
+                             pm.CustomerID(),
+                             "",
+                             "",
+                             true,
+                             true,
+                             false
+                            );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialSpecializedDisplay.qbl b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialSpecializedDisplay.qbl
new file mode 100644
index 0000000..75607f3
--- /dev/null
+++ b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialSpecializedDisplay.qbl
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizePanelMaterialSpecializedDisplay (
+  MacroPlan macroPlan,
+  PanelMaterialAll pma
+)
+{
+  TextBody:
+  [*
+    traverse ( pma, PanelMaterialSpecializedDisplay, pm ) {
+      targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = pm.ProductID() );
+      if ( isnull( targetProduct_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪浜у搧锛�", pm.ProductID() );
+      }
+      targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = "鎴愬搧浠�" );
+      if ( isnull( targetStockingPoint_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪搴撳瓨鐐癸細", pm.StockingPointID() );
+      }
+          
+      CustomerOrder::Create( targetProduct_MP,
+                             targetStockingPoint_MP,
+                             pm.ID(),
+                             pm.OrderDate(),
+                             [Real]pm.Quantity(),
+                             [Real]pm.Price(),
+                             pm.PriorityName(),
+                             pm.SalesSegmentName(),
+                             pm.CurrencyID(),
+                             pm.UnitOfMeasureName(),
+                             false,
+                             pm.Customer(),
+                             pm.CustomerID(),
+                             "",
+                             "",
+                             true,
+                             true,
+                             false
+                            );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialSportsHealth.qbl b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialSportsHealth.qbl
new file mode 100644
index 0000000..f081fb6
--- /dev/null
+++ b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialSportsHealth.qbl
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizePanelMaterialSportsHealth (
+  MacroPlan macroPlan,
+  PanelMaterialAll pma
+)
+{
+  TextBody:
+  [*
+    traverse ( pma, PanelMaterialSportsHealth, pm ) {
+      targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = pm.ProductID() );
+      if ( isnull( targetProduct_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪浜у搧锛�", pm.ProductID() );
+      }
+      targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = "鎴愬搧浠�" );
+      if ( isnull( targetStockingPoint_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪搴撳瓨鐐癸細", pm.StockingPointID() );
+      }
+          
+      CustomerOrder::Create( targetProduct_MP,
+                             targetStockingPoint_MP,
+                             pm.ID(),
+                             pm.OrderDate(),
+                             [Real]pm.Quantity(),
+                             [Real]pm.Price(),
+                             pm.PriorityName(),
+                             pm.SalesSegmentName(),
+                             pm.CurrencyID(),
+                             pm.UnitOfMeasureName(),
+                             false,
+                             pm.Customer(),
+                             pm.CustomerID(),
+                             "",
+                             "",
+                             true,
+                             true,
+                             false
+                            );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialTM17.qbl b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialTM17.qbl
new file mode 100644
index 0000000..e4b7893
--- /dev/null
+++ b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialTM17.qbl
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizePanelMaterialTM17 (
+  MacroPlan macroPlan,
+  PanelMaterialAll pma
+)
+{
+  TextBody:
+  [*
+    traverse ( pma, PanelMaterialTM17, pm ) {
+      targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = pm.ProductID() );
+      if ( isnull( targetProduct_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪浜у搧锛�", pm.ProductID() );
+      }
+      targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = "鎴愬搧浠�" );
+      if ( isnull( targetStockingPoint_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪搴撳瓨鐐癸細", pm.StockingPointID() );
+      }
+          
+      CustomerOrder::Create( targetProduct_MP,
+                             targetStockingPoint_MP,
+                             pm.ID(),
+                             pm.OrderDate(),
+                             [Real]pm.Quantity(),
+                             [Real]pm.Price(),
+                             pm.PriorityName(),
+                             pm.SalesSegmentName(),
+                             pm.CurrencyID(),
+                             pm.UnitOfMeasureName(),
+                             false,
+                             pm.Customer(),
+                             pm.CustomerID(),
+                             "",
+                             "",
+                             true,
+                             true,
+                             false
+                            );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialTM18.qbl b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialTM18.qbl
new file mode 100644
index 0000000..52f3a01
--- /dev/null
+++ b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialTM18.qbl
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizePanelMaterialTM18 (
+  MacroPlan macroPlan,
+  PanelMaterialAll pma
+)
+{
+  TextBody:
+  [*
+    traverse ( pma, PanelMaterialTM18, pm ) {
+      targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = pm.ProductID() );
+      if ( isnull( targetProduct_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪浜у搧锛�", pm.ProductID() );
+      }
+      targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = "鎴愬搧浠�" );
+      if ( isnull( targetStockingPoint_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪搴撳瓨鐐癸細", pm.StockingPointID() );
+      }
+          
+      CustomerOrder::Create( targetProduct_MP,
+                             targetStockingPoint_MP,
+                             pm.ID(),
+                             pm.OrderDate(),
+                             [Real]pm.Quantity(),
+                             [Real]pm.Price(),
+                             pm.PriorityName(),
+                             pm.SalesSegmentName(),
+                             pm.CurrencyID(),
+                             pm.UnitOfMeasureName(),
+                             false,
+                             pm.Customer(),
+                             pm.CustomerID(),
+                             "",
+                             "",
+                             true,
+                             true,
+                             false
+                            );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialTianHua.qbl b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialTianHua.qbl
new file mode 100644
index 0000000..9bd8092
--- /dev/null
+++ b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialTianHua.qbl
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizePanelMaterialTianHua (
+  MacroPlan macroPlan,
+  PanelMaterialAll pma
+)
+{
+  TextBody:
+  [*
+    traverse ( pma, PanelMaterialTianHua, pm ) {
+      targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = pm.ProductID() );
+      if ( isnull( targetProduct_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪浜у搧锛�", pm.ProductID() );
+      }
+      targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = "鎴愬搧浠�" );
+      if ( isnull( targetStockingPoint_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪搴撳瓨鐐癸細", pm.StockingPointID() );
+      }
+          
+      CustomerOrder::Create( targetProduct_MP,
+                             targetStockingPoint_MP,
+                             pm.ID(),
+                             pm.OrderDate(),
+                             [Real]pm.Quantity(),
+                             [Real]pm.Price(),
+                             pm.PriorityName(),
+                             pm.SalesSegmentName(),
+                             pm.CurrencyID(),
+                             pm.UnitOfMeasureName(),
+                             false,
+                             pm.Customer(),
+                             pm.CustomerID(),
+                             "",
+                             "",
+                             true,
+                             true,
+                             false
+                            );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialVehicle.qbl b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialVehicle.qbl
new file mode 100644
index 0000000..7881bb9
--- /dev/null
+++ b/_Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialVehicle.qbl
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizePanelMaterialVehicle (
+  MacroPlan macroPlan,
+  PanelMaterialAll pma
+)
+{
+  TextBody:
+  [*
+    traverse ( pma, PanelMaterialVehicle, pm ) {
+      targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = pm.ProductID() );
+      if ( isnull( targetProduct_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪浜у搧锛�", pm.ProductID() );
+      }
+      targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = "鎴愬搧浠�" );
+      if ( isnull( targetStockingPoint_MP ) ) {
+        error( "铻嶅悎鏁版嵁澶辫触锛屼笉瀛樺湪搴撳瓨鐐癸細", pm.StockingPointID() );
+      }
+          
+      CustomerOrder::Create( targetProduct_MP,
+                             targetStockingPoint_MP,
+                             pm.ID(),
+                             pm.OrderDate(),
+                             [Real]pm.Quantity(),
+                             [Real]pm.Price(),
+                             pm.PriorityName(),
+                             pm.SalesSegmentName(),
+                             pm.CurrencyID(),
+                             pm.UnitOfMeasureName(),
+                             false,
+                             pm.Customer(),
+                             pm.CustomerID(),
+                             "",
+                             "",
+                             true,
+                             true,
+                             false
+                            );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_PanelMaterialAutomotiveElectronics/StaticMethod_ReceiveDataGeneration.qbl b/_Main/BL/Type_PanelMaterialAutomotiveElectronics/StaticMethod_ReceiveDataGeneration.qbl
index 2d21864..7e23ced 100644
--- a/_Main/BL/Type_PanelMaterialAutomotiveElectronics/StaticMethod_ReceiveDataGeneration.qbl
+++ b/_Main/BL/Type_PanelMaterialAutomotiveElectronics/StaticMethod_ReceiveDataGeneration.qbl
@@ -25,7 +25,7 @@
     businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
     scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
     
-    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.ScenarioName() = scenarioNameNameValue.GetValueAsString() );
+    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
     if ( not isnull( panelMaterialAll ) ) {
       panelMaterialAll.Delete();
     }
diff --git a/_Main/BL/Type_PanelMaterialIT/StaticMethod_ReceiveDataGeneration.qbl b/_Main/BL/Type_PanelMaterialIT/StaticMethod_ReceiveDataGeneration.qbl
index 195adab..2247ccb 100644
--- a/_Main/BL/Type_PanelMaterialIT/StaticMethod_ReceiveDataGeneration.qbl
+++ b/_Main/BL/Type_PanelMaterialIT/StaticMethod_ReceiveDataGeneration.qbl
@@ -25,7 +25,7 @@
     businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
     scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
     
-    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.ScenarioName() = scenarioNameNameValue.GetValueAsString() );
+    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
     if ( not isnull( panelMaterialAll ) ) {
       panelMaterialAll.Delete();
     }
diff --git a/_Main/BL/Type_PanelMaterialSpecializedDisplay/StaticMethod_ReceiveDataGeneration.qbl b/_Main/BL/Type_PanelMaterialSpecializedDisplay/StaticMethod_ReceiveDataGeneration.qbl
index ddb0119..699665f 100644
--- a/_Main/BL/Type_PanelMaterialSpecializedDisplay/StaticMethod_ReceiveDataGeneration.qbl
+++ b/_Main/BL/Type_PanelMaterialSpecializedDisplay/StaticMethod_ReceiveDataGeneration.qbl
@@ -25,7 +25,7 @@
     businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
     scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
     
-    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.ScenarioName() = scenarioNameNameValue.GetValueAsString() );
+    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
     if ( not isnull( panelMaterialAll ) ) {
       panelMaterialAll.Delete();
     }
diff --git a/_Main/BL/Type_PanelMaterialSportsHealth/StaticMethod_ReceiveDataGeneration.qbl b/_Main/BL/Type_PanelMaterialSportsHealth/StaticMethod_ReceiveDataGeneration.qbl
index 4ccf91b..21dd372 100644
--- a/_Main/BL/Type_PanelMaterialSportsHealth/StaticMethod_ReceiveDataGeneration.qbl
+++ b/_Main/BL/Type_PanelMaterialSportsHealth/StaticMethod_ReceiveDataGeneration.qbl
@@ -25,7 +25,7 @@
     businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
     scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
     
-    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.ScenarioName() = scenarioNameNameValue.GetValueAsString() );
+    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
     if ( not isnull( panelMaterialAll ) ) {
       panelMaterialAll.Delete();
     }
diff --git a/_Main/BL/Type_PanelMaterialTM17/StaticMethod_ReceiveDataGeneration.qbl b/_Main/BL/Type_PanelMaterialTM17/StaticMethod_ReceiveDataGeneration.qbl
index 9f7f71a..e3cd600 100644
--- a/_Main/BL/Type_PanelMaterialTM17/StaticMethod_ReceiveDataGeneration.qbl
+++ b/_Main/BL/Type_PanelMaterialTM17/StaticMethod_ReceiveDataGeneration.qbl
@@ -25,7 +25,7 @@
     businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
     scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
     
-    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.ScenarioName() = scenarioNameNameValue.GetValueAsString() );
+    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
     if ( not isnull( panelMaterialAll ) ) {
       panelMaterialAll.Delete();
     }
diff --git a/_Main/BL/Type_PanelMaterialTM18/StaticMethod_ReceiveDataGeneration.qbl b/_Main/BL/Type_PanelMaterialTM18/StaticMethod_ReceiveDataGeneration.qbl
index 9145c77..81c7bd9 100644
--- a/_Main/BL/Type_PanelMaterialTM18/StaticMethod_ReceiveDataGeneration.qbl
+++ b/_Main/BL/Type_PanelMaterialTM18/StaticMethod_ReceiveDataGeneration.qbl
@@ -25,7 +25,7 @@
     businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
     scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
     
-    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.ScenarioName() = scenarioNameNameValue.GetValueAsString() );
+    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
     if ( not isnull( panelMaterialAll ) ) {
       panelMaterialAll.Delete();
     }
diff --git a/_Main/BL/Type_PanelMaterialTianHua/StaticMethod_ReceiveDataGeneration.qbl b/_Main/BL/Type_PanelMaterialTianHua/StaticMethod_ReceiveDataGeneration.qbl
index 042dc4a..a21141a 100644
--- a/_Main/BL/Type_PanelMaterialTianHua/StaticMethod_ReceiveDataGeneration.qbl
+++ b/_Main/BL/Type_PanelMaterialTianHua/StaticMethod_ReceiveDataGeneration.qbl
@@ -25,7 +25,7 @@
     businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
     scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
     
-    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.ScenarioName() = scenarioNameNameValue.GetValueAsString() );
+    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
     if ( not isnull( panelMaterialAll ) ) {
       panelMaterialAll.Delete();
     }
diff --git a/_Main/BL/Type_PanelMaterialTianHua/_ROOT_Type_PanelMaterialTianHua.qbl b/_Main/BL/Type_PanelMaterialTianHua/_ROOT_Type_PanelMaterialTianHua.qbl
index d2d2fa2..95521ca 100644
--- a/_Main/BL/Type_PanelMaterialTianHua/_ROOT_Type_PanelMaterialTianHua.qbl
+++ b/_Main/BL/Type_PanelMaterialTianHua/_ROOT_Type_PanelMaterialTianHua.qbl
@@ -5,6 +5,6 @@
 {
   #keys: '5[414702.0.203671414][414702.0.203671412][0.0.0][414702.0.203671413][414702.0.203671415]'
   BaseType: Object
-  Description: '澶╄姳'
+  Description: '澶╁崕'
   StructuredName: 'PanelMaterialTianHuas'
 }
diff --git a/_Main/BL/Type_PanelMaterialVehicle/StaticMethod_ReceiveDataGeneration.qbl b/_Main/BL/Type_PanelMaterialVehicle/StaticMethod_ReceiveDataGeneration.qbl
index 3174738..6160180 100644
--- a/_Main/BL/Type_PanelMaterialVehicle/StaticMethod_ReceiveDataGeneration.qbl
+++ b/_Main/BL/Type_PanelMaterialVehicle/StaticMethod_ReceiveDataGeneration.qbl
@@ -25,7 +25,7 @@
     businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
     scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
     
-    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.ScenarioName() = scenarioNameNameValue.GetValueAsString() );
+    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
     if ( not isnull( panelMaterialAll ) ) {
       panelMaterialAll.Delete();
     }
diff --git a/_Main/BL/Type_Product_MP/Attribute_BusinessTypeCommon.qbl b/_Main/BL/Type_Product_MP/Attribute_BusinessTypeCommon.qbl
new file mode 100644
index 0000000..b384b1d
--- /dev/null
+++ b/_Main/BL/Type_Product_MP/Attribute_BusinessTypeCommon.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessTypeCommon
+{
+  #keys: '3[414480.0.138606036][414480.0.138606035][414480.0.138606037]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Product_MP/Attribute_KeyProduct.qbl b/_Main/BL/Type_Product_MP/Attribute_KeyProduct.qbl
new file mode 100644
index 0000000..6261b43
--- /dev/null
+++ b/_Main/BL/Type_Product_MP/Attribute_KeyProduct.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute KeyProduct
+{
+  #keys: '3[414480.0.138606008][414480.0.138606007][414480.0.138606009]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Product_MP/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_Product_MP/StaticMethod_CreateOrUpdate.qbl
index 7d60ea3..2cc1d59 100644
--- a/_Main/BL/Type_Product_MP/StaticMethod_CreateOrUpdate.qbl
+++ b/_Main/BL/Type_Product_MP/StaticMethod_CreateOrUpdate.qbl
@@ -7,7 +7,9 @@
   String name,
   String unitofmeasurename,
   String description,
-  Real shelflife
+  Real shelflife,
+  Boolean keyproduct,
+  Boolean businesstypecommon
 )
 {
   TextBody:
@@ -28,7 +30,7 @@
     //info( productid );
     
     if( isnull( product ) ){
-      Product_MP::Create( owner, 
+      product := Product_MP::Create( owner, 
                           productid, 
                           parentid, 
                           name, 
@@ -44,6 +46,9 @@
                           isexcludedfromfulfilmentkpis, 
                           isfromdb
                           );
+                         
+        product.KeyProduct(keyproduct);
+        product.BusinessTypeCommon(businesstypecommon);
       }else{
         product.Update( productid, 
                         name, 
@@ -60,6 +65,8 @@
                         isexcludedfromfulfilmentkpis, 
                         isfromdb
                         );
+          product.KeyProduct(keyproduct);
+          product.BusinessTypeCommon(businesstypecommon);
         }
   *]
 }
diff --git a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
index 51fa4f0..20ed0bd 100644
--- a/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
+++ b/_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
@@ -130,5 +130,32 @@
         }
       ]
     }
+    Component menuFile #extension
+    {
+      Children:
+      [
+        Component menuSeparator457 { #keys: '[414702.0.265704251]' BaseType: 'Menu' Properties: [ Separator: true ] }
+        Component ComponentMenu666 { #keys: '[414702.0.265704260]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'FormBrokerExecuteLog' Text: '' ] }
+      ]
+      Properties:
+      [
+        ModeledStringList ChildOrdering
+        {
+          c: ComponentMenu3
+          c: Menu9
+          c: menuBroadcastMessage
+          c: menuQuintiqChat
+          c: Menu10
+          c: menuChangePassword
+          c: Menu11
+          c: menuLoadReport
+          c: Menu13
+          c: MenuRestart
+          c: menuExit
+          c: menuSeparator457
+          c: ComponentMenu666
+        }
+      ]
+    }
   ]
 }
diff --git a/_Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/Component_ColumnTitles511.def b/_Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/Component_ColumnTitles511.def
new file mode 100644
index 0000000..3369129
--- /dev/null
+++ b/_Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/Component_ColumnTitles511.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+Component ColumnTitles511
+{
+  #keys: '[414702.0.265704399]'
+  BaseType: 'ColumnTitles'
+  Children:
+  [
+    Component popupColumnTitles297
+    {
+      #keys: '[414702.0.265704402]'
+      BaseType: 'popupColumnTitles'
+    }
+  ]
+  Properties:
+  [
+    ContextMenu: 'popupColumnTitles297'
+  ]
+}
diff --git a/_Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/Component_ListGlobal_BrokerExecuteLog.def b/_Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/Component_ListGlobal_BrokerExecuteLog.def
new file mode 100644
index 0000000..fcd767f
--- /dev/null
+++ b/_Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/Component_ListGlobal_BrokerExecuteLog.def
@@ -0,0 +1,117 @@
+Quintiq file version 2.0
+Component ListGlobal_BrokerExecuteLog
+{
+  #keys: '[414702.0.265704396]'
+  BaseType: 'List'
+  Children:
+  [
+    #child: ColumnTitles511
+    Component popupList445
+    {
+      #keys: '[414702.0.265704428]'
+      BaseType: 'popupList'
+      Children:
+      [
+        Component PopupParent
+        {
+          #keys: '[514.0.129466]'
+          BaseType: 'PopupParent'
+          IsDerived: true
+          Children:
+          [
+            Component menuSeparator { #keys: '[414702.0.265705233]' BaseType: 'Menu' Properties: [ Separator: true ] }
+            Component MenuDelete { #keys: '[414702.0.265705300]' BaseType: 'Menu' Properties: [ Image: 'DELETE' Text: 'Delete' ] }
+          ]
+          Properties:
+          [
+            ModeledStringList ChildOrdering
+            {
+              c: MenuActions
+              c: MenuFilter
+              c: menuListQuintiqSetQuantor
+              c: menuSeparator
+              c: MenuDelete
+            }
+          ]
+        }
+      ]
+      Properties:
+      [
+        PosX: 35
+        PosY: 60
+      ]
+    }
+    Component GUIDataExtractor430
+    {
+      #keys: '[414702.0.265704460]'
+      BaseType: 'GUIDataExtractor'
+      Properties:
+      [
+        DataSet: 'GlobalOTDTable'
+        DataType: 'GlobalOTDTable'
+        PosX: 5
+        PosY: 30
+        Transformation: 'Global_BrokerExecuteLog'
+      ]
+    }
+    Component GUIDataSetLevel295
+    {
+      #keys: '[414702.0.265704463]'
+      BaseType: 'GUIDataSetLevel'
+      Properties:
+      [
+        DataExtractor: 'GUIDataExtractor430'
+        PosX: 35
+        PosY: 30
+      ]
+    }
+  ]
+  Properties:
+  [
+    AutoDrag: true
+    BackgroundColor: 'Window'
+    Border: true
+    ContextMenu: 'popupList445'
+    FullRowSelect: true
+    ModeledStringList ChildOrdering
+    {
+      c: ColumnTitles511
+      c: popupList445
+      c: GUIDataExtractor430
+      c: GUIDataSetLevel295
+    }
+  ]
+  ResponseDefinitions:
+  [
+    DelegatedResponseDefinition OnClick id:Responsedef_ListGlobal_BrokerExecuteLog_Menu_OnClick
+    {
+      #keys: '[414702.0.265704469]'
+      Initiator: 'Menu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[589.0.8208609]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+    DelegatedResponseDefinition OnClick id:Responsedef_ListGlobal_BrokerExecuteLog_GUIButtonBase_OnClick
+    {
+      #keys: '[414702.0.265704470]'
+      Initiator: 'GUIButtonBase'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[589.0.8208654]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+  ]
+}
diff --git a/_Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/Response_ListGlobal_BrokerExecuteLog_MenuDelete_OnClick.def b/_Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/Response_ListGlobal_BrokerExecuteLog_MenuDelete_OnClick.def
new file mode 100644
index 0000000..2925bcd
--- /dev/null
+++ b/_Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/Response_ListGlobal_BrokerExecuteLog_MenuDelete_OnClick.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: ListGlobal_BrokerExecuteLog
+Response OnClick (
+  Global_BrokerExecuteLog selection
+) id:Response_ListGlobal_BrokerExecuteLog_MenuDelete_OnClick
+{
+  #keys: '[414702.0.265705336]'
+  Body:
+  [*
+    selection.Delete();
+  *]
+  DefinitionID => /ListGlobal_BrokerExecuteLog/Responsedef_ListGlobal_BrokerExecuteLog_Menu_OnClick
+  Initiator: 'MenuDelete'
+}
diff --git a/_Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/_ROOT_Component_FormBrokerExecuteLog.def b/_Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/_ROOT_Component_FormBrokerExecuteLog.def
new file mode 100644
index 0000000..006b818
--- /dev/null
+++ b/_Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/_ROOT_Component_FormBrokerExecuteLog.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlanner
+OrphanComponent FormBrokerExecuteLog
+{
+  #keys: '[414702.0.265704270]'
+  BaseType: 'Form'
+  GBLayout
+  {
+    Type: 'internal[GBLayoutDefinition]'
+    Columns:
+    [
+      GBFlow.Column { grow: 128 id: 581 parent: 0 }
+    ]
+    Elements:
+    [
+      GBElement
+      {
+        Component => ListGlobal_BrokerExecuteLog
+        Position { startcolumn: 581 startrow: 363 endcolumn: 581 endrow: 363 }
+      }
+    ]
+    Gaps: [ left: 0 right: 0 top: 0 bottom: 0 inner: 5 ]
+    Rows:
+    [
+      GBFlow.Row { grow: 128 id: 363 parent: 0 }
+    ]
+  }
+  Children:
+  [
+    #child: ListGlobal_BrokerExecuteLog
+  ]
+  Properties:
+  [
+    Height: 333
+    Image: 'BIRD'
+    IncludeInView: true
+    Title: 'Broker鎵ц鏃ュ織'
+    Width: 441
+  ]
+}
diff --git a/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Component_SplitterWndScenarioManager.def b/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Component_SplitterWndScenarioManager.def
index 3c15ce4..51ce736 100644
--- a/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Component_SplitterWndScenarioManager.def
+++ b/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Component_SplitterWndScenarioManager.def
@@ -5,9 +5,122 @@
   [
     Component SplitterPaneScenario #extension
     {
+      GBLayout
+      {
+        Type: 'internal[GBLayoutDefinition]'
+        Columns:
+        [
+          GBFlow.Column { grow: 0 id: 9 parent: 0 }
+          GBFlow.Column { grow: 0 id: 22 parent: 0 }
+          GBFlow.Column { grow: 0 id: 35 parent: 0 }
+          GBFlow.Column { grow: 0 id: 37 parent: 0 }
+          GBFlow.Column { grow: 0 id: 24 parent: 0 }
+          GBFlow.Column { grow: 0 id: 138 parent: 0 }
+          GBFlow.Column { grow: 0 id: 588 parent: 0 }
+          GBFlow.Column { grow: 0 id: 780 parent: 0 }
+          GBFlow.Column { grow: 0 id: 508 parent: 0 }
+          GBFlow.Column { grow: 128 id: 27 parent: 0 }
+        ]
+        Elements:
+        [
+          GBElement
+          {
+            Component => /SplitterWnd1
+            Position { startcolumn: 9 startrow: 2 endcolumn: 27 endrow: 2 }
+          }
+          GBElement
+          {
+            Component => ButtonRefreshKPIs
+            Position { startcolumn: 9 startrow: 5 endcolumn: 9 endrow: 5 }
+          }
+          GBElement
+          {
+            Component => LabelImportExportStatusTitle
+            Position { startcolumn: 22 startrow: 5 endcolumn: 22 endrow: 5 }
+          }
+          GBElement
+          {
+            Component => LabelLastDataExchangeDate
+            Position { startcolumn: 24 startrow: 5 endcolumn: 24 endrow: 5 }
+          }
+          GBElement
+          {
+            Component => LabelLastDataExchangeAction
+            Position { startcolumn: 35 startrow: 5 endcolumn: 35 endrow: 5 }
+          }
+          GBElement
+          {
+            Component => LabelActionOn
+            Position { startcolumn: 37 startrow: 5 endcolumn: 37 endrow: 5 }
+          }
+          GBElement
+          {
+            Component => ButtonCreateScenariosFromDatasets
+            Position { startcolumn: 138 startrow: 5 endcolumn: 138 endrow: 5 }
+          }
+          GBElement
+          {
+            Component => ButtonRefreshScenarios
+            Position { startcolumn: 588 startrow: 5 endcolumn: 588 endrow: 5 }
+          }
+          GBElement
+          {
+            Component: 'Button897'
+            Position { startcolumn: 780 startrow: 5 endcolumn: 780 endrow: 5 }
+          }
+          GBElement
+          {
+            Component: 'Button482'
+            Position { startcolumn: 508 startrow: 5 endcolumn: 508 endrow: 5 }
+          }
+        ]
+        Gaps: [ left: 0 right: 0 top: 0 bottom: 0 inner: 5 ]
+        Rows:
+        [
+          GBFlow.Row { grow: 0 id: 5 parent: 0 }
+          GBFlow.Row { grow: 128 id: 2 parent: 0 }
+        ]
+      }
       Children:
       [
         #child: SplitterWnd1
+        Component Button897
+        {
+          #keys: '[414702.0.239704572]'
+          BaseType: 'Button'
+          Properties:
+          [
+            Image: 'BIRD'
+            LayoutGroup: 'Button0'
+            Text: '鎵ц鍏ㄥ眬浠g悊'
+          ]
+        }
+        Component Button482
+        {
+          #keys: '[414702.0.239704587]'
+          BaseType: 'Button'
+          Properties:
+          [
+            LayoutGroup: 'Button0'
+            Text: 'Button'
+          ]
+        }
+      ]
+      Properties:
+      [
+        ModeledStringList ChildOrdering
+        {
+          c: ButtonRefreshKPIs
+          c: LabelImportExportStatusTitle
+          c: ButtonCreateScenariosFromDatasets
+          c: LabelLastDataExchangeAction
+          c: SplitterWnd1
+          c: LabelLastDataExchangeDate
+          c: LabelActionOn
+          c: ButtonRefreshScenarios
+          c: Button897
+          c: Button482
+        }
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_TIANMA_JITUAN_SplitterWndScenarioManager_Button897_OnClick.def b/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_TIANMA_JITUAN_SplitterWndScenarioManager_Button897_OnClick.def
new file mode 100644
index 0000000..d600887
--- /dev/null
+++ b/_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_TIANMA_JITUAN_SplitterWndScenarioManager_Button897_OnClick.def
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: SplitterWndScenarioManager/Button897
+Response OnClick () id:Response_TIANMA_JITUAN_SplitterWndScenarioManager_Button897_OnClick
+{
+  #keys: '[414702.0.239704677]'
+  Body:
+  [*
+    GlobalOTDTable::SynchronizationAllMappingBrokerAndAPI( MacroPlan, GlobalOTDTable );
+  *]
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_GUIButtonBase_OnClick'
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlActions.def
new file mode 100644
index 0000000..9245061
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+  #keys: '[414702.0.223820969]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btnOk
+    {
+      #keys: '[414702.0.223820973]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'OK'
+        Taborder: 0
+      ]
+    }
+    Component btnCancel
+    {
+      #keys: '[414702.0.223820975]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Cancel'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    Border: true
+    ExcludeFromActiveComponent: true
+    FixedSize: true
+    Orientation: 'horizontal'
+    Padding: 'true'
+    Style: 'footer'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlContent.def
new file mode 100644
index 0000000..3a0d33a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlContent.def
@@ -0,0 +1,100 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+  #keys: '[414702.0.223820967]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component efProductModel
+    {
+      #keys: '[414702.0.226423878]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.ProductModel'
+        Enabled: false
+        Label: '浜у搧鍨嬪彿'
+        Taborder: 0
+      ]
+    }
+    Component efMaterialDescription
+    {
+      #keys: '[414702.0.226423897]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.MaterialDescription'
+        Enabled: false
+        Label: '鐗╂枡鎻忚堪'
+        Taborder: 1
+      ]
+    }
+    Component dsStart
+    {
+      #keys: '[414702.0.226423917]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.StartDate'
+        Enabled: false
+        Label: '寮�濮�'
+        Taborder: 2
+      ]
+    }
+    Component dsEnd
+    {
+      #keys: '[414702.0.226423929]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.EndDate'
+        Enabled: false
+        Label: '缁撴潫'
+        Taborder: 3
+      ]
+    }
+    Component efPlannedQuantity
+    {
+      #keys: '[414702.0.226690631]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'DataHolderDialogData.Data.PlannedQuantity'
+        Label: '璁″垝鏁伴噺'
+        Taborder: 4
+      ]
+    }
+    Component ddlWorkOrderType
+    {
+      #keys: '[414702.0.226592544]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'WorkOrderType'
+      Children:
+      [
+        Component deContent
+        {
+          #keys: '[414702.0.226592546]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'GlobalOTDTable'
+            Source: 'GlobalOTDTable'
+            Taborder: 0
+            Transformation: 'WorkOrderType'
+          ]
+        }
+      ]
+      Properties:
+      [
+        DisplayField: 'TypeName'
+        Label: '宸ュ崟绫诲瀷'
+        Taborder: 5
+      ]
+    }
+  ]
+  Properties:
+  [
+    Padding: 'true'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Method_Edit.def
new file mode 100644
index 0000000..1bf672d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Method_Edit.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+  structured[MasterPlanReleaseWorkOrderTabulation] selection
+) id:Method_DialogCreateEditIssueWorkOrder_Edit
+{
+  #keys: '[414702.0.224998029]'
+  Body:
+  [*
+    if ( selection.Size() = 1 ) {
+      data := shadow( selection.Element( 0 ) );
+    
+      DataHolderDialogData.Data( &data );
+    } else {
+      DataHolderDialogDatas.Data( selection.Copy() );
+      efProductModel.Enabled( false, "" );
+      efMaterialDescription.Enabled( false, "" );
+      dsStart.Enabled( false, "" );
+      dsEnd.Enabled( false, "" );
+      efPlannedQuantity.Enabled( false, "" );
+    }
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..cbc46b4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnCancel_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnCancel
+Response OnClick () id:Response_pnlActions_btnCancel_OnClick
+{
+  #keys: '[414702.0.223820979]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..4e08b41
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+  #keys: '[414702.0.223820978]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      Form.ApplyChanges();
+      
+      masterPlanReleaseWorkOrderTabulation := guard( DataHolderDialogData.Data().WrappedInstance(), null( MasterPlanReleaseWorkOrderTabulation ) );
+      
+      //info( "鏄惁涓虹┖锛�", isnull( masterPlanReleaseWorkOrderTabulation ), "    Datas涓暟锛�", guard( DataHolderDialogDatas.Data().Size(), 0 ) );
+      if ( not isnull( DataHolderDialogDatas.Data() ) and DataHolderDialogDatas.Data().Size() > 1 ) {
+        traverse ( DataHolderDialogDatas.Data(), Elements, mprwot ) {
+          mprwot.WorkOrderType( ddlWorkOrderType.Data().TypeName() );
+        }
+      } else if ( not isnull( masterPlanReleaseWorkOrderTabulation ) ) {
+        masterPlanReleaseWorkOrderTabulation.PlannedQuantity( [Real]efPlannedQuantity.Text() );
+        masterPlanReleaseWorkOrderTabulation.WorkOrderType( ddlWorkOrderType.Data().TypeName() );
+      }
+      
+      Form.Close();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlContent_ddlWorkOrderType_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlContent_ddlWorkOrderType_OnCreated.def
new file mode 100644
index 0000000..6e33df9
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlContent_ddlWorkOrderType_OnCreated.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: pnlContent/ddlWorkOrderType
+Response OnCreated () id:Response_pnlContent_ddlWorkOrderType_OnCreated
+{
+  #keys: '[414702.0.228678429]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      if ( not isnull( DataHolderDialogData.Data() ) ) {
+        targetWorkOrderType := select( GlobalOTDTable, WorkOrderType, tempWOT, tempWOT.TypeName() = DataHolderDialogData.Data().WorkOrderType() );
+        if ( not isnull( targetWorkOrderType ) ) {
+          this.Data( targetWorkOrderType );
+        } else {
+          this.Data( select( GlobalOTDTable, WorkOrderType, tempWOT, true ) );
+        }
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/_ROOT_Component_DialogCreateEditIssueWorkOrder.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/_ROOT_Component_DialogCreateEditIssueWorkOrder.def
new file mode 100644
index 0000000..d9cc8f2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/_ROOT_Component_DialogCreateEditIssueWorkOrder.def
@@ -0,0 +1,42 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogCreateEditIssueWorkOrder
+{
+  #keys: '[414702.0.223820965]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pnlContent
+    #child: pnlActions
+    Component DataHolderDialogData
+    {
+      #keys: '[414702.0.226291622]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'shadow[MasterPlanReleaseWorkOrderTabulation]*'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
+    Component DataHolderDialogDatas
+    {
+      #keys: '[414702.0.228162499]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[MasterPlanReleaseWorkOrderTabulation]*'
+      Properties:
+      [
+        Taborder: 3
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    EnterButton: 'btnOk'
+    EscapeButton: 'btnCancel'
+    ExcludeFromActiveComponent: true
+    Image: 'DOCUMENT_EDIT'
+    Padding: 'false'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_Edit.def
index 5a8abdf..1ae7777 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_Edit.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_Edit.def
@@ -10,7 +10,7 @@
     data := shadow( selection );
     
     DataHolderDialogData.Data( &data );
-    info( "hello world" );
+    
     ApplicationMacroPlanner.ShowFormModal( this );
   *]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Response_pnlContent_ddslPanelModel_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Response_pnlContent_ddslPanelModel_OnCreated.def
index e8f83be..1195f5f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Response_pnlContent_ddslPanelModel_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Response_pnlContent_ddslPanelModel_OnCreated.def
@@ -14,7 +14,7 @@
     Body:
     [*
       ids := selectvalues( MacroPlan, Product_MP, tempPMP, tempPMP.IsPanelMaterial(), tempPMP.ID() );
-      info( ids.Concatenate( ";" ) );
+      //info( ids.Concatenate( ";" ) );
       this.Strings( ids.Concatenate( ";" ) );
     *]
     GroupServerCalls: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_CopyScenario.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_CopyScenario.def
new file mode 100644
index 0000000..c0a6fa5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_CopyScenario.def
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+#parent: #root
+Method CopyScenario (
+  ScenarioMP source
+) id:Method_DialogCreateEditScenario_CopyScenario #extension
+{
+  Body:
+  [*
+    // Copy scenario
+    scenario := ScenarioManager.ScenarioNode( relshadow,
+                                              ScenarioMP,
+                                              Parent := source,
+                                              Name := ScenarioManager.GetUniqueScenarioName( source.Name() ),
+                                              SelectedStrategy := source.SelectedStrategy(),
+                                              State := source.State() );
+    
+    DataHolderActionCopy.Data( true );
+    DataHolderDialogData.Data( &scenario );
+    
+    // do not distribute
+    DataHolderDialogData.Data().EnableSync( false );
+    checkboxEnableSync.Visible( false );
+    dropDownStringListGeneral.Visible( false );
+    checkboxIsKeyProduct.Visible( false );
+    checkboxCreatePurchaseSupplyProduct.Visible( false );
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlActions.def
new file mode 100644
index 0000000..f8445bd
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+  #keys: '[414702.0.213381912]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btnOk
+    {
+      #keys: '[414702.0.213381916]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'OK'
+        Taborder: 0
+      ]
+    }
+    Component btnCancel
+    {
+      #keys: '[414702.0.213381918]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: 'Cancel'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    Border: true
+    ExcludeFromActiveComponent: true
+    FixedSize: true
+    Orientation: 'horizontal'
+    Padding: 'true'
+    Style: 'footer'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlContent.def
new file mode 100644
index 0000000..2262cc3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlContent.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+  #keys: '[414702.0.213381910]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: pnlReceiveDatas
+    #child: pnlSelectVersion
+  ]
+  Properties:
+  [
+    Padding: 'true'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlReceiveDatas.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlReceiveDatas.def
new file mode 100644
index 0000000..450154d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlReceiveDatas.def
@@ -0,0 +1,98 @@
+Quintiq file version 2.0
+Component pnlReceiveDatas
+{
+  #keys: '[414702.0.213382696]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component lblTianHua
+    {
+      #keys: '[414702.0.212183780]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '澶╁崕锛�'
+        Taborder: 0
+      ]
+    }
+    Component lblSpecializedDisplay
+    {
+      #keys: '[414702.0.212183799]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '涓撴樉锛�'
+        Taborder: 1
+      ]
+    }
+    Component lblIT
+    {
+      #keys: '[414702.0.212183811]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: 'IT锛�'
+        Taborder: 2
+      ]
+    }
+    Component lblMaterialVehicle
+    {
+      #keys: '[414702.0.212183824]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '杞﹁浇锛�'
+        Taborder: 3
+      ]
+    }
+    Component lblTM17
+    {
+      #keys: '[414702.0.212183836]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: 'TM17锛�'
+        Taborder: 4
+      ]
+    }
+    Component lblTM18
+    {
+      #keys: '[414702.0.212183849]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: 'TM18锛�'
+        Taborder: 5
+      ]
+    }
+    Component lblSportsHealth
+    {
+      #keys: '[414702.0.212183868]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '杩愬姩鍋ュ悍锛�'
+        Taborder: 6
+      ]
+    }
+    Component lblAutomotiveElectronics
+    {
+      #keys: '[414702.0.212172592]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '姹借溅鐢靛瓙锛�'
+        Taborder: 7
+      ]
+    }
+  ]
+  Properties:
+  [
+    Border: true
+    FixedSize: true
+    MinimumColumns: 1
+    MinimumRows: 1
+    Taborder: 0
+    Title: '鏈�鍚庢帴鏀舵椂闂�'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlSelectVersion.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlSelectVersion.def
new file mode 100644
index 0000000..54c1ea0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlSelectVersion.def
@@ -0,0 +1,46 @@
+Quintiq file version 2.0
+Component pnlSelectVersion
+{
+  #keys: '[414702.0.215071882]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ddlSelectVersion
+    {
+      #keys: '[414702.0.215071927]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'ScenarioMP'
+      Children:
+      [
+        Component deSelectVersion
+        {
+          #keys: '[414702.0.215071929]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'ScenarioManager'
+            FixedFilter: 'object.IsLoaded() and not object.IsDeleted()'
+            Source: 'ScenarioManager'
+            Taborder: 0
+            Transformation: 'ScenarioMP'
+          ]
+        }
+      ]
+      Properties:
+      [
+        DisplayField: 'Name'
+        Label: '閫夋嫨鐗堟湰'
+        NumberOfColumns: 50
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Border: true
+    FixedSize: true
+    MinimumColumns: 1
+    MinimumRows: 1
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Method_FusionData.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Method_FusionData.def
new file mode 100644
index 0000000..2c9a949
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Method_FusionData.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#parent: #root
+Method FusionData () id:Method_DialogFusionData_FusionData
+{
+  #keys: '[414702.0.213324055]'
+  Body:
+  [*
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..389a5c1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlActions_btnCancel_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnCancel
+Response OnClick () id:Response_pnlActions_btnCancel_OnClick
+{
+  #keys: '[414702.0.213381922]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.Close();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..9a51849
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,30 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+  #keys: '[414702.0.213381921]'
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( GlobalOTDTable );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      Form.ApplyChanges();
+      try {
+        macroPlan := ExternalMDSEditor::MacroPlan( ddlSelectVersion.Data().DatasetName() ).AsMacroPlan();
+        GlobalOTDTable.SynchronizeOrders( macroPlan );
+      
+        Form.Close();
+      
+        WebMessageBox::Success( "铻嶅悎鏁版嵁鎴愬姛锛�", true );
+      } onerror {
+        Form.Close();
+        WebMessageBox::Error( e.GeneralInformation(), true );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblAutomotiveElectronics_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblAutomotiveElectronics_OnCreated.def
new file mode 100644
index 0000000..94fd670
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblAutomotiveElectronics_OnCreated.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: pnlReceiveDatas/lblAutomotiveElectronics
+Response OnCreated () id:Response_pnlReceiveDatas_lblAutomotiveElectronics_OnCreated
+{
+  #keys: '[414702.0.215042189]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "姹借溅鐢靛瓙" );
+      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "鏃犳暟鎹�" ) );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblIT_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblIT_OnCreated.def
new file mode 100644
index 0000000..1633488
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblIT_OnCreated.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: pnlReceiveDatas/lblIT
+Response OnCreated () id:Response_pnlReceiveDatas_lblIT_OnCreated
+{
+  #keys: '[414702.0.215041419]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "IT" );
+      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "鏃犳暟鎹�" ) );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblMaterialVehicle_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblMaterialVehicle_OnCreated.def
new file mode 100644
index 0000000..74d3b84
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblMaterialVehicle_OnCreated.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: pnlReceiveDatas/lblMaterialVehicle
+Response OnCreated () id:Response_pnlReceiveDatas_lblMaterialVehicle_OnCreated
+{
+  #keys: '[414702.0.215041505]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "杞﹁浇" );
+      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "鏃犳暟鎹�" ) );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblSpecializedDisplay_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblSpecializedDisplay_OnCreated.def
new file mode 100644
index 0000000..a40ec23
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblSpecializedDisplay_OnCreated.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: pnlReceiveDatas/lblSpecializedDisplay
+Response OnCreated () id:Response_pnlReceiveDatas_lblSpecializedDisplay_OnCreated
+{
+  #keys: '[414702.0.215041332]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "涓撴樉" );
+      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "鏃犳暟鎹�" ) );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblSportsHealth_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblSportsHealth_OnCreated.def
new file mode 100644
index 0000000..9a0ebc8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblSportsHealth_OnCreated.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: pnlReceiveDatas/lblSportsHealth
+Response OnCreated () id:Response_pnlReceiveDatas_lblSportsHealth_OnCreated
+{
+  #keys: '[414702.0.215042103]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "杩愬姩鍋ュ悍" );
+      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "鏃犳暟鎹�" ) );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM17_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM17_OnCreated.def
new file mode 100644
index 0000000..f75df01
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM17_OnCreated.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: pnlReceiveDatas/lblTM17
+Response OnCreated () id:Response_pnlReceiveDatas_lblTM17_OnCreated
+{
+  #keys: '[414702.0.215041591]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM17" );
+      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "鏃犳暟鎹�" ) );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM18_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM18_OnCreated.def
new file mode 100644
index 0000000..ac39931
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM18_OnCreated.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: pnlReceiveDatas/lblTM18
+Response OnCreated () id:Response_pnlReceiveDatas_lblTM18_OnCreated
+{
+  #keys: '[414702.0.215041677]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM18" );
+      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "鏃犳暟鎹�" ) );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTianHua_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTianHua_OnCreated.def
new file mode 100644
index 0000000..795f493
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTianHua_OnCreated.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: pnlReceiveDatas/lblTianHua
+Response OnCreated () id:Response_pnlReceiveDatas_lblTianHua_OnCreated
+{
+  #keys: '[414702.0.213744488]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "澶╁崕" );
+      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "鏃犳暟鎹�" ) );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/_ROOT_Component_DialogFusionData.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/_ROOT_Component_DialogFusionData.def
new file mode 100644
index 0000000..065348b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/_ROOT_Component_DialogFusionData.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogFusionData
+{
+  #keys: '[414702.0.213381908]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pnlContent
+    #child: pnlActions
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    EnterButton: 'btnOk'
+    EscapeButton: 'btnCancel'
+    ExcludeFromActiveComponent: true
+    Image: 'CD_GOLD'
+    Padding: 'false'
+    Title: '铻嶅悎鏁版嵁'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIT/Component_ListPanelMaterialIT.def b/_Main/UI/MacroPlannerWebApp/Component_FormIT/Component_ListPanelMaterialIT.def
new file mode 100644
index 0000000..f5a7514
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIT/Component_ListPanelMaterialIT.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListPanelMaterialIT
+{
+  #keys: '[414702.0.210691840]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorPanelMaterialIT
+    {
+      #keys: '[414702.0.210691841]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'GlobalOTDTable'
+        Source: 'GlobalOTDTable'
+        Taborder: 0
+        Transformation: 'PanelMaterialAll.PanelMaterialIT'
+      ]
+    }
+    #child: listActionBarPagePanelMaterialIT
+    Component DataSetLevelPanelMaterialIT
+    {
+      #keys: '[414702.0.210691846]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuPanelMaterialIT
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CurrencyID","title":"CurrencyID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CurrencyID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"CustomerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsEligibleForNetting","title":"IsEligibleForNetting","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsEligibleForNetting"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsExcludedFromFulfillmentKPIUser","title":"IsExcludedFromFulfillmentKPIUser","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsExcludedFromFulfillmentKPIUser"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"IsFirmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDate","title":"OrderDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"OrderLineID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityName","title":"PriorityName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}}]'
+        ContextMenu: 'listContextMenuPanelMaterialIT'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 2
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIT/Component_listActionBarPagePanelMaterialIT.def b/_Main/UI/MacroPlannerWebApp/Component_FormIT/Component_listActionBarPagePanelMaterialIT.def
new file mode 100644
index 0000000..834622e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIT/Component_listActionBarPagePanelMaterialIT.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePanelMaterialIT
+{
+  #keys: '[414702.0.210691843]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIT/Component_listContextMenuPanelMaterialIT.def b/_Main/UI/MacroPlannerWebApp/Component_FormIT/Component_listContextMenuPanelMaterialIT.def
new file mode 100644
index 0000000..fbdcdc0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIT/Component_listContextMenuPanelMaterialIT.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuPanelMaterialIT
+{
+  #keys: '[414702.0.210691848]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIT/Response_DataHolderPanelIT_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormIT/Response_DataHolderPanelIT_OnCreated.def
new file mode 100644
index 0000000..2e5c2f6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIT/Response_DataHolderPanelIT_OnCreated.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelIT
+Response OnCreated () id:Response_FormPanelMaterialIT_DataHolderPanelIT_OnCreated
+{
+  #keys: '[414702.0.211822171]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "IT" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIT/Response_DataHolderPanelIT_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormIT/Response_DataHolderPanelIT_OnDataChanged.def
new file mode 100644
index 0000000..45047d0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIT/Response_DataHolderPanelIT_OnDataChanged.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelIT
+Response OnDataChanged () id:Response_FormPanelMaterialIT_DataHolderPanelIT_OnDataChanged
+{
+  #keys: '[414702.0.211822170]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "IT" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIT/_ROOT_Component_FormPanelMaterialIT.def b/_Main/UI/MacroPlannerWebApp/Component_FormIT/_ROOT_Component_FormPanelMaterialIT.def
new file mode 100644
index 0000000..c63195b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIT/_ROOT_Component_FormPanelMaterialIT.def
@@ -0,0 +1,39 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormPanelMaterialIT
+{
+  #keys: '[414702.0.209101681]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListPanelMaterialIT
+    Component DataHolderPanelIT
+    {
+      #keys: '[414702.0.211822173]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'PanelMaterialAll'
+      Properties:
+      [
+        Taborder: 0
+      ]
+    }
+    Component LabelLastSent
+    {
+      #keys: '[414702.0.211822232]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        DataBinding: 'DataHolderPanelIT.Data.ReleaseDate'
+        Label: '涓婃鍙戦�佹椂闂达細'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Description: 'IT'
+    Image: 'SATELLITE'
+    Title: 'IT'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def
new file mode 100644
index 0000000..23d2fcb
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def
@@ -0,0 +1,60 @@
+Quintiq file version 2.0
+Component ListIssueWorkOrder
+{
+  #keys: '[414702.0.222532118]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorIssueWorkOrder
+    {
+      #keys: '[414702.0.222532119]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'MacroPlan'
+        Source: 'MacroPlan'
+        Taborder: 0
+        Transformation: 'MasterPlanReleaseWorkOrder.MasterPlanReleaseWorkOrderTabulation'
+      ]
+    }
+    #child: listActionBarPageIssueWorkOrder
+    Component DataSetLevelIssueWorkOrder
+    {
+      #keys: '[414702.0.222532124]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: MenuIssueEdit
+      ]
+      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":"ProductModel","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"}}]'
+        ContextMenu: 'MenuIssueEdit'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    SelectionCheckboxes: true
+    Taborder: 0
+  ]
+  ResponseDefinitions:
+  [
+    DelegatedResponseDefinition OnClick id:Responsedef_ListIssueWorkOrder_WebMenu_OnClick
+    {
+      #keys: '[414702.0.224677542]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[495.0.82724420]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_MenuIssueEdit.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_MenuIssueEdit.def
new file mode 100644
index 0000000..c113c91
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_MenuIssueEdit.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+Component MenuIssueEdit
+{
+  #keys: '[414702.0.222532126]'
+  BaseType: 'listContextMenu'
+  Children:
+  [
+    Component MenuEdit
+    {
+      #keys: '[414702.0.223801146]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        BindOnDoubleClick: true
+        Image: 'DOCUMENT_EDIT'
+        Taborder: 3
+        Title: '缂栬緫'
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelButton.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelButton.def
new file mode 100644
index 0000000..0faa617
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelButton.def
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component PanelButton
+{
+  #keys: '[414702.0.222545713]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ButtonGeneratePlannedData id:ButtonGeneratePlannedData_167
+    {
+      #keys: '[414702.0.222545840]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'WIND_ENGINE'
+        Label: '鐢熸垚涓嬪彂璁㈠崟'
+        Taborder: 0
+      ]
+    }
+    Component ButtonIDownload id:ButtonIDownload_779
+    {
+      #keys: '[414702.0.222545904]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'DOWNLOAD'
+        Label: '涓嬭浇'
+        Taborder: 1
+      ]
+    }
+    Component ButtonIPlannedRelease id:ButtonIPlannedRelease_848
+    {
+      #keys: '[414702.0.222545967]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'PARASOL'
+        Label: '璁″垝鍙戝竷'
+        Taborder: 2
+      ]
+    }
+    Component ButtonStatusRefresh id:ButtonStatusRefresh_865
+    {
+      #keys: '[414702.0.222546030]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'ARROW_CIRCLE2'
+        Label: '鐘舵�佸埛鏂�'
+        Taborder: 3
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelIssueWorkOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelIssueWorkOrder.def
new file mode 100644
index 0000000..c8b4caf
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelIssueWorkOrder.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component PanelIssueWorkOrder
+{
+  #keys: '[414702.0.222532093]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: ListIssueWorkOrder
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_listActionBarPageIssueWorkOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_listActionBarPageIssueWorkOrder.def
new file mode 100644
index 0000000..dbd461c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_listActionBarPageIssueWorkOrder.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageIssueWorkOrder
+{
+  #keys: '[414702.0.222532121]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def
new file mode 100644
index 0000000..f516650
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: ListIssueWorkOrder
+Response OnClick (
+  structured[MasterPlanReleaseWorkOrderTabulation] selection
+) id:Response_ListIssueWorkOrder_MenuEdit_OnClick
+{
+  #keys: '[414702.0.223821969]'
+  CanBindMultiple: false
+  DefinitionID => /ListIssueWorkOrder/Responsedef_ListIssueWorkOrder_WebMenu_OnClick
+  Initiator: 'MenuEdit'
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditIssueWorkOrder );
+      
+      dlg.Edit( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged\043567.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged\043567.def"
new file mode 100644
index 0000000..dcb787b
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged\043567.def"
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: ListIssueWorkOrder
+Response OnUserCheckedChanged () id:Response_ListIssueWorkOrder_OnUserCheckedChanged_567
+{
+  #keys: '[414702.0.224434023]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      DataHolderCheckedMasterPlanReleaseWorkOrderTabulation.Data().Flush();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged.def
new file mode 100644
index 0000000..a04d9da
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_ListIssueWorkOrder_OnUserCheckedChanged.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: ListIssueWorkOrder
+Response OnUserCheckedChanged (
+  structured[MasterPlanReleaseWorkOrderTabulation] checkeditems
+) id:Response_ListIssueWorkOrder_OnUserCheckedChanged
+{
+  #keys: '[414702.0.224433947]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      DataHolderCheckedMasterPlanReleaseWorkOrderTabulation.Data( checkeditems.Copy() );
+    *]
+    GroupServerCalls: false
+  }
+}
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"
new file mode 100644
index 0000000..af53e7d
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonGeneratePlannedData_OnClick\043124.def"
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: PanelButton/ButtonGeneratePlannedData_167
+Response OnClick () id:Response_FormIssueWorkOrder_ButtonGeneratePlannedData_OnClick_124
+{
+  #keys: '[414702.0.222545839]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      MasterPlanReleaseWorkOrder::GenerateAndDistributeWorkOrders( MacroPlan );
+      
+      WebMessageBox::Success( "鐢熸垚鎴愬姛锛�", true );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonIDownload_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonIDownload_OnClick.def
new file mode 100644
index 0000000..dbb59de
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Response_PanelButton_ButtonIDownload_OnClick.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: PanelButton/ButtonIDownload_779
+Response OnClick () id:Response_PanelButton_ButtonIDownload_OnClick
+{
+  #keys: '[414702.0.229440598]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      tableBinaryData := MasterPlanReleaseWorkOrderTabulation::Export( DataHolderCheckedMasterPlanReleaseWorkOrderTabulation.Data() ).AsBinaryData();
+      
+      fileNmae := "宸ュ崟瀵煎嚭_";
+      fileNmae := fileNmae + [String]Date::ActualDate().Year() + [String]Date::ActualDate().Month() + "鏈�.xlsx";
+      
+      Application.Download( fileNmae, tableBinaryData );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def
new file mode 100644
index 0000000..24025d0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormIssueWorkOrder
+{
+  #keys: '[414702.0.223811074]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: PanelIssueWorkOrder
+    Component DataHolderCheckedMasterPlanReleaseWorkOrderTabulation
+    {
+      #keys: '[414702.0.222552279]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[MasterPlanReleaseWorkOrderTabulation]*'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
+    #child: PanelButton
+  ]
+  Properties:
+  [
+    Description: '涓嬪彂宸ュ崟'
+    Image: 'TREE'
+    Title: '涓嬪彂宸ュ崟'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_ListPanelMaterialAutomotiveElectronics.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_ListPanelMaterialAutomotiveElectronics.def
new file mode 100644
index 0000000..59acd48
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_ListPanelMaterialAutomotiveElectronics.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListPanelMaterialAutomotiveElectronics
+{
+  #keys: '[414702.0.210601878]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorPanelMaterialAutomotiveElectronics
+    {
+      #keys: '[414702.0.210601879]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'GlobalOTDTable'
+        Source: 'GlobalOTDTable'
+        Taborder: 0
+        Transformation: 'PanelMaterialAll.PanelMaterialAutomotiveElectronics'
+      ]
+    }
+    #child: listActionBarPagePanelMaterialAutomotiveElectronics
+    Component DataSetLevelPanelMaterialAutomotiveElectronics
+    {
+      #keys: '[414702.0.210601884]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuPanelMaterialAutomotiveElectronics
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CurrencyID","title":"CurrencyID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CurrencyID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"CustomerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsEligibleForNetting","title":"IsEligibleForNetting","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsEligibleForNetting"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsExcludedFromFulfillmentKPIUser","title":"IsExcludedFromFulfillmentKPIUser","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsExcludedFromFulfillmentKPIUser"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"IsFirmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDate","title":"OrderDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"OrderLineID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityName","title":"PriorityName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}}]'
+        ContextMenu: 'listContextMenuPanelMaterialAutomotiveElectronics'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 2
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_listActionBarPagePanelMaterialAutomotiveElectronics.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_listActionBarPagePanelMaterialAutomotiveElectronics.def
new file mode 100644
index 0000000..10c54d2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_listActionBarPagePanelMaterialAutomotiveElectronics.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePanelMaterialAutomotiveElectronics
+{
+  #keys: '[414702.0.210601881]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_listContextMenuPanelMaterialAutomotiveElectronics.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_listContextMenuPanelMaterialAutomotiveElectronics.def
new file mode 100644
index 0000000..4cf4117
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_listContextMenuPanelMaterialAutomotiveElectronics.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuPanelMaterialAutomotiveElectronics
+{
+  #keys: '[414702.0.210601886]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Response_DataHolderPanelAutomotiveElectronics_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Response_DataHolderPanelAutomotiveElectronics_OnCreated.def
new file mode 100644
index 0000000..153bf2b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Response_DataHolderPanelAutomotiveElectronics_OnCreated.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelAutomotiveElectronics
+Response OnCreated () id:Response_FormPanelMaterialAutomotiveElectronics_DataHolderPanelAutomotiveElectronics_OnCreated
+{
+  #keys: '[414702.0.211782554]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "姹借溅鐢靛瓙" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Response_DataHolderPanelAutomotiveElectronics_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Response_DataHolderPanelAutomotiveElectronics_OnDataChanged.def
new file mode 100644
index 0000000..5d5b00c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Response_DataHolderPanelAutomotiveElectronics_OnDataChanged.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelAutomotiveElectronics
+Response OnDataChanged () id:Response_FormPanelMaterialAutomotiveElectronics_DataHolderPanelAutomotiveElectronics_OnDataChanged
+{
+  #keys: '[414702.0.211782555]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "姹借溅鐢靛瓙" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/_ROOT_Component_FormPanelMaterialAutomotiveElectronics.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/_ROOT_Component_FormPanelMaterialAutomotiveElectronics.def
new file mode 100644
index 0000000..bf0aa3c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/_ROOT_Component_FormPanelMaterialAutomotiveElectronics.def
@@ -0,0 +1,39 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormPanelMaterialAutomotiveElectronics
+{
+  #keys: '[414702.0.210632875]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListPanelMaterialAutomotiveElectronics
+    Component DataHolderPanelAutomotiveElectronics
+    {
+      #keys: '[414702.0.211782557]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'PanelMaterialAll'
+      Properties:
+      [
+        Taborder: 0
+      ]
+    }
+    Component LabelLastSent id:LabelLastSent_680
+    {
+      #keys: '[414702.0.211782616]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        DataBinding: 'DataHolderPanelAutomotiveElectronics.Data.ReleaseDate'
+        Label: '涓婃鍙戦�佹椂闂达細'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Description: '姹借溅鐢靛瓙'
+    Image: 'RFID_CHIP'
+    Title: '姹借溅鐢靛瓙'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_ListPanelMaterialSpecializedDisplay.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_ListPanelMaterialSpecializedDisplay.def
new file mode 100644
index 0000000..daa00b5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_ListPanelMaterialSpecializedDisplay.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListPanelMaterialSpecializedDisplay
+{
+  #keys: '[414702.0.209165818]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorPanelMaterialSpecializedDisplay
+    {
+      #keys: '[414702.0.209165819]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'GlobalOTDTable'
+        Source: 'GlobalOTDTable'
+        Taborder: 0
+        Transformation: 'PanelMaterialAll.PanelMaterialSpecializedDisplay'
+      ]
+    }
+    #child: listActionBarPagePanelMaterialSpecializedDisplay
+    Component DataSetLevelPanelMaterialSpecializedDisplay
+    {
+      #keys: '[414702.0.209165824]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuPanelMaterialSpecializedDisplay
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CurrencyID","title":"CurrencyID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CurrencyID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"CustomerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsEligibleForNetting","title":"IsEligibleForNetting","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsEligibleForNetting"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsExcludedFromFulfillmentKPIUser","title":"IsExcludedFromFulfillmentKPIUser","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsExcludedFromFulfillmentKPIUser"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"IsFirmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDate","title":"OrderDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"OrderLineID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityName","title":"PriorityName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}}]'
+        ContextMenu: 'listContextMenuPanelMaterialSpecializedDisplay'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 2
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_listActionBarPagePanelMaterialSpecializedDisplay.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_listActionBarPagePanelMaterialSpecializedDisplay.def
new file mode 100644
index 0000000..a60b6c3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_listActionBarPagePanelMaterialSpecializedDisplay.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePanelMaterialSpecializedDisplay
+{
+  #keys: '[414702.0.209165821]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_listContextMenuPanelMaterialSpecializedDisplay.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_listContextMenuPanelMaterialSpecializedDisplay.def
new file mode 100644
index 0000000..9eaeb5f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_listContextMenuPanelMaterialSpecializedDisplay.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuPanelMaterialSpecializedDisplay
+{
+  #keys: '[414702.0.209165826]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Response_DataHolderPanelSpecializedDisplay_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Response_DataHolderPanelSpecializedDisplay_OnCreated.def
new file mode 100644
index 0000000..f850744
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Response_DataHolderPanelSpecializedDisplay_OnCreated.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelSpecializedDisplay
+Response OnCreated () id:Response_FormPanelMaterialSpecializedDisplay_DataHolderPanelSpecializedDisplay_OnCreated
+{
+  #keys: '[414702.0.211782227]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "涓撴樉" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Response_DataHolderPanelSpecializedDisplay_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Response_DataHolderPanelSpecializedDisplay_OnDataChanged.def
new file mode 100644
index 0000000..da65c1e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Response_DataHolderPanelSpecializedDisplay_OnDataChanged.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelSpecializedDisplay
+Response OnDataChanged () id:Response_FormPanelMaterialSpecializedDisplay_DataHolderPanelSpecializedDisplay_OnDataChanged
+{
+  #keys: '[414702.0.211782228]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "涓撴樉" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/_ROOT_Component_FormPanelMaterialSpecializedDisplay.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/_ROOT_Component_FormPanelMaterialSpecializedDisplay.def
new file mode 100644
index 0000000..74e4ff6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/_ROOT_Component_FormPanelMaterialSpecializedDisplay.def
@@ -0,0 +1,39 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormPanelMaterialSpecializedDisplay
+{
+  #keys: '[414702.0.209165405]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListPanelMaterialSpecializedDisplay
+    Component DataHolderPanelSpecializedDisplay
+    {
+      #keys: '[414702.0.211782230]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'PanelMaterialAll'
+      Properties:
+      [
+        Taborder: 0
+      ]
+    }
+    Component LabelLastSent id:LabelLastSent_452
+    {
+      #keys: '[414702.0.211519610]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        DataBinding: 'DataHolderPanelSpecializedDisplay.Data.ReleaseDate'
+        Label: '涓婃鍙戦�佹椂闂达細'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Description: '涓撴樉'
+    Image: 'LAPTOP2'
+    Title: '涓撴樉'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_ListPanelMaterialSportsHealth.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_ListPanelMaterialSportsHealth.def
new file mode 100644
index 0000000..470bb1a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_ListPanelMaterialSportsHealth.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListPanelMaterialSportsHealth
+{
+  #keys: '[414702.0.209153614]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorPanelMaterialSportsHealth
+    {
+      #keys: '[414702.0.209153615]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'GlobalOTDTable'
+        Source: 'GlobalOTDTable'
+        Taborder: 0
+        Transformation: 'PanelMaterialAll.PanelMaterialSportsHealth'
+      ]
+    }
+    #child: listActionBarPagePanelMaterialSportsHealth
+    Component DataSetLevelPanelMaterialSportsHealth
+    {
+      #keys: '[414702.0.209153620]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuPanelMaterialSportsHealth
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CurrencyID","title":"CurrencyID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CurrencyID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"CustomerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsEligibleForNetting","title":"IsEligibleForNetting","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsEligibleForNetting"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsExcludedFromFulfillmentKPIUser","title":"IsExcludedFromFulfillmentKPIUser","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsExcludedFromFulfillmentKPIUser"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"IsFirmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDate","title":"OrderDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"OrderLineID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityName","title":"PriorityName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}}]'
+        ContextMenu: 'listContextMenuPanelMaterialSportsHealth'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 2
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_listActionBarPagePanelMaterialSportsHealth.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_listActionBarPagePanelMaterialSportsHealth.def
new file mode 100644
index 0000000..7afeb77
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_listActionBarPagePanelMaterialSportsHealth.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePanelMaterialSportsHealth
+{
+  #keys: '[414702.0.209153617]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_listContextMenuPanelMaterialSportsHealth.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_listContextMenuPanelMaterialSportsHealth.def
new file mode 100644
index 0000000..a901936
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_listContextMenuPanelMaterialSportsHealth.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuPanelMaterialSportsHealth
+{
+  #keys: '[414702.0.209153622]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Response_DataHolderPanelSportsHealth_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Response_DataHolderPanelSportsHealth_OnCreated.def
new file mode 100644
index 0000000..a335367
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Response_DataHolderPanelSportsHealth_OnCreated.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelSportsHealth
+Response OnCreated () id:Response_FormPanelMaterialSportsHealth_DataHolderPanelSportsHealth_OnCreated
+{
+  #keys: '[414702.0.211819877]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "杩愬姩鍋ュ悍" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Response_DataHolderPanelSportsHealth_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Response_DataHolderPanelSportsHealth_OnDataChanged.def
new file mode 100644
index 0000000..8f99fec
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Response_DataHolderPanelSportsHealth_OnDataChanged.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelSportsHealth
+Response OnDataChanged () id:Response_FormPanelMaterialSportsHealth_DataHolderPanelSportsHealth_OnDataChanged
+{
+  #keys: '[414702.0.211819876]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "杩愬姩鍋ュ悍" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/_ROOT_Component_FormPanelMaterialSportsHealth.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/_ROOT_Component_FormPanelMaterialSportsHealth.def
new file mode 100644
index 0000000..6e01214
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/_ROOT_Component_FormPanelMaterialSportsHealth.def
@@ -0,0 +1,39 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormPanelMaterialSportsHealth
+{
+  #keys: '[414702.0.210874377]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListPanelMaterialSportsHealth
+    Component DataHolderPanelSportsHealth
+    {
+      #keys: '[414702.0.211819879]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'PanelMaterialAll'
+      Properties:
+      [
+        Taborder: 0
+      ]
+    }
+    Component LabelLastSent
+    {
+      #keys: '[414702.0.211821961]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        DataBinding: 'DataHolderPanelSportsHealth.Data.ReleaseDate'
+        Label: '涓婃鍙戦�佹椂闂达細'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Description: '杩愬姩鍋ュ悍'
+    Image: 'APPLE'
+    Title: '杩愬姩鍋ュ悍'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_ListPanelMaterialTM.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_ListPanelMaterialTM.def
new file mode 100644
index 0000000..e55373e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_ListPanelMaterialTM.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListPanelMaterialTM
+{
+  #keys: '[414702.0.211024657]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorPanelMaterialTM
+    {
+      #keys: '[414702.0.211024658]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'GlobalOTDTable'
+        Source: 'GlobalOTDTable'
+        Taborder: 0
+        Transformation: 'PanelMaterialAll.PanelMaterialTM17'
+      ]
+    }
+    #child: listActionBarPagePanelMaterialTM
+    Component DataSetLevelPanelMaterialTM
+    {
+      #keys: '[414702.0.211024663]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuPanelMaterialTM
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CurrencyID","title":"CurrencyID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CurrencyID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"CustomerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsEligibleForNetting","title":"IsEligibleForNetting","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsEligibleForNetting"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsExcludedFromFulfillmentKPIUser","title":"IsExcludedFromFulfillmentKPIUser","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsExcludedFromFulfillmentKPIUser"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"IsFirmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDate","title":"OrderDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"OrderLineID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityName","title":"PriorityName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}}]'
+        ContextMenu: 'listContextMenuPanelMaterialTM'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 2
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_listActionBarPagePanelMaterialTM.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_listActionBarPagePanelMaterialTM.def
new file mode 100644
index 0000000..f3a589a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_listActionBarPagePanelMaterialTM.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePanelMaterialTM
+{
+  #keys: '[414702.0.211024660]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_listContextMenuPanelMaterialTM.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_listContextMenuPanelMaterialTM.def
new file mode 100644
index 0000000..85fad20
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_listContextMenuPanelMaterialTM.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuPanelMaterialTM
+{
+  #keys: '[414702.0.211024665]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Response_DataHolderPanelTM17_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Response_DataHolderPanelTM17_OnCreated.def
new file mode 100644
index 0000000..b163a78
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Response_DataHolderPanelTM17_OnCreated.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelTM17
+Response OnCreated () id:Response_FormPanelMaterialTM17_DataHolderPanelTM17_OnCreated
+{
+  #keys: '[414702.0.211884009]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM17" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Response_DataHolderPanelTM17_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Response_DataHolderPanelTM17_OnDataChanged.def
new file mode 100644
index 0000000..da9f657
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Response_DataHolderPanelTM17_OnDataChanged.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelTM17
+Response OnDataChanged () id:Response_FormPanelMaterialTM17_DataHolderPanelTM17_OnDataChanged
+{
+  #keys: '[414702.0.211884008]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM17" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/_ROOT_Component_FormPanelMaterialTM17.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/_ROOT_Component_FormPanelMaterialTM17.def
new file mode 100644
index 0000000..66b4230
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/_ROOT_Component_FormPanelMaterialTM17.def
@@ -0,0 +1,39 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormPanelMaterialTM17
+{
+  #keys: '[414702.0.211085284]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListPanelMaterialTM
+    Component DataHolderPanelTM17
+    {
+      #keys: '[414702.0.211884011]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'PanelMaterialAll'
+      Properties:
+      [
+        Taborder: 0
+      ]
+    }
+    Component LabelLastSent
+    {
+      #keys: '[414702.0.211884076]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        DataBinding: 'DataHolderPanelTM17.Data.ReleaseDate'
+        Label: '涓婃鍙戦�佹椂闂达細'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Description: 'TM17'
+    Image: 'MARKER'
+    Title: 'TM17'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_ListPanelMaterialTM.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_ListPanelMaterialTM.def
new file mode 100644
index 0000000..68eb395
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_ListPanelMaterialTM.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListPanelMaterialTM
+{
+  #keys: '[414702.0.210995730]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorPanelMaterialTM
+    {
+      #keys: '[414702.0.210995731]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'GlobalOTDTable'
+        Source: 'GlobalOTDTable'
+        Taborder: 0
+        Transformation: 'PanelMaterialAll.PanelMaterialTM18'
+      ]
+    }
+    #child: listActionBarPagePanelMaterialTM
+    Component DataSetLevelPanelMaterialTM
+    {
+      #keys: '[414702.0.210995736]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuPanelMaterialTM
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CurrencyID","title":"CurrencyID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CurrencyID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"CustomerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsEligibleForNetting","title":"IsEligibleForNetting","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsEligibleForNetting"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsExcludedFromFulfillmentKPIUser","title":"IsExcludedFromFulfillmentKPIUser","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsExcludedFromFulfillmentKPIUser"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"IsFirmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDate","title":"OrderDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"OrderLineID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityName","title":"PriorityName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}}]'
+        ContextMenu: 'listContextMenuPanelMaterialTM'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 2
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_listActionBarPagePanelMaterialTM.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_listActionBarPagePanelMaterialTM.def
new file mode 100644
index 0000000..53e1f18
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_listActionBarPagePanelMaterialTM.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePanelMaterialTM
+{
+  #keys: '[414702.0.210995733]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_listContextMenuPanelMaterialTM.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_listContextMenuPanelMaterialTM.def
new file mode 100644
index 0000000..0f68ddf
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_listContextMenuPanelMaterialTM.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuPanelMaterialTM
+{
+  #keys: '[414702.0.210995738]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Response_DataHolderPanelTM18_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Response_DataHolderPanelTM18_OnCreated.def
new file mode 100644
index 0000000..da89ecb
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Response_DataHolderPanelTM18_OnCreated.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelTM18
+Response OnCreated () id:Response_FormPanelMaterialTM18_DataHolderPanelTM18_OnCreated
+{
+  #keys: '[414702.0.211683113]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM18" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Response_DataHolderPanelTM18_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Response_DataHolderPanelTM18_OnDataChanged.def
new file mode 100644
index 0000000..b1e90c7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Response_DataHolderPanelTM18_OnDataChanged.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelTM18
+Response OnDataChanged () id:Response_FormPanelMaterialTM18_DataHolderPanelTM18_OnDataChanged
+{
+  #keys: '[414702.0.211683114]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM18" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/_ROOT_Component_FormPanelMaterialTM18.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/_ROOT_Component_FormPanelMaterialTM18.def
new file mode 100644
index 0000000..807ee1f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/_ROOT_Component_FormPanelMaterialTM18.def
@@ -0,0 +1,39 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormPanelMaterialTM18
+{
+  #keys: '[414702.0.209184779]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListPanelMaterialTM
+    Component DataHolderPanelTM18
+    {
+      #keys: '[414702.0.211683116]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'PanelMaterialAll'
+      Properties:
+      [
+        Taborder: 0
+      ]
+    }
+    Component LabelLastSent id:LabelLastSent_969
+    {
+      #keys: '[414702.0.211561471]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        DataBinding: 'DataHolderPanelTM18.Data.ReleaseDate'
+        Label: '涓婃鍙戦�佹椂闂达細'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Description: 'M18'
+    Image: 'MARKER_DELETE'
+    Title: 'M18'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_ListPanelMaterialTianHua.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_ListPanelMaterialTianHua.def
new file mode 100644
index 0000000..351aa56
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_ListPanelMaterialTianHua.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListPanelMaterialTianHua
+{
+  #keys: '[414702.0.210905662]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorPanelMaterialTianHua
+    {
+      #keys: '[414702.0.210905663]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'GlobalOTDTable'
+        Source: 'GlobalOTDTable'
+        Taborder: 0
+        Transformation: 'PanelMaterialAll.PanelMaterialTianHua'
+      ]
+    }
+    #child: listActionBarPagePanelMaterialTianHua
+    Component DataSetLevelPanelMaterialTianHua
+    {
+      #keys: '[414702.0.210905668]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuPanelMaterialTianHua
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CurrencyID","title":"CurrencyID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CurrencyID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"CustomerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsEligibleForNetting","title":"IsEligibleForNetting","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsEligibleForNetting"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsExcludedFromFulfillmentKPIUser","title":"IsExcludedFromFulfillmentKPIUser","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsExcludedFromFulfillmentKPIUser"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"IsFirmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDate","title":"OrderDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"OrderLineID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityName","title":"PriorityName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}}]'
+        ContextMenu: 'listContextMenuPanelMaterialTianHua'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 2
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_listActionBarPagePanelMaterialTianHua.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_listActionBarPagePanelMaterialTianHua.def
new file mode 100644
index 0000000..c8243d8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_listActionBarPagePanelMaterialTianHua.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePanelMaterialTianHua
+{
+  #keys: '[414702.0.210905665]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_listContextMenuPanelMaterialTianHua.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_listContextMenuPanelMaterialTianHua.def
new file mode 100644
index 0000000..7573e40
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_listContextMenuPanelMaterialTianHua.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuPanelMaterialTianHua
+{
+  #keys: '[414702.0.210905670]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Response_DataHolderPanelTianHua_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Response_DataHolderPanelTianHua_OnCreated.def
new file mode 100644
index 0000000..571614d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Response_DataHolderPanelTianHua_OnCreated.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelTianHua
+Response OnCreated () id:Response_FormPanelMaterialTianHua_DataHolderPanelTianHua_OnCreated
+{
+  #keys: '[414702.0.211890766]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "澶╁崕" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Response_DataHolderPanelTianHua_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Response_DataHolderPanelTianHua_OnDataChanged.def
new file mode 100644
index 0000000..eec0cbb
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Response_DataHolderPanelTianHua_OnDataChanged.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelTianHua
+Response OnDataChanged () id:Response_FormPanelMaterialTianHua_DataHolderPanelTianHua_OnDataChanged
+{
+  #keys: '[414702.0.211890767]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "澶╁崕" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/_ROOT_Component_FormPanelMaterialTianHua.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/_ROOT_Component_FormPanelMaterialTianHua.def
new file mode 100644
index 0000000..31b93b5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/_ROOT_Component_FormPanelMaterialTianHua.def
@@ -0,0 +1,39 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormPanelMaterialTianHua
+{
+  #keys: '[414702.0.210844802]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListPanelMaterialTianHua
+    Component DataHolderPanelTianHua
+    {
+      #keys: '[414702.0.211890769]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'PanelMaterialAll'
+      Properties:
+      [
+        Taborder: 0
+      ]
+    }
+    Component LabelLastSent id:LabelLastSent_662
+    {
+      #keys: '[414702.0.211781782]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        DataBinding: 'DataHolderPanelTianHua.Data.ReleaseDate'
+        Label: '涓婃鍙戦�佹椂闂达細'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Description: '澶╄姳'
+    Image: 'CANDLE'
+    Title: '澶╄姳'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_ListPanelMaterialVehicle.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_ListPanelMaterialVehicle.def
new file mode 100644
index 0000000..5b14efc
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_ListPanelMaterialVehicle.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListPanelMaterialVehicle
+{
+  #keys: '[414702.0.210996626]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorPanelMaterialVehicle
+    {
+      #keys: '[414702.0.210996627]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'GlobalOTDTable'
+        Source: 'GlobalOTDTable'
+        Taborder: 0
+        Transformation: 'PanelMaterialAll.PanelMaterialVehicle'
+      ]
+    }
+    #child: listActionBarPagePanelMaterialVehicle
+    Component DataSetLevelPanelMaterialVehicle
+    {
+      #keys: '[414702.0.210996632]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuPanelMaterialVehicle
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CurrencyID","title":"CurrencyID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CurrencyID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"CustomerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsEligibleForNetting","title":"IsEligibleForNetting","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsEligibleForNetting"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsExcludedFromFulfillmentKPIUser","title":"IsExcludedFromFulfillmentKPIUser","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsExcludedFromFulfillmentKPIUser"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"IsFirmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDate","title":"OrderDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"OrderLineID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityName","title":"PriorityName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}}]'
+        ContextMenu: 'listContextMenuPanelMaterialVehicle'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 3
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_listActionBarPagePanelMaterialVehicle.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_listActionBarPagePanelMaterialVehicle.def
new file mode 100644
index 0000000..d86d50a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_listActionBarPagePanelMaterialVehicle.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePanelMaterialVehicle
+{
+  #keys: '[414702.0.210996629]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_listContextMenuPanelMaterialVehicle.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_listContextMenuPanelMaterialVehicle.def
new file mode 100644
index 0000000..43317c3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_listContextMenuPanelMaterialVehicle.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuPanelMaterialVehicle
+{
+  #keys: '[414702.0.210996634]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_ButtonFusionData_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_ButtonFusionData_OnClick.def
new file mode 100644
index 0000000..5062d5f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_ButtonFusionData_OnClick.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: ButtonFusionData
+Response OnClick () id:Response_FormPanelMaterialVehicle_ButtonFusionData_OnClick
+{
+  #keys: '[414702.0.212120934]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogFusionData );
+      dlg.FusionData();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_DataHolderPanelMaterialVehicle_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_DataHolderPanelMaterialVehicle_OnCreated.def
new file mode 100644
index 0000000..5d3384d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_DataHolderPanelMaterialVehicle_OnCreated.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelMaterialVehicle
+Response OnCreated () id:Response_FormPanelMaterialVehicle_DataHolderPanelMaterialVehicle_OnCreated
+{
+  #keys: '[414702.0.209104458]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "杞﹁浇" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_DataHolderPanelMaterialVehicle_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_DataHolderPanelMaterialVehicle_OnDataChanged.def
new file mode 100644
index 0000000..b38c87f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_DataHolderPanelMaterialVehicle_OnDataChanged.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPanelMaterialVehicle
+Response OnDataChanged () id:Response_FormPanelMaterialVehicle_DataHolderPanelMaterialVehicle_OnDataChanged
+{
+  #keys: '[414702.0.211118621]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "杞﹁浇" );
+      if ( not isnull( targetPanelMaterialAll ) ) {
+        this.Data( targetPanelMaterialAll );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/_ROOT_Component_FormPanelMaterialVehicle.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/_ROOT_Component_FormPanelMaterialVehicle.def
new file mode 100644
index 0000000..a4436ed
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/_ROOT_Component_FormPanelMaterialVehicle.def
@@ -0,0 +1,50 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormPanelMaterialVehicle
+{
+  #keys: '[414702.0.210202229]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListPanelMaterialVehicle
+    Component LabelLastSent
+    {
+      #keys: '[414702.0.211266049]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        DataBinding: 'DataHolderPanelMaterialVehicle.Data.ReleaseDate'
+        Label: '涓婃鍙戦�佹椂闂达細'
+        Taborder: 1
+      ]
+    }
+    Component DataHolderPanelMaterialVehicle
+    {
+      #keys: '[414702.0.211025504]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'PanelMaterialAll'
+      Properties:
+      [
+        Taborder: 0
+      ]
+    }
+    Component ButtonFusionData
+    {
+      #keys: '[414702.0.212142601]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'COOLING_TOWER'
+        Label: '铻嶅悎鏁版嵁'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Description: '杞﹁浇'
+    Image: 'BICYCLE'
+    Title: '杞﹁浇'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp b/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
index 35f3a71..cb94597 100644
--- a/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
+++ b/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
@@ -5,7 +5,7 @@
   ProjectProperties
   {
     ApplicationComponentName: 'ApplicationMacroPlanner'
-    BuildVersion: '2022.3.0.101'
+    BuildVersion: '2022.3.0.32'
     Description: 'Quintiq Macro Planner'
     ProjectKind: 'WebClient'
   }
diff --git a/_var/_Main/ModelSettings/Common/Dev-21/_ROOT_Role_Dev-21.properties b/_var/_Main/ModelSettings/Common/Dev-21/_ROOT_Role_Dev-21.properties
index 5bf9674..89de4e7 100644
--- a/_var/_Main/ModelSettings/Common/Dev-21/_ROOT_Role_Dev-21.properties
+++ b/_var/_Main/ModelSettings/Common/Dev-21/_ROOT_Role_Dev-21.properties
@@ -4,8 +4,11 @@
 _meta.type=model
 _meta.version.config=1.3
 _self.configsettype=Role
-_self.description=IT
 _self.name=Dev-21
+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=
@@ -451,16 +454,56 @@
 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=true
+domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=false
 domainmodel.mdsstoragedefinitionmanager.datasetstoreislocal=false
 domainmodel.mdsstoragedefinitionmanager.dbformat=Legacy
 domainmodel.mdsstoragedefinitionmanager.defaultencryptioncertificate=
@@ -529,4 +572,4 @@
 domainmodel.soapserverinterfacedefinition.interface.utf.idescription=
 user=template:user
 user.increasestartofplanning=false
-user.sizingparameter=false
\ No newline at end of file
+user.sizingparameter=false
diff --git a/_var/_Main/ModelSettings/Common/Dev-38/_ROOT_Role_Dev-38.properties b/_var/_Main/ModelSettings/Common/Dev-38/_ROOT_Role_Dev-38.properties
new file mode 100644
index 0000000..7e6f16a
--- /dev/null
+++ b/_var/_Main/ModelSettings/Common/Dev-38/_ROOT_Role_Dev-38.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-38
+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=
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.password=
+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_it
+domainmodel.mdsstoragedefinitionmanager.ociconnectiontnsname=
+domainmodel.mdsstoragedefinitionmanager.ociconnectiontype=Basic
+domainmodel.mdsstoragedefinitionmanager.parameters=/datasource=MacroPlannerInternalDB /user=otdit
+domainmodel.mdsstoragedefinitionmanager.password=1 2A801D084589485925DA39115D5C7855 b91e3007-e230-4ef5-833e-a07edfc8903c
+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-40/_ROOT_Role_Dev-40.properties b/_var/_Main/ModelSettings/Common/Dev-40/_ROOT_Role_Dev-40.properties
new file mode 100644
index 0000000..26cfcab
--- /dev/null
+++ b/_var/_Main/ModelSettings/Common/Dev-40/_ROOT_Role_Dev-40.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-40
+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=
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.password=
+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_it
+domainmodel.mdsstoragedefinitionmanager.ociconnectiontnsname=
+domainmodel.mdsstoragedefinitionmanager.ociconnectiontype=Basic
+domainmodel.mdsstoragedefinitionmanager.parameters=/datasource=MacroPlannerInternalDB /user=otdit
+domainmodel.mdsstoragedefinitionmanager.password=1 2A801D084589485925DA39115D5C7855 b91e3007-e230-4ef5-833e-a07edfc8903c
+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-42/_ROOT_Role_Dev-42.properties b/_var/_Main/ModelSettings/Common/Dev-42/_ROOT_Role_Dev-42.properties
new file mode 100644
index 0000000..72cac08
--- /dev/null
+++ b/_var/_Main/ModelSettings/Common/Dev-42/_ROOT_Role_Dev-42.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-42
+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=
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxcolumnnamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxtablenamelength=0
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.parameters=
+domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.password=
+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_it
+domainmodel.mdsstoragedefinitionmanager.ociconnectiontnsname=
+domainmodel.mdsstoragedefinitionmanager.ociconnectiontype=Basic
+domainmodel.mdsstoragedefinitionmanager.parameters=/datasource=MacroPlannerInternalDB /user=otdit
+domainmodel.mdsstoragedefinitionmanager.password=1 2A801D084589485925DA39115D5C7855 b91e3007-e230-4ef5-833e-a07edfc8903c
+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/Views/Empty__dialog_initialization__\133124808.0.140900041\135.vw" "b/_var/_Main/ProjSettings/MacroPlanner/Views/Empty__dialog_initialization__\133124808.0.140900041\135.vw"
index 06aa05c..1c4ecf0 100644
--- "a/_var/_Main/ProjSettings/MacroPlanner/Views/Empty__dialog_initialization__\133124808.0.140900041\135.vw"
+++ "b/_var/_Main/ProjSettings/MacroPlanner/Views/Empty__dialog_initialization__\133124808.0.140900041\135.vw"
@@ -16,7 +16,7 @@
   CREATIONUSER ''
   UPDATEDATETIME '2017-06-05T15:08:50'
   UPDATEUSER 'quintiq/dwe2'
-  LASTACCESSDATE '2023-09-19'
+  LASTACCESSDATE '2023-09-01'
   VIEWSCOPE 0
 }
 AUTHORIZATIONS

--
Gitblit v1.9.3