From 1507ba7e98a301f3f867f0fa26a92c310f3423ba Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期三, 20 九月 2023 10:44:06 +0800
Subject: [PATCH] Merge branch 'dev_lhj',数据全局化

---
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_ListPanelMaterialTM.def                                                  |   41 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_KeyProduct.qbl                                                                                |    7 
 _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/Relations/Relation_Global_MappingActualProductInStockingPointInPeriod_GlobalOTDTable_G.qbl                                            |   23 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Operation.qbl                                                         |   20 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_OperationCost.qbl                                                            |   17 
 _Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorDateTime.qbl                                                                              |    7 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_Description.qbl                                                     |    7 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_ShelfLife.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/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/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Response_DataHolderPanelTianHua_OnCreated.def                                   |   19 
 _Main/BL/Type_Global_MappingConversionFactor/Attribute_IsEnabled.qbl                                                                           |    8 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_SalesSegmentName.qbl                                                                         |    7 
 _Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_UnitID.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_Global_MappingSalesSegment_MP/Attribute_Name.qbl                                                                                 |    8 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_UnitOfMeasure_MP.qbl                                                  |   20 
 _Main/BL/Type_Global_MappingProductInLane/Attribute_LineID.qbl                                                                                 |    8 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM18_OnCreated.def                                          |   17 
 _Main/BL/Relations/Relation_Global_MappingCustomOrder_GlobalOTDTable_GlobalOTDTable_Global_Mapp.qbl                                            |   23 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlReceiveDatas.def                                                           |   98 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_ListIssueWorkOrder.def                                                      |   60 
 _Main/BL/Type_Global_MappingConversionFactor/TypeIndex_TypeIndex.qbl                                                                           |   24 
 _Main/BL/Type_Global_MappingForecast/TypeIndex_TypeIndex.qbl                                                                                   |   12 
 _Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_BusinessType.qbl                                                                         |    8 
 _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_MappingCustomOrder/TypeIndex_TypeIndex.qbl                                                                                |   12 
 _Main/BL/Type_Global_MappingForecast/Attribute_ID.qbl                                                                                          |    8 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_Date.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/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/BL/Type_Global_BrokerExecuteLog/Attribute_IsSuccess.qbl                                                                                  |    7 
 _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_MappingUnitCost/Attribute_CostDriver.qbl                                                                                  |    7 
 _Main/BL/Type_Global_MappingLaneLeg/Attribute_UserLeadTime.qbl                                                                                 |    7 
 _Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialSportsHealth.qbl                                                           |   41 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_Edit.def                                                      |    2 
 _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_MasterPlanReleaseWorkOrderTabulation/Attribute_ProductionWorkOrderNumber.qbl                                                     |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_listContextMenuPanelMaterialTianHua.def                               |   10 
 _Main/BL/Type_Global_MappingStockingPointCost/Attribute_CostDriver.qbl                                                                         |    7 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Operation.qbl                                                                |   17 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM17_OnCreated.def                                          |   17 
 _Main/BL/Type_Global_MappingUnitCost/Attribute_ProductID.qbl                                                                                   |    7 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_Product_MP.qbl                                                               |   17 
 _Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationUnitOfMeasure_MP.qbl                                                                  |   23 
 _Main/BL/Type_Global_MappingCurrency_MP/Attribute_IsBase.qbl                                                                                   |    7 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialType.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_Global_MappingOperationBOM/Attribute_AlternativeRate.qbl                                                                         |    7 
 _Main/BL/Type_PanelMaterialSportsHealth/StaticMethod_ReceiveDataGeneration.qbl                                                                 |    2 
 _Main/BL/EDI/Broker_GlobalOTDTable_SalesSegment_MP.qbl                                                                                         |   92 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/_ROOT_Component_FormPanelMaterialTM17.def                                          |   39 
 _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_Global_MappingOperation/Attribute_PlantName.qbl                                                                                  |    8 
 _Main/BL/Type_Global_MappingProduct_MP/TypeIndex_TypeIndexIDAndBusinessType.qbl                                                                |   16 
 _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/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblAutomotiveElectronics_OnCreated.def                         |   17 
 _Main/BL/Type_Global_MappingForecast/Attribute_CurrencyID.qbl                                                                                  |    7 
 _Main/BL/Type_PanelMaterialTianHua/_ROOT_Type_PanelMaterialTianHua.qbl                                                                         |    2 
 _Main/BL/Type_GlobalDTOTable/Method_ApiBuildPostRequestBody.qbl                                                                                |   27 
 _Main/BL/Type_Global_MappingForecast/Attribute_ProductID.qbl                                                                                   |    7 
 _Main/UI/MacroPlanner/Component_FormBrokerExecuteLog/_ROOT_Component_FormBrokerExecuteLog.def                                                  |   41 
 _Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialAutomotiveElectronics.qbl                                                  |   41 
 _Main/UI/MacroPlannerWebApp/Component_FormIT/Component_listActionBarPagePanelMaterialIT.def                                                    |   10 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingConversionFactor_Global_MappingConvers.qbl                                            |   23 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/_ROOT_Type_Global_MappingActualProductInStockingPointInPeriod.qbl             |    9 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_listContextMenuPanelMaterialVehicle.def                               |   10 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_SalesSegment_MP.qbl                                                   |   20 
 _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_ApplicationLibMacroPlanner/Component_mbMainMenu.def                                                            |   27 
 _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_MappingOperationBOM/Attribute_UnitUsageOfComponents.qbl                                                                   |    7 
 _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/UI/MacroPlanner/Component_FormBrokerExecuteLog/Component_ColumnTitles511.def                                                             |   18 
 _Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_id.qbl                                                                                  |    7 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialUnit.qbl                                                                 |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlContent.def                                                  |  100 
 _Main/BL/Type_Global_BrokerExecuteLog/Attribute_SuccessDateTime.qbl                                                                            |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/_ROOT_Component_FormPanelMaterialSpecializedDisplay.def              |   39 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlActions.def                                                                |   40 
 _Main/BL/Type_Global_MappingForecast/Attribute_StartDate.qbl                                                                                   |    7 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_OrganCode.qbl                                                                               |    8 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ConversionFactor.qbl                                                  |   20 
 _Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl                                                                       |   41 
 _Main/BL/Type_Global_MappingOperation/Attribute_SequenceNumber.qbl                                                                             |    8 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentOutputRate.qbl                                                                     |    7 
 _Main/BL/Type_Global_MappingForecast/Attribute_StockingPointID.qbl                                                                             |    7 
 _Main/BL/Type_Global_MappingOperation/Attribute_OrganCode.qbl                                                                                  |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Response_DataHolderPanelTM17_OnDataChanged.def                                     |   19 
 _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_MappingOperationBOM/Attribute_ProductCode.qbl                                                                             |    8 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_StockType.qbl                                                       |    7 
 _Main/BL/Type_Global_MappingOperation/Attribute_BusinessType.qbl                                                                               |    8 
 _Main/BL/Type_Global_MappingProductInLane/TypeIndex_TypeIndex.qbl                                                                              |   16 
 _Main/BL/EDI/Broker_GlobalOTDTable_StockingPointCost.qbl                                                                                       |  107 
 _Main/BL/Type_Global_MappingInventorySupply/_ROOT_Type_Global_MappingInventorySupply.qbl                                                       |    9 
 _Main/BL/Type_Global_MappingLaneLeg/Attribute_Name.qbl                                                                                         |    7 
 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_MappingForecast/Attribute_SalesSegmentName.qbl                                                                            |    7 
 _Main/BL/Type_Global_MappingProductInLane/Attribute_ProductID.qbl                                                                              |    8 
 _Main/BL/Type_Global_MappingStockingPointCost/Attribute_StockingPointID.qbl                                                                    |    7 
 _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/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_MaterialSystem.qbl                                                                          |    7 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ComponentCode.qbl                                                                           |    8 
 _Main/BL/Type_Global_MappingInventorySupply/Attribute_Date.qbl                                                                                 |    7 
 _Main/BL/Type_Global_MappingOperation/Attribute_UnitOfMeasureName.qbl                                                                          |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_listContextMenuPanelMaterialSportsHealth.def                     |   10 
 _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_PanelMaterialTianHua/StaticMethod_ReceiveDataGeneration.qbl                                                                      |    2 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblSportsHealth_OnCreated.def                                  |   17 
 _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/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_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_Global_MappingUnitCost/Attribute_OrgCode.qbl                                                                                     |    7 
 _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_MappingLaneLeg/_ROOT_Type_Global_MappingLaneLeg.qbl                                                                       |    9 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_StockingPointCost.qbl                                                        |   17 
 _Main/BL/Type_Global_BrokerExecuteLog/Attribute_ErrorMessage.qbl                                                                               |    7 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_IsCommon.qbl                                                                                  |    7 
 _Main/BL/Type_Global_MappingStockingPoint_MP/Attribute_Name.qbl                                                                                |    7 
 _Main/BL/Type_Global_MappingOperation/Attribute_MinimumQuantity.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_MappingOperationBOM_Global_MappingOperationBO.qbl                                            |   23 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingStockingPoint_MP_Global_MappingStockin.qbl                                            |   23 
 SOPWorkflow/Translations/UI/SOPWorkflowWeb/Translations_zh.qtr                                                                                 |    0 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_IsAvailable.qbl                                                     |    7 
 _Main/BL/Type_Global_MappingInventorySupply/Attribute_ProductID.qbl                                                                            |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Method_FusionData.def                                                                   |   10 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_PriorityName.qbl                                                                             |    7 
 _Main/BL/Type_Global_MappingUnitCost/_ROOT_Type_Global_MappingOperationCost.qbl                                                                |    9 
 _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/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/BL/Type_Global_MappingOperation/Attribute_Line.qbl                                                                                       |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_ListPanelMaterialTianHua.def                                          |   41 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_OrderType.qbl                                                                                |    7 
 _Main/BL/Type_Global_MappingUnitCost/Attribute_LengthOfTime.qbl                                                                                |    7 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/_ROOT_Type_MasterPlanReleaseWorkOrderTabulation.qbl                                         |    9 
 _Main/BL/Relations/Relation_MasterPlanReleaseWorkOrderTabulation_MasterPlanReleaseWorkOrder_Mas.qbl                                            |   23 
 _Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl                                                                               |   40 
 _Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialVehicle.qbl                                                                |   41 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingLane_Global_MappingLane_GlobalOTDTable.qbl                                            |   23 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ProductInLane.qbl                                                            |   17 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnCancel_OnClick.def                                 |   15 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/TypeIndex_MappingActualPISPIPTypeIndex.qbl                                    |   20 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_ListPanelMaterialTM.def                                                  |   41 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_listActionBarPagePanelMaterialVehicle.def                             |   10 
 _Main/BL/Type_Global_MappingLaneLeg/Attribute_DestinationStockingPointID.qbl                                                                   |    7 
 _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/UI/MacroPlannerWebApp/Component_FormIT/Component_listContextMenuPanelMaterialIT.def                                                      |   10 
 _Main/BL/Type_Global_MappingUnitOfMeasure_MP/Attribute_IsDefault.qbl                                                                           |    7 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_UnitOfMeasureName.qbl                                                                        |    7 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_ConversionFactor.qbl                                                         |   17 
 _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/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_MappingCurrencyRate_MP/Attribute_Start.qbl                                                                                |    7 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_BusinessType.qbl                                                                             |    7 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AIPISPIP.qbl                                                                 |   17 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Component_pnlSelectVersion.def                                                          |   46 
 _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/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlActions_btnOk_OnClick.def                                     |   29 
 _Main/BL/Type_Global_MappingStockingPointCost/Attribute_Cost.qbl                                                                               |    7 
 _Main/BL/Type_Global_MappingForecast/Attribute_Price.qbl                                                                                       |    7 
 _Main/BL/Type_MasterPlanReleaseWorkOrderTabulation/Attribute_EndDate.qbl                                                                       |    8 
 _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_PanelMaterialAutomotiveElectronics/StaticMethod_ReceiveDataGeneration.qbl                                                        |    2 
 _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/Type_Global_MappingStockingPointCost/Attribute_ID.qbl                                                                                 |    8 
 Calendars/Translations/UI/CalendarsWebUI/Translations_zh.qtr                                                                                   |    0 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingProduct_MP_Global_MappingProduct_MP_Gl.qbl                                            |   23 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_listContextMenuPanelMaterialTM.def                                       |   10 
 _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_MappingStockingPointCost/TypeIndex_NewTypeIndex.qbl                                                                       |   12 
 _Main/BL/Type_MasterPlanReleaseWorkOrder/StaticMethod_GenerateAndDistributeWorkOrders.qbl                                                      |   38 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_Quantity.qbl                                                                                 |    7 
 _Main/BL/Type_Global_MappingSalesSegment_MP/Attribute_ParentName.qbl                                                                           |    7 
 _Main/BL/Type_PanelMaterialAll/StaticMethod_SynchronizePanelMaterialSpecializedDisplay.qbl                                                     |   41 
 _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_DialogCreateEditIssueWorkOrder/Response_pnlContent_ddlWorkOrderType_OnCreated.def                        |   23 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_listActionBarPagePanelMaterialTM.def                                     |   10 
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Product_MP.qbl                                                        |   20 
 _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/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Response_DataHolderPanelTM18_OnCreated.def                                         |   19 
 _Main/BL/Relations/Relation_GlobalOTDTable_Global_MappingOperation_Global_MappingOperation_Glob.qbl                                            |   23 
 _Main/BL/Type_Global_MappingCurrency_MP/Attribute_Name.qbl                                                                                     |    7 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_Notes.qbl                                                                                     |    7 
 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/Attribute_ProductID.qbl                                                       |    8 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_Customer.qbl                                                                                 |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/_ROOT_Component_FormIssueWorkOrder.def                                                |   29 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_listContextMenuPanelMaterialTM.def                                       |   10 
 _Main/BL/Type_Global_MappingLane/Attribute_UnitID.qbl                                                                                          |    7 
 _Main/BL/Type_Global_MappingOperationBOM/TypeIndex_TypeIndex.qbl                                                                               |   40 
 _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_MasterPlanReleaseWorkOrderTabulation/Attribute_WorkOrderType.qbl                                                                 |    8 
 _Main/BL/Type_Global_MappingLane/_ROOT_Type_Global_MappingLane.qbl                                                                             |    9 
 _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_Global_MappingCustomOrder/Attribute_StockingPointID.qbl                                                                          |    7 
 _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_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_FormIssueWorkOrder/Response_ListIssueWorkOrder_MenuEdit_OnClick.def                                      |   21 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_listActionBarPagePanelMaterialAutomotiveElectronics.def |   10 
 _Main/BL/Type_MasterPlanReleaseWorkOrder/Attribute_IsGenerateAndPublishWorkOrders.qbl                                                          |    7 
 _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_MappingOperation/Attribute_MaximumQuantity.qbl                                                                            |    7 
 _Main/BL/Type_Global_MappingUnitCost/Attribute_AccountName.qbl                                                                                 |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Response_pnlContent_ddslPanelModel_OnCreated.def                     |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_DataHolderPanelMaterialVehicle_OnDataChanged.def                       |   19 
 _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_MappingConversionFactor/Attribute_Factor.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_MappingOperationBOM/Attribute_UnitOfMeasureName.qbl                                                                       |    7 
 _Main/BL/Type_Global_MappingProduct_MP/Attribute_BusinessType.qbl                                                                              |    8 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_ProductDescribe.qbl                                                                         |    7 
 _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_DialogCreateEditIssueWorkOrder/Component_pnlActions.def                                                  |   40 
 _Main/BL/Type_Global_MappingOperationBOM/_ROOT_Type_Global_MappingOperationBOM.qbl                                                             |    9 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_ButtonFusionData_OnClick.def                                           |   17 
 _Main/BL/Type_Global_MappingCustomOrder/Attribute_ProductID.qbl                                                                                |    7 
 _Main/BL/Type_Global_MappingOperationBOM/Attribute_AlternativeMaterialCode.qbl                                                                 |    8 
 _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_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_Forecast.qbl                                                          |    9 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/_ROOT_Component_FormPanelMaterialSportsHealth.def                          |   39 
 _Main/BL/Type_Global_MappingUnitCost/TypeIndex_TypeIndex.qbl                                                                                   |   12 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_listActionBarPagePanelMaterialSportsHealth.def                   |   10 
 _Main/BL/Type_Global_MappingOperation/Attribute_UserLeadTime.qbl                                                                               |    7 
 _Main/UI/MacroPlannerWebApp/Component_DialogFusionData/_ROOT_Component_DialogFusionData.def                                                    |   23 
 _Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl                                                                      |   38 
 _Main/BL/Type_PanelMaterialSpecializedDisplay/StaticMethod_ReceiveDataGeneration.qbl                                                           |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormIssueWorkOrder/Component_PanelButton.def                                                             |   59 
 _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/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl                                                                                 |  104 
 _Main/BL/Type_PanelMaterialTM18/StaticMethod_ReceiveDataGeneration.qbl                                                                         |    2 
 _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/BL/Type_Global_MappingCurrency_MP/_ROOT_Type_Global_MappingCurrency_MP.qbl                                                               |    9 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_listActionBarPagePanelMaterialSpecializedDisplay.def       |   10 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/_ROOT_Component_FormPanelMaterialAutomotiveElectronics.def        |   39 
 _Main/BL/Type_Global_MappingForecast/Attribute_UnitOfMeasureName.qbl                                                                           |    7 
 _Main/BL/Type_Global_MappingStockingPointCost/Attribute_Start.qbl                                                                              |    7 
 _Main/BL/Type_PanelMaterialIT/StaticMethod_ReceiveDataGeneration.qbl                                                                           |    2 
 _Main/BL/Type_Global_BrokerExecuteLog/Attribute_ElementTotal.qbl                                                                               |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Response_DataHolderPanelSpecializedDisplay_OnCreated.def             |   19 
 _Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Component_SplitterWndScenarioManager.def                                          |  113 +
 _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_MappingInventorySupply/Attribute_Description.qbl                                                                          |    7 
 _Main/BL/Type_Global_MappingUnitOfMeasure_MP/_ROOT_Type_Global_MappingUnitOfMeasure_MP.qbl                                                     |    9 
 _Main/BL/Type_GlobalDTOTable/StaticMethod_SynchronizationSalesSegment_MP.qbl                                                                   |   31 
 _Main/BL/Type_Global_BrokerExecuteLog/_ROOT_Type_Global_BrokerExecuteLog.qbl                                                                   |    9 
 _Main/BL/Type_PanelMaterial/StaticMethod_Send.qbl                                                                                              |   38 
 _Main/BL/Type_Global_MappingUnitOfMeasure_MP/Attribute_Name.qbl                                                                                |    8 
 372 files changed, 6,390 insertions(+), 95 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_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_MacroPlan/Method_InitialUnitAndStockingPoint.qbl b/_Main/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl
index d030255..767523f 100644
--- a/_Main/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl
@@ -6,105 +6,51 @@
   [*
     // Administrator Sep-1-2023 (created)
     
+    unitOfMeasure_MP := UnitOfMeasure_MP::FindByName( this, "PCS" );
+    if ( isnull( unitOfMeasure_MP ) ) {
+      unitOfMeasure_MP := UnitOfMeasure_MP::Create( this, "PCS", false, false );
+    }
+    
     //Set the Default values
     unitofmeasurename := "PCS";
-    currencyid := "CNY";
-    startdate := Date::Date( 1900, 1, 1 );
-    enddate := Date::Date( 9999, 12, 31 );
     capacitytype := "Transport quantity";
     
-    if( isnull( Unit::FindById( this, "绌鸿繍" ) ) ){
-      this.Unit( relnew, 
-                 ID := "绌鸿繍", 
-                 Name := "绌鸿繍", 
-                 UnitOfMeasureName := unitofmeasurename, 
-                 CurrencyID := currencyid, 
-                 StartDate := startdate, 
-                 EndDate := enddate, 
-                 CapacityType := capacitytype );
-      }
+    if ( isnull( Unit::FindById( this, "绌鸿繍" ) ) ) {
+      Unit::Create( "绌鸿繍", this, "绌鸿繍", unitOfMeasure_MP, null( Unit ), capacitytype, "", null( SupplyChainView ), 0, 0, false ); 
+    }
     
-    if( isnull( Unit::FindById( this, "搴撳瓨浜嬪姟澶勭悊" ) ) ){
-      this.Unit( relnew, 
-                 ID := "搴撳瓨浜嬪姟澶勭悊", 
-                 Name := "搴撳瓨浜嬪姟澶勭悊", 
-                 UnitOfMeasureName := unitofmeasurename, 
-                 CurrencyID := currencyid, 
-                 StartDate := startdate, 
-                 EndDate := enddate, 
-                 CapacityType := capacitytype );
+    if ( isnull( Unit::FindById( this, "搴撳瓨浜嬪姟澶勭悊" ) ) ) {
+      Unit::Create( "搴撳瓨浜嬪姟澶勭悊", this, "搴撳瓨浜嬪姟澶勭悊", unitOfMeasure_MP, null( Unit ), capacitytype, "", null( SupplyChainView ), 0, 0, false ); 
     }
     
     unitofmeasurename := "PCS";
-    name := "鎵嬪姩鍒涘缓搴撳瓨鐐�";
-    currencyname := "CNY";
-    isplannedinfinite := false;
-    datestart := Date::Construct(1900, 1, 1) ;
-    dateend := Date::Construct(9999, 12, 31);
-    groupname := " ";
-    description := " ";
-    isfromdb := true;
     
-    if( isnull( StockingPoint_MP::FindById( this, "F13_FG_STOCK" ) ) ){
-      StockingPoint_MP::Create( this, 
-                                "F13_FG_STOCK", 
-                                "F13", 
-                                name, 
-                                unitofmeasurename, 
-                                currencyname, 
-                                isplannedinfinite, 
-                                datestart, 
-                                dateend, 
-                                groupname, 
-                                description, 
-                                isfromdb );
+    if ( isnull( StockingPoint_MP::FindById( this, "F13_FG_STOCK" ) ) ) {
+      StockingPoint_MP::Create( "F13_FG_STOCK", this, null( Unit ), "F13_FG_STOCK", null( SupplyChainView ), 0, 0, false );
     }
     
-    if( isnull( StockingPoint_MP::FindById( this, "H10_SA_STOCK" ) ) ){
-      StockingPoint_MP::Create( this, 
-                                "H10_SA_STOCK", 
-                                "H10", 
-                                name, 
-                                unitofmeasurename, 
-                                currencyname, 
-                                isplannedinfinite, 
-                                datestart, 
-                                dateend, 
-                                groupname, 
-                                description, 
-                                isfromdb );
+    if ( isnull( StockingPoint_MP::FindById( this, "H10_SA_STOCK" ) ) ) {
+      StockingPoint_MP::Create( "H10_SA_STOCK", this, null( Unit ), "H10_SA_STOCK", null( SupplyChainView ), 0, 0, false );
     }
     
-    if( isnull( StockingPoint_MP::FindById( this, "Q10_FG_STOCK" ) ) ){
-      StockingPoint_MP::Create( this, 
-                                "Q10_FG_STOCK", 
-                                "Q10", 
-                                name, 
-                                unitofmeasurename, 
-                                currencyname, 
-                                isplannedinfinite, 
-                                datestart, 
-                                dateend, 
-                                groupname, 
-                                description, 
-                                isfromdb );
+    if ( isnull( StockingPoint_MP::FindById( this, "Q10_FG_STOCK" ) ) ) {
+      StockingPoint_MP::Create( "Q10_FG_STOCK", this, null( Unit ), "Q10_FG_STOCK", null( SupplyChainView ), 0, 0, false );
     }
     
-    existcurrency := Currency_MP::FindById( this, "CNY" );
-    if( isnull( existcurrency ) ){
-      Currency_MP::CreateCurrency( this, "CNY", "CNY", "", true );
-      currency := Currency_MP::FindById( this, "EUR" );
-      currency.IsBase(false);
-      Transaction::Transaction().Propagate();
-      }
+    if ( isnull( Currency_MP::FindById( this, "CNY" ) ) ) {
+      Currency_MP::Create( "CNY", this, "CNY", "", false, false );
+    }
     
     isproductcatagory := false;
     isfromdb := false;
-    existproductlevel := ProductLevel_MP::FindProductLevelTypeIndex( "2" );
-    if( isnull( existproductlevel ) ){
+    if ( isnull( ProductLevel_MP::FindProductLevelTypeIndex( "1" ) ) ) {
       ProductLevel_MP::Create( "1", isproductcatagory, this, isfromdb );
+    }
+    if ( isnull( ProductLevel_MP::FindProductLevelTypeIndex( "2" ) ) ) {
       ProductLevel_MP::Create( "2", isproductcatagory, this, isfromdb );
+    }
+    if ( isnull( ProductLevel_MP::FindProductLevelTypeIndex( "3" ) ) ) {
       ProductLevel_MP::Create( "3", isproductcatagory, this, isfromdb );
-      }
+    }
   *]
 }
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/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: '杞﹁浇'
+  ]
+}

--
Gitblit v1.9.3