Kevin Kok Khah Whey
2023-10-18 d5e46a7a9f2cb9123b9aafb39a20e14059faa2e4
Merge branch 'dev' of http://47.101.211.7:10101/r/TIANMA_JITUAN into dev_Kevin
已重命名10个文件
已修改228个文件
已添加113个文件
已删除190个文件
11217 ■■■■■ 文件已修改
.gitignore 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Dataset_GlobalOTDLog/_ROOT_Dataset_GlobalOTDLog.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Dataset_GlobalOTDSOP/_ROOT_Dataset_GlobalOTDSOP.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/EDI/Broker_Broker_OTD_VersionControl.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/EDI/Broker_GlobalOTDSOP_CARRC_Export.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/EDI/Broker_GlobalOTDSOP_CARRC_Import.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/MessageEnhancerProcessor_MessageHeaderEnhancerProcessor.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_GlobalOTDSOP_GlobalOTDSO.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_GlobalOTDTable_GlobalOTD.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAllocationResults_GlobalOTDSOP_GlobalOTDSOP_CapacityAllocat.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAllocationResults_GlobalOTDTable_GlobalOTDTable_CapacityAll.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartElement_GlobalOTDSOP_GlobalOTDSOP_Capacity.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartElement_GlobalOTDTable_GlobalOTDTable_Capa.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_GlobalOTDSOP_GlobalOTDSOP_CapacityAndS.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_GlobalOTDTable_GlobalOTDTable_Capacity.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_GlobalOTDSOP_GlobalOTDSOP_Cap.qbl 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_GlobalOTDTable_GlobalOTDTable.qbl 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemRow_GlobalOTDSOP_GlobalOTDSOP_Capaci.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemRow_GlobalOTDTable_GlobalOTDTable_Ca.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_GlobalOTDSOP_GlobalOTDSOP_Ca.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_GlobalOTDTable_GlobalOTDTabl.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterItem_GlobalOTDSOP_GlobalOTDSOP_CapacityAn.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterItem_GlobalOTDTable_GlobalOTDTable_Capaci.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterMonth_GlobalOTDSOP_GlobalOTDSOP_CapacityA.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterMonth_GlobalOTDTable_GlobalOTDTable_Capac.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_GlobalOTDSOP_Glo.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_GlobalOTDTable_G.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterYear_GlobalOTDSOP_GlobalOTDSOP_CapacityAn.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterYear_GlobalOTDTable_GlobalOTDTable_Capaci.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudge_GlobalOTDTable_GlobalOTDTable_CapacityAndSaleB.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_GlobalOTDLog_DataDistributionLog_DataDistributionLog_GlobalOTDLog.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_ManufactureLTImputation_GlobalOTDSOP_GlobalOTDSOP_ManufactureLTImpu.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_ManufactureLTImputation_MacroPlan_MacroPlan_ManufactureLTImputation.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_MappingCapacityAndSaleBudge_MPSync_MPSync_MappingCapacityAndSaleBud.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_MappingVersionControl_GlobalOTDSOP_GlobalOTDSOP_MappingVersionContr.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_MappingVersionControl_GlobalOTDTable_GlobalOTDTable_MappingVersionC.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_GlobalOTDSOP_GlobalOTDSOP_.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_GlobalOTDTable_GlobalOTDTa.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategy_GlobalOTDSOP_GlobalOTDSOP_MatAttrSett.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategy_GlobalOTDTable_GlobalOTDTable_MatAttr.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_PRHistoryData_GlobalOTDSOP_GlobalOTDSOP_PRHistoryData.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_PRHistoryData_GlobalOTDTable_GlobalOTDTable_PRHistoryData.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_PanelMaterialAll_GlobalOTDSOP_GlobalOTDSOP_PanelMaterialAll.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_PanelMaterialAll_GlobalOTDTable_GlobalOTDTable_PanelMaterialAll.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_VersionControl_GlobalOTDSOP_GlobalOTDSOP_VersionControl.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_VersionControl_GlobalOTDTable_GlobalOTDTable_VersionControl.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_VersionStatus_GlobalOTDSOP_GlobalOTDSOP_VersionStatus.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_VersionStatus_GlobalOTDTable_GlobalOTDTable_VersionStatus.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_WorkOrderType_GlobalOTDSOP_GlobalOTDSOP_WorkOrderType.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_WorkOrderType_GlobalOTDTable_GlobalOTDTable_WorkOrderType.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_YuxTest_MPSync_MPSync_YuxTest.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_BaseConversionFactor/StaticMethod_DoASync.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/DeclarativeReferenceRelation_CalcCapacityAllocationResultsRuleConfiguration.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate1.qbl 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration.qbl 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration3.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_Test.qbl 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_Test1.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Export.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Import.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_BusinessType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityEquivalent.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth1.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth10.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth11.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth12.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth2.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth3.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth4.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth5.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth6.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth7.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth8.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth9.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSTotal.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth1.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth10.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth11.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth12.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth2.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth3.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth4.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth5.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth6.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth7.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth8.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth9.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetTotal.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_Deleted.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_DisplayTechnology.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_LineAndSpec.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_NumberOfCut.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_NumberOfMask.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_OrgCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_PlaceOfProductionOfArray.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_PlaceOfProductionOfEvaporation.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_ProductCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_Resolution.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth1.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth10.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth11.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth12.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth2.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth3.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth4.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth5.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth6.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth7.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth8.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth9.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountTotal.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Attribute_ShippingForm.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInPCSInYear.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInHalfYear.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInSeason.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInYear.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/Method_GetSaleAmountInYear.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSaleByMonth.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSaleByYear.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByHalfYear#1.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByMonth.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetBySeason.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByYear.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudge/_ROOT_Type_CapacityAndSaleBudge.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_TestData.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_CreateIfNotExist.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/StaticMethod_CreateIfNotExist.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/StaticMethod_CreateIfNotExist.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/StaticMethod_CreateIfNotExist.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_CreateIfNotExist.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_Initial.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterMonth/StaticMethod_Initial.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/StaticMethod_CreateIfNotExist.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerOrder/StaticMethod_DoASync.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DMF_CustomLogic/Method_OnFinished.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DataDistributionLog/Attribute_ErrorMessage.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DataDistributionLog/Attribute_ErrorNo.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DataDistributionLog/Attribute_ExecuteStatus.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DataDistributionLog/Attribute_ExecuteUser.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DataDistributionLog/Attribute_MacroPlanMDSID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DataDistributionLog/Attribute_ScenarioName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DataDistributionLog/StaticMethod_Create.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DataDistributionLog/StaticMethod_OnError.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DataDistributionLog/StaticMethod_OnSuccess.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DataDistributionLog/_ROOT_Type_DataDistributionLog.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FillingCapacityOrder/StaticMethod_CreateFillingCapacityOrder.qbl 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Forecast/StaticMethod_DoASync.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_InitTestData#12.qbl 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_InitTestDataByYear.qbl 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ProductInLane.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_RefreshCapacityAndSaleBudgeFilter.qbl 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetBusnessStrings.qbl 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/_ROOT_Type_GlobalOTDTable.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDLog/StaticMethod_GetDatasetName.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDLog/StaticMethod_GetLoadedDataset.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDLog/StaticMethod_OnServerStartup.qbl 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDLog/_ROOT_Type_GlobalOTDLog.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeChart.qbl 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompareExport.qbl 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/Method_ReceivingPanelMaterials.qbl 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/Method_SynchronizeOrders.qbl 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/StaticMethod_GetDatasetName.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/StaticMethod_GetLoadedDataset.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/StaticMethod_GetOutputVersionData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/StaticMethod_GetVersionData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/StaticMethod_OnServerStartup.qbl 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/StaticMethod_ReceivingPanelMaterials.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/StaticMethod_RefreshCapacityAndSaleBudgeFilter.qbl 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalOTDSOP/_ROOT_Type_GlobalOTDSOP.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetCapacityInPCSInYear.qbl 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetCapacityInSheetInHalfYear.qbl 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetCapacityInSheetInSeason.qbl 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetCapacityInSheetInYear.qbl 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetSaleAmountInHalfYear.qbl 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetSaleAmountInSeason#000.qbl 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetSaleAmountInYear.qbl 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSaleByHalfYear.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSaleByMonth.qbl 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSaleBySeason.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSaleByYear.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSheetByHalfYear.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSheetByMonth.qbl 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSheetBySeason.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSheetByYear.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_SetOrgCodeFromForecast.qbl 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingForecast/StaticMethod_GetQuantityByMonth.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingForecast/StaticMethod_GetQuantityByYear.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingOperation/StaticMethod_DoASyncFindMinSeq.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingOperation/StaticMethod_GetByProductId.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_GetByProductId.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingProviderCapacity/StaticMethod_GetByProductId.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetUnitBySKU.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedging.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryValueAndCost/StaticMethod_DoASync.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeBusinessTypeString.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeExport.qbl 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgePlaceOfProductionOfArrayString.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MPSync/StaticMethod_TestData.qbl 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingActualPISPIPData.qbl 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingBaseConversionFactorData.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingCustomerOrderData.qbl 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingForecastData.qbl 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingInventoryValueAndCostData.qbl 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMData.qbl 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationCostData.qbl 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationData.qbl 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingProductData.qbl 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingProductInLaneData.qbl 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingSalesSegmentData.qbl 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingUnitData.qbl 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingUnitOfMeasureData.qbl 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingUnitOfMeasureData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoASync#253.qbl 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoASync#896.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoASync.qbl 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoASyncOnException.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoASyncSuccess.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoSync#618.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoSync.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ManufactureLTImputation/StaticMethod_Apply.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ManufactureLTImputation/StaticMethod_CreateOrUpdate.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ManufactureLTImputation/StaticMethod_NewStaticMethod.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ManufactureLTImputation/StaticMethod_Refresh.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer#25.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer.qbl 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply#202.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate0.qbl 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Refresh#1.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Refresh.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_BusinessType.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityEquivalent.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth1.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth10.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth11.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth12.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth2.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth3.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth4.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth5.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth6.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth7.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth8.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth9.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSTotal.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth1.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth10.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth11.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth12.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth2.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth3.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth4.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth5.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth6.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth7.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth8.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth9.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetTotal.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_Deleted.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_DisplayTechnology.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_LineAndSpecification.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_NumberOfCut.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_NumberOfMask.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_OrgCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_PlaceOfProductionOfArray.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_PlaceOfProductionOfEvaporation.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_ProductCode.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_Resolution.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth1.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth10.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth11.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth12.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth2.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth3.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth4.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth5.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth6.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth7.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth8.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth9.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountTotal.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_ShippingForm.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Attribute_YearNo.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_CapacityEquivalent.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_DisplayTechnology.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_NumberOfCut.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_NumberOfMask.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_OrgCode.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_Resolution.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/DefaultValue_ShippingForm.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInPCSInYear.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInSheetInHalfYear.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInSheetInSeason.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInSheetInYear.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/Method_GetSaleAmountInYear.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_ExpectedHeaders.qbl 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSaleByMonth.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSaleByYear.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetByHalfYear.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetByMonth.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetBySeason.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetByYear.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MappingSaleBudge/_ROOT_Type_MappingCapacityAndSaleBudge.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CheckThePrecedingColumn.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CreateOrUpdateData.qbl 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_SynchronizeData.qbl 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerificationData.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_CreateIfNotExist.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_DeleteIfExistByMatCode#526.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_GetByMatCode.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_SynchronizeInventoryTargets.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/Method_DoCall.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/Method_PrintCall.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_DoCall.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_Export#346.qbl 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_Export.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream#595.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning#662.qbl 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/Method_PrintCall.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/Method_Recall.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/StaticMethod_Export#527.qbl 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/StaticMethod_Export.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream#45.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PanelMaterialAutomotiveElectronics/StaticMethod_ReceiveDataGeneration.qbl 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PanelMaterialIT/StaticMethod_ReceiveDataGeneration.qbl 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PanelMaterialSpecializedDisplay/StaticMethod_ReceiveDataGeneration.qbl 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PanelMaterialSportsHealth/StaticMethod_ReceiveDataGeneration.qbl 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PanelMaterialTM17/StaticMethod_ReceiveDataGeneration.qbl 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PanelMaterialTM18/StaticMethod_ReceiveDataGeneration.qbl 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PanelMaterialTianHua/StaticMethod_ReceiveDataGeneration.qbl 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PanelMaterialVehicle/StaticMethod_ReceiveDataGeneration.qbl 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SalesSegment_MP/StaticMethod_DoASync.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_UnitOfMeasure_MP/StaticMethod_DoASync.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_CopyVersion.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_Create.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_CreateNewSceneVersion.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_CreateNewVersion.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_FindByFullVersionID.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_FindLatestUpdateVersion.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_FindLatestVersion.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_FindReleasedVersions.qbl 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_GetVersionInfo.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionControl/StaticMethod_ReleaseNewVersion.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/StaticMethod_CreateOrUpdate.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/StaticMethod_FindLatestStatus.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_VersionStatus/StaticMethod_GetBusinessTypeStatus.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_YuxTest/Attribute_TestBoolean.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_YuxTest/Attribute_TestDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_YuxTest/Attribute_TestDateTime.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_YuxTest/Attribute_TestNumber.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_YuxTest/Attribute_TestReal.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_YuxTest/Attribute_TestString.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_YuxTest/StaticMethod_Export.qbl 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_YuxTest/StaticMethod_ExportTest#887.qbl 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_YuxTest/_ROOT_Type_YuxTest.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/ImgAttr/DataDistributionLog.dme 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Response_SelectionScenario_OnSelectionChanged.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New#221.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Component_ListManufactureLTImputation.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuApplyManufactureLTImputation_OnClic.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuRefreshManufactureLTImputation_OnCl.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuApplyManufactureLTProcessSe#444.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuRefreshManufactureLTProcessSect.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuFolderNewMacroPlan_OnClick.def 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioNewMacroPlan_OnClick.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioSelect_OnClick.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupScenarioSelection.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_PanelScenarioSelection.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_DataHolderCurrentUser_OnDataChanged.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnDataDistribution_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Method_New.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlContent.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlContent_ddlWorkOrderType_OnCreated.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral#549.def 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_CopyScenario.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_TIANMA_JITUAN_PanelGeneral_549_checkboxEnableSync_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditWorkOrderType/Method_NewWorkOrderType.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditWorkOrderType/Response_pnlActions_btnOk_OnClick.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Component_pnlContent.def 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Method_DataDistribution.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Response_pnlActions_btnOk_OnClick.def 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/_ROOT_Component_DialogDataDistribution.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Method_ClickBtnOk.def 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Response_pnlActions_btnOk_OnClick.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlActions_btnOk_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblAutomotiveElectronics_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblIT_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblMaterialVehicle_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblSpecializedDisplay_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblSportsHealth_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM17_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM18_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTianHua_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuCall_OnClick.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuPrintRequest_OnClick#623.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonLoad_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonSendPR_OnClick.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_ButtonGenerateCapacityAllocationR#39.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listContextMenuCapacityAllocationResultsRuleConfiguration.def 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuGenerateByPeggin.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Export_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Import_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportTest_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonGenerateTestData_OnClick.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonExportCompare_OnClick.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_ListCapacityAndSaleBudgeFilterBusinessType.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Component_ListCapacityAndSaleBudgeFilterItem.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Response_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Component_ListCapacityAndSaleBudgeFilterMonth.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Response_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnC#663.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Component_ListCapacityAndSaleBudgeFilterYear.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Response_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataDistributionLog/Component_ListDataDistributionLog.def 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataDistributionLog/Component_listActionBarPageDataDistributionLog.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataDistributionLog/Component_listContextMenuDataDistributionLog.def 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataDistributionLog/Response_ListDataDistributionLog_MenuDelete_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataDistributionLog/Response_ListDataDistributionLog_MenuSelectionAll_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataDistributionLog/_ROOT_Component_FormDataDistributionLog.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_ListFillingCapacityOrder_MenuDelete_OnClick.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_ListFillingCapacityOrder_MenuSelectAll_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_listContextMenuCustomerAndFillingCapacityOrder.def 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuRefresh_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_PanelButton_ButtonTransform_OnClick.def 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormIT/Component_ListPanelMaterialIT.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormIT/Response_DataHolderPanelIT_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormIT/Response_DataHolderPanelIT_OnDataChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_listContextMenuInterfaceTest.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuCreateShowData_OnClick.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Component_ListManufactureLT#943.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Response_ButtonLoad_OnClick#417.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Response_ListManufactureLT_943_MenuApply_OnClick.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/_ROOT_Component_FormManufactureLT.def 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListMaterialMaterialLabelingAndPlanningStrategy#880.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndImport_OnCl.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData#844.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonExportPRHistory_OnClick.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_ListPanelMaterialAutomotiveElectronics.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Response_DataHolderPanelAutomotiveElectronics_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Response_DataHolderPanelAutomotiveElectronics_OnDataChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_ListPanelMaterialSpecializedDisplay.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Response_DataHolderPanelSpecializedDisplay_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Response_DataHolderPanelSpecializedDisplay_OnDataChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_ListPanelMaterialSportsHealth.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Response_DataHolderPanelSportsHealth_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Response_DataHolderPanelSportsHealth_OnDataChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_ListPanelMaterialTM.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Response_DataHolderPanelTM17_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Response_DataHolderPanelTM17_OnDataChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_ListPanelMaterialTM.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Response_DataHolderPanelTM18_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Response_DataHolderPanelTM18_OnDataChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_ListPanelMaterialTianHua.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Response_DataHolderPanelTianHua_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Response_DataHolderPanelTianHua_OnDataChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_ListPanelMaterialVehicle.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_DataHolderPanelMaterialVehicle_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_DataHolderPanelMaterialVehicle_OnDataChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Response_TIANMA_JITUAN_ListProduct_844_MenuMarkingPanelMaterial_OnClick.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick#545.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick#549.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuEdit_OnClick.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuSelectScenario_OnClick.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuRelaeaseNewVersion_OnClick.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuSaveNewVersion_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuScenarioDataDistribution_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderCopy_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderFresh_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderRelease_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/_ROOT_Component_FormVersionOfSOP.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormWorkOrderType/Component_ListWorkOrderType.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/Test.vw 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/数据分发.vw 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ModelSettings/Common/Dev-48/_ROOT_Role_Dev-48.properties 575 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ModelSettings/Common/Dev-68/_ROOT_Role_Dev-68.properties 575 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ProjSettings/MacroPlanner/Views/X_分析视图_[414702.1.50321581].vw 1188 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ProjSettings/MacroPlannerWebApp/Views/ManufactureLT.vw 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -24,4 +24,4 @@
/.idea
_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
*.properties
#*.properties
_Main/BL/Dataset_GlobalOTDLog/_ROOT_Dataset_GlobalOTDLog.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Dataset GlobalOTDLog
{
  #keys: '2[414702.1.146900052][414702.1.146900051]'
  DefaultMDSName: 'GlobalOTDLog'
  InstanceType: GlobalOTDLog
}
_Main/BL/Dataset_GlobalOTDSOP/_ROOT_Dataset_GlobalOTDSOP.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Dataset GlobalOTDSOP
{
  #keys: '2[414702.1.113455894][414702.1.113455893]'
  DefaultMDSName: 'GlobalOTDSOP'
  InstanceType: GlobalOTDSOP
}
_Main/BL/EDI/Broker_Broker_OTD_VersionControl.qbl
@@ -2,7 +2,7 @@
#parent: #root
EDIBroker Broker_OTD_VersionControl
{
  MDSDefinition: GlobalOTDTable
  MDSDefinition: GlobalOTDSOP
  TimeZone: 'ACT'
  UseOSTimeZone: false
  EDIModelLink.Destination MappingVersionControl
_Main/BL/EDI/Broker_GlobalOTDSOP_CARRC_Export.qbl
ÎļþÃû´Ó _Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Export.qbl ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: #root
EDIBroker GlobalOTDTable_CARRC_Export
EDIBroker GlobalOTDSOP_CARRC_Export
{
  MDSDefinition: GlobalOTDTable
  MDSDefinition: GlobalOTDSOP
  TimeZone: 'ACT'
  UseOSTimeZone: false
  EDIModelLink.Source Source11
_Main/BL/EDI/Broker_GlobalOTDSOP_CARRC_Import.qbl
ÎļþÃû´Ó _Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Import.qbl ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: #root
EDIBroker GlobalOTDTable_CARRC_Import
EDIBroker GlobalOTDSOP_CARRC_Import
{
  MDSDefinition: GlobalOTDTable
  MDSDefinition: GlobalOTDSOP
  TimeZone: 'ACT'
  UseOSTimeZone: false
  EDIModelLink.Destination Destination13
@@ -17,6 +17,7 @@
      EDIMLColumn Division { Attribute: Division ValueType: String }
      EDIMLColumn ModuleMaterialCode { Attribute: ModuleMaterialCode ValueType: String }
      EDIMLColumn PanelMaterialCode { Attribute: PanelMaterialCode ValueType: String }
      EDIMLColumn PanelMaterialStockingPointID { Attribute: PanelMaterialStockingPointID ValueType: String }
      EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String }
    }
  }
_Main/BL/IntegratorConfigs/IntegratorConfig_PanelMaterialRestServer/MessageEnhancerProcessor_MessageHeaderEnhancerProcessor.qbl
@@ -20,6 +20,6 @@
  {
    Property: '_QI.Type'
    Type: 'String'
    Value: 'GlobalOTDTable'
    Value: 'GlobalOTDSOP'
  }
}
_Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_GlobalOTDSOP_GlobalOTDSO.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAllocationResultsRuleConfiguration_GlobalOTDSOP_GlobalOTDSOP_CapacityAllocationResultsRuleConfiguration
{
  #keys: '1[414702.1.138430337]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414702.1.138430339][414702.1.138430338][414702.1.138430340]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAllocationResultsRuleConfiguration
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAllocationResultsRuleConfiguration
  {
    #keys: '3[414702.1.138430342][414702.1.138430341][414702.1.138430343]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_GlobalOTDTable_GlobalOTD.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_CapacityAllocationResults_GlobalOTDSOP_GlobalOTDSOP_CapacityAllocat.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAllocationResults_GlobalOTDSOP_GlobalOTDSOP_CapacityAllocationResults
{
  #keys: '1[414702.1.138430321]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414702.1.138430323][414702.1.138430322][414702.1.138430324]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAllocationResults
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAllocationResults
  {
    #keys: '3[414702.1.138430326][414702.1.138430325][414702.1.138430327]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CapacityAllocationResults_GlobalOTDTable_GlobalOTDTable_CapacityAll.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartElement_GlobalOTDSOP_GlobalOTDSOP_Capacity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAndSaleBudgeChartElement_GlobalOTDSOP_GlobalOTDSOP_CapacityAndSaleBudgeChartElement
{
  #keys: '1[414384.0.999194645]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414384.0.999194647][414384.0.999194646][414384.0.999194648]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAndSaleBudgeChartElement
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAndSaleBudgeChartElement
  {
    #keys: '3[414384.0.999194650][414384.0.999194649][414384.0.999194651]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartElement_GlobalOTDTable_GlobalOTDTable_Capa.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_GlobalOTDSOP_GlobalOTDSOP_CapacityAndS.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAndSaleBudgeChartRow_GlobalOTDSOP_GlobalOTDSOP_CapacityAndSaleBudgeChartRow
{
  #keys: '1[414384.0.996881297]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414384.0.996881299][414384.0.996881298][414384.0.996881300]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAndSaleBudgeChartRow
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAndSaleBudgeChartRow
  {
    #keys: '3[414384.0.996881302][414384.0.996881301][414384.0.996881303]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_GlobalOTDTable_GlobalOTDTable_Capacity.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_GlobalOTDSOP_GlobalOTDSOP_Cap.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAndSaleBudgeCompareItemColumn_GlobalOTDSOP_GlobalOTDSOP_CapacityAndSaleBudgeCompareItemColumn
{
  #keys: '1[414384.0.996881443]'
  ProceduralSequenceRelationStrategy
  {
    #keys: '13[0.0.0][414384.0.996881465][414384.0.996881459][414384.0.996881466][414384.0.996881460][414384.0.996881467][414384.0.996881461][414384.0.996881468][414384.0.996881462][414384.0.996881469][414384.0.996881463][414384.0.996881470][414384.0.996881464]'
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414384.0.996881445][414384.0.996881444][414384.0.996881446]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAndSaleBudgeCompareItemColumn
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAndSaleBudgeCompareItemColumn
  {
    #keys: '3[414384.0.996881448][414384.0.996881447][414384.0.996881449]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemColumn_GlobalOTDTable_GlobalOTDTable.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemRow_GlobalOTDSOP_GlobalOTDSOP_Capaci.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAndSaleBudgeCompareItemRow_GlobalOTDSOP_GlobalOTDSOP_CapacityAndSaleBudgeCompareItemRow
{
  #keys: '1[414384.0.996881317]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414384.0.996881319][414384.0.996881318][414384.0.996881320]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAndSaleBudgeCompareItemRow
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAndSaleBudgeCompareItemRow
  {
    #keys: '3[414384.0.996881322][414384.0.996881321][414384.0.996881323]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CapacityAndSaleBudgeCompareItemRow_GlobalOTDTable_GlobalOTDTable_Ca.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_GlobalOTDSOP_GlobalOTDSOP_Ca.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAndSaleBudgeFilterBusinessType_GlobalOTDSOP_GlobalOTDSOP_CapacityAndSaleBudgeFilterBusinessType
{
  #keys: '1[414384.0.996881340]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414384.0.996881342][414384.0.996881341][414384.0.996881343]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAndSaleBudgeFilterBusinessType
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAndSaleBudgeFilterBusinessType
  {
    #keys: '3[414384.0.996881345][414384.0.996881344][414384.0.996881346]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterBusinessType_GlobalOTDTable_GlobalOTDTabl.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterItem_GlobalOTDSOP_GlobalOTDSOP_CapacityAn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAndSaleBudgeFilterItem_GlobalOTDSOP_GlobalOTDSOP_CapacityAndSaleBudgeFilterItem
{
  #keys: '1[414384.0.996881358]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414384.0.996881360][414384.0.996881359][414384.0.996881361]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAndSaleBudgeFilterItem
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAndSaleBudgeFilterItem
  {
    #keys: '3[414384.0.996881363][414384.0.996881362][414384.0.996881364]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterItem_GlobalOTDTable_GlobalOTDTable_Capaci.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterMonth_GlobalOTDSOP_GlobalOTDSOP_CapacityA.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAndSaleBudgeFilterMonth_GlobalOTDSOP_GlobalOTDSOP_CapacityAndSaleBudgeFilterMonth
{
  #keys: '1[414384.0.996881381]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414384.0.996881383][414384.0.996881382][414384.0.996881384]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAndSaleBudgeFilterMonth
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAndSaleBudgeFilterMonth
  {
    #keys: '3[414384.0.996881386][414384.0.996881385][414384.0.996881387]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterMonth_GlobalOTDTable_GlobalOTDTable_Capac.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_GlobalOTDSOP_Glo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_GlobalOTDSOP_GlobalOTDSOP_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray
{
  #keys: '1[414384.0.996881401]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414384.0.996881403][414384.0.996881402][414384.0.996881404]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAndSaleBudgeFilterPlaceOfProductionOfArray
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAndSaleBudgeFilterPlaceOfProductionOfArray
  {
    #keys: '3[414384.0.996881406][414384.0.996881405][414384.0.996881407]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray_GlobalOTDTable_G.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterYear_GlobalOTDSOP_GlobalOTDSOP_CapacityAn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAndSaleBudgeFilterYear_GlobalOTDSOP_GlobalOTDSOP_CapacityAndSaleBudgeFilterYear
{
  #keys: '1[414384.0.996881421]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414384.0.996881423][414384.0.996881422][414384.0.996881424]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAndSaleBudgeFilterYear
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAndSaleBudgeFilterYear
  {
    #keys: '3[414384.0.996881426][414384.0.996881425][414384.0.996881427]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CapacityAndSaleBudgeFilterYear_GlobalOTDTable_GlobalOTDTable_Capaci.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_CapacityAndSaleBudge_GlobalOTDTable_GlobalOTDTable_CapacityAndSaleB.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_GlobalOTDLog_DataDistributionLog_DataDistributionLog_GlobalOTDLog.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation GlobalOTDLog_DataDistributionLog_DataDistributionLog_GlobalOTDLog
{
  #keys: '1[414702.1.153774700]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide DataDistributionLog
  {
    #keys: '3[414702.1.153774702][414702.1.153774701][414702.1.153774703]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDLog
    OwningSide: 'Owned'
  }
  RelationSide.RightSide GlobalOTDLog
  {
    #keys: '3[414702.1.153774705][414702.1.153774704][414702.1.153774706]'
    Cardinality: '0to1'
    ObjectDefinition: DataDistributionLog
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_ManufactureLTImputation_GlobalOTDSOP_GlobalOTDSOP_ManufactureLTImpu.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation ManufactureLTImputation_GlobalOTDSOP_GlobalOTDSOP_ManufactureLTImputation
{
  #keys: '1[414384.0.1005451662]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414384.0.1005451664][414384.0.1005451663][414384.0.1005451665]'
    Cardinality: '0to1'
    ObjectDefinition: ManufactureLTImputation
    OwningSide: 'Reference'
  }
  RelationSide.RightSide ManufactureLTImputation
  {
    #keys: '3[414384.0.1005451667][414384.0.1005451666][414384.0.1005451668]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_ManufactureLTImputation_MacroPlan_MacroPlan_ManufactureLTImputation.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_MappingCapacityAndSaleBudge_MPSync_MPSync_MappingCapacityAndSaleBud.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_MappingVersionControl_GlobalOTDSOP_GlobalOTDSOP_MappingVersionContr.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation MappingVersionControl_GlobalOTDSOP_GlobalOTDSOP_MappingVersionControl
{
  #keys: '1[412960.0.337760056]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[412960.0.337760058][412960.0.337760057][412960.0.337760059]'
    Cardinality: '0to1'
    ObjectDefinition: MappingVersionControl
    OwningSide: 'Reference'
  }
  RelationSide.RightSide MappingVersionControl
  {
    #keys: '3[412960.0.337760061][412960.0.337760060][412960.0.337760062]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_MappingVersionControl_GlobalOTDTable_GlobalOTDTable_MappingVersionC.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_GlobalOTDSOP_GlobalOTDSOP_.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation MatAttrSettingAndPlanStrategyInputSource_GlobalOTDSOP_GlobalOTDSOP_MatAttrSettingAndPlanStrategyInputSource
{
  #keys: '1[414702.1.128364612]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414702.1.128364614][414702.1.128364613][414702.1.128364615]'
    Cardinality: '0to1'
    ObjectDefinition: MatAttrSettingAndPlanStrategyInputSource
    OwningSide: 'Reference'
  }
  RelationSide.RightSide MatAttrSettingAndPlanStrategyInputSource
  {
    #keys: '3[414702.1.128364617][414702.1.128364616][414702.1.128364618]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_GlobalOTDTable_GlobalOTDTa.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategy_GlobalOTDSOP_GlobalOTDSOP_MatAttrSett.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation MatAttrSettingAndPlanStrategy_GlobalOTDSOP_GlobalOTDSOP_MatAttrSettingAndPlanStrategy
{
  #keys: '1[414702.1.130145519]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414702.1.130145521][414702.1.130145520][414702.1.130145522]'
    Cardinality: '0to1'
    ObjectDefinition: MatAttrSettingAndPlanStrategy
    OwningSide: 'Reference'
  }
  RelationSide.RightSide MatAttrSettingAndPlanStrategy
  {
    #keys: '3[414702.1.130145524][414702.1.130145523][414702.1.130145525]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategy_GlobalOTDTable_GlobalOTDTable_MatAttr.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_PRHistoryData_GlobalOTDSOP_GlobalOTDSOP_PRHistoryData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation PRHistoryData_GlobalOTDSOP_GlobalOTDSOP_PRHistoryData
{
  #keys: '1[414384.0.999194777]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414384.0.999194779][414384.0.999194778][414384.0.999194780]'
    Cardinality: '0to1'
    ObjectDefinition: PRHistoryData
    OwningSide: 'Reference'
  }
  RelationSide.RightSide PRHistoryData
  {
    #keys: '3[414384.0.999194782][414384.0.999194781][414384.0.999194783]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_PRHistoryData_GlobalOTDTable_GlobalOTDTable_PRHistoryData.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_PanelMaterialAll_GlobalOTDSOP_GlobalOTDSOP_PanelMaterialAll.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation PanelMaterialAll_GlobalOTDSOP_GlobalOTDSOP_PanelMaterialAll
{
  #keys: '1[414702.1.138384587]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414702.1.138384589][414702.1.138384588][414702.1.138384590]'
    Cardinality: '0to1'
    ObjectDefinition: PanelMaterialAll
    OwningSide: 'Reference'
  }
  RelationSide.RightSide PanelMaterialAll
  {
    #keys: '3[414702.1.138384592][414702.1.138384591][414702.1.138384593]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_PanelMaterialAll_GlobalOTDTable_GlobalOTDTable_PanelMaterialAll.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_VersionControl_GlobalOTDSOP_GlobalOTDSOP_VersionControl.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation VersionControl_GlobalOTDSOP_GlobalOTDSOP_VersionControl
{
  #keys: '1[412960.0.337760078]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[412960.0.337760080][412960.0.337760079][412960.0.337760081]'
    Cardinality: '0to1'
    ObjectDefinition: VersionControl
    OwningSide: 'Reference'
  }
  RelationSide.RightSide VersionControl
  {
    #keys: '3[412960.0.337760083][412960.0.337760082][412960.0.337760084]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_VersionControl_GlobalOTDTable_GlobalOTDTable_VersionControl.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_VersionStatus_GlobalOTDSOP_GlobalOTDSOP_VersionStatus.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation VersionStatus_GlobalOTDSOP_GlobalOTDSOP_VersionStatus
{
  #keys: '1[412960.0.337760095]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[412960.0.337760097][412960.0.337760096][412960.0.337760098]'
    Cardinality: '0to1'
    ObjectDefinition: VersionStatus
    OwningSide: 'Reference'
  }
  RelationSide.RightSide VersionStatus
  {
    #keys: '3[412960.0.337760100][412960.0.337760099][412960.0.337760101]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_VersionStatus_GlobalOTDTable_GlobalOTDTable_VersionStatus.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_WorkOrderType_GlobalOTDSOP_GlobalOTDSOP_WorkOrderType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation WorkOrderType_GlobalOTDSOP_GlobalOTDSOP_WorkOrderType
{
  #keys: '1[414702.1.128394598]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDSOP
  {
    #keys: '3[414702.1.128394600][414702.1.128394599][414702.1.128394601]'
    Cardinality: '0to1'
    ObjectDefinition: WorkOrderType
    OwningSide: 'Reference'
  }
  RelationSide.RightSide WorkOrderType
  {
    #keys: '3[414702.1.128394603][414702.1.128394602][414702.1.128394604]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDSOP
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_WorkOrderType_GlobalOTDTable_GlobalOTDTable_WorkOrderType.qbl
ÎļþÒÑɾ³ý
_Main/BL/Relations/Relation_YuxTest_MPSync_MPSync_YuxTest.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_BaseConversionFactor/StaticMethod_DoASync.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DoASync (
  MacroPlan macroPlan,
  const GlobalOTDTable globalOTDTable
)
{
  Description: '单次同步'
  TextBody:
  [*
    // yypsybs Aug-17-2023 (created)
    //info( "Product Finished, Start BaseConversionFactor Data Broker" )
    //macroPlan.Broker_OTD_BaseConversionFactor().Execute();
    info( "BaseConversionFactor Data Broker Finished, Start BaseConversionFactor Mapping" )
    macroPlan.DoASyncMappingBaseConversionFactorData(globalOTDTable);
  *]
}
_Main/BL/Type_CapacityAllocationResults/DeclarativeReferenceRelation_CalcCapacityAllocationResultsRuleConfiguration.qbl
@@ -5,7 +5,7 @@
  #keys: '1[414702.0.388304510]'
  Expression:
  [*
    targetCapacityAllocationResultsRuleConfiguration := select( this.GlobalOTDTable(), CapacityAllocationResultsRuleConfiguration, tempCARRC,
    targetCapacityAllocationResultsRuleConfiguration := select( this.GlobalOTDSOP(), CapacityAllocationResultsRuleConfiguration, tempCARRC,
                                                                tempCARRC.ModuleMaterialCode() = this.ModuleMaterialCode() and
                                                                tempCARRC.PanelMaterialCode() = this.PanelMaterialCode() );
    
_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl
@@ -1,16 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateDate (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  MacroPlan macroPlan,
  Scenario scenario
)
{
  TextBody:
  [*
    globalOTDTable.CapacityAllocationResults( relflush );
    globalOTDSOP.CapacityAllocationResults( relflush );
    
    finaleProductInStockingPoint_MPs := CapacityAllocationResults::ObtainTheFinalOutputProduct( macroPlan, globalOTDTable );
    finaleProductInStockingPoint_MPs := CapacityAllocationResults::ObtainTheFinalOutputProduct( macroPlan, globalOTDSOP );
    
    period_MPS := null( Period_MPs );
    traverse ( macroPlan, PeriodSpecification_MP, psmp, psmp.ID() = "Planning periods" ) {
@@ -18,15 +18,15 @@
    }
    
    traverse ( finaleProductInStockingPoint_MPs, Elements, fpispmp ) {
      capacityAllocationResultsRuleConfigurations := selectset( globalOTDTable, CapacityAllocationResultsRuleConfiguration, tempCARRC, tempCARRC.ModuleMaterialCode() = fpispmp.ProductID() and tempCARRC.StockingPointID() = fpispmp.StockingPointID() );
      capacityAllocationResultsRuleConfigurations := selectset( globalOTDSOP, CapacityAllocationResultsRuleConfiguration, tempCARRC, tempCARRC.ModuleMaterialCode() = fpispmp.ProductID() and tempCARRC.StockingPointID() = fpispmp.StockingPointID() );
    //  info( "生产的产品:", fpispmp.ProductID(), "------产品在库存点-------:", fpispmp.StockingPointID() );
      traverse ( period_MPS, Elements, pmp ) {     
        // CapacityAllocationResults::IterativeGeneration( globalOTDTable, pisp, 1, null( NewSupply ), -1.0, pmp.StartDate() ); è€ç‰ˆ
        CapacityAllocationResults::IterativeGeneration2( globalOTDTable, fpispmp, pmp.StartDate(), capacityAllocationResultsRuleConfigurations, 0, null( NewSupply ), 0.0 );
        CapacityAllocationResults::IterativeGeneration2( globalOTDSOP, fpispmp, pmp.StartDate(), capacityAllocationResultsRuleConfigurations, 0, null( NewSupply ), 0.0 );
      }
    }
    
    traverse ( globalOTDTable, CapacityAllocationResults, car ) {
    traverse ( globalOTDSOP, CapacityAllocationResults, car ) {
      car.VersionNumber( scenario.Name() );
    }
  *]
_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate1.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateDate1 (
  MacroPlan macroPlan,
  GlobalOTDSOP globalOTDSOP,
  DependentDemand dependentDemand,
  NewSupply newSupply,
  Supply_MP firstNewSupply,
  CapacityAllocationResultsRuleConfiguration capacityAllocationResultsRuleConfiguration,
  Real fulfillmentQuantity
)
{
  TextBody:
  [*
    panelPISP := dependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP();
    info( "产品ID:", panelPISP.ProductID(), "    åº“存点ID:", panelPISP.StockingPointID() );
    productID := dependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID();
    if ( capacityAllocationResultsRuleConfiguration.PanelMaterialCode() = productID ) {
      info( "找到了!!!" );
      globalOTDSOP.CapacityAllocationResults( relnew,
                                              PanelBase             := panelPISP.StockingPointID(),
                                              PanelMaterialCode     := panelPISP.ProductID(),
                                              NumberOfPanels        := fulfillmentQuantity,
                                              PanelMeasurementUnit  := panelPISP.UnitOfMeasure_MP().Name(),
                                              ModuleMaterialCode    := firstNewSupply.ProductInStockingPointInPeriodPlanning().ProductInStockingPoint_MP().ProductID(),
                                              NumberOfModules       := firstNewSupply.Quantity(),
                                              ModuleMeasurementUnit := firstNewSupply.ProductInStockingPointInPeriodPlanning().ProductInStockingPoint_MP().UnitOfMeasureName(),
                                              ModuleBase            := firstNewSupply.ProductInStockingPointInPeriodPlanning().ProductInStockingPoint_MP().StockingPointID(),
                                              RequirementDate       := dependentDemand.Start().Date(),
                                              // å¯¼å‡ºå¤–部供应字段
                                              Date                  := dependentDemand.Start().Date(),
                                              Description           := "",
                                              ID                    := OS::GenerateGUIDAsString(),
                                              ProductID             := panelPISP.ProductID(),
                                              StockingPointID       := panelPISP.StockingPointID(),
                                              UserQuantity          := fulfillmentQuantity,
                                              ManufacturedDate      := Date::MinDate()
                                             );
    }
  *]
}
_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod IterativeGeneration (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  ProductInStockingPoint_MP pisp,
  Number numberOfLayers,
  NewSupply finaleNewSupply,
@@ -27,7 +27,7 @@
            oi := dd.ProcessInput().astype( OperationInput );
            finaleDependentDemand := finaleDependentDemand * oo.Quantity() * oi.Quantity();
    //        info( "依赖需求产品ID:", dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), "    ä¾èµ–数量:", dd.Quantity(), "    å½“前周期任务Key:", dd.PeriodTask_MP().astype( PeriodTaskOperation ).Key() );
            CapacityAllocationResults::IterativeGeneration( globalOTDTable, dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), numberOfLayers, finaleNewSupply, finaleDependentDemand, targetDate );
            CapacityAllocationResults::IterativeGeneration( globalOTDSOP, dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), numberOfLayers, finaleNewSupply, finaleDependentDemand, targetDate );
          }
    //      info( "----------------------------------------------------" );
        } else {
@@ -35,17 +35,17 @@
    //      info( "======" );
          pispPanel := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP();
          pispModule := finaleNewSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP();
          globalOTDTable.CapacityAllocationResults( relnew,
                                                    PanelBase             := pispPanel.StockingPointID(),
                                                    PanelMaterialCode     := pispPanel.ProductID(),
                                                    NumberOfPanels        := finaleDependentDemand,
                                                    PanelMeasurementUnit  := pispPanel.UnitOfMeasure_MP().Name(),
                                                    ModuleMaterialCode    := pispModule.ProductID(),
                                                    NumberOfModules       := finaleNewSupply.Quantity(),
                                                    ModuleMeasurementUnit := pispModule.UnitOfMeasure_MP().Name(),
                                                    ModuleBase            := pispModule.StockingPointID(),
                                                    RequirementDate       := finaleNewSupply.Start().Date()
                                                   );
          globalOTDSOP.CapacityAllocationResults( relnew,
                                                  PanelBase             := pispPanel.StockingPointID(),
                                                  PanelMaterialCode     := pispPanel.ProductID(),
                                                  NumberOfPanels        := finaleDependentDemand,
                                                  PanelMeasurementUnit  := pispPanel.UnitOfMeasure_MP().Name(),
                                                  ModuleMaterialCode    := pispModule.ProductID(),
                                                  NumberOfModules       := finaleNewSupply.Quantity(),
                                                  ModuleMeasurementUnit := pispModule.UnitOfMeasure_MP().Name(),
                                                  ModuleBase            := pispModule.StockingPointID(),
                                                  RequirementDate       := finaleNewSupply.Start().Date()
                                                 );
        }
        finaleNewSupply := null( NewSupply );
      }
_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod IterativeGeneration2 (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  ProductInStockingPoint_MP pisp,
  Date targetDate,
  CapacityAllocationResultsRuleConfigurations carrcs,
@@ -21,7 +21,7 @@
        previous := pispippl.PreviousPlanningPISPIP().astype( ProductInStockingPointInPeriodPlanningLeaf );
        if ( not previous.Period_MP().IsHistorical() ) {
          previousDate := previous.Start().Date();
          CapacityAllocationResults::IterativeGeneration2( globalOTDTable,
          CapacityAllocationResults::IterativeGeneration2( globalOTDSOP,
                                                           pisp,
                                                           previousDate,
                                                           carrcs,
@@ -50,7 +50,7 @@
    //          info( "层数:", numberOfLayers, "    å½“前供应的pisp:", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), "    æ€»ä¾›åº”值:", ns.Quantity(), "    éœ€è¦ä¾›åº”值:", currentLayerDependentDemandQuantity,
    //                "    å½“前需求pisp:", dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), "    éœ€æ±‚值:", currentLayerDependentDemandQuantity );
    //          info( "-----------------------------------------------------------------------------------------------------------------" );
              CapacityAllocationResults::IterativeGeneration2( globalOTDTable,
              CapacityAllocationResults::IterativeGeneration2( globalOTDSOP,
                                                               dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(),
                                                               targetDate,
                                                               carrcs,
@@ -62,25 +62,25 @@
            carrc := select( carrcs, Elements, carrc, carrc.PanelMaterialCode() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() );
            if ( not isnull( carrc ) ) {
    //          info( "找到面板物料..." );
              globalOTDTable.CapacityAllocationResults( relnew,
                                                        PanelBase             := pto.Operation().UnitID(),
                                                        PanelMaterialCode     := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(),
                                                        NumberOfPanels        := currentLayerDependentDemandQuantity,
                                                        PanelMeasurementUnit  := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().UnitOfMeasureName(),
                                                        ModuleMaterialCode    := firstLevelSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(),
                                                        NumberOfModules       := firstLevelSupply.Quantity(),
                                                        ModuleMeasurementUnit := firstLevelSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().UnitOfMeasureName(),
                                                        ModuleBase            := guard( firstLevelSupply.PeriodTask_MP().astype( PeriodTaskOperation ).Operation().UnitID(), "车道运输" ),
                                                        Division              := carrc.Division(),
                                                        RequirementDate       := firstLevelSupply.Start().Date(),
                                                        Date                  := firstLevelSupply.Start().Date(),
                                                        Description           := "",
                                                        ID                    := OS::GenerateGUIDAsString(),
                                                        ProductID             := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(),
                                                        StockingPointID       := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().StockingPointID(),
                                                        UserQuantity          := currentLayerDependentDemandQuantity,
                                                        ManufacturedDate      := Date::MinDate()
                                                       );
              globalOTDSOP.CapacityAllocationResults( relnew,
                                                      PanelBase             := pto.Operation().UnitID(),
                                                      PanelMaterialCode     := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(),
                                                      NumberOfPanels        := currentLayerDependentDemandQuantity,
                                                      PanelMeasurementUnit  := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().UnitOfMeasureName(),
                                                      ModuleMaterialCode    := firstLevelSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(),
                                                      NumberOfModules       := firstLevelSupply.Quantity(),
                                                      ModuleMeasurementUnit := firstLevelSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().UnitOfMeasureName(),
                                                      ModuleBase            := guard( firstLevelSupply.PeriodTask_MP().astype( PeriodTaskOperation ).Operation().UnitID(), "车道运输" ),
                                                      Division              := carrc.Division(),
                                                      RequirementDate       := firstLevelSupply.Start().Date(),
                                                      Date                  := firstLevelSupply.Start().Date(),
                                                      Description           := "",
                                                      ID                    := OS::GenerateGUIDAsString(),
                                                      ProductID             := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(),
                                                      StockingPointID       := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().StockingPointID(),
                                                      UserQuantity          := currentLayerDependentDemandQuantity,
                                                      ManufacturedDate      := Date::MinDate()
                                                     );
                                                        
            }
            //info( "-----------------------------------------------------------------------------------------------------------------" );
@@ -93,7 +93,7 @@
    //              "    å½“前需求pisp:", targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), "    éœ€æ±‚值:", currentLayerDependentDemandQuantity );
    //        info( "LaneLeg周期任务..." );
            //info( "-----------------------------------------------------------------------------------------------------------------" );
            CapacityAllocationResults::IterativeGeneration2( globalOTDTable,
            CapacityAllocationResults::IterativeGeneration2( globalOTDSOP,
                                                             targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(),
                                                             targetDate,
                                                             carrcs,
_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration3.qbl
@@ -1,9 +1,13 @@
Quintiq file version 2.0
#parent: #root
StaticMethod IterativeGeneration3 (
  MacroPlan macroPlan,
  GlobalOTDSOP globalOTDSOP,
  Supply_MP smp,
  Supply_MP firstSMP,
  Number numberOfPlies,
  Real fulfillmentQuantity
  Real fulfillmentQuantity,
  CapacityAllocationResultsRuleConfiguration capacityAllocationResultsRuleConfiguration
)
{
  TextBody:
@@ -20,10 +24,12 @@
              traverse ( dd, Fulfillment, f ) {
                smp1 := f.Supply_MP();
                numberOfPlies++;
                fulfillmentQuantity := ( dd.Quantity() / ns.Quantity() ) * fulfillmentQuantity;
                info( "--------------------------------------------------------------" );
                fulfillmentQuantity := fulfillmentQuantity * ns.ProcessOutput().astype( OperationOutput ).Quantity() *
                                                             dd.ProcessInput().astype( OperationInput ).Quantity();
                CapacityAllocationResults::IterativeGeneration3( smp1, numberOfPlies, fulfillmentQuantity );
                if ( not isnull( capacityAllocationResultsRuleConfiguration ) ) {
                  CapacityAllocationResults::CreateDate1( macroPlan, globalOTDSOP, dd, ns, firstSMP, capacityAllocationResultsRuleConfiguration, fulfillmentQuantity );
                }
                CapacityAllocationResults::IterativeGeneration3( macroPlan, globalOTDSOP, smp1, firstSMP, numberOfPlies, fulfillmentQuantity, capacityAllocationResultsRuleConfiguration );
                numberOfPlies--;
              }
            }
@@ -33,14 +39,17 @@
            targetDependentDemand := select( ptll, DependentDemand, dd, dd.ProcessInput().ProductInStockingPoint_MP().ProductID() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() and
                                             dd.Quantity() = ns.Quantity() );
            info( "车道周期任务    ", "供应时间:", ns.Start().Format( "Y-M2-D2" ), "    å‘¨æœŸä»»åŠ¡KEY:", ptll.Key(), "    ", 
                  targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name() );
                  ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name() );
            traverse ( targetDependentDemand, Fulfillment, f ) {
              smp1 := f.Supply_MP();
              numberOfPlies++;
              info( "--------------------------------------------------------------" );
              CapacityAllocationResults::IterativeGeneration3( smp1, numberOfPlies, f.Quantity() );
              if ( not isnull( capacityAllocationResultsRuleConfiguration ) ) {
                CapacityAllocationResults::CreateDate1( macroPlan, globalOTDSOP, targetDependentDemand, ns, firstSMP, capacityAllocationResultsRuleConfiguration, f.Quantity() );
              }
              CapacityAllocationResults::IterativeGeneration3( macroPlan, globalOTDSOP, smp1, firstSMP, numberOfPlies, f.Quantity(), capacityAllocationResultsRuleConfiguration );
              numberOfPlies--;
            }
            }
          }
        }
      }
_Main/BL/Type_CapacityAllocationResults/StaticMethod_ObtainTheFinalOutputProduct.qbl
@@ -2,7 +2,7 @@
#parent: #root
StaticMethod ObtainTheFinalOutputProduct (
  MacroPlan macroPlan,
  GlobalOTDTable globalOTDTable
  GlobalOTDSOP globalOTDSOP
) as owning ProductInStockingPoint_MPs
{
  TextBody:
@@ -22,7 +22,7 @@
    //}
    
    finaleProductInStockingPoint_MPs := selectset( macroPlan, Product_MP.ProductInStockingPoint_MP, tempPISPMP, 
                                                   exists( globalOTDTable, CapacityAllocationResultsRuleConfiguration, tempCARRC, tempCARRC.ModuleMaterialCode() = tempPISPMP.ProductID() and tempCARRC.StockingPointID() = tempPISPMP.StockingPointID() )
                                                   exists( globalOTDSOP, CapacityAllocationResultsRuleConfiguration, tempCARRC, tempCARRC.ModuleMaterialCode() = tempPISPMP.ProductID() and tempCARRC.StockingPointID() = tempPISPMP.StockingPointID() )
                                                  );
    
    return &finaleProductInStockingPoint_MPs;
_Main/BL/Type_CapacityAllocationResults/StaticMethod_Test.qbl
@@ -1,17 +1,24 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Test (
  MacroPlan macroPlan
  MacroPlan macroPlan,
  GlobalOTDSOP globalOTDSOP
)
{
  TextBody:
  [*
    globalOTDSOP.CapacityAllocationResults( relflush );
    capacityAllocationResultsRuleConfiguration := select( globalOTDSOP, CapacityAllocationResultsRuleConfiguration, carrc,
                                                          carrc.ModuleMaterialCode() = "ProXOver 1 D2.6 A" and
                                                          carrc.StockingPointID() = "Carco Philadelphia" );
    traverse ( macroPlan, Product_MP.ProductInStockingPoint_MP, pisp, pisp.ProductID() = "ProXOver 1 D2.6 A"        and 
                                                                      pisp.StockingPointID() = "Carco Philadelphia" ) {
      traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ).Supply_MP, smp, 
               smp.ProductInStockingPointInPeriodPlanning().Start().Date() = Date::Construct( 2020, 4, 7 ) and
               smp.Quantity() > 0 ) {
        CapacityAllocationResults::IterativeGeneration3( smp, 1, smp.Quantity() );
                 /*smp.ProductInStockingPointInPeriodPlanning().Start().Date() = Date::Construct( 2020, 4, 7 ) and*/
                 smp.Quantity() > 0 ) {
        CapacityAllocationResults::IterativeGeneration3( macroPlan, globalOTDSOP, smp, smp, 1, smp.Quantity(), capacityAllocationResultsRuleConfiguration );
      }
    }
  *]
_Main/BL/Type_CapacityAllocationResults/StaticMethod_Test1.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Test1 (
  MacroPlan macroPlan,
  GlobalOTDSOP globalOTDSOP,
  CapacityAllocationResultsRuleConfigurations capacityAllocationResultsRuleConfigurations
)
{
  TextBody:
  [*
    traverse ( capacityAllocationResultsRuleConfigurations, Elements, carrc ) {
      pisp := select( macroPlan, Product_MP.ProductInStockingPoint_MP, tempPISP, tempPISP.ProductID() = carrc.ModuleMaterialCode() and
                                                                       tempPISP.StockingPointID() = carrc.StockingPointID() );
      traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ).Supply_MP, smp,
                 /*smp.ProductInStockingPointInPeriodPlanning().Start().Date() = Date::Construct( 2020, 4, 7 ) and*/
                 smp.Quantity() > 0 ) {
        CapacityAllocationResults::IterativeGeneration3( macroPlan, globalOTDSOP, smp, smp, 1, smp.Quantity(), carrc );
        info( "=======================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" );
      }
    }
  *]
}
_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Export.qbl
@@ -1,13 +1,13 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
  GlobalOTDTable globalOTDTable
  GlobalOTDSOP globalOTDSOP
) as BinaryValue
{
  TextBody:
  [*
    // hongjli Sep-25-2023 (created)
    binaryValue := globalOTDTable.GlobalOTDTable_CARRC_Export().ExecuteToXLS( true ).AsBinaryValue();
    binaryValue := globalOTDSOP.GlobalOTDSOP_CARRC_Export().ExecuteToXLS( true ).AsBinaryValue();
    
    return binaryValue;
  *]
_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Import.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Import (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  String base64String
)
{
@@ -9,6 +9,6 @@
  [*
    binaryData := BinaryData::FromBase64EncodedString( base64String );
    
    globalOTDTable.GlobalOTDTable_CARRC_Import().ExecuteFromXLS( &binaryData, true );
    globalOTDSOP.GlobalOTDSOP_CARRC_Import().ExecuteFromXLS( &binaryData, true );
  *]
}
_Main/BL/Type_CapacityAndSaleBudge/Attribute_BusinessType.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityEquivalent.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth1.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth10.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth11.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth12.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth2.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth3.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth4.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth5.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth6.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth7.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth8.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSInMonth9.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInPCSTotal.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth1.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth10.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth11.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth12.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth2.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth3.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth4.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth5.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth6.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth7.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth8.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetInMonth9.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_CapacityInSheetTotal.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_Deleted.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_DisplayTechnology.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_LineAndSpec.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_NumberOfCut.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_NumberOfMask.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_OrgCode.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_PlaceOfProductionOfArray.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_PlaceOfProductionOfEvaporation.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_ProductCode.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_Resolution.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth1.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth10.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth11.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth12.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth2.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth3.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth4.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth5.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth6.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth7.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth8.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountInMonth9.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_SaleAmountTotal.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Attribute_ShippingForm.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInPCSInYear.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInHalfYear.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInSeason.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInYear.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/Method_GetSaleAmountInYear.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSaleByMonth.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSaleByYear.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByHalfYear#1.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByMonth.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetBySeason.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByYear.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudge/_ROOT_Type_CapacityAndSaleBudge.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_TestData.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod TestData (
  GlobalOTDTable parent
  GlobalOTDSOP parent
)
{
  Description: '生成测试数据'
@@ -12,7 +12,6 @@
    info( "生成年度产销预算报表测试数据" )
    
    parent.CapacityAndSaleBudgeChartElement( relflush );
    for( sc := 0; sc < 4; sc := sc + 1 ) {
      scenarioName := "SC" + [String]sc;
      for( i := 0; i < 4; i := i + 1 ) {
@@ -20,9 +19,9 @@
        for( j := 1; j <= 12; j := j + 1 ) {
          monthString := "MONTH" + ifexpr( j < 10, "0" + [String]j, [String]j );
          parent.CapacityAndSaleBudgeChartElement( relnew, 
                                                            BusinessTypeOrPlaceOfProductionOfArray := businessTypeString,
                                                            TimeStringAndScenarioName := monthString + " - " + scenarioName,
                                                            Quantity := Real::Random( 20.0, 30.0 ) );
                                                   BusinessTypeOrPlaceOfProductionOfArray := businessTypeString,
                                                   TimeStringAndScenarioName := monthString + " - " + scenarioName,
                                                   Quantity := Real::Random( 20.0, 30.0 ) );
        }
      }
    }
_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_CreateIfNotExist.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
  GlobalOTDTable parent,
  GlobalOTDSOP parent,
  String businessType,
  String placeOfProductionOfArray
) as CapacityAndSaleBudgeChartRow
_Main/BL/Type_CapacityAndSaleBudgeCompareItemColumn/StaticMethod_CreateIfNotExist.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
  GlobalOTDTable parent,
  GlobalOTDSOP parent,
  String columnName
) as CapacityAndSaleBudgeCompareItemColumn
{
_Main/BL/Type_CapacityAndSaleBudgeCompareItemRow/StaticMethod_CreateIfNotExist.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
  GlobalOTDTable parent,
  GlobalOTDSOP parent,
  String businessType,
  String placeOfProductionOfArray
) as CapacityAndSaleBudgeCompareItemRow
_Main/BL/Type_CapacityAndSaleBudgeFilterBusinessType/StaticMethod_CreateIfNotExist.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
  GlobalOTDTable parent,
  GlobalOTDSOP parent,
  String value
)
{
_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_CreateIfNotExist.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
  GlobalOTDTable parent,
  GlobalOTDSOP parent,
  String itemName
)
{
_Main/BL/Type_CapacityAndSaleBudgeFilterItem/StaticMethod_Initial.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Initial (
  GlobalOTDTable parent
  GlobalOTDSOP parent
)
{
  Description: '初始化对比项'
_Main/BL/Type_CapacityAndSaleBudgeFilterMonth/StaticMethod_Initial.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Initial (
  GlobalOTDTable parent
  GlobalOTDSOP parent
)
{
  Description: '初始化年份'
_Main/BL/Type_CapacityAndSaleBudgeFilterPlaceOfProductionOfArray/StaticMethod_CreateIfNotExist.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
  GlobalOTDTable parent,
  GlobalOTDSOP parent,
  String value
)
{
_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Initial (
  GlobalOTDTable parent
  GlobalOTDSOP parent
)
{
  Description: '初始化年份'
_Main/BL/Type_CustomerAndForecastOrder/StaticMethod_CreateData.qbl
@@ -12,7 +12,7 @@
    traverse ( macroPlan, SalesDemand.astype( CustomerOrder ), co, true ) {
      macroPlan.CustomerAndForecastOrder( relnew,
                                          VerNo             := scenario.Name(),
                                          OrderID           := co.OrderID(),
                                          OrderID           := co.ID(),
                                          ProductID         := co.ProductID(),
                                          BusinessType      := co.BusinessType(),
                                          Customer          := co.CustomerName(),
_Main/BL/Type_CustomerOrder/StaticMethod_DoASync.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DoASync (
  MacroPlan macroPlan,
  Strings businessTypes,
  const GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  TextBody:
  [*
    // yypsybs Aug-17-2023 (created)
    //info( "Forecast Finished, Start CustomerOrder Data Broker" );
    //macroPlan.Broker_OTD_CustomerOrder().Execute();
    info( "CustomerOrder Data Broker Finished, Start CustomerOrder Mapping" );
    macroPlan.DoASyncMappingCustomerOrderData( businessTypes,globalOTDTable, organcodelist );
  *]
}
_Main/BL/Type_DMF_CustomLogic/Method_OnFinished.qbl
@@ -28,6 +28,12 @@
    // åˆ›å»ºå¤©é©¬å…¨å±€æ•°æ®é›†
    GlobalOTDTable::OnServerStartup();
    
    // åˆ›å»ºå¤©é©¬SOP全局数据集
    GlobalOTDSOP::OnServerStartup();
    // åˆ›å»ºå¤©é©¬å…¨å±€æ—¥å¿—数据集
    GlobalOTDLog::OnServerStartup();
    // Create a MemoryOnly-dataset that is used to receive SOAP-calls from the DataManager.
    MDSScenarioManager::CreateMemoryOnlyMDS( ScenarioManager::GetDatasetNameReceiver() );
    
_Main/BL/Type_DataDistributionLog/Attribute_ErrorMessage.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ErrorMessage
{
  #keys: '3[414702.1.153847470][414702.1.153847469][414702.1.153847471]'
  Description: '错误消息'
  ValueType: String
}
_Main/BL/Type_DataDistributionLog/Attribute_ErrorNo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ErrorNo
{
  #keys: '3[414702.1.153847460][414702.1.153847459][414702.1.153847461]'
  Description: '错误号'
  ValueType: Number
}
_Main/BL/Type_DataDistributionLog/Attribute_ExecuteStatus.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
Attribute ExecuteStatus
{
  #keys: '3[414702.1.153847412][414702.1.153847411][414702.1.153847413]'
  Description:
  [*
    æ‰§è¡ŒçŠ¶æ€
    Running
    Success
    Error
  *]
  ValueType: String
}
_Main/BL/Type_DataDistributionLog/Attribute_ExecuteUser.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ExecuteUser
{
  #keys: '3[414702.1.153847399][414702.1.153847398][414702.1.153847400]'
  Description: '执行用户'
  ValueType: String
}
_Main/BL/Type_DataDistributionLog/Attribute_MacroPlanMDSID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MacroPlanMDSID
{
  #keys: '3[414702.1.153847422][414702.1.153847421][414702.1.153847423]'
  Description: 'MacroPlan数据集的ID'
  ValueType: Key
}
_Main/BL/Type_DataDistributionLog/Attribute_ScenarioName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ScenarioName
{
  #keys: '3[414702.1.153820151][414702.1.153820150][414702.1.153820152]'
  Description: '场景名称'
  ValueType: String
}
_Main/BL/Type_DataDistributionLog/StaticMethod_Create.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  GlobalOTDLog globalOTDLog,
  String executeUser,
  Key macroPlanMDSID,
  String scenarioName
)
{
  TextBody:
  [*
    globalOTDLog.DataDistributionLog( relnew,
                                      ExecuteStatus  := "Running",
                                      ExecuteUser    := executeUser,
                                      MacroPlanMDSID := macroPlanMDSID,
                                      ScenarioName   := scenarioName
                                     );
  *]
}
_Main/BL/Type_DataDistributionLog/StaticMethod_OnError.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod OnError (
  GlobalOTDLog globalOTDLog,
  Key macroPlanMDSID,
  Number errorNo,
  String errorMessage
)
{
  TextBody:
  [*
    targetDataDistributionLog := select( globalOTDLog, DataDistributionLog, tempDDL, tempDDL.MacroPlanMDSID() = macroPlanMDSID );
    targetDataDistributionLog.ExecuteStatus( "Error" );
    targetDataDistributionLog.ErrorNo( errorNo );
    targetDataDistributionLog.ErrorMessage( errorMessage );
  *]
}
_Main/BL/Type_DataDistributionLog/StaticMethod_OnSuccess.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
StaticMethod OnSuccess (
  GlobalOTDLog globalOTDLog,
  Key macroPlanMDSID
)
{
  TextBody:
  [*
    targetDataDistributionLog := select( globalOTDLog, DataDistributionLog, tempDDL, tempDDL.MacroPlanMDSID() = macroPlanMDSID );
    targetDataDistributionLog.ExecuteStatus( "Success" );
  *]
}
_Main/BL/Type_DataDistributionLog/_ROOT_Type_DataDistributionLog.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type DataDistributionLog
{
  #keys: '5[414702.1.153774697][414702.1.153774695][0.0.0][414702.1.153774696][414702.1.153774698]'
  BaseType: Object
  StructuredName: 'DataDistributionLogs'
}
_Main/BL/Type_FillingCapacityOrder/StaticMethod_CreateFillingCapacityOrder.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateFillingCapacityOrder (
  MacroPlan macroPlan,
  String id,
  Real quantity,
  Date demandDate,
  Date forecastDemandDate,
  String orderType,
  String verNo
)
{
  TextBody:
  [*
    targetCustomOrder := select( macroPlan, SalesDemand.astype( CustomerOrder ), tempCO, tempCO.ID() = id );
    info( "id:", id, "    ", not isnull( targetCustomOrder ), "    ç‰ˆæœ¬å·ï¼š", verNo );
    if ( not isnull( targetCustomOrder ) ) {
      macroPlan.FillingCapacityOrder( relnew,
                                      ID                 := OS::GenerateGUIDAsString(),
                                      ProductID          := targetCustomOrder.ProductID(),
                                      BusinessType       := targetCustomOrder.BusinessType(),
                                      SalesSegmentName   := targetCustomOrder.SalesSegmentName(),
                                      StockingPointID    := targetCustomOrder.StockingPointID(),
                                      Customer           := targetCustomOrder.CustomerName(),
                                      CustomerID         := targetCustomOrder.CustomerID(),
                                      Quantity           := quantity,
                                      UnitOfMeasureName  := targetCustomOrder.UnitOfMeasureName(),
                                      ForecastDemandDate := forecastDemandDate,
                                      DemandDate         := demandDate,
                                      OrderType          := orderType,
                                      SalesAmount        := [Number]quantity,
                                      CurrencyID         := targetCustomOrder.CurrencyID(),
                                      VerNo              := verNo
                                     );
    }
  *]
}
_Main/BL/Type_Forecast/StaticMethod_DoASync.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DoASync (
  MacroPlan macroPlan,
  Strings businessTypes,
  const GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  TextBody:
  [*
    // yypsybs Aug-17-2023 (created)
    //info( "OperationCost Finished, Start Forecast Data Broker" );
    //macroPlan.Broker_OTD_Forecast().Execute();
    info( "Forecast Data Broker Finished, Start Forecast Mapping" );
    macroPlan.DoASyncMappingForecastData( businessTypes,globalOTDTable, organcodelist );
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_InitTestData#12.qbl
@@ -6,34 +6,35 @@
{
  TextBody:
  [*
    // yypsybs Oct-7-2023 (created)
    productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
    debuginfo( "productCodeList : " + [String]productCodeList.Size() );
    if( this.Global_MappingAnnualBudgetData( relsize ) = 0 ) {
      debuginfo( "create Global_MappingAnnualBudgetData test data" );
      id := 1;
      for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) {
        for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
          productCode := productCodeList.Element( i - 1 );
          mappingAnnualBudget := this.Global_MappingAnnualBudgetData( relnew,
                                                                      ID := [String]id,
                                                                      YearNo := [String]year,
                                                                      BusinessType := "事业部" + [String](productCode.Length() mod 3),
                                                                      ProductID := productCode);
          id := id + 1;
          for( month := 1; month <= 12; month := month + 1 ) {
            field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlyModCapacity" + [String]month );
            field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
            field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySheetCapacity" + [String]month );
            field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
            field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySales" + [String]month );
            field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
          }
        }
      }
      result2 := selectset( this, Global_MappingAnnualBudgetData, item, true );
      debuginfo( "test MappingAnnualBudget size : " + [String]result2.Size() );
    }
    //// yypsybs Oct-7-2023 (created)
    //productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
    //debuginfo( "productCodeList : " + [String]productCodeList.Size() );
    //
    //this.Global_MappingAnnualBudgetData( relflush );
    //if( this.Global_MappingAnnualBudgetData( relsize ) = 0 ) {
    //  debuginfo( "create Global_MappingAnnualBudgetData test data" );
    //  id := 1;
    //  for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) {
    //    for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
    //      productCode := productCodeList.Element( i - 1 );
    //      mappingAnnualBudget := this.Global_MappingAnnualBudgetData( relnew,
    //                                                                  ID := [String]id,
    //                                                                  YearNo := [String]year,
    //                                                                  BusinessType := "事业部" + [String](productCode.Length() mod 3),
    //                                                                  ProductID := productCode);
    //      id := id + 1;
    //      for( month := 1; month <= 12; month := month + 1 ) {
    //        field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlyModCapacity" + [String]month );
    //        field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
    //        field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySheetCapacity" + [String]month );
    //        field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
    //        field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySales" + [String]month );
    //        field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
    //      }
    //    }
    //  }
    //  result2 := selectset( this, Global_MappingAnnualBudgetData, item, true );
    //  debuginfo( "test MappingAnnualBudget size : " + [String]result2.Size() );
    //}
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl
@@ -7,14 +7,14 @@
    //this.MatAttrSettingAndPlanStrategy( relflush );
    
    // yypsybs Sep-8-2023 (created)
    debuginfo( "CapacityAndSaleBudge::InitTestData" )
    mat1 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 1, "手机事业部", "MAT_1", "MAT_1", "TYPE_1", 233.0, "通用", "长周期" );
    MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat1, "PROD_1", 666.0, "PROD_1_DESC" );
    MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat1, "PROD_2", 777.0, "PROD_2_DESC" );
    mat2 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 2, "手机事业部", "MAT_2", "MAT_2", "TYPE_2", 233.0, "专用", "长周期" );
    MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat2, "PROD_1", 1666.0, "PROD_1_DESC" );
    MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat2, "PROD_2", 1777.0, "PROD_2_DESC" );
    MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 3, "手机事业部", "MAT_3", "MAT_3", "TYPE_1", 233.0, "通用", "短周期" );
    MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 4, "手机事业部", "MAT_4", "MAT_4", "TYPE_2", 233.0, "专用", "短周期" );
    //debuginfo( "CapacityAndSaleBudge::InitTestData" )
    //mat1 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 1, "手机事业部", "MAT_1", "MAT_1", "TYPE_1", 233.0, "通用", "长周期" );
    //MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat1, "PROD_1", 666.0, "PROD_1_DESC" );
    //MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat1, "PROD_2", 777.0, "PROD_2_DESC" );
    //mat2 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 2, "手机事业部", "MAT_2", "MAT_2", "TYPE_2", 233.0, "专用", "长周期" );
    //MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat2, "PROD_1", 1666.0, "PROD_1_DESC" );
    //MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat2, "PROD_2", 1777.0, "PROD_2_DESC" );
    //MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 3, "手机事业部", "MAT_3", "MAT_3", "TYPE_1", 233.0, "通用", "短周期" );
    //MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 4, "手机事业部", "MAT_4", "MAT_4", "TYPE_2", 233.0, "专用", "短周期" );
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_InitTestDataByYear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,68 @@
Quintiq file version 2.0
#parent: #root
Method InitTestDataByYear (
  MacroPlan macroPlan,
  CapacityAndSaleBudgeFilterYears years
)
{
  TextBody:
  [*
    // yypsybs Oct-7-2023 (created)
    productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
    debuginfo( "productCodeList : " + [String]productCodeList.Size() );
    this.Global_MappingAnnualBudgetData( relflush );
    debuginfo( "create Global_MappingAnnualBudgetData test data" );
    id := 1;
    traverse( years, Elements, year ) {
      for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
        productCode := productCodeList.Element( i - 1 );
        mappingAnnualBudget := this.Global_MappingAnnualBudgetData( relnew,
                                                                    ID := [String]id,
                                                                    YearNo := [String]year.YearNo(),
                                                                    BusinessType := "事业部" + [String](productCode.Length() mod 3),
                                                                    OrganCode := "I13",
                                                                    ProductID := productCode);
        id := id + 1;
        mappingAnnualBudget.MonthlyModCapacity1( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlyModCapacity2( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlyModCapacity3( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlyModCapacity4( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlyModCapacity5( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlyModCapacity6( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlyModCapacity7( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlyModCapacity8( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlyModCapacity9( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlyModCapacity10( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlyModCapacity11( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlyModCapacity12( [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySheetCapacity1(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySheetCapacity2(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySheetCapacity3(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySheetCapacity4(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySheetCapacity5(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySheetCapacity6(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySheetCapacity7(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySheetCapacity8(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySheetCapacity9(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySheetCapacity10(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySheetCapacity11(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySheetCapacity12(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySales1(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySales2(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySales3(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySales4(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySales5(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySales6(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySales7(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySales8(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySales9(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySales10(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySales11(  [String]Real::Random( 20000.0, 30000.0 ) );
        mappingAnnualBudget.MonthlySales12(  [String]Real::Random( 20000.0, 30000.0 ) );
      }
    }
    result2 := selectset( this, Global_MappingAnnualBudgetData, item, true );
    debuginfo( "test MappingAnnualBudget size : " + [String]result2.Size() );
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_ProductInLane.qbl
@@ -5,16 +5,5 @@
  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" )
                                 );
  *]
  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "GlobalOTDTable_ProductInLane", "产品在车道数据" );'
}
_Main/BL/Type_GlobalDTOTable/Method_RefreshCapacityAndSaleBudgeFilter.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl
@@ -47,6 +47,8 @@
      organcodelist := selectvalues( this, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
      }
    
    macroPlan.InitialUnitAndStockingPoint();
    if ( isUnitOfMeasure_MP ) {
      Global_MappingUnitOfMeasure_MP::SynchronizeMacroPlanData( this, macroPlan );
    }
@@ -106,35 +108,25 @@
    //if ( isCustomerGrade ) {
    //  Global_MappingCustomerGrade::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_CustomerGrade" );
    //}
    //
    //if ( isStockingPoint_MP ) {
    //  this.Global_MappingStockingPoint_MP( relflush );
    //  Global_BrokerExecuteLog::CreateInOperation( this, "StockingPoint_MP", executionUser );
    ////  this -> Global_MappingStockingPoint_MP::CreateByAPI() -> Exception() -> Global_MappingStockingPoint_MP::OnException( this );
    //}
    //
    //if ( isCurrency_MP ) {
    //  this.Global_MappingCurrency_MP( relflush );
    //  Global_BrokerExecuteLog::CreateInOperation( this, "Currency_MP", executionUser );
    ////  this -> Global_MappingCurrency_MP::CreateByAPI() -> Exception() -> Global_MappingCurrency_MP::OnException( this );
    //}
    //
    //if ( isCurrencyRate_MP ) {
    //  this.Global_MappingCurrencyRate_MP( relflush );
    //  Global_BrokerExecuteLog::CreateInOperation( this, "CurrencyRate_MP", executionUser );
    ////  this -> Global_MappingCurrencyRate_MP::CreateByAPI() -> Exception() -> Global_MappingCurrencyRate_MP::OnException( this );
    //}
    //
    //if ( isLane ) {
    //  this.Global_MappingLane( relflush );
    //  Global_BrokerExecuteLog::CreateInOperation( this, "Lane", executionUser );
    ////  this -> Global_MappingLane::CreateByAPI() -> Exception() -> Global_MappingLane::OnException( this );
    //}
    //
    //if ( isLaneLeg ) {
    //  this.Global_MappingLaneLeg( relflush );
    //  Global_BrokerExecuteLog::CreateInOperation( this, "LaneLeg", executionUser );
    ////  this -> Global_MappingLaneLeg::CreateByAPI() -> Exception() -> Global_MappingLaneLeg::OnException( this );
    //}
    if ( isStockingPoint_MP ) {
      Global_MappingStockingPoint_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
    }
    if ( isCurrency_MP ) {
      Global_MappingCurrency_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
    }
    if ( isCurrencyRate_MP ) {
      Global_MappingCurrencyRate_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
    }
    if ( isLane ) {
      Global_MappingLane::SynchronizeMacroPlanData( this, macroPlan, executionUser );
    }
    if ( isLaneLeg ) {
      Global_MappingLaneLeg::SynchronizeMacroPlanData( this, macroPlan, executionUser );
    }
  *]
}
_Main/BL/Type_GlobalDTOTable/StaticMethod_GetBusnessStrings.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetBusnessStrings (
  const GlobalOTDTable globalOTDTable
) as String
{
  TextBody:
  [*
    // NBoTk Sep-7-2023 (created)
    // èŽ·å–businessType é›†åˆ
    result := "";
    scenarioNameList := construct( structured[String]);
    traverse( globalOTDTable,BusinessType,b)
    {
        scenarioNameList.Add( b.ScenarioName() );
    }
    // å¦‚果存在businessType数据 åˆ™è¿”回 : a,b,c
    if( not isnull( scenarioNameList ) )
    {
        result := scenarioNameList.Concatenate( ";" );
    }
    // æµ‹è¯•数据
    //result := "集团面板;专业显示事业部;外卖CELL;非显;运动健康;运动健康事业部;手机事业部;特种显示;汽车电子事业部;车载显示事业部;IT事业部";
    return result;
  *]
}
_Main/BL/Type_GlobalDTOTable/_ROOT_Type_GlobalOTDTable.qbl
@@ -5,17 +5,5 @@
{
  #keys: '5[414702.0.83354588][414702.0.83354586][0.0.0][414702.0.83354587][414702.0.83354589]'
  BaseType: Object
  OnCreate:
  [*
    this.BusinessType( relnew, BusinessTypeName := "手机事业部OLED" );
    this.BusinessType( relnew, BusinessTypeName := "专业显示事业部" );
    this.BusinessType( relnew, BusinessTypeName := "外卖CELLOLED" );
    this.BusinessType( relnew, BusinessTypeName := "手机事业部" );
    this.BusinessType( relnew, BusinessTypeName := "汽车电子事业部" );
    this.BusinessType( relnew, BusinessTypeName := "特种显示" );
    this.BusinessType( relnew, BusinessTypeName := "运动健康事业部" );
    this.BusinessType( relnew, BusinessTypeName := "车载显示事业部" );
    this.BusinessType( relnew, BusinessTypeName := "IT事业部" );
  *]
  StructuredName: 'GlobalOTDTables'
}
_Main/BL/Type_GlobalOTDLog/StaticMethod_GetDatasetName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDatasetName () as String
{
  TextBody: 'return typeof( GlobalOTDLog ).ShortName();'
}
_Main/BL/Type_GlobalOTDLog/StaticMethod_GetLoadedDataset.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetLoadedDataset () as owning MDSID
{
  TextBody:
  [*
    mds := null( MDSID, owning );
    folder := '/root';
    datasetName := GlobalOTDLog::GetDatasetName();
    oinfo := MDSEditor::Editor().LoadedObjectInfo( datasetName, folder, datasetName );
    if(  not isnull( oinfo ) )
    {
      mds := oinfo.MDSID();
    }
    return &mds;
  *]
}
_Main/BL/Type_GlobalOTDLog/StaticMethod_OnServerStartup.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
#parent: #root
StaticMethod OnServerStartup
{
  TextBody:
  [*
    debuginfo( '================================ GlobalOTDLog =======================================')
    folder := DomainModel::Domain().MDSFolderDefinitions().FindFolder( "/root" );
    datasetName := GlobalOTDLog::GetDatasetName();
    oinfo := MDSEditor::Editor().ObjectInfos( datasetName, folder.FolderID(), datasetName );
    o := select( oinfo, Elements, o, not o.IsLoaded() );
    emptydataset := isnull( o );
    if( emptydataset )
    {
      MDSGlobalOTDLog::CreateMDS( datasetName, GlobalParameters_MP::GetStorageState() );
      GlobalOTDLog::GetLoadedDataset();
    }
    else
    {
      MDSGlobalOTDLog::LoadMDSAndConvert( o.MDSID(), GlobalParameters_MP::GetStorageState() );
    }
  *]
}
_Main/BL/Type_GlobalOTDLog/_ROOT_Type_GlobalOTDLog.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type GlobalOTDLog
{
  #keys: '5[414702.1.146900046][414702.1.146900044][0.0.0][414702.1.146900045][414702.1.146900047]'
  BaseType: Object
  StructuredName: 'GlobalOTDLogs'
}
_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeChart.qbl
_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl
ÎļþÃû´Ó _Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompare.qbl ÐÞ¸Ä
@@ -5,7 +5,7 @@
  CapacityAndSaleBudgeFilterItems items,
  CapacityAndSaleBudgeFilterYears years,
  CapacityAndSaleBudgeFilterMonths months,
  GlobalOTDTable otdTable
  const GlobalOTDTable otdTable
)
{
  Description: 'todo : mappingParent改为mpSync, random删了'
@@ -35,23 +35,24 @@
    this.CapacityAndSaleBudgeCompareItemRow( relflush );
    this.CapacityAndSaleBudgeCompareItemColumn( relflush );
    // ====汇总所有出现的产品====
    historyData := selectset( this, Global_MappingAnnualBudgetData, item, true );
    debuginfo( "historyData : " + [String]historyData.Size() )
    historyData := selectset( otdTable, Global_MappingAnnualBudgetData, item, true );
    debuginfo( "historyData : " + [String]historyData.Size() );
    traverse( historyData, Elements, one ) {
      productCode := one.ProductID();
      Global_MappingOperationBOM::CreateTestData( otdTable, "事业部" + [String](productCode.Length() mod 3), "面板基地" + [String](productCode.Length() mod 4), productCode );
      boms := selectset( otdTable, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
      if( boms.Size() > 0 ) {
        bom := boms.First();
        businessType := bom.BusinessType();
        placeOfProductionOfArray := bom.OrganCode();
    //  Global_MappingOperationBOM::CreateTestData( otdTable, "事业部" + [String](productCode.Length() mod 3), "面板基地" + [String](productCode.Length() mod 4), productCode );
    //  boms := selectset( otdTable, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
    //  if( boms.Size() > 0 ) {
    //    bom := boms.First();
    //    businessType := bom.BusinessType();
    //    placeOfProductionOfArray := bom.OrganCode();
        // ç›¸åŒé¢æ¿åŸºåœ°å’Œäº‹ä¸šéƒ¨çš„æ”¾ä¸€è¡Œ
        row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, businessType, placeOfProductionOfArray );
        row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, one.BusinessType(), one.OrgCodeFromBom() );
        // è®°å½•每行包含哪些product
        CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode );
      } else {
        debuginfo( "no boms for product : " + productCode );
      }
    //  } else {
    //    debuginfo( "no boms for product : " + productCode );
    //  }
    }
    debuginfo( "CapacityAndSaleBudgeCompareItemRow : " + [String]selectset( this, CapacityAndSaleBudgeCompareItemRow, item, true ).Size() );
    // ====从左向右生成列头与内容====
@@ -76,14 +77,14 @@
        traverse( months, Elements, month ) {
          columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板分配量-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "月-年度预算" );
          traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
            cellReal := Global_MappingForecast::GetQuantityByMonth( row.GetProductCodes(), this, DateTime::Now().Year(), month.MonthNo() );
            cellReal := Global_MappingForecast::GetQuantityByMonth( row.GetProductCodes(), otdTable, DateTime::Now().Year(), month.MonthNo() );
            cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
            cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
          }
        }
        columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "面板分配量-" + [String]year.YearNo() + "å¹´-total-年度预算" );
        traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
          cellReal := Global_MappingForecast::GetQuantityByYear( row.GetProductCodes(), this, year.YearNo() );
          cellReal := Global_MappingForecast::GetQuantityByYear( row.GetProductCodes(), otdTable, year.YearNo() );
          cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
          cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
        }
@@ -119,14 +120,14 @@
        traverse( months, Elements, month ) {
          columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "月-年度预算" );
          traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
            cellReal := Global_MappingAnnualBudgetData::GetSaleByMonth( row.GetProductCodes(), this, year.YearNo(), month.MonthNo() );
            cellReal := Global_MappingAnnualBudgetData::GetSaleByMonth( row.GetProductCodes(), otdTable, year.YearNo(), month.MonthNo() );
            cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
            cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
          }
        }
        columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对外销售额-" + [String]year.YearNo() + "å¹´-年度预算" );
        traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
          cellReal := Global_MappingAnnualBudgetData::GetSaleByYear( row.GetProductCodes(), this, year.YearNo() );
          cellReal := Global_MappingAnnualBudgetData::GetSaleByYear( row.GetProductCodes(), otdTable, year.YearNo() );
          cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
          cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
        }
_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompareExport.qbl
_Main/BL/Type_GlobalOTDSOP/Method_ReceivingPanelMaterials.qbl
_Main/BL/Type_GlobalOTDSOP/Method_SynchronizeOrders.qbl
_Main/BL/Type_GlobalOTDSOP/StaticMethod_GetDatasetName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDatasetName () as String
{
  TextBody: 'return typeof( GlobalOTDSOP ).ShortName();'
}
_Main/BL/Type_GlobalOTDSOP/StaticMethod_GetLoadedDataset.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetLoadedDataset () as owning MDSID
{
  TextBody:
  [*
    mds := null( MDSID, owning );
    folder := '/root';
    datasetName := GlobalOTDSOP::GetDatasetName();
    oinfo := MDSEditor::Editor().LoadedObjectInfo( datasetName, folder, datasetName );
    if(  not isnull( oinfo ) )
    {
      mds := oinfo.MDSID();
    }
    return &mds;
  *]
}
_Main/BL/Type_GlobalOTDSOP/StaticMethod_GetOutputVersionData.qbl
ÎļþÃû´Ó _Main/BL/Type_GlobalDTOTable/StaticMethod_GetOutputVersionData.qbl ÐÞ¸Ä
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetOutputVersionData (
  GlobalOTDTable owner,
  GlobalOTDSOP owner,
  MacroPlan macroplan,
  String businessname
)
@@ -66,6 +66,6 @@
      }
    
    // Send Data To DB
    owner.Broker_OTD_VersionControlToDB().Execute();
    // owner.Broker_OTD_VersionControlToDB().Execute();
  *]
}
_Main/BL/Type_GlobalOTDSOP/StaticMethod_GetVersionData.qbl
ÎļþÃû´Ó _Main/BL/Type_GlobalDTOTable/StaticMethod_GetVersionData.qbl ÐÞ¸Ä
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetVersionData (
  GlobalOTDTable owner,
  GlobalOTDSOP owner,
  String businessname
)
{
@@ -17,7 +17,7 @@
    }
    
    // Get Data From DB
    owner.Broker_OTD_VersionControl().Execute();
    //owner.Broker_OTD_VersionControl().Execute();
    
    // Get Data list to deal
    listtodeal := selectset( owner, MappingVersionControl, item, item.DataTo() = businesstype );
_Main/BL/Type_GlobalOTDSOP/StaticMethod_OnServerStartup.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
#parent: #root
StaticMethod OnServerStartup
{
  TextBody:
  [*
    debuginfo( '================================ GlobalOTDSOP =======================================')
    folder := DomainModel::Domain().MDSFolderDefinitions().FindFolder( "/root" );
    datasetName := GlobalOTDSOP::GetDatasetName();
    oinfo := MDSEditor::Editor().ObjectInfos( datasetName, folder.FolderID(), datasetName );
    o := select( oinfo, Elements, o, not o.IsLoaded() );
    emptydataset := isnull( o );
    if( emptydataset )
    {
      MDSGlobalOTDSOP::CreateMDS( datasetName, GlobalParameters_MP::GetStorageState() );
      GlobalOTDSOP::GetLoadedDataset();
    }
    else
    {
      MDSGlobalOTDSOP::LoadMDSAndConvert( o.MDSID(), GlobalParameters_MP::GetStorageState() );
    }
  *]
}
_Main/BL/Type_GlobalOTDSOP/StaticMethod_ReceivingPanelMaterials.qbl
ÎļþÃû´Ó _Main/BL/Type_GlobalDTOTable/StaticMethod_ReceivingPanelMaterials.qbl ÐÞ¸Ä
@@ -2,11 +2,11 @@
#parent: #root
StaticMethod ReceivingPanelMaterials (
  NamedValueTree requestnvt
) as stream[NamedValueTree]
)
{
  TextBody:
  [*
    MDSGlobalOTDTable::Find( DatasetFindOptions::Construct("GlobalOTDTable")) -> ( c ) {
    MDSGlobalOTDSOP::Find( DatasetFindOptions::Construct("GlobalOTDSOP")) -> ( c ) {
      return c.ReceivingPanelMaterials( requestnvt );
    }
  *]
_Main/BL/Type_GlobalOTDSOP/StaticMethod_RefreshCapacityAndSaleBudgeFilter.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
Quintiq file version 2.0
#parent: #root
StaticMethod RefreshCapacityAndSaleBudgeFilter (
  Boolean deleteBeforeCreate,
  const GlobalOTDTable otdTable,
  GlobalOTDSOP otdSop
)
{
  TextBody:
  [*
    // yypsybs Oct-17-2023 (created)
    if( deleteBeforeCreate ) {
      otdSop.CapacityAndSaleBudgeFilterBusinessType( relflush );
      otdSop.CapacityAndSaleBudgeFilterPlaceOfProductionOfArray( relflush );
    }
    // yypsybs Sep-21-2023 (created)
    debuginfo( "=====RefreshCapacityAndSaleBudgeFilter====" );
    businessTypes := selectuniquevalues( otdTable, Global_MappingAnnualBudgetData, item, item.BusinessType() );
    debuginfo( [String]businessTypes.Size() );
    traverse( businessTypes, Elements, businessType ) {
      CapacityAndSaleBudgeFilterBusinessType::CreateIfNotExist( otdSop, businessType );
    }
    placeOfProductionOfArrays := selectuniquevalues( otdTable, Global_MappingAnnualBudgetData, item, item.OrgCodeFromBom() );
    debuginfo( [String]placeOfProductionOfArrays.Size() );
    traverse( placeOfProductionOfArrays, Elements, placeOfProductionOfArray ) {
      CapacityAndSaleBudgeFilterPlaceOfProductionOfArray::CreateIfNotExist( otdSop, placeOfProductionOfArray );
    }
  *]
}
_Main/BL/Type_GlobalOTDSOP/_ROOT_Type_GlobalOTDSOP.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type GlobalOTDSOP
{
  #keys: '5[414702.1.113455880][414702.1.113455878][0.0.0][414702.1.113455879][414702.1.113455881]'
  BaseType: Object
  StructuredName: 'GlobalOTDSOPs'
}
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetCapacityInPCSInYear.qbl
@@ -1,15 +1,23 @@
Quintiq file version 2.0
#parent: #root
Method GetCapacityInPCSInYear () as Real
Method GetCapacityInPCSInYear () const as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    for( i := 1; i <= 12; i := i + 1 ) {
      field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlyModCapacity" + [String]i );
      result := result + [Real]field.GetString( this );
    }
    result := result + [Real]this.MonthlyModCapacity1();
    result := result + [Real]this.MonthlyModCapacity2();
    result := result + [Real]this.MonthlyModCapacity3();
    result := result + [Real]this.MonthlyModCapacity4();
    result := result + [Real]this.MonthlyModCapacity5();
    result := result + [Real]this.MonthlyModCapacity6();
    result := result + [Real]this.MonthlyModCapacity7();
    result := result + [Real]this.MonthlyModCapacity8();
    result := result + [Real]this.MonthlyModCapacity9();
    result := result + [Real]this.MonthlyModCapacity10();
    result := result + [Real]this.MonthlyModCapacity11();
    result := result + [Real]this.MonthlyModCapacity12();
    return result;
  *]
}
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetCapacityInSheetInHalfYear.qbl
@@ -2,17 +2,27 @@
#parent: #root
Method GetCapacityInSheetInHalfYear (
  Number halfNo
) as Real
) const as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    fromMonth := 1 + ( halfNo - 1 ) * 6;
    toMonth := 6 + ( halfNo - 1 ) * 6;
    for( i := fromMonth; i <= toMonth; i := i + 1 ) {
      field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySheetCapacity" + [String]i );
      result := result + [Real]field.GetString( this );
    if( halfNo = 1 ) {
      result := result + [Real]this.MonthlySheetCapacity1();
      result := result + [Real]this.MonthlySheetCapacity2();
      result := result + [Real]this.MonthlySheetCapacity3();
      result := result + [Real]this.MonthlySheetCapacity4();
      result := result + [Real]this.MonthlySheetCapacity5();
      result := result + [Real]this.MonthlySheetCapacity6();
    }
    if( halfNo = 2 ) {
      result := result + [Real]this.MonthlySheetCapacity7();
      result := result + [Real]this.MonthlySheetCapacity8();
      result := result + [Real]this.MonthlySheetCapacity9();
      result := result + [Real]this.MonthlySheetCapacity10();
      result := result + [Real]this.MonthlySheetCapacity11();
      result := result + [Real]this.MonthlySheetCapacity12();
    }
    return result;
  *]
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetCapacityInSheetInSeason.qbl
@@ -2,17 +2,31 @@
#parent: #root
Method GetCapacityInSheetInSeason (
  Number seasonNo
) as Real
) const as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    fromMonth := 1 + ( seasonNo - 1 ) * 3;
    toMonth := 3 + ( seasonNo - 1 ) * 3;
    for( i := fromMonth; i <= toMonth; i := i + 1 ) {
      field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySheetCapacity" + [String]i );
      result := result + [Real]field.GetString( this );
    if( seasonNo = 1 ) {
      result := result + [Real]this.MonthlySheetCapacity1();
      result := result + [Real]this.MonthlySheetCapacity2();
      result := result + [Real]this.MonthlySheetCapacity3();
    }
    if( seasonNo = 2 ) {
      result := result + [Real]this.MonthlySheetCapacity4();
      result := result + [Real]this.MonthlySheetCapacity5();
      result := result + [Real]this.MonthlySheetCapacity6();
    }
    if( seasonNo = 3 ) {
      result := result + [Real]this.MonthlySheetCapacity7();
      result := result + [Real]this.MonthlySheetCapacity8();
      result := result + [Real]this.MonthlySheetCapacity9();
    }
    if( seasonNo = 4 ) {
      result := result + [Real]this.MonthlySheetCapacity10();
      result := result + [Real]this.MonthlySheetCapacity11();
      result := result + [Real]this.MonthlySheetCapacity12();
    }
    return result;
  *]
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetCapacityInSheetInYear.qbl
@@ -1,15 +1,23 @@
Quintiq file version 2.0
#parent: #root
Method GetCapacityInSheetInYear () as Real
Method GetCapacityInSheetInYear () const as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    for( i := 1; i <= 12; i := i + 1 ) {
      field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySheetCapacity" + [String]i );
      result := result + [Real]field.GetString( this );
    }
    result := result + [Real]this.MonthlySheetCapacity1();
    result := result + [Real]this.MonthlySheetCapacity2();
    result := result + [Real]this.MonthlySheetCapacity3();
    result := result + [Real]this.MonthlySheetCapacity4();
    result := result + [Real]this.MonthlySheetCapacity5();
    result := result + [Real]this.MonthlySheetCapacity6();
    result := result + [Real]this.MonthlySheetCapacity7();
    result := result + [Real]this.MonthlySheetCapacity8();
    result := result + [Real]this.MonthlySheetCapacity9();
    result := result + [Real]this.MonthlySheetCapacity10();
    result := result + [Real]this.MonthlySheetCapacity11();
    result := result + [Real]this.MonthlySheetCapacity12();
    return result;
  *]
}
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetSaleAmountInHalfYear.qbl
@@ -2,17 +2,27 @@
#parent: #root
Method GetSaleAmountInHalfYear (
  Number halfNo
) as Real
) const as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    fromMonth := 1 + ( halfNo - 1 ) * 6;
    toMonth := 6 + ( halfNo - 1 ) * 6;
    for( i := fromMonth; i <= toMonth; i := i + 1 ) {
      field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySales" + [String]i );
      result := result + [Real]field.GetString( this );
    if( halfNo = 1 ) {
      result := result + [Real]this.MonthlySales1();
      result := result + [Real]this.MonthlySales2();
      result := result + [Real]this.MonthlySales3();
      result := result + [Real]this.MonthlySales4();
      result := result + [Real]this.MonthlySales5();
      result := result + [Real]this.MonthlySales6();
    }
    if( halfNo = 2 ) {
      result := result + [Real]this.MonthlySales7();
      result := result + [Real]this.MonthlySales8();
      result := result + [Real]this.MonthlySales9();
      result := result + [Real]this.MonthlySales10();
      result := result + [Real]this.MonthlySales11();
      result := result + [Real]this.MonthlySales12();
    }
    return result;
  *]
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetSaleAmountInSeason#000.qbl
@@ -2,17 +2,31 @@
#parent: #root
Method GetSaleAmountInSeason (
  Number seasonNo
) as Real
) const as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    fromMonth := 1 + ( seasonNo - 1 ) * 3;
    toMonth := 3 + ( seasonNo - 1 ) * 3;
    for( i := fromMonth; i <= toMonth; i := i + 1 ) {
      field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySales" + [String]i );
      result := result + [Real]field.GetString( this );
    if( seasonNo = 1 ) {
      result := result + [Real]this.MonthlySales1();
      result := result + [Real]this.MonthlySales2();
      result := result + [Real]this.MonthlySales3();
    }
    if( seasonNo = 2 ) {
      result := result + [Real]this.MonthlySales4();
      result := result + [Real]this.MonthlySales5();
      result := result + [Real]this.MonthlySales6();
    }
    if( seasonNo = 3 ) {
      result := result + [Real]this.MonthlySales7();
      result := result + [Real]this.MonthlySales8();
      result := result + [Real]this.MonthlySales9();
    }
    if( seasonNo = 4 ) {
      result := result + [Real]this.MonthlySales10();
      result := result + [Real]this.MonthlySales11();
      result := result + [Real]this.MonthlySales12();
    }
    return result;
  *]
_Main/BL/Type_Global_MappingAnnualBudgetData/Method_GetSaleAmountInYear.qbl
@@ -1,15 +1,23 @@
Quintiq file version 2.0
#parent: #root
Method GetSaleAmountInYear () as Real
Method GetSaleAmountInYear () const as Real
{
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    result := 0.0;
    for( i := 1; i <= 12; i := i + 1 ) {
      field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySales" + [String]i );
      result := result + [Real]field.GetString( this );
    }
    result := result + [Real]this.MonthlySales1();
    result := result + [Real]this.MonthlySales2();
    result := result + [Real]this.MonthlySales3();
    result := result + [Real]this.MonthlySales4();
    result := result + [Real]this.MonthlySales5();
    result := result + [Real]this.MonthlySales6();
    result := result + [Real]this.MonthlySales7();
    result := result + [Real]this.MonthlySales8();
    result := result + [Real]this.MonthlySales9();
    result := result + [Real]this.MonthlySales10();
    result := result + [Real]this.MonthlySales11();
    result := result + [Real]this.MonthlySales12();
    return result;
  *]
}
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSaleByHalfYear.qbl
@@ -5,7 +5,7 @@
  GlobalOTDTable parent,
  Number yearNo,
  Number halfNo
) as Real
) const as Real
{
  Description: '产能 - å®žæ•°å¤§å¼ '
  TextBody:
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSaleByMonth.qbl
@@ -2,21 +2,100 @@
#parent: #root
StaticMethod GetSaleByMonth (
  Strings productNo,
  GlobalOTDTable parent,
  const GlobalOTDTable parent,
  Number yearNo,
  Number monthNo
) as Real
) const as Real
{
  Description: '销售额(W)'
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySales" + [String]monthNo );
    value := sum( parent,
                  Global_MappingAnnualBudgetData,
                  item,
                  item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                  [Real]field.GetString( item ) );
    value := 0.0;
    if( monthNo = 1 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySales1() );
    }
    if( monthNo = 2 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySales2() );
    }
    if( monthNo = 3 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySales3() );
    }
    if( monthNo = 4 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySales4() );
    }
    if( monthNo = 5 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySales5() );
    }
    if( monthNo = 6 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySales6() );
    }
    if( monthNo = 7 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySales7() );
    }
    if( monthNo = 8 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySales8() );
    }
    if( monthNo = 9 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySales9() );
    }
    if( monthNo = 10 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySales10() );
    }
    if( monthNo = 11 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySales11() );
    }
    if( monthNo = 12 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySales12() );
    }
    return value;
  *]
}
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSaleBySeason.qbl
@@ -5,7 +5,7 @@
  GlobalOTDTable parent,
  Number yearNo,
  Number seasonNo
) as Real
) const as Real
{
  Description: '产能 - å®žæ•°å¤§å¼ '
  TextBody:
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSaleByYear.qbl
@@ -2,9 +2,9 @@
#parent: #root
StaticMethod GetSaleByYear (
  Strings productNo,
  GlobalOTDTable parent,
  const GlobalOTDTable parent,
  Number yearNo
) as Real
) const as Real
{
  Description: '销售额(W)'
  TextBody:
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSheetByHalfYear.qbl
@@ -5,7 +5,7 @@
  GlobalOTDTable parent,
  Number yearNo,
  Number halfNo
) as Real
) const as Real
{
  Description: '产能 - å®žæ•°å¤§å¼ '
  TextBody:
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSheetByMonth.qbl
@@ -5,18 +5,97 @@
  GlobalOTDTable parent,
  Number yearNo,
  Number monthNo
) as Real
) const as Real
{
  Description: '产能-实数大张'
  TextBody:
  [*
    // yypsybs Sep-18-2023 (created)
    field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySheetCapacity" + [String]monthNo );
    value := sum( parent,
                  Global_MappingAnnualBudgetData,
                  item,
                  item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                  [Real]field.GetString( item ) );
    value := 0.0;
    if( monthNo = 1 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySheetCapacity1() );
    }
    if( monthNo = 2 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySheetCapacity2() );
    }
    if( monthNo = 3 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySheetCapacity3() );
    }
    if( monthNo = 4 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySheetCapacity4() );
    }
    if( monthNo = 5 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySheetCapacity5() );
    }
    if( monthNo = 6 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySheetCapacity6() );
    }
    if( monthNo = 7 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySheetCapacity7() );
    }
    if( monthNo = 8 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySheetCapacity8() );
    }
    if( monthNo = 9 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySheetCapacity9() );
    }
    if( monthNo = 10 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySheetCapacity10() );
    }
    if( monthNo = 11 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySheetCapacity11() );
    }
    if( monthNo = 12 ) {
      value := sum( parent,
                    Global_MappingAnnualBudgetData,
                    item,
                    item.YearNo() = [String]yearNo and productNo.Find( item.ProductID() ) > -1,
                    [Real]item.MonthlySheetCapacity12() );
    }
    return value;
  *]
}
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSheetBySeason.qbl
@@ -5,7 +5,7 @@
  GlobalOTDTable parent,
  Number yearNo,
  Number seasonNo
) as Real
) const as Real
{
  Description: '产能 - å®žæ•°å¤§å¼ '
  TextBody:
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_GetSheetByYear.qbl
@@ -4,7 +4,7 @@
  Strings productNo,
  GlobalOTDTable parent,
  Number yearNo
) as Real
) const as Real
{
  Description: '产能 - å®žæ•°å¤§å¼ '
  TextBody:
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_SetOrgCodeFromForecast.qbl
@@ -7,18 +7,19 @@
  TextBody:
  [*
    // yypsybs Oct-7-2023 (created)
    traverse( parent, Global_MappingAnnualBudgetData, item ) {
      productCode := item.ProductID();
      Global_MappingOperationBOM::CreateTestData( parent, "事业部" + [String](productCode.Length() mod 3), "面板基地" + [String](productCode.Length() mod 4), productCode );
      boms := selectset( parent, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
      if( boms.Size() > 0 ) {
        bom := boms.First();
        placeOfProductionOfArray := bom.OrganCode();
        item.OrgCodeFromBom( placeOfProductionOfArray );
      } else {
        debuginfo( "no boms for product : " + productCode );
    //  productCode := item.ProductID();
    ////  Global_MappingOperationBOM::CreateTestData( parent, "事业部" + [String](productCode.Length() mod 3), "面板基地" + [String](productCode.Length() mod 4), productCode );
    //  boms := selectset( parent, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
    //  if( boms.Size() > 0 ) {
    //    bom := boms.First();
    //    placeOfProductionOfArray := bom.OrganCode();
    //    item.OrgCodeFromBom( placeOfProductionOfArray );
    //  } else {
    //    debuginfo( "no boms for product : " + productCode );
        item.OrgCodeFromBom( item.OrganCode() );
      }
    //  }
    }
  *]
}
_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeMacroPlanData (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan,
  String executionUser
)
{
  TextBody:
  [*
    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
                                                                       Name        := "同步货币汇率数据",
                                                                       IsSuccess   := true,
                                                                       ExecuteUser := executionUser
                                                                      );
    try {
      updates := construct( CurrencyRate_MPs );
      traverse( globalOTDTable, Global_MappingCurrencyRate_MP, gcr, true )
      {
        a := CurrencyRate_MP::CreateCurrencyRate( gcr.CurrencyID(), gcr.Start(), gcr.Rate() );
        updates.Add( a );
        }
      origindataset := selectset( macroPlan, Currency_MP.CurrencyRate_MP, cr, true );
      obsoletes := origindataset.Difference( updates );
      // delete obsoleted
      difflength := obsoletes.Size();
      for( j:=0; j<difflength; j++ )
      {
        obsolete := obsoletes.Element( j );
        obsolete.Delete();
        }
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
    } onerror {
      global_BrokerExecuteLog.IsSuccess( false );
      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
    }
  *]
}
_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeMacroPlanData (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan,
  String executionUser
)
{
  TextBody:
  [*
    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
                                                                       Name        := "同步货币数据",
                                                                       IsSuccess   := true,
                                                                       ExecuteUser := executionUser
                                                                      );
    try {
      updates := construct( Currency_MPs );
      traverse( globalOTDTable, Global_MappingCurrency_MP, gc, true )
      {
        a := Currency_MP::CreateCurrency( macroPlan, gc.ID(), gc.Name(), " ", gc.IsBase() );
        updates.Add( a );
        }
      origindataset := selectset( macroPlan, Currency_MP, c, true );
      obsoletes := origindataset.Difference( updates );
      // delete obsoleted
      difflength := obsoletes.Size();
      for( j:=0; j<difflength; j++ )
      {
        obsolete := obsoletes.Element( j );
        obsolete.Delete();
        }
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
    } onerror {
      global_BrokerExecuteLog.IsSuccess( false );
      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
    }
  *]
}
_Main/BL/Type_Global_MappingForecast/StaticMethod_GetQuantityByMonth.qbl
@@ -2,7 +2,7 @@
#parent: #root
StaticMethod GetQuantityByMonth (
  Strings productCodes,
  GlobalOTDTable parent,
  const GlobalOTDTable parent,
  Number yearNo,
  Number monthNo
) as Real
_Main/BL/Type_Global_MappingForecast/StaticMethod_GetQuantityByYear.qbl
@@ -2,11 +2,10 @@
#parent: #root
StaticMethod GetQuantityByYear (
  Strings productCodes,
  GlobalOTDTable parent,
  const GlobalOTDTable parent,
  Number yearNo
) as Real
{
  Description: ''
  TextBody:
  [*
    // yypsybs Sep-19-2023 (created)
_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeMacroPlanData (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan,
  String executionUser
)
{
  TextBody:
  [*
    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
                                                                       Name        := "同步车道数据",
                                                                       IsSuccess   := true,
                                                                       ExecuteUser := executionUser
                                                                      );
    try {
      updates := construct( Lanes );
      traverse( globalOTDTable, Global_MappingLane, gl, true )
      {
        id := gl.ID();
        unitid := gl.UnitID();
        name := gl.Name();
        userleadtime := gl.UserLeadTime();
        processingtime := Duration::Zero();
        unitofmeasurename := "PCS";
        currencyid := "CNY";
        startdate := Date::Date( 1900, 1, 1 );
        enddate := Date::Date( 9999, 12, 31 );
        capacitytype := "Transport quantity";
        if( userleadtime.Length() = 0 )
        {
          processingtime := Duration::Zero();
          }
        else
        {
          processingtime := Duration::Hours( [Number]userleadtime );
          };
        unit := Unit::FindUnitTypeIndex( unitid );
        if( isnull( unit)){
          unit :=macroPlan.Unit( relnew,
                                 ID := unitid,
                                 Name := unitid,
                                 UnitOfMeasureName := unitofmeasurename,
                                 CurrencyID := currencyid,
                                 StartDate := startdate,
                                 EndDate := enddate,
                                 CapacityType := capacitytype );
        }
        a := Lane::CreateLane( unit, id, name, processingtime);
        updates.Add( a );
        }
      origindataset := selectset( macroPlan, Unit.Lane, l, true );
      obsoletes := origindataset.Difference( updates );
      // delete obsoleted
      difflength := obsoletes.Size();
      for( j:=0; j<difflength; j++ )
      {
        obsolete := obsoletes.Element( j );
        obsolete.Delete();
        }
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
    } onerror {
      global_BrokerExecuteLog.IsSuccess( false );
      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
    }
  *]
}
_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeMacroPlanData (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan,
  String executionUser
)
{
  TextBody:
  [*
    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
                                                                       Name        := "同步车道路线数据",
                                                                       IsSuccess   := true,
                                                                       ExecuteUser := executionUser
                                                                      );
    try {
      updates := construct( LaneLegs );
      traverse( globalOTDTable, Global_MappingLaneLeg, gll, true )
      {
        processingtime := Duration::Zero();
        hasprocessingtime := true;
        userleadtime := gll.UserLeadTime();
        if( userleadtime.Length() = 0 )
        {
          hasprocessingtime := false;
          processingtime := Duration::Zero();
          }
        else
        {
          hasprocessingtime := true;
          processingtime := Duration::Hours( [Number]userleadtime );
          };
        lane := Lane::FindLaneTypeIndex( gll.LaneID() );
        a := LaneLeg::CreateLaneleg(lane, gll.LaneID(), gll.OriginStockingPointID(), gll.DestinationStockingPointID(), gll.Name(), hasprocessingtime, processingtime);
        updates.Add( a );
        }
      origindataset := selectset( macroPlan, Unit.Lane.LaneLeg, ll, true );
      obsoletes := origindataset.Difference( updates );
      // delete obsoleted
      difflength := obsoletes.Size();
      for( j:=0; j<difflength; j++ )
      {
        obsolete := obsoletes.Element( j );
        obsolete.Delete();
        }
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
    } onerror {
      global_BrokerExecuteLog.IsSuccess( false );
      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
    }
  *]
}
_Main/BL/Type_Global_MappingOperation/StaticMethod_DoASyncFindMinSeq.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DoASyncFindMinSeq (
  const GlobalOTDTable globalOTDTable,
  String orgCode,
  String productId,
  String processSection
) as Number
{
  TextBody:
  [*
    // renhao Sep-20-2023 (created)
    return guard (min( globalOTDTable, Global_MappingOperation, item,
                item.OrganCode() = orgCode and item.ProductID() = productId and item.ProcessSection() = processSection,
                item.SequenceNumber() ), Number::MinNumber() );
  *]
}
_Main/BL/Type_Global_MappingOperation/StaticMethod_GetByProductId.qbl
@@ -1,9 +1,9 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetByProductId (
  GlobalOTDTable otdTable,
  const GlobalOTDTable otdTable,
  String productId
) as Global_MappingOperation
) as const Global_MappingOperation
{
  TextBody:
  [*
_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_GetByProductId.qbl
@@ -1,9 +1,9 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetByProductId (
  GlobalOTDTable parent,
  const GlobalOTDTable parent,
  String productId
) as Global_MappingProduct_MP
) as const Global_MappingProduct_MP
{
  Description: '根据料号查记录'
  TextBody:
_Main/BL/Type_Global_MappingProviderCapacity/StaticMethod_GetByProductId.qbl
@@ -1,13 +1,14 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetByProductId (
  GlobalOTDTable parent,
  const GlobalOTDTable parent,
  String productId
) as Global_MappingProviderCapacity
) as const Global_MappingProviderCapacity
{
  TextBody:
  [*
    // yypsybs Oct-10-2023 (created)
    return select( parent, Global_MappingProviderCapacity, item, item.ProductID() = productId );
    value := select( parent, Global_MappingProviderCapacity, item, item.ProductID() = productId )
    return value;
  *]
}
_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeMacroPlanData (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan,
  String executionUser
)
{
  TextBody:
  [*
    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
                                                                       Name        := "同步库存点数据",
                                                                       IsSuccess   := true,
                                                                       ExecuteUser := executionUser
                                                                      );
    try {
      updates := construct( StockingPoint_MPs );
      traverse( globalOTDTable, Global_MappingStockingPoint_MP, sp, true )
      {
        a := StockingPoint_MP::CreateStockingpoint( macroPlan, sp.ID(), sp.UnitID(), sp.Name() );
        updates.Add( a );
        }
      origindataset := selectset( macroPlan, StockingPoint_MP, sp, true );
      obsoletes := origindataset.Difference( updates );
      // delete obsoleted
      difflength := obsoletes.Size();
      for( j:=0; j<difflength; j++ )
      {
        obsolete := obsoletes.Element( j );
        obsolete.Delete();
        }
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
    } onerror {
      global_BrokerExecuteLog.IsSuccess( false );
      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
    }
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl
@@ -63,7 +63,7 @@
                MaterialType:= ObjProduct.ParentID();
                MaterialName:=ObjProduct.Name();
              }
              ObjUnit:= H_FunctionClass::SM_GetUnitBySKU( Owner,Obj.ComponentCode());
              ObjUnit:= H_FunctionClass::SM_GetUnitBySKU( Owner,Obj.ComponentCode(),GlobData);
              if( not isnull( ObjUnit))
              {
                StockPoint:= ObjUnit.Name();
@@ -83,6 +83,7 @@
      // æ²¡æœ‰BOM æ·»åŠ æµ‹è¯•æ•°æ®
      else
      {
        //error( "BOM æ•°æ®èŽ·å–å¤±è´¥ï¼Œæ— æ³•æ‰©å±•åŽŸææ–™ä¿¡æ¯ï¼");
        nCount :=Owner.H_MaterialInfo(relsize );
        Owner.H_MaterialInfo(relnew,ParentSKU := ParentSKU,SKU := "SKU"+ nCount.AsQUILL() ,ForecastID := ForecastId,OrgCode := "ORG_000",VCode := VCode
                                    ,ID := H_FunctionClass::SM_GenerateID( "MI"),MaterialType := "原材料",NeedDate := NDate
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetUnitBySKU.qbl
@@ -2,7 +2,8 @@
#parent: #root
StaticMethod SM_GetUnitBySKU (
  MacroPlan Owner,
  String SKU
  String SKU,
  GlobalOTDTable GlobData
) as Unit
{
  Description: '通过SKU获取库存点信息'
@@ -11,7 +12,7 @@
    Obj :=null( Unit,constcontent );
    if( not isnull( Owner) and SKU.Length()>0)
    {
      OrgCode := select( Owner,MappingBOM,ObjM,ObjM.ProductCode()=SKU);
      OrgCode := select( GlobData,Global_MappingOperationBOM,ObjM,ObjM.ProductCode()=SKU);
      if( not isnull( OrgCode))
      {
        Obj := select( Owner,Unit,ObjU,ObjU.ID()=  OrgCode.OrganCode());
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedging.qbl
@@ -15,6 +15,10 @@
    *创建人:yunying
    *创建时间:20230-09-24
    *描述:系统内订单冲减调用函数,IsNew=true时,重新处理预测信息,IsNew=false时,用预测累计信息。
    *参数:IsNew æ˜¯å¦æ—¶æ–°çš„计算表示
    *     Operator æ“ä½œäºº
    *     OperatorType æ“ä½œç±»åž‹[反签,授权,ERP订单],这里应该是ERP订单
    *备注:客户全部使用客户名称,不要使用客户ID,预测原始数据没有客户ID信息
    *****************************************************************************/
    // åˆå§‹åŒ–结果
    bStatus := false;
@@ -58,9 +62,9 @@
              nHaveForecastQty :=0; //有预测数量
              nNoHaveForecastQty:=0;//五预测数量
              OrderQuantity := 0;   //剩余订单数量
              // èŽ·å–é¢„æµ‹æ•°é‡ï¼ˆå®¢æˆ·+SKU+月份 ç†è®ºæ˜¯æ²¡æœ‰ç‰©æ–™é¢„测)
              // èŽ·å–é¢„æµ‹æ•°é‡ï¼ˆå®¢æˆ·åç§°+SKU+月份 ç†è®ºæ˜¯æ²¡æœ‰ç‰©æ–™é¢„测)
              OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = ObjOrder.ProductID() 
                                                    and Obj.CustomCode() = ObjOrder.CustomerName()
                                                    and Obj.CustomName() = ObjOrder.CustomerName()
                                                    and Obj.Month().Format( "YM2") =ObjOrder.EndDate().Format( "YM2"));
              if ( not isnull(OrderForecast))
              {
@@ -74,9 +78,9 @@
                  nReverseQtyOld := ObjReverse.ReverseRealQty();
                  nReverseQtyNew := nReverseQtyOld;
              }
              // èŽ·å–æŽˆæƒæ•°é‡ï¼ˆå®¢æˆ·ID+SKU)
              // èŽ·å–æŽˆæƒæ•°é‡ï¼ˆå®¢æˆ·åç§°+SKU)
              ObjAuthorize := select(Owner, H_AuthorizeRealQty , Obj, Obj.SKU() = ObjOrder.ProductID() 
                                                                      and Obj.CustomID() = ObjOrder.CustomerName());
                                                                      and Obj.CustomName() = ObjOrder.CustomerName());
              if ( not isnull(ObjAuthorize))
              {
                  nAuthorizeQtyOld := ObjAuthorize.AuthorizeRealQty();
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl
@@ -170,9 +170,9 @@
    {
      strMsg :="填产后订单冲减发生错误,请联系系统管理员!";
      // è®°å½•错误日志
    //  Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_OrderHedgingEx",
    //                     DeveloperInformation :=  e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
    //                     GeneralInformation := e.GeneralInformation());
      Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_OrderHedgingEx",
                         DeveloperInformation :=  e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
                         GeneralInformation := e.GeneralInformation());
    }
    return JSON::Object().Add( "Status",bStatus)
                         .Add( "Count",nCount)
_Main/BL/Type_InventoryValueAndCost/StaticMethod_DoASync.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DoASync (
  MacroPlan macroPlan,
  const GlobalOTDTable globalOTDTable
)
{
  TextBody:
  [*
    // yypsybs Aug-17-2023 (created)
    //info( "ActualPISPIP Finished, Start InventoryCost Data Broker" );
    //macroPlan.Broker_OTD_InventoryCost().Execute();
    info( "InventoryCost Data Broker Finished, Start InventoryCost Mapping" );
    macroPlan.DoASyncMappingInventoryValueAndCostData(globalOTDTable);
  *]
}
_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeBusinessTypeString.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeExport.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgePlaceOfProductionOfArrayString.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MPSync/StaticMethod_TestData.qbl
@@ -7,37 +7,37 @@
{
  TextBody:
  [*
    // yypsybs Sep-20-2023 (created)
    debuginfo( "MPSync::TestData" );
    productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
    debuginfo( "productCodeList : " + [String]productCodeList.Size() );
    mpSync.MappingCapacityAndSaleBudge( relflush );
    for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) {
      for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
        productCode := productCodeList.Element( i - 1 );
        mappingCapacityAndSaleBudge := mpSync.MappingCapacityAndSaleBudge( relnew,
                                                                           YearNo := year,
                                                                           ProductCode := productCode,
                                                                           BusinessType := "事业部" + [String](productCode.Length() mod 3 + 1),
                                                                           PlaceOfProductionOfArray := "面板基地" + [String](productCode.Length() mod 4 + 1)
                                                                            );
        for( month := 1; month <= 12; month := month + 1 ) {
          field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInPCSInMonth" + [String]month );
          field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
          field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInSheetInMonth" + [String]month );
          field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
          field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "SaleAmountInMonth" + [String]month );
          field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
        }
        mappingCapacityAndSaleBudge.CapacityInPCSTotal( mappingCapacityAndSaleBudge.GetCapacityInPCSInYear() );
        mappingCapacityAndSaleBudge.CapacityInSheetTotal( mappingCapacityAndSaleBudge.GetCapacityInSheetInYear() );
        mappingCapacityAndSaleBudge.SaleAmountTotal( mappingCapacityAndSaleBudge.GetSaleAmountInYear() );
      }
    }
    result1 := selectset( mpSync, MappingCapacityAndSaleBudge, item, true );
    debuginfo( "test MappingCapacityAndSaleBudge size : " + [String]result1.Size() );
    //// yypsybs Sep-20-2023 (created)
    //
    //debuginfo( "MPSync::TestData" );
    //
    //productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
    //debuginfo( "productCodeList : " + [String]productCodeList.Size() );
    //
    //mpSync.MappingCapacityAndSaleBudge( relflush );
    //for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) {
    //  for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
    //    productCode := productCodeList.Element( i - 1 );
    //    mappingCapacityAndSaleBudge := mpSync.MappingCapacityAndSaleBudge( relnew,
    //                                                                       YearNo := year,
    //                                                                       ProductCode := productCode,
    //                                                                       BusinessType := "事业部" + [String](productCode.Length() mod 3 + 1),
    //                                                                       PlaceOfProductionOfArray := "面板基地" + [String](productCode.Length() mod 4 + 1)
    //                                                                        );
    //    for( month := 1; month <= 12; month := month + 1 ) {
    //      field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInPCSInMonth" + [String]month );
    //      field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
    //      field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "CapacityInSheetInMonth" + [String]month );
    //      field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
    //      field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", "SaleAmountInMonth" + [String]month );
    //      field.Set( mappingCapacityAndSaleBudge, Real::Random( 20000.0, 30000.0 ) );
    //    }
    //    mappingCapacityAndSaleBudge.CapacityInPCSTotal( mappingCapacityAndSaleBudge.GetCapacityInPCSInYear() );
    //    mappingCapacityAndSaleBudge.CapacityInSheetTotal( mappingCapacityAndSaleBudge.GetCapacityInSheetInYear() );
    //    mappingCapacityAndSaleBudge.SaleAmountTotal( mappingCapacityAndSaleBudge.GetSaleAmountInYear() );
    //  }
    //}
    //result1 := selectset( mpSync, MappingCapacityAndSaleBudge, item, true );
    //debuginfo( "test MappingCapacityAndSaleBudge size : " + [String]result1.Size() );
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingActualPISPIPData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingActualPISPIPData (
  Strings businessTypes,
  const GlobalOTDTable globalOTDTable,
  Boolean nuclear,
  Strings organcodelist
)
{
  TextBody:
  [*
    // renhao Aug-14-2023 (created)
    listtodeal := selectset( globalOTDTable,
                             Global_MappingActualProductInStockingPointInPeriod,
                             actual,
                             ( actual.ActualInventoryLevelEnd() > 0 ) and
                             ( organcodelist.Find( actual.StockingPointID().SubString( 0, 3 ) ) >= 0 ) );
    totalcount := listtodeal.Size();
    info( "ActualPISPIP has " + totalcount.AsQUILL() + " rows in total" );
    count := 0;
    traverse( listtodeal,Elements,actual){
      count := count + 1;
      if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){
        info( "Now is dealing with the " + count.AsQUILL() + "ActualPISPIP " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
        }
      product := select( globalOTDTable,Global_MappingProduct_MP,product,product.ID() = actual.ProductID() and product.KeyProduct() = nuclear,true);
      if( not isnull( product)){
      if( not isnull(businessTypes)){
        for( i :=0 ;i < businessTypes.Size();i++ ){
          businessType := businessTypes.Element( i );
          if( product.BusinessType() = businessType and not product.IsCommon()){
            ActualProductInStockingPointInPeriod::CreateOrUpdate( this,
                                                                  actual.ProductID(),
                                                                  actual.StockingPointID(),
                                                                  actual.Description(),
                                                                  actual.ActualInventoryLevelEnd(),
                                                                  actual.ManufacturedDate());
          }
        }
      }else{
        ActualProductInStockingPointInPeriod::CreateOrUpdate( this,
                                                              actual.ProductID(),
                                                              actual.StockingPointID(),
                                                              actual.Description(),
                                                              actual.ActualInventoryLevelEnd(),
                                                              actual.ManufacturedDate());
      }
      }
    }
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingBaseConversionFactorData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingBaseConversionFactorData (
  const GlobalOTDTable globalOTDTable
)
{
  Description: 'ETL数据转模型数据'
  TextBody:
  [*
    // yypsybs Aug-15-2023 (created)
    traverse( globalOTDTable, Global_MappingConversionFactor, item ) {
      //如果ProductID不为空,且匹配不到Product,则不创建,返回为空
    //    info( item.ProductId().AsQUILL() );
        BaseConversionFactor::CreateOrUpdate( this,
                                              item.SourceUnitOfMeasureName(),
                                              item.TargetUnitOfMeasureName(),
                                              item.IsEnabled(),
                                              item.ProductID(),
                                              item.Factor() );
    }
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingCustomerOrderData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingCustomerOrderData (
  Strings businessTypes,
  const GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  Description: 'ETL订单预测'
  TextBody:
  [*
    // yypsybs Aug-15-2023 (created)
    // å¾…处理数据
    listToDeal := construct( Global_MappingCustomOrders, constcontent );
    if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
        listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, true );
    } else {
        listToDeal := selectset( globalOTDTable,
                                 Global_MappingCustomOrder,
                                 item,
                                 ( businessTypes.Find( item.BusinessType() ) <> -1 ) and
                                 ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 0 ) );
    }
    queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
    queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
    listToDeal := selectset( listToDeal, Elements, item, item.OrderDate() >= queryStartDate /*and item.OrderDate() <= queryEndDate*/, not isnull( Product_MP::FindById( this, item.ProductID() ) ) and not isnull( StockingPoint_MP::FindById( this, item.StockingPointID() ) ) and not isnull( SalesSegment_MP::FindByName( this, item.SalesSegmentName() ) ) );
    totalcount := listToDeal.Size();
    info( "CustomerOrder has " + totalcount.AsQUILL() + " rows in total" );
    count := 0;
    priorityName :="Normal";
    // å¤„理
    traverse( listToDeal, Elements, item ) {
      count := count + 1;
      if( count - [Number](count/100) * 100 = 0 or count = totalcount ){
        info( "Now is dealing with the " + count.AsQUILL() + "CustomerOrder " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
        }
    //  if( not isnull( Product_MP::FindById( this, item.ProductID() ) ) ){
    //    info( item.ProductID().AsQUILL() );
      customOrder := CustomerOrder::CreateOrUpdate( this, item.CurrencyID(), item.Customer(), item.CustomerID(), item.ID(),
                                                    item.OrderDate(), item.OrderID(), item.OrderLineID(), item.Price(),
                                                    priorityName, item.ProductID(),
                                                    item.StockingPointID(),
                                                    item.SalesSegmentName(),
                                                    item.Quantity(), item.UnitOfMeasureName(), item.OrderType(), item.IsAvailable());
      customOrder.BusinessType( item.BusinessType() );
      customOrder.OrderType( item.OrderType() );
      customOrder.OrderTime( item.OrderTime() );
      customOrder.ProductGrade( item.ProductGrade() );
      customOrder.SegmentPriority( item.SegmentPriority() );
      customOrder.SheetProfitability( item.SheetProfitability() );
    //  }else{
    //    info( "invaild product: " + item.ProductID().AsQUILL() );
    //    }
    }
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingExternalSupplyData (
  Strings businessTypes,
  Boolean nuclear,
  const GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  TextBody:
  [*
    // renhao Aug-14-2023 (created)
    queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
    queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
    listtodeal := selectset( globalOTDTable,
                             Global_MappingInventorySupply,
                             externalSupply,
                             ( externalSupply.UserQuantity()>0 ) and
                             ( externalSupply.Date() >= queryStartDate ) and
                             ( organcodelist.Find( externalSupply.StockingPointID().SubString( 0, 3 ) ) >= 0 )/*and externalSupply.Date() <= queryEndDate*/);
    totalcount := listtodeal.Size();
    description := "在途在制";
    info( "ExternalSupply has " + totalcount.AsQUILL() + " rows in total" );
    count := 0;
    traverse( listtodeal,Elements,externalSupply){
      count := count + 1;
      if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){
        info( "Now is dealing with the " + count.AsQUILL() + "ExternalSupply " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
       }
      product := select( globalOTDTable,Global_MappingProduct_MP,product,product.ID() = externalSupply.ProductID(),true);
      if( not isnull( product)){
        productMP :=  Product_MP :: FindProductTypeIndex( externalSupply.ProductID());
        stockingpoint := select( this,StockingPoint_MP,st,st.ID() = externalSupply.StockingPointID(),true);
        if( not isnull( stockingpoint) and not isnull( productMP)){
        if( not isnull(businessTypes)){
          for( i :=0 ;i < businessTypes.Size();i++ ){
            businessType := businessTypes.Element( i );
            if( product.BusinessType() = businessType and not product.IsCommon()){
              InventorySupply::CreateOrUpdate( externalSupply.ID(),
                                               productMP,
                                               stockingpoint,
                                               externalSupply.Date(),
                                               externalSupply.ManufacturedDate(),
                                               externalSupply.UserQuantity(),description);
            }
          }
        }else{
            InventorySupply::CreateOrUpdate( externalSupply.ID(),
                                           productMP,
                                           stockingpoint,
                                           externalSupply.Date(),
                                           externalSupply.ManufacturedDate(),
                                           externalSupply.UserQuantity(),description);
          }
        }
      }
    }
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingForecastData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingForecastData (
  Strings businessTypes,
  const GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  Description: 'ETL订单预测'
  TextBody:
  [*
    // yypsybs Aug-15-2023 (created)
    // å¾…处理数据
    listToDeal := construct( Global_MappingForecasts, constcontent );
    if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
        listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, item.Quantity() > 0 );
    } else {
        listToDeal := selectset( globalOTDTable,
                                 Global_MappingForecast,
                                 item,
                                 ( businessTypes.Find( item.BusinessType() ) <> -1 ) and
                                 ( item.Quantity()>0 ) and
                                 ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 0 ) );
    }
    queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date();
    queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() );
    listToDeal := selectset( listToDeal, Elements, item, item.StartDate() >= queryStartDate and item.EndDate() <= queryEndDate, not isnull( Product_MP::FindById( this, item.ProductID() ) ) and not isnull( StockingPoint_MP::FindById( this, item.StockingPointID() ) ) and not isnull( SalesSegment_MP::FindByName( this, item.SalesSegmentName() ) ) );
    totalcount := listToDeal.Size();
    info( "Forecast has " + totalcount.AsQUILL() + " rows in total" );
    count := 0;
    priorityName := "Normal";
    // å¤„理
    traverse( listToDeal, Elements, item ) {
      count := count + 1;
      if( count - [Number](count/100) * 100 = 0 or count = totalcount ){
        info( "Now is dealing with the " + count.AsQUILL() + "Forecast " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
        }
    //  if( not isnull( Product_MP::FindById( this, item.ProductID() ) ) ){
      Forecast::CreateOrUpdate( this,
                                item.ProductID(), item.SalesSegmentName(), item.StockingPointID(), priorityName,
                                item.CurrencyID(), item.UnitOfMeasureName(),
                                item.ID(), item.StartDate(), item.EndDate(), item.Quantity(), item.Price());
    //  }else{
    //    info( "invaild product" + item.ProductID().AsQUILL() );
    //    }
    }
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingInventoryValueAndCostData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingInventoryValueAndCostData (
  const GlobalOTDTable globalOTDTable
)
{
  TextBody:
  [*
    // yypsybs Aug-15-2023 (created)
    listtodeal := selectset( globalOTDTable,Global_MappingStockingPointCost,item,true );
    totalcount := listtodeal.Size();
    info( "InventoryCost has " + totalcount.AsQUILL() + " rows in total" );
    count := 0;
    traverse( listtodeal, Elements, item ) {
        count := count + 1;
        if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){
          info( "Now is dealing with the " + count.AsQUILL() + "InventoryCost " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
        }
        InventoryValueAndCost::CreateOrUpdate( this, item.ID(), item.ProductID(),
                                                 item.StockingPointID(),
                                                 item.AccountName(), item.CostDriver(), item.Start(), item.Cost());
    //  if( not isnull( Product_MP::FindProductTypeIndex( item.ProductID() ) )  and not isnull( StockingPoint_MP :: FindStockingPointTypeIndex( item.StockingPointID()))){
    //
    //  }else{
    //    info( "invaild product: " + item.ProductID().AsQUILL() );
    //    }
    }
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,160 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingOperationBOMData (
  Strings businessTypes,
  Boolean isKeyProduct,
  Boolean createPurchaseSupplyMaterial,
  const GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  TextBody:
  [*
    // yypsybs Aug-21-2023 (created)
    keyProductList := construct( Strings );
    if( isKeyProduct ) {
        keyProductList := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, item, item.ProductMajorType()="成品" or item.ProductMajorType()="半成品", item.ID() );
    }
    bomList := selectsortedset(  globalOTDTable, Global_MappingOperationBOM, item,
                                 ifexpr( isnull( businessTypes ) or businessTypes.Size() = 0,
                                         true,
    //                                     businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 )
                                         ( businessTypes.Find( item.BusinessType() ) >= 0 ) and
                                         ( organcodelist.Find( item.OrganCode() ) >= 0 ) )
    //                             and ifexpr( isKeyProduct,
    //                                         keyProductList.Size() > 0 and keyProductList.Find( item.ComponentCode() ) >= 0,
    //                                         true )
                                 ,
                                 item.OrganCode() + "_" + item.ProductCode() + "_" + item.ProcessSection() );
    // æŒ‰routing及routingStep分组
    routingIds := selectuniquevalues( bomList, Elements, item, true, item.OrganCode() + "_" + item.ProductCode() );
    traverse( routingIds, Elements, routingId ) {
        routingRows := selectset( bomList, Elements, item, true, routingId = item.OrganCode() + "_" + item.ProductCode() );
        if( routingRows.Size() > 0 ) {
            firstRow := routingRows.Element( 0 );
    //        stockingPointId := firstRow.OrganCode()  + "_" + firstRow.ProductType() + "_Stock";
    //        inputStockingPointId := firstRow.OrganCode()  + "_" + firstRow.ComponentType() + "_Stock";
            stockingPointId := firstRow.OrganCode()  + "_Stock";
            // ========检查========
            product := Product_MP::FindProductTypeIndex( firstRow.ProductCode() );
            if( not isnull( product ) ) {
    //              error( "product : " + firstRow.ProductCode() + " not found" );
              stockingPoint := StockingPoint_MP::FindStockingPointTypeIndex( stockingPointId );
    //          info( stockingPointId.AsQUILL() );
      //        if( isnull( stockingPoint ) ) {
      //            error( "stockingPoint : " + stockingPointId + " not found" );
      //        }
              routing := Routing::FindRoutingTypeIndex(  routingId );
              if( not isnull( routing ) ) {
    //              error( "routing : " + routingId + " not found" );
                // ========处理输出========
                if( not isnull( stockingPoint ) ) {
    //              info( 1 );
                  operationsInLastSteps := Operation::FindFinalOperationsByRoutingId( this, routingId );
                  traverse( operationsInLastSteps, Elements, operationsInLastStep ) {
                      operationsInLastStep.CreateOperationBOM( product, stockingPoint, false, true );
                      operationsInLastStep.GetOperationBOM( product.ID(), stockingPoint.ID(), false ).Quantity( 1 );
                  }
                  // ========分组处理输入========
                }
                if( not isnull( stockingPoint)){
                  if( isKeyProduct){
                      keyRows := selectset( routingRows,Elements,routingrow,keyProductList.Find( routingrow.ComponentCode())>=0);
                      this.DoASyncMappingOperationBOMDataRouting( routing,globalOTDTable,keyRows);
                    }else{
                      this.DoASyncMappingOperationBOMDataRouting( routing,globalOTDTable,routingRows);
                    }
                }
              }
           }
        }
    }
    if( createPurchaseSupplyMaterial ) {
        toCreateBomList := selectuniquevalues( bomList, Elements, item,
                                               item.ComponentType() = "P" and keyProductList.Find( item.ComponentCode())>=0, item.OrganCode() + item.ComponentCode());
        traverse( toCreateBomList, Elements, key ) {
            boms := selectset( bomList, Elements, item, item.ComponentType() = "P" and item.OrganCode() + item.ComponentCode() = key );
            bom := boms.First();
            this.MappingOperationBOMDataSupplyPurchase( bom.OrganCode(), bom.ComponentCode(), bom.ComponentType());
        }
    }
    //
    //keyProductList := construct( Strings );
    //if( isKeyProduct ) {
    //    keyProductList := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, item, item.ProductMajorType()="成品" or item.ProductMajorType()="半成品", item.ID() );
    //}
    //bomList := selectsortedset(  globalOTDTable, Global_MappingOperationBOM, item,
    //                             ifexpr( isnull( businessTypes ) or businessTypes.Size() = 0,
    //                                     true,
    ////                                     businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 )
    //                                     businessTypes.Find( item.BusinessType() ) >= 0 )
    ////                             and ifexpr( isKeyProduct,
    ////                                         keyProductList.Size() > 0 and keyProductList.Find( item.ComponentCode() ) >= 0,
    ////                                         true )
    //                             ,
    //                             item.OrganCode() + "_" + item.ProductCode() + "_" + item.ProcessSection() );
    //// æŒ‰routing及routingStep分组
    //routingIds := selectuniquevalues( bomList, Elements, item, true, item.OrganCode() + "_" + item.ProductCode() );
    //traverse( routingIds, Elements, routingId ) {
    //    routingRows := selectset( bomList, Elements, item, true, routingId = item.OrganCode() + "_" + item.ProductCode() );
    //    if( routingRows.Size() > 0 ) {
    //        firstRow := routingRows.Element( 0 );
    ////        stockingPointId := firstRow.OrganCode()  + "_" + firstRow.ProductType() + "_Stock";
    ////        inputStockingPointId := firstRow.OrganCode()  + "_" + firstRow.ComponentType() + "_Stock";
    //        stockingPointId := firstRow.OrganCode()  + "_Stock";
    //
    //        // ========检查========
    //        product := Product_MP::FindProductTypeIndex( firstRow.ProductCode() );
    //        if( not isnull( product ) ) {
    ////              error( "product : " + firstRow.ProductCode() + " not found" );
    //          stockingPoint := StockingPoint_MP::FindStockingPointTypeIndex( stockingPointId );
    //
    ////          info( stockingPointId.AsQUILL() );
    //  //        if( isnull( stockingPoint ) ) {
    //  //            error( "stockingPoint : " + stockingPointId + " not found" );
    //  //        }
    //          routing := Routing::FindRoutingTypeIndex(  routingId );
    //          if( not isnull( routing ) ) {
    ////              error( "routing : " + routingId + " not found" );
    //            // ========处理输出========
    //            if( not isnull( stockingPoint ) ) {
    ////              info( 1 );
    //              operationsInLastSteps := Operation::FindFinalOperationsByRoutingId( this, routingId );
    //              traverse( operationsInLastSteps, Elements, operationsInLastStep ) {
    //                  operationsInLastStep.CreateOperationBOM( product, stockingPoint, false, true );
    //                  operationsInLastStep.GetOperationBOM( product.ID(), stockingPoint.ID(), false ).Quantity( 1 );
    //              }
    //              // ========分组处理输入========
    //
    //            }
    //            if( not isnull( stockingPoint)){
    //              if( isKeyProduct){
    //                  keyRows := selectset( routingRows,Elements,routingrow,keyProductList.Find( routingrow.ComponentCode())>=0);
    //                  this.MappingOperationBOMDataRouting( routing,globalOTDTable,keyRows);
    //                }else{
    //                  this.MappingOperationBOMDataRouting( routing,globalOTDTable,routingRows);
    //                }
    //
    //            }
    //          }
    //       }
    //    }
    //}
    //if( createPurchaseSupplyMaterial ) {
    //    toCreateBomList := selectuniquevalues( bomList, Elements, item,
    //                                           item.ComponentType() = "P", item.OrganCode() + item.ComponentCode());
    //    traverse( toCreateBomList, Elements, key ) {
    //        boms := selectset( bomList, Elements, item, item.ComponentType() = "P" and item.OrganCode() + item.ComponentCode() = key );
    //        bom := boms.First();
    //        this.MappingOperationBOMDataSupplyPurchase( bom.OrganCode(), bom.ComponentCode(), bom.ComponentType());
    //    }
    //}
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,102 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingOperationBOMDataRouting (
  Routing routing,
  const GlobalOTDTable globalOTDTable,
  constcontent Global_MappingOperationBOMs routingRows
)
{
  TextBody:
  [*
    // yypsybs Aug-21-2023 (created)
    // æ ¹æ®å·¥è‰ºæ®µæ±‡æ€»å¤„理
    processSections := selectuniquevalues( routingRows, Elements, row, true, row.ProcessSection() );
    traverse( processSections, Elements, processSection ) {
        rows := selectset( routingRows, Elements, row, row.ProcessSection() = processSection );
        firstRow := rows.Element( 0 );
        // æ‰¾orgCode/productId/processSection匹配且sequence最小的一组数据
        minSeq := Global_MappingOperation::DoASyncFindMinSeq( globalOTDTable, firstRow.OrganCode(), firstRow.ProductCode(), processSection );
        routingStepId := processSection + "_" + [String]minSeq;
        // æ‰¾å¯¹åº”routingStep
        routingStep := RoutingStep::FindByName( routing, routingStepId );
        if( not isnull( routingStep ) ) {
    //        error( "routing step : " + routing.ID() + "|" + routingStepId + " not found" );
        // ä»…主料,统一处理
          noAlterRows := selectset( rows, Elements, noAlterRow, noAlterRow.AlternativeMaterialCode() = "" );
          traverse( noAlterRows, Elements, noAlterRow ) {
              traverse( routingStep, Operation, toLink ) {
                  // æ£€æŸ¥ä¸»æ–™
                  component := Product_MP::FindById( this, noAlterRow.ComponentCode() );
                  if( not isnull( component ) ) {
    //                  error( "component : " + noAlterRow.ComponentCode() + " not found" );
                  // è¿žæŽ¥äº§å“ä¸Žoperation
    //              inputStockingPointId := noAlterRow.OrganCode()  + "_" + noAlterRow.ComponentType() + "_Stock";
                  inputStockingPointId := noAlterRow.OrganCode() + "_Stock";
                  stockingPoint := StockingPoint_MP::FindStockingPointTypeIndex( inputStockingPointId);
                  pisp := ProductInStockingPoint_MP::CreateIfNotFound( component, stockingPoint );
                  trash := construct( OperationBOMs );
                  operationBOM := toLink.LinkProduct( component, true, BaseOperationLink::GetGroupID( toLink, true, false ), pisp,
                                                      true, trash );
                  operationBOM.MinQuantityInGroup( 0 );
                  operationBOM.Quantity( noAlterRow.UnitUsageOfComponents() / noAlterRow.ComponentOutputRate() );
                  operationBOM.MaxQuantityInGroup( noAlterRow.UnitUsageOfComponents() / noAlterRow.ComponentOutputRate() );
                  }
              }
          }
          // æ›¿æ¢æ–™ï¼ŒæŒ‰ä¸»æ–™åˆ†ç»„处理
          alterComponentIds := selectuniquevalues( rows, Elements, row, row.AlternativeMaterialCode() <> "", row.ComponentCode() );
          traverse( alterComponentIds, Elements, alterComponentId ) {
              alterRows := selectset( rows, Elements, row, row.ComponentCode() = alterComponentId );
              firstAlterRow := alterRows.Element( 0 );
              // æ£€æŸ¥ä¸»æ–™
              component := Product_MP::FindById( this, firstAlterRow.ComponentCode() );
              if( not isnull( component ) ) {
    //              error( "component : " + firstAlterRow.ComponentCode() + " not found" );
    //          }
                traverse( routingStep, Operation, toLink ) {
                    // è¿žæŽ¥äº§å“ä¸Žoperation
    //                inputStockingPointId := firstAlterRow.OrganCode()  + "_" + firstAlterRow.ComponentType() + "_Stock";
                    inputStockingPointId := firstAlterRow.OrganCode() + "_Stock";
                    stockingPoint := StockingPoint_MP::FindStockingPointTypeIndex( inputStockingPointId);
                    pisp := ProductInStockingPoint_MP::CreateIfNotFound( component, stockingPoint );
                    trash := construct( OperationBOMs );
                    mainBOM := toLink.LinkProduct( component, true, BaseOperationLink::GetGroupID( toLink, true, false ), pisp,
                                                        true, trash );
                    mainBOM.Quantity( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() );
                    mainBOM.MaxQuantityInGroup( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() );
                    mainQty := mainBOM.Quantity();
                    Transaction::Transaction().Propagate();
                    // æ·»åŠ è¾…æ–™
                    traverse( alterRows, Elements, alterRow ) {
                        alterProd := Product_MP::FindById( this, alterRow.AlternativeMaterialCode() );
                        if( not isnull( alterProd ) ) {
        //                    error( "alterProd : " + alterRow.AlternativeMaterialCode() + " not found" );
    //                      stockingPointIdAlter := alterRow.OrganCode()  + "_" + alterRow.ComponentType() + "_Stock";
                          stockingPointIdAlter := alterRow.OrganCode() + "_Stock";
                          stockingPointAlter := StockingPoint_MP::FindById( this, stockingPointIdAlter );
                          if( isnull( stockingPointAlter ) ) {
                              error( "stockingPoint : " + stockingPointIdAlter + " not found" );
                          }
                          pispAlter := ProductInStockingPoint_MP::CreateIfNotFound( alterProd, stockingPointAlter );
                          //mainInput := toLink.LastOperationInput();
                          mainInput := select( toLink,OperationInput,operationInut,operationInut.ProductID()=alterRow.ComponentCode());
                          trash := construct( OperationBOMs );
                          if( not isnull( mainInput ) ) {
                              alterBom := mainInput.Operation().LinkPISP( pispAlter, true, mainInput.OperationLinkGroupID(), trash );
                              alterBom.Quantity( mainBOM.MaxQuantityInGroup() * alterRow.AlternativeRate() );
                              alterBom.MaxQuantityInGroup( mainBOM.MaxQuantityInGroup() );
    //                          info( "Quantity" + [String]alterBom.Quantity() )
    //                          info( "MaxQuantityInGroup" + [String]alterBom.MaxQuantityInGroup() )
                              mainQty := mainQty - alterBom.Quantity();
                          }
                      }
                      mainBOM.Quantity( mainQty );
                   }
                }
              }
          }
       }
    }
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationCostData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingOperationCostData (
  const GlobalOTDTable globalOTDTable,
  Strings businesstypes,
  Strings organcodelist
)
{
  Description: 'Get operation cost data from operation mapping'
  TextBody:
  [*
    // Administrator Aug-21-2023 (created)
    // list to deal
    listtodeal := construct( structured[Global_MappingOperation], constcontent );
    if( isnull( businesstypes ) or businesstypes.Size() = 0 ) {
        listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, true );
    } else {
        listtodeal := selectset( globalOTDTable, Global_MappingOperation,
                                 item,
                                 ( businesstypes.Find( item.BusinessType() ) <> -1 ) and
                                 ( organcodelist.Find( item.OrganCode() ) >= 0 ) );
    }
    // Get the list to deal with max sequence number
    listtodealwithmaxsn := construct( structured[Global_MappingOperation], constcontent );
    traverse( listtodeal, Elements, item ){
      maxsn := maxselect( globalOTDTable, Global_MappingOperation,
                          moperation,
                          moperation.OrganCode() = item.OrganCode(),
                          moperation.ProductID() = item.ProductID(),
                          moperation.SequenceNumber() ).SequenceNumber()
      if( item.SequenceNumber() = maxsn ){
          listtodealwithmaxsn.Add( item );
        }
      }
    totalcount := listtodealwithmaxsn.Size();
    info( "OperationCost has " + totalcount.AsQUILL() + " rows in total" );
    count := 0;
    // Get the operation cost data
    traverse( listtodealwithmaxsn, Elements, item ){
      count := count + 1;
      if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){
        info( "Now is dealing with the " + count.AsQUILL() + "OperationCost " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
        }
      id := item.OrganCode() + "_" + item.ProductID() + "_" + item.ProcessSection()+"_" + [String]item.SequenceNumber();
      if( guard( item.Line(), "" ).Length() > 0 ) {
          id := id + "_" + item.Line();
        }
      operation := Operation::FindOperationTypeIndex( id );
      if(not isnull(operation)){
            account := Account_MP::FindByName( this, "Operating cost" );
            isfromdb := false;
            existoperationcost := OperationCost::FindOperationCostTypeIndex( id );
            if( isnull( existoperationcost ) ){
              connecteditem := select( globalOTDTable,
                                       Global_MappingOperationCost,
                                       moperationcost,
                                       moperationcost.OrgCode() = item.OrganCode(),
                                       moperationcost.ProductID() = item.ProductID() );
              if( not isnull( connecteditem)){
                  cost := connecteditem.Cost();
                  lengthoftime := connecteditem.LengthOfTime();
                  start := connecteditem.Start();
                  timeunit := connecteditem.TimeUnit();
                  OperationCost::Create( id, operation, account, "Volume", start, timeunit, lengthoftime, cost, isfromdb );
                }
              }
      }
    }
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingOperationData (
  Strings businessTypes,
  const GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  TextBody:
  [*
    // yypsybs Aug-18-2023 (created)
    // èŽ·å–æœ‰åºçš„å¾…å¤„ç†è®°å½•
    toDealList := construct( Global_MappingOperations, constcontent ) ;
    if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) {
        toDealList := selectsortedset( globalOTDTable, Global_MappingOperation, item,
                                       ( businessTypes.Find( item.BusinessType() ) >= 0 ) and
                                       ( organcodelist.Find( item.OrganCode() ) >= 0 ),
    //                                   businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0,
                                       item.SequenceNumber() );
    } else {
        toDealList := selectsortedset( globalOTDTable, Global_MappingOperation, item,
                                       true,
                                       item.SequenceNumber() );
    }
    // é€æ¡å¤„理,首次处理时删除steps
    dealtRoutingIds := construct( Strings );
    routingList := construct( Routings );
    traverse( toDealList, Elements, item ) {
        routingId := item.OrganCode() + "_" + item.ProductID();
        unitId := item.OrganCode() + "_" + item.PlantName() + "_" + item.ProcessSection();
        routingStepName := item.ProcessSection() + "_" + [String]item.SequenceNumber();
        operationId := item.OrganCode() + "_" + item.ProductID() + "_" + item.ProcessSection()+"_" + [String]item.SequenceNumber();
    //    info( "========" )
    //    info( "routingId:" + routingId );
    //    info( "unitId:" + unitId );
    //    info( "routingStepName:" + routingStepName );
    //    info( "operationId:" + operationId );
        if( guard( item.Line(), "" ).Length() > 0 ) {
            unitId := unitId + "_" + item.Line();
            operationId := operationId + "_" + item.Line()
        }
        routing := Routing::CreateOrUpdate( this, routingId );
        if( routingList.Find( routing ) < 0 ) {
            routingList.Add( routing );
        }
        // åˆ é™¤steps(units关系、operations也会删除)
        if( dealtRoutingIds.Find( routingId ) < 0 ) {
            toDeleteSteps := selectset( routing, RoutingStep, routingStep, true );
            RoutingStep::Delete( toDeleteSteps );
            dealtRoutingIds.Add( routingId );
        }
        // RoutingStep
        routingStep := RoutingStep::FindByName( routing, routingStepName );
        if( isnull( routingStep ) ) {
            routingStep := RoutingStep::Create( routing, routingStepName, "", true );
        }
        // Unit
        unit := Unit::FindById( this, unitId );
        if( isnull( unit ) ) {
          // UnitOfMeasure
        unitOfMeasure := UnitOfMeasure_MP::FindByName( this, item.UnitOfMeasureName() );
          if( isnull( unitOfMeasure ) ) {
              info( "unit of measure [" + item.UnitOfMeasureName() + "] not found for routing [" + routingId + "]" );
          }
           unit := this.Unit( relnew,
                              ID := unitId, Name := unitId, CapacityType := "Infinite",
                              DefaultGridX := 0, DefaultGridY := 0,
                              IsManuallyConfigured := false,
                              Currency_MP := this.BaseCurrency(), UnitOfMeasure_MP := unitOfMeasure );
        }
        // Operation
        haveMaxQty := item.MaximumQuantity() <> 0.0;
        op := Operation::FindOperationTypeIndex( operationId );
        if( isnull( op)){
          op := Operation::Create( operationId, unit, operationId, routingStep,
                                        Duration::Days( item.UserLeadTime() ), Duration::Zero(), item.ActualCapacity(), false,
                                        [Real]item.MinimumQuantity(), haveMaxQty, guard( [Real]item.MaximumQuantity(), Real::MaxReal() ),
                                        0.0, 0.0, false, true );
        }
    //    ManufactureLTProcessSection::CreateOrUpdate( op );
    }
    info( "========" )
    // éåކrouting,进行link
    lastStep := null( RoutingStep );
    traverse( routingList, Elements.RoutingStep, step ) {
        // åŒå·¥è‰ºè·¯çº¿æ—¶è¿žæŽ¥
        if( not isnull( lastStep ) and lastStep.Routing() = step.Routing() ) {
            toLink := construct( RoutingSteps );
            toLink.Add( lastStep );
            // todo å­˜ç–‘
            step.LinkOperations( toLink );
        }
        lastStep := step;
    }
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingProductData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingProductData (
  Strings businesstypes,
  const GlobalOTDTable globalOTDTable,
  Boolean iskeyproduct
)
{
  Description: 'Method to get needed data from mapping product data'
  TextBody:
  [*
    // Administrator Aug-16-2023 (created)
    // list to deal
    info( "Get list to deal of product" );
    listToDeal := construct( Global_MappingProduct_MPs, constcontent );
    if( isnull( businesstypes ) or businesstypes.Size() = 0 ) {
        if( iskeyproduct = true ){
          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true );
          }
        else{
          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, true );
          }
    } else {
        if( iskeyproduct = true ){
          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true and businesstypes.Find( item.BusinessType() ) >= 0 );
         }
        else{
          listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, businesstypes.Find( item.BusinessType() ) >= 0 );
        }
    }
    totalcount := listToDeal.Size();
    info( "Product has " + totalcount.AsQUILL() + " rows in total" );
    // Get the root data
    Product_MP::CreateOrUpdate( this,
                                "全部物料产品",
                                "",
                                "全部物料产品",
                                "PCS",
                                "全部物料产品",
                                0.0,false,false
                                );
    count := 0;
    // Get the ProductMajorType list & ProductSubclassType list
    traverse( listToDeal, Elements, item ){
      count := count + 1;
      if( count - [Number](count/100) * 100 = 0 or count = totalcount ){
        info( "Now is dealing with the " + count.AsQUILL() + "Product " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
        }
      if( not item.ProductMajorType() = "" ){
        Product_MP::CreateOrUpdate( this,
                                    item.ProductMajorType(),
                                    "全部物料产品",
                                    item.ProductMajorType(),
                                    "PCS",
                                    item.ProductMajorType(),
                                    0.0,false,false
                                    );
      }
      productmajortype := item.ProductMajorType();
      if( productmajortype="" ){
        productmajortype := "全部物料产品";
        }
    //  if( not item.ProductSubclassType() = "" ){
    //    Product_MP::CreateOrUpdate( this,
    //                                item.ProductSubclassType(),
    //                                productmajortype,
    //                                item.ProductSubclassType(),
    //                                "PCS",
    //                                item.ProductSubclassType(),
    //                                0.0,false,false
    //                                );
    //    }
    //  productsubclasstype := item.ProductSubclassType();
    //  if( productsubclasstype="" ){
    //      productsubclasstype := productmajortype;
    //    }
      if( not item.ID() = "" ){
          Product_MP::CreateOrUpdate( this,
                                      item.ID(),
                                      productmajortype,
                                      item.ID(),
                                      item.UnitOfMeasureName(),
                                      item.Name(),
                                      item.ShelfLife(),
                                      item.KeyProduct(),item.IsCommon()
                                      );
        }
      }
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingProductInLaneData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingProductInLaneData (
  const GlobalOTDTable globalOTDTable
)
{
  Description: 'Get Product In Line data'
  TextBody:
  [*
    // Administrator Aug-17-2023 (created)
    // list to deal
    listtodeal := selectset( globalOTDTable, Global_MappingProductInLane, item ,true );
    totalcount := listtodeal.Size();
    info( "ProductInLane has " + totalcount.AsQUILL() + " rows in total" );
    count := 0;
    // Create ProductInLane
    traverse( listtodeal, Elements, item ){
      count := count + 1;
      if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){
        info( "Now is dealing with the " + count.AsQUILL() + "ProductInLane " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
        }
      ProductInLane::CreateOrUpdate( this, item.ProductID(), item.LineID() );
      }
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingSalesSegmentData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingSalesSegmentData (
  Strings businessTypes,
  const GlobalOTDTable globalOTDTable
)
{
  Description: 'ETL销售部门'
  TextBody:
  [*
    // yypsybs Aug-15-2023 (created)
    // å¾…处理数据
    listToDeal := construct( Global_MappingSalesSegment_MPs, constcontent );
    if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
        listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, true );
    } else {
        listToDeal := selectset( globalOTDTable,
                                 Global_MappingSalesSegment_MP,
                                 item,
                                 businessTypes.Find( item.BusinessType() ) <> -1 );
    }
    //nameList := construct( structured[String] );
    //nameList := selectvalues( listToDeal, Elements, item, true, item.Name() );
    //// æ£€æŸ¥parent
    //traverse( listToDeal, Elements, item, item.ParentName() <> "" ) {
    //    if( nameList.Find( item.ParentName() ) = -1 ) {
    //        error( "sales segment parent not found: " + item.Name().AsQUILL() );
    //    }
    //}
    //// é€å±‚遍历,直至处理完成
    //dealtNameList := construct( structured[String] );
    //while( listToDeal.Size() <> dealtNameList.Size() ) {
    //    traverse( listToDeal, Elements, item ) {
    //        // æœªå¤„理过
    //        if( dealtNameList.Find( item.Name() ) < 0 ){
    //            // æ— çˆ¶éƒ¨é—¨ï¼Œç›´æŽ¥å¤„理
    //            if( item.ParentName() = "" ) {
    //                SalesSegment_MP::CreateOrUpdate( this, item.Name(), item.DisplayIndex(), item.ParentName() );
    //                dealtNameList.Add( item.Name() );
    //            }
    //            // æœ‰çˆ¶éƒ¨é—¨ä¸”父部门已处理
    //            else if( item.ParentName() <> "" and dealtNameList.Find(item.ParentName()) >= 0 ) {
    //                SalesSegment_MP::CreateOrUpdate( this, item.Name(), item.DisplayIndex(), item.ParentName() );
    //                dealtNameList.Add( item.Name() );
    //            }
    //            // æœ‰çˆ¶éƒ¨é—¨ä¸”父部门未处理,下一轮处理
    //        }
    //    }
    //}
    traverse( listToDeal,Elements,item ){
      if( item.ParentName() <> "" and isnull( SalesSegment_MP::FindByName( this, item.ParentName() ) ) ){
        SalesSegment_MP::CreateOrUpdate( this, item.ParentName(), item.DisplayIndex(), "" );
        }
      }
    traverse( listToDeal,Elements,item ){
        SalesSegment_MP::CreateOrUpdate( this, item.Name(), item.DisplayIndex(), item.ParentName() );
      }
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingUnitData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,106 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingUnitData (
  Strings businesstypes,
  const GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  Description: 'Get unit data from operation mapping'
  TextBody:
  [*
    // Administrator Aug-21-2023 (created)
    // list to deal
    listtodeal := construct( Global_MappingOperations, constcontent );
    if( isnull( businesstypes ) or businesstypes.Size() = 0 ) {
        listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, true );
    } else {
        listtodeal := selectset( globalOTDTable, Global_MappingOperation, item,
    //                             businesstypes.Difference( businesstypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0
                                 ( businesstypes.Find( item.BusinessType() ) >= 0 ) and
                                 ( organcodelist.Find( item.OrganCode() ) >= 0 )
                                );
    }
    //Set the Default values
    unitofmeasurename := "PCS";
    infinite := "Infinite";
    capacitytype := "Transport quantity";
    // Get the root data
    Unit::CreateOrUpdate( this,
                          "天马集团",
                          "天马集团",
                          "",
                          infinite,
                          unitofmeasurename );
    // Get the sub root data
    Unit::CreateOrUpdate( this,
                          "生产",
                          "生产",
                          "天马集团",
                          infinite,
                          unitofmeasurename );
    supplyunit := Unit::CreateOrUpdate( this,
                          "供应商",
                          "供应商",
                          "天马集团",
                          infinite,
                          unitofmeasurename );
    supplyunit.IsSupplier(true);
    Unit::CreateOrUpdate( this,
                          "整车运输",
                          "整车运输",
                          "天马集团",
                          capacitytype,
                          unitofmeasurename );
    // Get the unit list
    traverse( listtodeal, Elements, item){
      OrgName := item.OrganName();
      if( OrgName = ''){
        OrgName := item.OrganCode();
      }
      //Get the first level unit
      Unit::CreateOrUpdate( this,
                            item.OrganCode(),
                            OrgName,
                            "生产",
                            infinite,
                            unitofmeasurename );
      //Get the second level unit
      secondlevelid := item.OrganCode() + "_" + item.PlantName();
      Unit::CreateOrUpdate( this,
                            secondlevelid,
                            secondlevelid,
                            item.OrganCode(),
                            infinite,
                            unitofmeasurename );
      //Get the third level unit
      thirdlevelid := secondlevelid + "_" + item.ProcessSection();
      Unit::CreateOrUpdate( this,
                            thirdlevelid,
                            thirdlevelid,
                            secondlevelid,
                            "Time",
                            item.UnitOfMeasureName() );
      //Get the last level unit
      if( item.Line()<>"" ){
        lastlevelid := thirdlevelid + "_" + item.Line();
        Unit::CreateOrUpdate( this,
                              lastlevelid,
                              lastlevelid,
                              thirdlevelid,
                              "Time",
                              item.UnitOfMeasureName() );
      }
      }
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingUnitOfMeasureData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
#parent: #root
Method DoASyncMappingUnitOfMeasureData (
  const GlobalOTDTable globalotdtable
)
{
  Description: 'ETL数据转模型数据'
  TextBody:
  [*
    // yypsybs Aug-15-2023 (created)
    defaultOld := UnitOfMeasure_MP::FindDefault( this );
    defaultNew := select( globalotdtable, Global_MappingUnitOfMeasure_MP, item, true, item.IsDefault() );
    if( not isnull( defaultOld ) and not isnull( defaultNew )
        and defaultOld.Name() <> defaultNew.Name() ) {
        defaultOld.IsDefault(false);
        //error( "multi default unit of measure" )
    }
    traverse( globalotdtable, Global_MappingUnitOfMeasure_MP, item ) {
        UnitOfMeasure_MP::CreateOrUpdate( this, item.Name(), item.IsDefault() );
    }
  *]
}
_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl
@@ -24,7 +24,7 @@
      if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){
        info( "Now is dealing with the " + count.AsQUILL() + "ActualPISPIP " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
        }
      product := select( this,MappingProduct,product,product.ID() = actual.ProductID() and product.KeyProduct() = nuclear,true);
      product := select( globalOTDTable,Global_MappingProduct_MP,product,product.ID() = actual.ProductID() and product.KeyProduct() = nuclear,true);
      if( not isnull( product)){
      if( not isnull(businessTypes)){
      
_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl
@@ -76,7 +76,7 @@
    }
    if( createPurchaseSupplyMaterial ) {
        toCreateBomList := selectuniquevalues( bomList, Elements, item, 
                                               item.ComponentType() = "P", item.OrganCode() + item.ComponentCode());
                                               item.ComponentType() = "P" and keyProductList.Find( item.ComponentCode())>=0, item.OrganCode() + item.ComponentCode());
        traverse( toCreateBomList, Elements, key ) {
            boms := selectset( bomList, Elements, item, item.ComponentType() = "P" and item.OrganCode() + item.ComponentCode() = key );
            bom := boms.First();
_Main/BL/Type_MacroPlan/Method_MappingUnitOfMeasureData.qbl
@@ -10,7 +10,7 @@
    // yypsybs Aug-15-2023 (created)
    
    defaultOld := UnitOfMeasure_MP::FindDefault( this );
    defaultNew := select( this, MappingUnitOfMeasure, item, true, item.IsDefault() );
    defaultNew := select( globalotdtable, Global_MappingUnitOfMeasure_MP, item, true, item.IsDefault() );
    
    if( not isnull( defaultOld ) and not isnull( defaultNew )
        and defaultOld.Name() <> defaultNew.Name() ) {
_Main/BL/Type_MacroPlan/StaticMethod_DoASync#253.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,166 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DoASync (
  MacroPlan macroPlan,
  Strings businessTypes,
  Boolean isKeyProduct,
  Boolean createPurchaseSupplyMaterial,
  const GlobalOTDTable globalOTDTable
)
{
  Description: '单次同步'
  TextBody:
  [*
    // yypsybs Aug-17-2023 (created)
    // å¸ç§å’Œå¸ç§æ±‡çއ
    //Currency_MP::CreateCurrencyFromJson( macroPlan, jsonDataRow );
    info( "Prepare to do sync" )
    info( "Get organ code list" )
    organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
    if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) {
        traverse( businessTypes, Elements, item ) {
            info( "Business type : " + item )
        }
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
    }
    else{
      if( businessTypes.Size() = 0 ){
        if( not isnull( selectset( globalOTDTable, BusinessType, b, b.BusinessTypeName() = "" ) ) ){
          organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, organ.BusinessType().BusinessTypeName() = "", organ.OrganCodeName() );
          }
        }
      }
    if( organcodelist.Size() = 0 ){
      organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
      }
    info( "KeyProduct : " + [String]isKeyProduct )
    info( "Create purchase supply material : " + [String]createPurchaseSupplyMaterial )
    // åˆå§‹æ¢-0
    info( "Start Initial" );
    macroPlan.InitialUnitAndStockingPoint();
    // å•位-1
    UnitOfMeasure_MP::DoASync( globalOTDTable, macroPlan );
    // é”€å”®éƒ¨é—¨-2
    SalesSegment_MP::DoASync( macroPlan, businessTypes,globalOTDTable );
    // Unit-9
    // ä¸ŽOperation一同处理
    //info( "BaseConversionFactor Finished, Start Operation Data Broker" );
    //macroPlan.Broker_OTD_Operation().Execute();
    info( "Operation Data Broker Finished, Start Unit Mapping" );
    macroPlan.DoASyncMappingUnitData( businessTypes ,globalOTDTable, organcodelist);
    // åº“存点-3
    info( "Sales Segment Finished, Start Get StockingPoint From Api" )
    bodynumber := "2";
    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
    address := "api-uat-sgc.tianma.cn";
    url := "/otdService/https/GetStockingPointsInfo";
    port := 443;
    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
    macroPlan.ApiStockingPointData( data );
    // è´§å¸ä¿¡æ¯-4
    info( "Get StockingPoint From Api Finished, Start Get CurrencyInfo From Api" )
    bodynumber := "1";
    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
    address := "api-uat-sgc.tianma.cn";
    url := "/otdService/https/GetCurrenciesInfo";
    port := 443;
    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
    macroPlan.ApiCurenciesData( data );
    //货币汇率信息-5
    info( "Get CurrencyInfo From Api Finished, Start Get CurrencyRates From Api" )
    bodynumber := "5";
    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
    address := "api-uat-sgc.tianma.cn";
    url := "/otdService/https/GetCurrencyRatesInfo";
    port := 443;
    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
    macroPlan.ApiCurencyRatesData( data );
    // äº§å“ç‰©æ–™-6
    //info( "Get CurrencyRates From Api Finished, Start Product Data Broker" )
    //macroPlan.Broker_OTD_Product().Execute();
    info( "Product Data Broker Finished, Start Product Mapping" );
    //testproduct := construct( Strings );
    macroPlan.DoASyncMappingProductData( businessTypes, globalOTDTable,isKeyProduct );
    //单位转换-7
    BaseConversionFactor::DoASync( macroPlan ,globalOTDTable);
    // å·¥è‰ºè·¯çº¿ + BOM-9
    info( "Unit Finished, Start Operation Mapping" );
    macroPlan.DoASyncMappingOperationData( businessTypes ,globalOTDTable, organcodelist );
    //info( "Operation Finished, Start BOM Data Broker" );
    //macroPlan.Broker_OTD_BOM().Execute();
    info( "BOM Data Broker Finished, Start BOM Mapping" );
    macroPlan.DoASyncMappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist );
    //车道信息-10
    info( "BOM Finished, Start Get Lanes From Api" );
    bodynumber := "3";
    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
    address := "api-uat-sgc.tianma.cn";
    url := "/otdService/https/GetLanesInfo";
    port := 443;
    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
    macroPlan.ApiLanesData( data );
    //车道运输段-11
    info( "Get Lanes From Api Finished, Start Get LaneLegs From Api" );
    bodynumber := "4";
    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
    address := "api-uat-sgc.tianma.cn";
    url := "/otdService/https/GetLaneLegsInfo";
    port := 443;
    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
    macroPlan.ApiLaneLegsData( data );
    // ä¾›åº”网络(车道)-12
    //info( "Get Lanelegs From Api Finished, Start ProductInLane Data Broker" );
    //macroPlan.Broker_OTD_ProductInLane().Execute();
    info( "ProductInLane Data Broker Finished, Start ProductInLane Mapping" );
    macroPlan.DoASyncMappingProductInLaneData(globalOTDTable);
    // åœ¨åº“库存数据-13
    //info( "ProductInLane Finished, Start ActualPISPIP Data Broker" );
    //macroPlan.Broker_OTD_ActualPISPIP().Execute();
    info( "ActualPISPIP Data Broker Finished, Start ActualPISPIP Mapping" );
    macroPlan.DoASyncMappingActualPISPIPData( businessTypes, globalOTDTable,isKeyProduct, organcodelist );
    // åœ¨é€”库存-14
    //info( "ActualPISPIP Finished, Start ExternalSupply Data Broker" );
    //macroPlan.Broker_OTD_ExternalSupply().Execute();
    info( "ExternalSupply Data Broker Finished, Start ExternalSupply Mapping" );
    macroPlan.DoASyncMappingExternalSupplyData( businessTypes, isKeyProduct ,globalOTDTable, organcodelist );
    // åº“存成本-15
    InventoryValueAndCost::DoASync( macroPlan,globalOTDTable );
    // todo åˆ¶é€ æˆæœ¬-16
    info( "InventoryCost Finished, Start OperationCost Mapping" );
    macroPlan.DoASyncMappingOperationCostData( globalOTDTable, businessTypes, organcodelist );
    // è®¢å•预测-17
    Forecast::DoASync( macroPlan, businessTypes, globalOTDTable, organcodelist );
    // è®¢å•需求-18
    CustomerOrder::DoASync( macroPlan, businessTypes, globalOTDTable, organcodelist );
    //删除多余报错数据-19
    macroPlan.DeleteSnaityCheck();
    //// todo ä¾›åº”商能力
    //info( "ProviderCapacity::DoSync" )
    //// todo ä¾›åº”商回复
    //info( "ProviderReply::DoSync" )
  *]
}
_Main/BL/Type_MacroPlan/StaticMethod_DoASync#896.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DoASync (
  MacroPlan macroPlan,
  String businessTypeStr,
  Boolean isKeyProduct,
  Boolean createPurchaseSupplyMaterial,
  const GlobalOTDTable globalOTDTable
) as stream[MacroPlan]
{
  Description: '单次同步'
  TextBody:
  [*
    // yypsybs Aug-17-2023 (created)
    businessTypes := construct( Strings );
    if( businessTypeStr.Length() > 0 ) {
        businessTypes := businessTypeStr.Tokenize( ',' );
    }
    MacroPlan::DoASync( macroPlan, businessTypes, isKeyProduct, createPurchaseSupplyMaterial ,globalOTDTable);
    return emit( macroPlan );
  *]
}
_Main/BL/Type_MacroPlan/StaticMethod_DoASync.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DoASync (
  Scenario scenario,
  String businessTypeStr,
  Boolean isKeyProduct,
  Boolean createPurchaseSupplyMaterial,
  const GlobalOTDTable globalOTDTable
)
{
  TextBody:
  [*
    info( scenario.DatasetMDSID(), "    äº‹ä¸šéƒ¨ï¼š", businessTypeStr, "    isKeyProduct:", isKeyProduct, "    createPurchaseSupplyMaterial:", createPurchaseSupplyMaterial );
    MDSMacroPlan::Root( scenario.DatasetMDSID() )
    -> MacroPlan::DoASync( businessTypeStr,
                           isKeyProduct,
                           createPurchaseSupplyMaterial,
                           globalOTDTable
                          )
    -> MacroPlan::DoASyncSuccess( scenario.DatasetMDSID() )
    -> Exception()
    -> MacroPlan::DoASyncOnException( globalOTDTable, scenario.DatasetMDSID() );
  *]
}
_Main/BL/Type_MacroPlan/StaticMethod_DoASyncOnException.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DoASyncOnException (
  Exception exception,
  GlobalOTDTable globalOTDTable,
  Key macroPlanMDSID
)
{
  TextBody:
  [*
    options := DatasetFindOptions::Construct( "GlobalOTDLog" ).IncludeOffline( true );
    mdskey := DatasetController::FindUnique( options );
    MDSGlobalOTDLog::Root( mdskey ) -> DataDistributionLog::OnError( macroPlanMDSID,
                                                                     exception.ErrorNumber(),
                                                                     exception.Message() );
  *]
}
_Main/BL/Type_MacroPlan/StaticMethod_DoASyncSuccess.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DoASyncSuccess (
  MacroPlan macroPlan,
  Key macroPlanMDSID
)
{
  TextBody:
  [*
    options := DatasetFindOptions::Construct( "GlobalOTDLog" ).IncludeOffline( true );
    mdskey := DatasetController::FindUnique( options );
    MDSGlobalOTDLog::Root( mdskey ) -> DataDistributionLog::OnSuccess( macroPlanMDSID );
  *]
}
_Main/BL/Type_MacroPlan/StaticMethod_DoSync#618.qbl
@@ -12,9 +12,9 @@
  TextBody:
  [*
    // yypsybs Aug-17-2023 (created)
    businessTypes := construct( Strings );
    businessTypes := construct( BusinessType );
    if( businessTypeStr.Length() > 0 ) {
        businessTypes := businessTypeStr.Tokenize( ',' );
    //    businessTypes := businessTypeStr.Tokenize( ',' );
    }
    MacroPlan::DoSync( macroPlan, businessTypes, isKeyProduct, createPurchaseSupplyMaterial ,globalOTDTable);
  *]
_Main/BL/Type_MacroPlan/StaticMethod_DoSync.qbl
@@ -11,7 +11,7 @@
  TextBody:
  [*
    // yypsybs Aug-17-2023 (created)
    businessTypes := construct( Strings );
    businessTypes := construct( BusinessType );
    MacroPlan::DoSync( macroPlan, businessTypes, isKeyProduct, createPurchaseSupplyMaterial ,globalOTDTable);
  *]
}
_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
@@ -2,7 +2,7 @@
#parent: #root
StaticMethod DoSync (
  MacroPlan macroPlan,
  Strings businessTypes,
  BusinessType businessType,
  Boolean isKeyProduct,
  Boolean createPurchaseSupplyMaterial,
  GlobalOTDTable globalOTDTable
@@ -16,20 +16,8 @@
    //Currency_MP::CreateCurrencyFromJson( macroPlan, jsonDataRow );
    info( "Prepare to do sync" )
    info( "Get organ code list" )
    organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
    if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) {
        traverse( businessTypes, Elements, item ) {
            info( "Business type : " + item )
        }
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
    }
    else{
      if( businessTypes.Size() = 0 ){
        if( not isnull( selectset( globalOTDTable, BusinessType, b, b.BusinessTypeName() = "" ) ) ){
          organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, organ.BusinessType().BusinessTypeName() = "", organ.OrganCodeName() );
          }
        }
      }
    businessTypeName := businessType.BusinessTypeName().Tokenize( "," );
    organcodelist := selectvalues( businessType, OrganCode, organ, true, organ.OrganCodeName() );
    
    if( organcodelist.Size() = 0 ){
      organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
@@ -46,14 +34,14 @@
    UnitOfMeasure_MP::DoSync( globalOTDTable,macroPlan );
    
    // é”€å”®éƒ¨é—¨-2
    SalesSegment_MP::DoSync( macroPlan, businessTypes,globalOTDTable );
    SalesSegment_MP::DoSync( macroPlan, businessTypeName, globalOTDTable );
    
    // Unit-9 
    // ä¸ŽOperation一同处理
    //info( "BaseConversionFactor Finished, Start Operation Data Broker" );
    //macroPlan.Broker_OTD_Operation().Execute();
    info( "Operation Data Broker Finished, Start Unit Mapping" );
    macroPlan.MappingUnitData( businessTypes ,globalOTDTable, organcodelist);
    macroPlan.MappingUnitData( businessTypeName ,globalOTDTable, organcodelist);
    
    // åº“存点-3
    info( "Sales Segment Finished, Start Get StockingPoint From Api" )
@@ -90,18 +78,18 @@
    //macroPlan.Broker_OTD_Product().Execute();
    info( "Product Data Broker Finished, Start Product Mapping" );
    //testproduct := construct( Strings );
    macroPlan.MappingProductData( businessTypes, globalOTDTable,isKeyProduct );
    macroPlan.MappingProductData( businessTypeName, globalOTDTable,isKeyProduct );
    
    //单位转换-7
    BaseConversionFactor::DoSync( macroPlan ,globalOTDTable);
    
    // å·¥è‰ºè·¯çº¿ + BOM-9
    info( "Unit Finished, Start Operation Mapping" );
    macroPlan.MappingOperationData( businessTypes ,globalOTDTable, organcodelist );
    macroPlan.MappingOperationData( businessTypeName ,globalOTDTable, organcodelist );
    //info( "Operation Finished, Start BOM Data Broker" );
    //macroPlan.Broker_OTD_BOM().Execute();
    info( "BOM Data Broker Finished, Start BOM Mapping" );
    macroPlan.MappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist );
    macroPlan.MappingOperationBOMData( businessTypeName, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist );
    
    //车道信息-10
    info( "BOM Finished, Start Get Lanes From Api" );
@@ -133,26 +121,26 @@
    //info( "ProductInLane Finished, Start ActualPISPIP Data Broker" );
    //macroPlan.Broker_OTD_ActualPISPIP().Execute();
    info( "ActualPISPIP Data Broker Finished, Start ActualPISPIP Mapping" );
    macroPlan.MappingActualPISPIPData( businessTypes, globalOTDTable,isKeyProduct, organcodelist );
    macroPlan.MappingActualPISPIPData( businessTypeName, globalOTDTable,isKeyProduct, organcodelist );
    
    // åœ¨é€”库存-14
    //info( "ActualPISPIP Finished, Start ExternalSupply Data Broker" );
    //macroPlan.Broker_OTD_ExternalSupply().Execute();
    info( "ExternalSupply Data Broker Finished, Start ExternalSupply Mapping" );
    macroPlan.MappingExternalSupplyData( businessTypes, isKeyProduct ,globalOTDTable, organcodelist );
    macroPlan.MappingExternalSupplyData( businessTypeName, isKeyProduct ,globalOTDTable, organcodelist );
    
    // åº“存成本-15
    InventoryValueAndCost::DoSync( macroPlan,globalOTDTable );
    
    // todo åˆ¶é€ æˆæœ¬-16
    info( "InventoryCost Finished, Start OperationCost Mapping" );
    macroPlan.MappingOperationCostData( globalOTDTable, businessTypes, organcodelist );
    macroPlan.MappingOperationCostData( globalOTDTable, businessTypeName, organcodelist );
    
    // è®¢å•预测-17
    Forecast::DoSync( macroPlan, businessTypes, globalOTDTable, organcodelist );
    Forecast::DoSync( macroPlan, businessTypeName, globalOTDTable, organcodelist );
    
    // è®¢å•需求-18
    CustomerOrder::DoSync( macroPlan, businessTypes, globalOTDTable, organcodelist );
    CustomerOrder::DoSync( macroPlan, businessTypeName, globalOTDTable, organcodelist );
    
    //删除多余报错数据-19
    macroPlan.DeleteSnaityCheck();
_Main/BL/Type_ManufactureLTImputation/StaticMethod_Apply.qbl
@@ -1,7 +1,8 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Apply (
  ManufactureLTImputations toApply
  ManufactureLTImputations toApply,
  MacroPlan macroPlan
)
{
  TextBody:
@@ -9,7 +10,7 @@
    // yypsybs Aug-28-2023 (created)
    traverse( toApply, Elements, parent ) {
      traverse( parent, ManufactureLTProcessSection, child ) {
        ManufactureLTProcessSection::Apply( child );
        ManufactureLTProcessSection::Apply( child, macroPlan );
      }
    }
  *]
_Main/BL/Type_ManufactureLTImputation/StaticMethod_CreateOrUpdate.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateOrUpdate (
  MacroPlan macroPlan,
  GlobalOTDSOP parent,
  String orgCode,
  String productId,
  String desc
@@ -10,9 +10,9 @@
  TextBody:
  [*
    // yypsybs Aug-25-2023 (created)
    value := select( macroPlan, ManufactureLTImputation, item, item.OrgCode() = orgCode and item.SkuID() = productId );
    value := select( parent, ManufactureLTImputation, item, item.OrgCode() = orgCode and item.SkuID() = productId );
    if( isnull( value ) ) {
        value := macroPlan.ManufactureLTImputation( relnew, OrgCode := orgCode, SkuID := productId, Describe := desc );
        value := parent.ManufactureLTImputation( relnew, OrgCode := orgCode, SkuID := productId, Describe := desc );
    } else {
        value.Describe( desc );  
    }
_Main/BL/Type_ManufactureLTImputation/StaticMethod_NewStaticMethod.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_ManufactureLTImputation/StaticMethod_Refresh.qbl
@@ -1,7 +1,8 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Refresh (
  ManufactureLTImputations toRefresh
  ManufactureLTImputations toRefresh,
  MacroPlan macroPlan
)
{
  TextBody:
@@ -9,7 +10,7 @@
    // yypsybs Aug-28-2023 (created)
    traverse( toRefresh, Elements, parent ) {
      traverse( parent, ManufactureLTProcessSection, child ) {
        ManufactureLTProcessSection::Apply( child );
        ManufactureLTProcessSection::Apply( child, macroPlan );
      }
    }
  *]
_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer#25.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Transfer (
  const MacroPlan macroPlan,
  GlobalOTDSOP parent
)
{
  TextBody:
  [*
    // yypsybs Oct-11-2023 (created)
    traverse( macroPlan, Routing.RoutingStep.Operation, item ) {
         ManufactureLTProcessSection::CreateOrUpdate( item, parent );
    }
  *]
}
_Main/BL/Type_ManufactureLTImputation/StaticMethod_Transfer.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply#202.qbl
@@ -1,14 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Apply (
  ManufactureLTProcessSection toApply
  ManufactureLTProcessSection toApply,
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    // yypsybs Aug-28-2023 (created)
    parent := toApply.ManufactureLTImputation();
    toUpdate := select( toApply, ManufactureLTImputation.MacroPlan.Routing.RoutingStep.Operation, op,
    toUpdate := select( macroPlan, Routing.RoutingStep.Operation, op,
                        op.RoutingID() = parent.OrgCode() + "_" + parent.SkuID() 
                        and op.RoutingStepName() = toApply.ProcessSection() + "_" + toApply.Sequence()
                        and op.Name() = ifexpr( toApply.Line() <> "", 
@@ -18,7 +19,7 @@
      toUpdate.UserLeadTime( Duration::Days( toApply.EditLT() ) );
      toApply.SystemLT( toApply.EditLT() );
    } else {
      info( "operation to update not found" );
      debuginfo(  "operation to update not found" );
    }
  *]
}
_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Apply.qbl
@@ -1,14 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Apply (
  ManufactureLTProcessSections toApply
  ManufactureLTProcessSections toApply,
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    // yypsybs Aug-28-2023 (created)
    traverse( toApply, Elements, child ) {
      ManufactureLTProcessSection::Apply( child );
      ManufactureLTProcessSection::Apply( child, macroPlan );
    }
  *]
}
_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate.qbl
@@ -1,7 +1,8 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateOrUpdate (
  Operation op
  const Operation op,
  GlobalOTDSOP parent
) as ManufactureLTProcessSection
{
  TextBody:
@@ -31,9 +32,11 @@
    }
    child := null( ManufactureLTProcessSection );
    //if( orgCode <> "" and productId <> "" and processStep <> "" and sequence <> "" ) {
    //    parent := ManufactureLTImputation::CreateOrUpdate( op.RoutingStep().Routing().MacroPlan(), orgCode, productId, "" );
    //    info( "DaysAsReal : " + [String]op.UserLeadTime().DaysAsReal() );
    //    child := ManufactureLTProcessSection::CreateOrUpdate( parent, processStep, false, sequence, line, op.UserLeadTime().DaysAsReal(), 0.0, "" );
      ltParent := ManufactureLTImputation::CreateOrUpdate( parent, orgCode, productId, "" );
      info( "DaysAsReal : " + [String]op.UserLeadTime().DaysAsReal() );
      child := ManufactureLTProcessSection::CreateOrUpdate( ltParent, processStep, false, sequence, line, op.UserLeadTime().DaysAsReal(), 0.0, "" );
    //} else {
    //  info( "skip operation" );
    //}
    return child;
  *]
_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_CreateOrUpdate0.qbl
@@ -1,6 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateOrUpdate (
  GlobalOTDSOP parent,
  MacroPlan macroPlan,
  String orgCode,
  String productId,
@@ -17,15 +18,15 @@
  TextBody:
  [*
    // yypsybs Aug-25-2023 (created)
    parent := select( macroPlan, ManufactureLTImputation, item, item.OrgCode() = orgCode and item.SkuID() = productId );
    if( isnull( parent ) ) {
        parent := macroPlan.ManufactureLTImputation( relnew, OrgCode := orgCode, SkuID := productId, Describe := parentDesc );
    ltParent := select( parent, ManufactureLTImputation, item, item.OrgCode() = orgCode and item.SkuID() = productId );
    if( isnull( ltParent ) ) {
        ltParent := parent.ManufactureLTImputation( relnew, OrgCode := orgCode, SkuID := productId, Describe := parentDesc );
    } else {
        parent.Describe( parentDesc );
        ltParent.Describe( parentDesc );
    }
    child := select( parent, ManufactureLTProcessSection, item, item.ProcessSection() = processSection and item.Sequence() = seq and item.Line() = line );
    child := select( ltParent, ManufactureLTProcessSection, item, item.ProcessSection() = processSection and item.Sequence() = seq and item.Line() = line );
    if( isnull( child ) ) {
        child := parent.ManufactureLTProcessSection( relnew,
        child := ltParent.ManufactureLTProcessSection( relnew,
                                                     ProcessSection := processSection, Sequence := seq, Line := line, SystemLT := systemLt, 
                                                     Edited := edited, EditLT := editLt, Describe := childDesc );
    } else {
_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Refresh#1.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_ManufactureLTProcessSection/StaticMethod_Refresh.qbl
@@ -1,14 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Refresh (
  ManufactureLTProcessSections toApply
  ManufactureLTProcessSections toDeals,
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    // yypsybs Aug-28-2023 (created)
    traverse( toApply, Elements, child ) {
      ManufactureLTProcessSection::Refresh( child );
    // yypsybs Oct-13-2023 (created)
    traverse( toDeals, Elements, one ) {
      ManufactureLTProcessSection::Apply( one, macroPlan );
    }
  *]
}
_Main/BL/Type_MappingSaleBudge/Attribute_BusinessType.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityEquivalent.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth1.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth10.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth11.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth12.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth2.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth3.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth4.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth5.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth6.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth7.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth8.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSInMonth9.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInPCSTotal.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth1.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth10.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth11.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth12.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth2.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth3.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth4.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth5.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth6.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth7.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth8.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetInMonth9.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_CapacityInSheetTotal.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_Deleted.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_DisplayTechnology.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_LineAndSpecification.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_NumberOfCut.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_NumberOfMask.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_OrgCode.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_PlaceOfProductionOfArray.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_PlaceOfProductionOfEvaporation.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_ProductCode.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_Resolution.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth1.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth10.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth11.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth12.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth2.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth3.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth4.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth5.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth6.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth7.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth8.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountInMonth9.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_SaleAmountTotal.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_ShippingForm.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Attribute_YearNo.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/DefaultValue_CapacityEquivalent.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/DefaultValue_DisplayTechnology.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/DefaultValue_NumberOfCut.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/DefaultValue_NumberOfMask.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/DefaultValue_OrgCode.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/DefaultValue_Resolution.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/DefaultValue_ShippingForm.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInPCSInYear.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInSheetInHalfYear.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInSheetInSeason.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Method_GetCapacityInSheetInYear.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/Method_GetSaleAmountInYear.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/StaticMethod_ExpectedHeaders.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSaleByMonth.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSaleByYear.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetByHalfYear.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetByMonth.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetBySeason.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/StaticMethod_GetSheetByYear.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MappingSaleBudge/_ROOT_Type_MappingCapacityAndSaleBudge.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CheckThePrecedingColumn.qbl
@@ -1,14 +1,14 @@
Quintiq file version 2.0
#parent: #root
Method CheckThePrecedingColumn (
  GlobalOTDTable globalOTDTable
  GlobalOTDSOP globalOTDSOP
)
{
  TextBody:
  [*
    traverse ( this, MatAttrSettingAndPlanStrategyDataRow, masapsdr ) {
      itemCode := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料编码" );
      targetMatAttrSettingAndPlanStrategy := select( globalOTDTable, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.MatCode() = itemCode.value() );
      targetMatAttrSettingAndPlanStrategy := select( globalOTDSOP, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.MatCode() = itemCode.value() );
      if ( not isnull( targetMatAttrSettingAndPlanStrategy ) ) {
        businessType                      := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "业务类型" ).value();
        nameOfMaterial                    := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料名称" ).value();
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CreateOrUpdateData.qbl
@@ -1,14 +1,14 @@
Quintiq file version 2.0
#parent: #root
Method CreateOrUpdateData (
  GlobalOTDTable globalOTDTable
  GlobalOTDSOP globalOTDSOP
)
{
  TextBody:
  [*
    traverse ( this, MatAttrSettingAndPlanStrategyDataRow, masapsdr ) {
      itemCode := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料编码" );
      targetMatAttrSettingAndPlanStrategy := select( globalOTDTable, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.MatCode() = itemCode.value() );
      targetMatAttrSettingAndPlanStrategy := select( globalOTDSOP, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.MatCode() = itemCode.value() );
      if ( not isnull( targetMatAttrSettingAndPlanStrategy ) ) {
        minimumNumberOfDaysInStock     := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "库存最小天数" ).value();
        maximumNumberOfDaysInInventory := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "库存最大天数" ).value();
@@ -122,24 +122,24 @@
          }
        }
        try {
          matAttrSettingAndPlanStrategy := globalOTDTable.MatAttrSettingAndPlanStrategy( relnew,
                                                                                         BusinessType := businessType,
                                                                                         MatCode := createItemCode,
                                                                                         MatName := nameOfMaterial,
                                                                                         MatType := itemClassification,
                                                                                         MatArrivalLT := [Number]LTTimeDays,
    //                                                                                     ProductCount := [Number]numberOfFinishedSKUs,
    //                                                                                     MinProdDeliverLT := [Number]finishedProductDeliveryMinLTDays,
                                                                                         FlagLongTerm := longAndShortCycleLabels,
                                                                                         FlagGeneric := genericSpecialLabels,
    //                                                                                     PlanningStrategyAuto := automaticMaterialPlanningPolicies,
                                                                                         PlanningStrategyCustom := usersManuallySchedulePolicies,
                                                                                         MinimumNumberOfDaysInStock := [Number]minimumNumberOfDaysInStock,
                                                                                         MaximumNumberOfDaysInInventory := [Number]maximumNumberOfDaysInInventory
          matAttrSettingAndPlanStrategy := globalOTDSOP.MatAttrSettingAndPlanStrategy( relnew,
                                                                                       BusinessType := businessType,
                                                                                       MatCode := createItemCode,
                                                                                       MatName := nameOfMaterial,
                                                                                       MatType := itemClassification,
                                                                                       MatArrivalLT := [Number]LTTimeDays,
    //                                                                                   ProductCount := [Number]numberOfFinishedSKUs,
    //                                                                                   MinProdDeliverLT := [Number]finishedProductDeliveryMinLTDays,
                                                                                       FlagLongTerm := longAndShortCycleLabels,
                                                                                       FlagGeneric := genericSpecialLabels,
    //                                                                                   PlanningStrategyAuto := automaticMaterialPlanningPolicies,
                                                                                       PlanningStrategyCustom := usersManuallySchedulePolicies,
                                                                                       MinimumNumberOfDaysInStock := [Number]minimumNumberOfDaysInStock,
                                                                                       MaximumNumberOfDaysInInventory := [Number]maximumNumberOfDaysInInventory
                                                                                        );
          matAttrSettingAndPlanStrategy.UpdateBy( QuintiqUser::CurrentUser().Username() );   
          matAttrSettingAndPlanStrategy.UpdateTime( DateTime::ActualTime() );
          matAttrSettingAndPlanStrategy.SerialNumber( maxselect( globalOTDTable, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.SerialNumber() ).SerialNumber() + 1 );
          matAttrSettingAndPlanStrategy.SerialNumber( maxselect( globalOTDSOP, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.SerialNumber() ).SerialNumber() + 1 );
        } onerror {
          error( "库存最小天数或库存最大天数必须为整数:", targetMatAttrSettingAndPlanStrategy.MatCode() );
        }
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_SynchronizeData.qbl
@@ -6,12 +6,12 @@
  [*
    this.VerifyThatTheItemCodeIsNotDuplicated();
    
    globalOTDTable := this.MatAttrSettingAndPlanStrategyInputSource().GlobalOTDTable();
    globalOTDSOP := this.MatAttrSettingAndPlanStrategyInputSource().GlobalOTDSOP();
    
    this.CheckThePrecedingColumn( globalOTDTable );
    this.CheckThePrecedingColumn( globalOTDSOP );
    
    this.CreateOrUpdateData( globalOTDTable );
    this.CreateOrUpdateData( globalOTDSOP );
    
    this.VerificationData( globalOTDTable );
    this.VerificationData( globalOTDSOP );
  *]
}
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerificationData.qbl
@@ -1,13 +1,13 @@
Quintiq file version 2.0
#parent: #root
Method VerificationData (
  GlobalOTDTable globalOTDTable
  GlobalOTDSOP globalOTDSOP
)
{
  TextBody:
  [*
    info( "策略个数:", globalOTDTable.MatAttrSettingAndPlanStrategy( relsize ) );
    traverse ( globalOTDTable, MatAttrSettingAndPlanStrategy, masaps ) {
    info( "策略个数:", globalOTDSOP.MatAttrSettingAndPlanStrategy( relsize ) );
    traverse ( globalOTDSOP, MatAttrSettingAndPlanStrategy, masaps ) {
      if ( masaps.PlanningStrategyCustom() <> "安全库存" and masaps.PlanningStrategyCustom() <> "JIT" and masaps.PlanningStrategyCustom() <> "M/A" and
           masaps.PlanningStrategyCustom() <> "PO拉料" and masaps.PlanningStrategyCustom() <> "VMI" ) {
        error( "手动设置策略错误:", masaps.MatCode() );     
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
  GlobalOTDTable parent
  GlobalOTDSOP parent
) as String
{
  TextBody:
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl
@@ -8,7 +8,7 @@
    if( this.MatAttrSettingAndPlanStrategyDataTable( relsize ) > 0 ) {
      traverse( this, MatAttrSettingAndPlanStrategyDataTable, table ) {
        traverse( table, MatAttrSettingAndPlanStrategyDataRow, row ) {
          MatAttrSettingAndPlanStrategy::Update( this.GlobalOTDTable(), row, this.UserName() );
          MatAttrSettingAndPlanStrategy::Update( this.GlobalOTDSOP(), row, this.UserName() );
        }  
      }  
    }
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Upload (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  String filePath,
  String base64Str,
  String userName
@@ -9,15 +9,15 @@
{
  TextBody:
  [*
    globalOTDTable.MatAttrSettingAndPlanStrategyInputSource( relflush );
    globalOTDSOP.MatAttrSettingAndPlanStrategyInputSource( relflush );
    
    fileName := filePath.Tokenize( "\" ).Element( filePath.Tokenize( "\" ).Size() - 1 );
    
    inputSource := globalOTDTable.MatAttrSettingAndPlanStrategyInputSource( relnew,
                                                                            FileName  := fileName,
                                                                            Base64Str := base64Str,
                                                                            IsXlsx    := fileName.EndsWith( "xlsx" ),
                                                                            UserName  := userName );
    inputSource := globalOTDSOP.MatAttrSettingAndPlanStrategyInputSource( relnew,
                                                                          FileName  := fileName,
                                                                          Base64Str := base64Str,
                                                                          IsXlsx    := fileName.EndsWith( "xlsx" ),
                                                                          UserName  := userName );
    
    return inputSource;
  *]
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_CreateIfNotExist.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateIfNotExist (
  GlobalOTDTable parent,
  GlobalOTDSOP parent,
  Number serialNumber,
  String businessType,
  String matCode,
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_DeleteIfExistByMatCode#526.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DeleteIfExistByMatCode (
  GlobalOTDTable parent,
  GlobalOTDSOP parent,
  Strings matCode
)
{
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_GetByMatCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetByMatCode (
  const GlobalOTDSOP parent,
  String matCode
) as const MatAttrSettingAndPlanStrategy
{
  Description: '获取无法修改的'
  TextBody:
  [*
    // yypsybs Oct-17-2023 (created)
    value := select( parent, MatAttrSettingAndPlanStrategy, item, true, matCode = item.MatCode() );
    return value;
  *]
}
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_SynchronizeInventoryTargets.qbl
@@ -1,13 +1,13 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeInventoryTargets (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    traverse ( globalOTDTable, MatAttrSettingAndPlanStrategy, masaps ) {
    traverse ( globalOTDSOP, MatAttrSettingAndPlanStrategy, masaps ) {
      hasMaxLevel := masaps.MaximumNumberOfDaysInInventory() <> 0;
      product_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = masaps.MatCode() );
      if ( not isnull( product_MP ) ) {
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DeleteIfExistByMatCode (
  GlobalOTDTable parent,
  GlobalOTDSOP parent,
  String matCode
)
{
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetExistByMatCode (
  GlobalOTDTable parent,
  GlobalOTDSOP parent,
  String matCode
) as MatAttrSettingAndPlanStrategy
{
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Update (
  GlobalOTDTable parent,
  GlobalOTDSOP parent,
  MatAttrSettingAndPlanStrategyDataRow excelRow,
  String userName
) as MatAttrSettingAndPlanStrategy
_Main/BL/Type_PRData/Method_DoCall.qbl
@@ -1,7 +1,8 @@
Quintiq file version 2.0
#parent: #root
Method DoCall (
  GlobalOTDTable globalData,
  const GlobalOTDTable globalData,
  GlobalOTDSOP otdSop,
  String callBy
) as PRHistoryData
{
@@ -9,7 +10,7 @@
  TextBody:
  [*
    // yypsybs Sep-11-2023 (created)
    result := globalData.PRHistoryData( relnew );
    result := otdSop.PRHistoryData( relnew );
    
    // ç…§æ¬éƒ¨åˆ†
    result.AuthorizationStatus( this.AuthorizationStatus() );
_Main/BL/Type_PRData/Method_PrintCall.qbl
@@ -1,14 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method PrintCall (
  GlobalOTDTable globalData,
  const GlobalOTDTable globalData,
  GlobalOTDSOP otdSop,
  String callBy
) as String
{
  TextBody:
  [*
    // yypsybs Sep-11-2023 (created)
    result := globalData.PRHistoryData( relnew );
    result := otdSop.PRHistoryData( relnew );
    
    // ç…§æ¬éƒ¨åˆ†
    result.AuthorizationStatus( this.AuthorizationStatus() );
_Main/BL/Type_PRData/StaticMethod_DoCall.qbl
@@ -1,7 +1,8 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DoCall (
  GlobalOTDTable globalData,
  const GlobalOTDTable globalData,
  GlobalOTDSOP otdSop,
  PRDatas toCalls,
  String callBy
)
@@ -13,7 +14,7 @@
    nowNo := 1;
    traverse( toCalls, Elements, toCall, toCall.PRReleaseStatus() = "" ) {
      info ( "DoCall " + [String]nowNo + "/" + [String]toCalls.Size() + " PR" );
      toCall.DoCall( globalData, callBy );
      toCall.DoCall( globalData, otdSop, callBy );
      nowNo := nowNo + 1;
    }
  *]
_Main/BL/Type_PRData/StaticMethod_Export#346.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,209 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
  PRDatas toExportList
) as String
{
  TextBody:
  [*
    // generate by generate_export_method.py
    xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?>
    <table>
      <name>PRData</name>
    ';
    convDateToString := DateToString::StandardConverter();
    convDateToString.SetCustomConversion();
    convDateToString.CustomFormatString( 'yyyy-MM-dd' );
    debuginfo( "export start" );
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>物料编码</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      productID := toExportItem.ProductID();
      cellStr := '<cell value="' + productID + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>物料名称</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      productName := toExportItem.ProductName();
      cellStr := '<cell value="' + productName + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>面板物料标识</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      isPanelMaterial := toExportItem.IsPanelMaterial();
      cellStr := '<cell value="' + isPanelMaterial + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>交货日期</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      deliveryDate := toExportItem.DeliveryDate();
      cellStr := '<cell value="' + ifexpr( deliveryDate = Date::MinDate(), "", convDateToString.Convert( deliveryDate )) + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>PR建议日期</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      pRSuggestionDate := toExportItem.PRSuggestionDate();
      cellStr := '<cell value="' + ifexpr( pRSuggestionDate = Date::MinDate(), "", convDateToString.Convert( pRSuggestionDate )) + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>交货数量</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      quantity := toExportItem.Quantity();
      cellStr := '<cell value="' + [String]quantity + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>MRP计算版本号</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      mRPCalverNo := toExportItem.MRPCalverNo();
      cellStr := '<cell value="' + mRPCalverNo + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>业务类型</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      businessType := toExportItem.BusinessType();
      cellStr := '<cell value="' + businessType + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>组织编码</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      organCode := toExportItem.OrganCode();
      cellStr := '<cell value="' + organCode + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>是否长周期</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      isLongLeadItem := toExportItem.IsLongLeadItem();
      cellStr := '<cell value="' + isLongLeadItem + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>是否专用料</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      isGenericMaterial := toExportItem.IsGenericMaterial();
      cellStr := '<cell value="' + isGenericMaterial + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>物料计划策略</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      materialMRPType := toExportItem.MaterialMRPType();
      cellStr := '<cell value="' + materialMRPType + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>提前期</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      leadTime := toExportItem.LeadTime();
      cellStr := '<cell value="' + [String]leadTime + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>供应商代码</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      providerCode := toExportItem.ProviderCode();
      cellStr := '<cell value="' + providerCode + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>供应商名称</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      providerName := toExportItem.ProviderName();
      cellStr := '<cell value="' + providerName + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>收货库存点</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      stockingPointID := toExportItem.StockingPointID();
      cellStr := '<cell value="' + stockingPointID + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>计量单位</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      unitOfMeasure := toExportItem.UnitOfMeasure();
      cellStr := '<cell value="' + unitOfMeasure + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>PR数据发送状态</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      pRReleaseStatus := toExportItem.PRReleaseStatus();
      cellStr := '<cell value="' + pRReleaseStatus + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>发送时间</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      createTimeString := toExportItem.CreateTimeString();
      cellStr := '<cell value="' + createTimeString + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>发送人</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      createBy := toExportItem.CreateBy();
      cellStr := '<cell value="' + createBy + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    xmlTemplate := xmlTemplate + "</table>";
    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) );
    XLS::SaveTable( tableHandle, OS::TempPath() + "PRData.xlsx" );
    file := OSFile::Construct();
    file.Open( OS::TempPath() + "PRData.xlsx", "Read", true );
    data := file.ReadBinary()
    debuginfo( "export end" );
    return data.AsBase64EncodedString();
  *]
}
_Main/BL/Type_PRData/StaticMethod_Export.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
  MacroPlan parent
) as String
{
  TextBody:
  [*
    // generate by generate_export_method.py
    toExportList := selectset( parent, PRData, item, true );
    return PRData::Export( toExportList );
  *]
}
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream#595.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning#662.qbl
@@ -1,7 +1,8 @@
Quintiq file version 2.0
#parent: #root
StaticMethod FromSupplyPlanning (
  GlobalOTDTable otdTable,
  const GlobalOTDTable otdTable,
  const GlobalOTDSOP otdSop,
  MacroPlan macroPlan,
  ProductInStockingPointInPeriod pispip,
  String userId
@@ -22,7 +23,9 @@
    mappingOperation := Global_MappingOperation::GetByProductId( otdTable, product.ID() );
    // QID15
    mappingProviderCapacity := Global_MappingProviderCapacity::GetByProductId( otdTable, product.ID() );
    matAttrSetting := MatAttrSettingAndPlanStrategy::GetExistByMatCode( otdTable, product.ID() );
    // ç‰©æ–™æ ‡ç­¾å±žæ€§
    matAttrSetting := MatAttrSettingAndPlanStrategy::GetByMatCode( otdSop, product.ID() )
    
    // æ ¹æ®pispip
    result.MRPCalverNo( ifexpr( pispip.MRPCalverNo() = "", "暂无", pispip.MRPCalverNo() ) );
_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl
@@ -1,7 +1,8 @@
Quintiq file version 2.0
#parent: #root
StaticMethod FromSupplyPlanning (
  GlobalOTDTable otdTable,
  const GlobalOTDTable otdTable,
  const GlobalOTDSOP otdSop,
  MacroPlan macroPlan,
  String mrpCalverNo,
  String userId
@@ -14,10 +15,15 @@
    // æŒ‰MRPCalverNo查,已有旧记录时不处理
    oldRecords := selectset( macroPlan, PRData, item,
                             item.MRPCalverNo() = mrpCalverNo );
    nowNo := 1;
    if( isnull( oldRecords ) or oldRecords.Size() = 0 ) {
      pispips := ProductInStockingPointInPeriod::GetByMRPCalverNo( macroPlan, mrpCalverNo );
      traverse( pispips, Elements, item, item.NewSupplyQuantity() > 0 ) {
        PRData::FromSupplyPlanning( otdTable, macroPlan, item, userId );
        PRData::FromSupplyPlanning( otdTable, otdSop, macroPlan, item, userId );
        nowNo := nowNo + 1;
        if( nowNo mod 1000 = 0 ) {
          info( "SupplyPlanning to prData : " + [String]nowNo );
        }
      }
    }
  *]
_Main/BL/Type_PRHistoryData/Method_PrintCall.qbl
@@ -7,7 +7,7 @@
  TextBody:
  [*
    // yypsybs Sep-20-2023 (created)
    result := this.GlobalOTDTable().PRHistoryData( relcopy, this );
    result := this.GlobalOTDSOP().PRHistoryData( relcopy, this );
    
    // æ›´æ–°éƒ¨åˆ†
    result.PRDataReleaseDate( Date::Today() );
_Main/BL/Type_PRHistoryData/Method_Recall.qbl
@@ -8,7 +8,7 @@
  TextBody:
  [*
    // yypsybs Sep-11-2023 (created)
    result := this.GlobalOTDTable().PRHistoryData( relcopy, this );
    result := this.GlobalOTDSOP().PRHistoryData( relcopy, this );
    
    // æ›´æ–°éƒ¨åˆ†
    result.PRDataReleaseDate( Date::Today() );
_Main/BL/Type_PRHistoryData/StaticMethod_Export#527.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,199 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
  PRHistoryDatas toExportList
) as String
{
  TextBody:
  [*
    // generate by generate_export_method.py
    xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?>
    <table>
      <name>PRHistoryData</name>
    ';
    convDateToString := DateToString::StandardConverter();
    convDateToString.SetCustomConversion();
    convDateToString.CustomFormatString( 'yyyy-MM-dd' );
    debuginfo( "export start" );
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>物料编码</name><type>String</type>";
    debuginfo( "export column ProductID" );
    traverse( toExportList, Elements, toExportItem ) {
      productID := toExportItem.ProductID();
      cellStr := '<cell value="' + productID + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>物料名称</name><type>String</type>";
    debuginfo( "export column ProductName" );
    traverse( toExportList, Elements, toExportItem ) {
      productName := toExportItem.ProductName();
      cellStr := '<cell value="' + productName + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>交货日期</name><type>String</type>";
    debuginfo( "export column DeliveryDate" );
    traverse( toExportList, Elements, toExportItem ) {
      deliveryDate := toExportItem.DeliveryDate();
      cellStr := '<cell value="' + ifexpr( deliveryDate = Date::MinDate(), "", convDateToString.Convert( deliveryDate )) + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>交货数量</name><type>String</type>";
    debuginfo( "export column Quantity" );
    traverse( toExportList, Elements, toExportItem ) {
      quantity := toExportItem.Quantity();
      cellStr := '<cell value="' + [String]quantity + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>MRP计算版本号</name><type>String</type>";
    debuginfo( "export column MRPCalverNo" );
    traverse( toExportList, Elements, toExportItem ) {
      mRPCalverNo := toExportItem.MRPCalverNo();
      cellStr := '<cell value="' + mRPCalverNo + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>业务类型</name><type>String</type>";
    debuginfo( "export column BusinessType" );
    traverse( toExportList, Elements, toExportItem ) {
      businessType := toExportItem.BusinessType();
      cellStr := '<cell value="' + businessType + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>组织编码</name><type>String</type>";
    debuginfo( "export column OrganCode" );
    traverse( toExportList, Elements, toExportItem ) {
      organCode := toExportItem.OrganCode();
      cellStr := '<cell value="' + organCode + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>供应商代码</name><type>String</type>";
    debuginfo( "export column ProviderCode" );
    traverse( toExportList, Elements, toExportItem ) {
      providerCode := toExportItem.ProviderCode();
      cellStr := '<cell value="' + providerCode + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>供应商名称</name><type>String</type>";
    debuginfo( "export column ProviderName" );
    traverse( toExportList, Elements, toExportItem ) {
      providerName := toExportItem.ProviderName();
      cellStr := '<cell value="' + providerName + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>收货库存点</name><type>String</type>";
    debuginfo( "export column StockingPointID" );
    traverse( toExportList, Elements, toExportItem ) {
      stockingPointID := toExportItem.StockingPointID();
      cellStr := '<cell value="' + stockingPointID + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>计量单位</name><type>String</type>";
    debuginfo( "export column UnitOfMeasure" );
    traverse( toExportList, Elements, toExportItem ) {
      unitOfMeasure := toExportItem.UnitOfMeasure();
      cellStr := '<cell value="' + unitOfMeasure + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>PR数据发送状态</name><type>String</type>";
    debuginfo( "export column SendStatus" );
    traverse( toExportList, Elements, toExportItem ) {
      sendStatus := toExportItem.SendStatus();
      cellStr := '<cell value="' + sendStatus + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>发送时间</name><type>String</type>";
    debuginfo( "export column SendTimeString" );
    traverse( toExportList, Elements, toExportItem ) {
      sendTimeString := toExportItem.SendTimeString();
      cellStr := '<cell value="' + sendTimeString + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>发送人</name><type>String</type>";
    debuginfo( "export column ReleaseBy" );
    traverse( toExportList, Elements, toExportItem ) {
      releaseBy := toExportItem.ReleaseBy();
      cellStr := '<cell value="' + releaseBy + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>ERP接收时间</name><type>String</type>";
    debuginfo( "export column ReceiveTimeString" );
    traverse( toExportList, Elements, toExportItem ) {
      receiveTimeString := toExportItem.ReceiveTimeString();
      cellStr := '<cell value="' + receiveTimeString + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>ERP接收状态</name><type>String</type>";
    debuginfo( "export column ReceiveStatus" );
    traverse( toExportList, Elements, toExportItem ) {
      receiveStatus := toExportItem.ReceiveStatus();
      cellStr := '<cell value="' + receiveStatus + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>错误信息描述</name><type>String</type>";
    debuginfo( "export column ReceiveError" );
    traverse( toExportList, Elements, toExportItem ) {
      receiveError := toExportItem.ReceiveError();
      cellStr := '<cell value="' + receiveError.ReplaceAll( '"', "'" ) + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    xmlTemplate := xmlTemplate + "</table>";
    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) );
    XLS::SaveTable( tableHandle, OS::TempPath() + "PRHistoryData.xlsx" );
    file := OSFile::Construct();
    file.Open( OS::TempPath() + "PRHistoryData.xlsx", "Read", true );
    data := file.ReadBinary()
    debuginfo( "export end" );
    return data.AsBase64EncodedString();
  *]
}
_Main/BL/Type_PRHistoryData/StaticMethod_Export.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
  GlobalOTDSOP parent
) as String
{
  TextBody:
  [*
    // generate by generate_export_method.py
    toExportList := selectset( parent, PRHistoryData, item, true );
    return PRHistoryData::Export( toExportList );
  *]
}
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream#45.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_PanelMaterialAutomotiveElectronics/StaticMethod_ReceiveDataGeneration.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ReceiveDataGeneration (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  NamedValueTree requestnvt
)
{
@@ -25,15 +25,15 @@
    businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
    scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
    
    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    panelMaterialAll := select( globalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    if ( not isnull( panelMaterialAll ) ) {
      panelMaterialAll.Delete();
    }
    panelMaterialAll := globalOTDTable.PanelMaterialAll( relnew,
                                                         ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                         BusinessType := businessTypeNameValue.GetValueAsString(),
                                                         ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                        );
    panelMaterialAll := globalOTDSOP.PanelMaterialAll( relnew,
                                                       ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                       BusinessType := businessTypeNameValue.GetValueAsString(),
                                                       ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                      );
    
    panelMaterialsHandle := requestnvt.GetHandle( "panelMaterials" );
    panelMaterialsNameValue := restPayloadNameValue.Child( panelMaterialsHandle );
_Main/BL/Type_PanelMaterialIT/StaticMethod_ReceiveDataGeneration.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ReceiveDataGeneration (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  NamedValueTree requestnvt
)
{
@@ -25,15 +25,15 @@
    businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
    scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
    
    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    panelMaterialAll := select( globalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    if ( not isnull( panelMaterialAll ) ) {
      panelMaterialAll.Delete();
    }
    panelMaterialAll := globalOTDTable.PanelMaterialAll( relnew,
                                                         ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                         BusinessType := businessTypeNameValue.GetValueAsString(),
                                                         ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                        );
    panelMaterialAll := globalOTDSOP.PanelMaterialAll( relnew,
                                                       ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                       BusinessType := businessTypeNameValue.GetValueAsString(),
                                                       ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                      );
    
    panelMaterialsHandle := requestnvt.GetHandle( "panelMaterials" );
    panelMaterialsNameValue := restPayloadNameValue.Child( panelMaterialsHandle );
_Main/BL/Type_PanelMaterialSpecializedDisplay/StaticMethod_ReceiveDataGeneration.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ReceiveDataGeneration (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  NamedValueTree requestnvt
)
{
@@ -25,15 +25,15 @@
    businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
    scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
    
    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    panelMaterialAll := select( globalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    if ( not isnull( panelMaterialAll ) ) {
      panelMaterialAll.Delete();
    }
    panelMaterialAll := globalOTDTable.PanelMaterialAll( relnew,
                                                         ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                         BusinessType := businessTypeNameValue.GetValueAsString(),
                                                         ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                        );
    panelMaterialAll := globalOTDSOP.PanelMaterialAll( relnew,
                                                       ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                       BusinessType := businessTypeNameValue.GetValueAsString(),
                                                       ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                      );
    
    panelMaterialsHandle := requestnvt.GetHandle( "panelMaterials" );
    panelMaterialsNameValue := restPayloadNameValue.Child( panelMaterialsHandle );
_Main/BL/Type_PanelMaterialSportsHealth/StaticMethod_ReceiveDataGeneration.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ReceiveDataGeneration (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  NamedValueTree requestnvt
)
{
@@ -25,15 +25,15 @@
    businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
    scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
    
    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    panelMaterialAll := select( globalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    if ( not isnull( panelMaterialAll ) ) {
      panelMaterialAll.Delete();
    }
    panelMaterialAll := globalOTDTable.PanelMaterialAll( relnew,
                                                         ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                         BusinessType := businessTypeNameValue.GetValueAsString(),
                                                         ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                        );
    panelMaterialAll := globalOTDSOP.PanelMaterialAll( relnew,
                                                       ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                       BusinessType := businessTypeNameValue.GetValueAsString(),
                                                       ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                      );
    
    panelMaterialsHandle := requestnvt.GetHandle( "panelMaterials" );
    panelMaterialsNameValue := restPayloadNameValue.Child( panelMaterialsHandle );
_Main/BL/Type_PanelMaterialTM17/StaticMethod_ReceiveDataGeneration.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ReceiveDataGeneration (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  NamedValueTree requestnvt
)
{
@@ -25,15 +25,15 @@
    businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
    scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
    
    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    panelMaterialAll := select( globalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    if ( not isnull( panelMaterialAll ) ) {
      panelMaterialAll.Delete();
    }
    panelMaterialAll := globalOTDTable.PanelMaterialAll( relnew,
                                                         ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                         BusinessType := businessTypeNameValue.GetValueAsString(),
                                                         ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                        );
    panelMaterialAll := globalOTDSOP.PanelMaterialAll( relnew,
                                                       ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                       BusinessType := businessTypeNameValue.GetValueAsString(),
                                                       ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                      );
    
    panelMaterialsHandle := requestnvt.GetHandle( "panelMaterials" );
    panelMaterialsNameValue := restPayloadNameValue.Child( panelMaterialsHandle );
_Main/BL/Type_PanelMaterialTM18/StaticMethod_ReceiveDataGeneration.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ReceiveDataGeneration (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  NamedValueTree requestnvt
)
{
@@ -25,15 +25,15 @@
    businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
    scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
    
    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    panelMaterialAll := select( globalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    if ( not isnull( panelMaterialAll ) ) {
      panelMaterialAll.Delete();
    }
    panelMaterialAll := globalOTDTable.PanelMaterialAll( relnew,
                                                         ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                         BusinessType := businessTypeNameValue.GetValueAsString(),
                                                         ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                        );
    panelMaterialAll := globalOTDSOP.PanelMaterialAll( relnew,
                                                       ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                       BusinessType := businessTypeNameValue.GetValueAsString(),
                                                       ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                      );
    
    panelMaterialsHandle := requestnvt.GetHandle( "panelMaterials" );
    panelMaterialsNameValue := restPayloadNameValue.Child( panelMaterialsHandle );
_Main/BL/Type_PanelMaterialTianHua/StaticMethod_ReceiveDataGeneration.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ReceiveDataGeneration (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  NamedValueTree requestnvt
)
{
@@ -25,15 +25,15 @@
    businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
    scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
    
    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    panelMaterialAll := select( globalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    if ( not isnull( panelMaterialAll ) ) {
      panelMaterialAll.Delete();
    }
    panelMaterialAll := globalOTDTable.PanelMaterialAll( relnew,
                                                         ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                         BusinessType := businessTypeNameValue.GetValueAsString(),
                                                         ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                        );
    panelMaterialAll := globalOTDSOP.PanelMaterialAll( relnew,
                                                       ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                       BusinessType := businessTypeNameValue.GetValueAsString(),
                                                       ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                      );
    
    panelMaterialsHandle := requestnvt.GetHandle( "panelMaterials" );
    panelMaterialsNameValue := restPayloadNameValue.Child( panelMaterialsHandle );
_Main/BL/Type_PanelMaterialVehicle/StaticMethod_ReceiveDataGeneration.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ReceiveDataGeneration (
  GlobalOTDTable globalOTDTable,
  GlobalOTDSOP globalOTDSOP,
  NamedValueTree requestnvt
)
{
@@ -25,15 +25,15 @@
    businessTypeNameValue := restPayloadNameValue.Child( businessTypeHandle );
    scenarioNameNameValue := restPayloadNameValue.Child( scenarioNameHandle );
    
    panelMaterialAll := select( globalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    panelMaterialAll := select( globalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = businessTypeNameValue.GetValueAsString() );
    if ( not isnull( panelMaterialAll ) ) {
      panelMaterialAll.Delete();
    }
    panelMaterialAll := globalOTDTable.PanelMaterialAll( relnew,
                                                         ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                         BusinessType := businessTypeNameValue.GetValueAsString(),
                                                         ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                        );
    panelMaterialAll := globalOTDSOP.PanelMaterialAll( relnew,
                                                       ReleaseDate  := releaseDateNameValue.GetValueAsString(),
                                                       BusinessType := businessTypeNameValue.GetValueAsString(),
                                                       ScenarioName := scenarioNameNameValue.GetValueAsString()
                                                      );
    
    panelMaterialsHandle := requestnvt.GetHandle( "panelMaterials" );
    panelMaterialsNameValue := restPayloadNameValue.Child( panelMaterialsHandle );
_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl
@@ -5,7 +5,7 @@
  CustomerOrder customerOrder,
  String businessType,
  MacroPlan macroPlan,
  GlobalOTDTable globalOTDTable
  const GlobalOTDTable globalOTDTable
) as Real
{
  Description: '计算公式中括号内的数据'
_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl
@@ -6,7 +6,7 @@
  String businessType,
  MacroPlan macroPlan,
  Real lastScore,
  GlobalOTDTable globalOTDTable
  const GlobalOTDTable globalOTDTable
) as Real
{
  TextBody:
_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl
@@ -4,7 +4,7 @@
  CustomerOrder customerOrder,
  String formula,
  MacroPlan macroPlan,
  GlobalOTDTable globalOTDTable
  const GlobalOTDTable globalOTDTable
) as Real
{
  TextBody:
_Main/BL/Type_SalesSegment_MP/StaticMethod_DoASync.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DoASync (
  MacroPlan macroPlan,
  Strings businessTypes,
  const GlobalOTDTable globalOTDTable
)
{
  TextBody:
  [*
    // yypsybs Aug-17-2023 (created)
    //info( "UnitOfMeasure_MP Finished, Start Sales Segment Data Broker" )
    //macroPlan.Broker_OTD_SalesSegment().Execute();
    info( "Sales Segment Data Broker Finished, Start Sales Segment Mapping" )
    macroPlan.DoASyncMappingSalesSegmentData( businessTypes,globalOTDTable );
  *]
}
_Main/BL/Type_UnitOfMeasure_MP/StaticMethod_DoASync.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DoASync (
  const GlobalOTDTable globalotdtable,
  MacroPlan macroplan
)
{
  Description: '单次同步'
  TextBody:
  [*
    // yypsybs Aug-17-2023 (created)
    //info( "Inital Finished, Start UnitOfMeasure_MP Data Broker" )
    //macroPlan.Broker_OTD_UnitOfMeasure().Execute();
    info( "UnitOfMeasure_MP Data Broker Finished, Start UnitOfMeasure_MP Mapping" )
    macroplan.DoASyncMappingUnitOfMeasureData(globalotdtable);
  *]
}
_Main/BL/Type_VersionControl/StaticMethod_CopyVersion.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CopyVersion (
  GlobalOTDTable owner,
  GlobalOTDSOP owner,
  String businessname
) as VersionControl
{
_Main/BL/Type_VersionControl/StaticMethod_Create.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  GlobalOTDTable owner,
  GlobalOTDSOP owner,
  String businesstype,
  String caltype,
  DateTime createtime,
_Main/BL/Type_VersionControl/StaticMethod_CreateNewSceneVersion.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateNewSceneVersion (
  GlobalOTDTable owner,
  GlobalOTDSOP owner,
  String businessname
) as VersionControl
{
_Main/BL/Type_VersionControl/StaticMethod_CreateNewVersion.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateNewVersion (
  GlobalOTDTable owner,
  GlobalOTDSOP owner,
  String businessname
) as VersionControl
{
_Main/BL/Type_VersionControl/StaticMethod_FindByFullVersionID.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod FindByFullVersionID (
  GlobalOTDTable owner,
  GlobalOTDSOP owner,
  String versionid
) as VersionControl
{
_Main/BL/Type_VersionControl/StaticMethod_FindLatestUpdateVersion.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod FindLatestUpdateVersion (
  GlobalOTDTable globalotdtable,
  GlobalOTDSOP globalotdsop,
  String businesstype
) as VersionControl
{
@@ -11,7 +11,7 @@
    // Administrator Sep-13-2023 (created)
    
    // Get the latest version data 
    latestversion := maxselect( globalotdtable,
    latestversion := maxselect( globalotdsop,
                                VersionControl, 
                                version, 
                                version.BusinessType()=businesstype and version.IsReleased()=true, 
_Main/BL/Type_VersionControl/StaticMethod_FindLatestVersion.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod FindLatestVersion (
  GlobalOTDTable globalotdtable,
  GlobalOTDSOP globalotdsop,
  String businesstype
) as VersionControl
{
@@ -11,7 +11,7 @@
    // Administrator Sep-13-2023 (created)
    
    // Get the latest version data 
    latestversion := maxselect( globalotdtable,
    latestversion := maxselect( globalotdsop,
                                VersionControl, 
                                version, 
                                version.BusinessType()=businesstype, 
_Main/BL/Type_VersionControl/StaticMethod_FindReleasedVersions.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod FindReleasedVersions (
  GlobalOTDTable globalotdtable,
  GlobalOTDSOP globalotdsop,
  String businesstype,
  String versionid
) as owning VersionControls
@@ -12,7 +12,10 @@
    // Administrator Sep-13-2023 (created)
    
    // Get the latest version data 
    latestversion := selectset( globalotdtable, VersionControl, version, version.BusinessType()=businesstype and version.IsReleased()=true and version.VersionID().FindString( versionid, 0 ) = 0 );
    latestversion := selectset( globalotdsop,
                                VersionControl,
                                version,
                                version.BusinessType()=businesstype and version.IsReleased()=true and version.VersionID().FindString( versionid, 0 ) = 0 );
    
    return &latestversion;
  *]
_Main/BL/Type_VersionControl/StaticMethod_GetVersionInfo.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetVersionInfo (
  GlobalOTDTable owner,
  GlobalOTDSOP owner,
  String businessname
) as owning Strings
{
@@ -9,9 +9,9 @@
  TextBody:
  [*
    // Administrator Sep-13-2023 (created)
    businesstyoe := GlobalOTDTable::GetBusinessTypeName( businessname );
    businesstype := GlobalOTDTable::GetBusinessTypeName( businessname );
    result := construct( Strings );
    rootversion := VersionControl::FindLatestVersion( owner, businesstyoe );
    rootversion := VersionControl::FindLatestVersion( owner, businesstype );
    
    if( not isnull( rootversion ) ){
      result.Add( rootversion.VersionID() );
_Main/BL/Type_VersionControl/StaticMethod_ReleaseNewVersion.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ReleaseNewVersion (
  GlobalOTDTable owner,
  GlobalOTDSOP owner,
  String businesstype
)
{
_Main/BL/Type_VersionStatus/StaticMethod_CreateOrUpdate.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateOrUpdate (
  GlobalOTDTable owner,
  GlobalOTDSOP owner,
  String businesstype,
  String businessname,
  DateTime lastreleasetime,
_Main/BL/Type_VersionStatus/StaticMethod_FindLatestStatus.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod FindLatestStatus (
  GlobalOTDTable globalotdtable,
  GlobalOTDSOP globalotdsop,
  String businesstype
) as VersionStatus
{
@@ -11,7 +11,7 @@
    // Administrator Sep-13-2023 (created)
    
    // Get the latest version data 
    lateststatus := select( globalotdtable, VersionStatus, version, version.BusinessType()=businesstype );
    lateststatus := select( globalotdsop, VersionStatus, version, version.BusinessType()=businesstype );
    
    return lateststatus;
  *]
_Main/BL/Type_VersionStatus/StaticMethod_GetBusinessTypeStatus.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetBusinessTypeStatus (
  GlobalOTDTable owner,
  GlobalOTDSOP owner,
  String rootversionid
)
{
_Main/BL/Type_YuxTest/Attribute_TestBoolean.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_YuxTest/Attribute_TestDate.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_YuxTest/Attribute_TestDateTime.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_YuxTest/Attribute_TestNumber.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_YuxTest/Attribute_TestReal.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_YuxTest/Attribute_TestString.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_YuxTest/StaticMethod_Export.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_YuxTest/StaticMethod_ExportTest#887.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_YuxTest/_ROOT_Type_YuxTest.qbl
ÎļþÒÑɾ³ý
_Main/Sys/ImgAttr/DataDistributionLog.dme
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
Quintiq file version 2.0
#parent: #root
TypeDataInterface DataDistributionLog
{
  TypeKey: '[414702.1.153774695]'
  ImageDataMember ImgExecuteStatus
  {
    #keys: '1[414702.1.154090897]'
    ImageSpecifications:
    [
      ImageDataMemberImageSpecification
      {
        Image: 'MEDIA_PLAY_GREEN'
        Quill: 'object.ExecuteStatus() = "Running"'
        Value: 'Running'
      }
      ImageDataMemberImageSpecification
      {
        Image: 'CHECK'
        Quill: 'object.ExecuteStatus() = "Success"'
        Value: 'Success'
      }
      ImageDataMemberImageSpecification
      {
        Image: 'DELETE2'
        Quill: 'object.ExecuteStatus() = "Error"'
        Value: 'Error'
      }
    ]
  }
}
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Response_SelectionScenario_OnSelectionChanged.def
@@ -6,9 +6,6 @@
  [*
    // Select a secnario, will also be triggered when scenario is activated via scn mgr list
    
    macroPlanOld := MacroPlan;
    info( "SelectionScenario.OnSelectionCHanged  macroPlanOld : " + [String]macroPlanOld.MDSID() )
    ApplicationLibMacroPlanner.SelectScenarioReadOnly( SelectionScenario.Data() );
    
    // Set active scenario on form
@@ -18,9 +15,5 @@
    {
      ApplicationLibMacroPlanner.ComponentMDS_SelectInstance( frm, SelectionScenario.Data() );
    }
    macroPlanNew := MacroPlan;
    info( "SelectionScenario.OnSelectionCHanged  macroPlanNew : " + [String]macroPlanOld.MDSID() )
    ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew );
  *]
}
_Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New#221.def
@@ -2,7 +2,7 @@
#parent: #root
Method New (
  internal[GUIComponent] parent,
  shadow[MacroPlan] owner
  shadow[GlobalOTDSOP] owner
) as shadow[ManufactureLTImputation] id:Method_DialogManufactureLTImputation_New_221
{
  #keys: '[414384.0.703976688]'
_Main/UI/MacroPlanner/Component_DialogManufactureLTImputation/Method_New.def
@@ -2,7 +2,7 @@
#parent: #root
Method New (
  internal[GUIComponent] parent,
  MacroPlan owner
  GlobalOTDSOP owner
) as ManufactureLTImputation id:Method_DialogManufactureLTImputation_New
{
  #keys: '[414384.0.703976686]'
_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Component_ListManufactureLTImputation.def
@@ -66,7 +66,7 @@
      BaseType: 'GUIDataSetLevel'
      Properties:
      [
        Columns: 'ManufactureLTImputationColumns'
        Columns: 'MacroPlanColumns'
        DataExtractor: 'GUIDataExtractor689'
        PosX: 35
        PosY: 30
_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuApplyManufactureLTImputation_OnClic.def
@@ -8,7 +8,7 @@
  Body:
  [*
    // Delete a ManufactureLTImputation
    ManufactureLTImputation::Apply( selection );
    ManufactureLTImputation::Apply( selection, MacroPlan );
  *]
  DefinitionID => /ListManufactureLTImputation/Responsedef_ListManufactureLTImputation_Menu_OnClick
  Initiator: 'MenuApplyManufactureLTImputation'
_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTImputation_MenuRefreshManufactureLTImputation_OnCl.def
@@ -7,7 +7,7 @@
  #keys: '[414384.0.720985420]'
  Body:
  [*
    ManufactureLTImputation::Refresh( selection );
    ManufactureLTImputation::Refresh( selection, MacroPlan );
  *]
  CanBindMultiple: false
  DefinitionID => /ListManufactureLTImputation/Responsedef_ListManufactureLTImputation_Menu_OnClick
_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuApplyManufactureLTProcessSe#444.def
@@ -8,7 +8,7 @@
  Body:
  [*
    // Delete a ManufactureLTProcessSection
    ManufactureLTProcessSection::Apply( selection );
    ManufactureLTProcessSection::Apply( selection, MacroPlan );
  *]
  DefinitionID => /ListManufactureLTProcessSection/Responsedef_ListManufactureLTProcessSection_Menu_OnClick
  Initiator: 'MenuApplyManufactureLTProcessSection'
_Main/UI/MacroPlanner/Component_FormManufactureLTImputation/Response_ListManufactureLTProcessSection_MenuRefreshManufactureLTProcessSect.def
@@ -7,7 +7,7 @@
  #keys: '[414384.0.720985521]'
  Body:
  [*
    ManufactureLTProcessSection::Refresh( selection );
    ManufactureLTProcessSection::Refresh( selection, MacroPlan );
  *]
  CanBindMultiple: false
  DefinitionID => /ListManufactureLTProcessSection/Responsedef_ListManufactureLTProcessSection_Menu_OnClick
_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def
@@ -9,7 +9,7 @@
    
    //CapacityAllocationResultsRuleConfiguration::AutomaticallyGenerateCapacityRules( GlobalOTDTable, MacroPlan );
    
    CapacityAllocationResults::Test( MacroPlan );
    CapacityAllocationResults::Test( MacroPlan, GlobalOTDTable );
  *]
  CanBindMultiple: false
  DefinitionID: 'Responsedef_GUIButtonBase_OnClick'
_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuFolderNewMacroPlan_OnClick.def
@@ -8,11 +8,6 @@
  [*
    // To be derived
    
    macroPlanOld := MacroPlan;
    if ( not isnull( macroPlanOld ) ) {
        info( "ListScrnario.MenuFolderNewMacroPlan.OnClick  macroPlanOld : " + [String]macroPlanOld.MDSID() );
    }
    // Create a new MP Scenario
    dlg := construct( ScenarioManager_DialogCreateEditMPScenario );
    
@@ -39,12 +34,6 @@
        ApplicationLibMacroPlanner.LaunchInitializationWizard( MacroPlan );
      }
    }
    macroPlanNew := MacroPlan;
    if ( not isnull( macroPlanNew ) ) {
        info( "ListScrnario.MenuFolderNewMacroPlan.OnClick  macroPlanNew : " + [String]macroPlanNew.MDSID() );
    }
    ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew );
  *]
  Precondition:
  [*
_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioNewMacroPlan_OnClick.def
@@ -8,12 +8,6 @@
  [*
    // To be derived - ScenarioMP
    
    macroPlanOld := MacroPlan;
    if ( not isnull( macroPlanOld ) ) {
        info( "ListScrnario.MenuScenarioNewMacroPlan.OnClick  macroPlanOld : " + [String]macroPlanOld.MDSID() );
    }
    // Create a new Scenario
    dlg := construct( ScenarioManager_DialogCreateEditMPScenario );
    parent := selection.Element( 0 ).Parent();
@@ -31,12 +25,6 @@
        ApplicationLibMacroPlanner.LaunchInitializationWizard( MacroPlan );
      }
    }
    macroPlanNew := MacroPlan;
    if ( not isnull( macroPlanNew ) ) {
        info( "ListScrnario.MenuScenarioNewMacroPlan.OnClick  macroPlanNew : " + [String]macroPlanNew.MDSID() );
    }
    ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew );
  *]
  Precondition:
  [*
_Main/UI/MacroPlanner/Component_ScenarioManager_FormScenario/Response_ListScenario_MenuScenarioSelect_OnClick.def
@@ -8,17 +8,7 @@
  [*
    // Select a scenario
    
    macroPlanOld := MacroPlan;
    if ( not isnull( macroPlanOld ) ) {
        info( "ListScrnario.MenuScenarioSelect.OnClick  macroPlanOld : " + [String]macroPlanOld.MDSID() );
    }
    Form.SelectScenario( selection );
    macroPlanNew := MacroPlan;
    if ( not isnull( macroPlanNew ) ) {
        info( "ListScrnario.MenuScenarioSelect.OnClick  macroPlanNew : " + [String]macroPlanNew.MDSID() );
    }
    ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew );
  *]
  Precondition:
  [*
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupScenarioSelection.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component ActionBarGroupScenarioSelection #extension
{
  Children:
  [
    #child: PanelScenarioSelection
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component ActionBarPageScenarioSelection #extension
{
  Children:
  [
    #child: ActionBarGroupScenarioSelection
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_PanelScenarioSelection.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
Component PanelScenarioSelection #extension
{
  Children:
  [
    Component DropDownListScenario id:DropDownListScenario_886 #extension
    {
      Children:
      [
        Component DataExtractorScenarios id:DataExtractorScenarios_484 #extension
        {
          Properties:
          [
            FilterArguments: 'availablescenarios:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderAvailableScenarios'
            FixedFilter: 'object.IsLoaded() and not object.IsDeleted() and availablescenarios.Find( object ) >= 0'
          ]
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def
@@ -23,7 +23,7 @@
      Properties:
      [
        Image: 'PIG'
        Taborder: 5
        Taborder: 6
        Title: '年度产销复盘'
      ]
    }
@@ -56,7 +56,7 @@
      Properties:
      [
        Separator: true
        Taborder: 4
        Taborder: 5
      ]
    }
    Component mnDockingERPForPRRelease
@@ -70,6 +70,17 @@
        Title: '对接ERP进行PR释放'
      ]
    }
    Component mnDataDistribution
    {
      #keys: '[414702.1.155392180]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'PALM_TREE'
        Taborder: 4
        Title: '数据分发'
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_DataHolderCurrentUser_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
#parent: DataHolderCurrentUser
Response OnDataChanged () id:Response_TIANMA_JITUAN_ApplicationMacroPlanner_DataHolderCurrentUser_OnDataChanged
{
  #keys: '[414702.1.131671499]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      user := QuintiqUser::CurrentUser();
      scenarionodes := construct( ScenarioNodes );
      if( user.IsAdministrator()
          or not exists( ScenarioManager, ScenarioNode.ScenarioAuthorization, sa, true ) )
      {
        scenarionodes := selectset( ScenarioManager, ScenarioNode, scenarionode, true );
      }
      else
      {
        scenarionodes := selectset( ScenarioManager, ScenarioNode, scenarionode,
                                    guard( scenarionode.astype( ScenarioFolder ).IsRecycleBin(), false )
                                    or scenarionode.CreatedBy().ToUpper() = user.ShortName().ToUpper()
                                    or exists( scenarionode, ScenarioAuthorization, sa,
                                               user.IsMemberOfGroup( sa.Name() ) ) );
      }
      DataHolderAvailableScenarios.Data( &scenarionodes );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnDataDistribution_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: cmTestAttempt/mnDataDistribution
Response OnClick () id:Response_TIANMA_JITUAN_cmTestAttempt_mnDataDistribution_OnClick
{
  #keys: '[414702.1.156607596]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "数据分发", true );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
@@ -14,6 +14,7 @@
        #child: applicationDevelopmentActionBarPageDef_1
        #child: ActionBarPagePlan
        #child: ActionBarPageInventory
        #child: ActionBarPageScenarioSelection
      ]
    }
    Component DataHolderCapacityAndSaleBudgeFilterItem
@@ -66,5 +67,18 @@
        Taborder: 44
      ]
    }
    Component DataHolderAvailableScenarios
    {
      #keys: '[414702.1.131690403]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[ScenarioNode]*'
      Properties:
      [
        Taborder: 45
      ]
    }
    Component DataHolderCurrentUser #extension
    {
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def
@@ -13,7 +13,7 @@
      [
        DataBinding: 'DataHolderDialogData.Data.PanelMaterialCode'
        Label: '面板物料编码'
        Taborder: 0
        Taborder: 2
      ]
    }
    Component efModuleMaterialCode
@@ -24,7 +24,7 @@
      [
        DataBinding: 'DataHolderDialogData.Data.ModuleMaterialCode'
        Label: '模板产成品ID'
        Taborder: 1
        Taborder: 0
      ]
    }
    Component efDivision
@@ -35,7 +35,7 @@
      [
        DataBinding: 'DataHolderDialogData.Data.Division'
        Label: '事业部'
        Taborder: 2
        Taborder: 3
      ]
    }
    Component efStockingPointID
@@ -46,7 +46,7 @@
      [
        DataBinding: 'DataHolderDialogData.Data.StockingPointID'
        Label: '模组产成品库存点ID'
        Taborder: 3
        Taborder: 1
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Method_New.def
@@ -5,7 +5,7 @@
  #keys: '[414702.0.375317354]'
  Body:
  [*
    capacityAllocationResultsRuleConfiguration := GlobalOTDTable.CapacityAllocationResultsRuleConfiguration( relshadow );
    capacityAllocationResultsRuleConfiguration := GlobalOTDSOP.CapacityAllocationResultsRuleConfiguration( relshadow );
    
    DataHolderDialogData.Data( &capacityAllocationResultsRuleConfiguration );
    
_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def
@@ -12,18 +12,20 @@
      
      data := DataHolderDialogData.Data().WrappedInstance();
      if ( isnull( data ) ) {
        GlobalOTDTable.CapacityAllocationResultsRuleConfiguration( relnew,
                                                                   PanelMaterialCode  := efPanelMaterialCode.Text(),
                                                                   ModuleMaterialCode := efModuleMaterialCode.Text(),
                                                                   Division           := efDivision.Text(),
                                                                   StockingPointID    := efStockingPointID.Text()
                                                                  );
        GlobalOTDSOP.CapacityAllocationResultsRuleConfiguration( relnew,
                                                                 PanelMaterialCode  := efPanelMaterialCode.Text(),
                                                                 ModuleMaterialCode := efModuleMaterialCode.Text(),
                                                                 Division           := efDivision.Text(),
                                                                 StockingPointID    := efStockingPointID.Text()
                                                                );
      } else {
        DataHolderDialogData.Data().PanelMaterialCode( efPanelMaterialCode.Text() );
        DataHolderDialogData.Data().ModuleMaterialCode( efModuleMaterialCode.Text() );
        DataHolderDialogData.Data().Division( efDivision.Text() );
        DataHolderDialogData.Data().StockingPointID( efStockingPointID.Text() );
        DataHolderDialogData.Data().Commit();
        data.Delete();
        GlobalOTDSOP.CapacityAllocationResultsRuleConfiguration( relnew,
                                                                 PanelMaterialCode  := efPanelMaterialCode.Text(),
                                                                 ModuleMaterialCode := efModuleMaterialCode.Text(),
                                                                 Division           := efDivision.Text(),
                                                                 StockingPointID    := efStockingPointID.Text()
                                                                );
      }
      
      
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Component_pnlContent.def
@@ -77,8 +77,8 @@
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'GlobalOTDTable'
            Source: 'GlobalOTDTable'
            DataType: 'GlobalOTDSOP'
            Source: 'GlobalOTDSOP'
            Taborder: 0
            Transformation: 'WorkOrderType'
          ]
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditIssueWorkOrder/Response_pnlContent_ddlWorkOrderType_OnCreated.def
@@ -10,11 +10,11 @@
    Body:
    [*
      if ( not isnull( DataHolderDialogData.Data() ) ) {
        targetWorkOrderType := select( GlobalOTDTable, WorkOrderType, tempWOT, tempWOT.TypeName() = DataHolderDialogData.Data().WorkOrderType() );
        targetWorkOrderType := select( GlobalOTDSOP, WorkOrderType, tempWOT, tempWOT.TypeName() = DataHolderDialogData.Data().WorkOrderType() );
        if ( not isnull( targetWorkOrderType ) ) {
          this.Data( targetWorkOrderType );
        } else {
          this.Data( select( GlobalOTDTable, WorkOrderType, tempWOT, true ) );
          this.Data( select( GlobalOTDSOP, WorkOrderType, tempWOT, true ) );
        }
      }
    *]
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral#549.def
@@ -39,18 +39,6 @@
        Taborder: 3
      ]
    }
    Component dropDownStringListGeneral
    {
      #keys: '[414384.0.692930324]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        AllowEmpty: true
        DataBinding: 'DataHolderDialogData.Data.ScenarioName'
        Label: 'Scenario Name'
        Taborder: 4
      ]
    }
    Component CheckboxIsCreateNewVersion
    {
      #keys: '[412960.0.157150313]'
@@ -62,5 +50,34 @@
        Taborder: 7
      ]
    }
    Component DropDownListGeneral
    {
      #keys: '[412960.0.324971441]'
      BaseType: 'WebDropDownList'
      Databinding: 'BusinessType'
      Children:
      [
        Component DataExtractorGeneral
        {
          #keys: '[412960.0.324971443]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'GlobalOTDTable'
            Description: '传入Business Type类进Dosync'
            Source: 'GlobalOTDTable'
            Taborder: 0
            Transformation: 'BusinessType'
          ]
        }
      ]
      Properties:
      [
        AllowEmpty: true
        DisplayField: 'ScenarioName'
        Label: 'Scenario Name'
        Taborder: 4
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_CopyScenario.def
@@ -20,7 +20,7 @@
    // do not distribute
    DataHolderDialogData.Data().EnableSync( false );
    checkboxEnableSync.Visible( false );
    dropDownStringListGeneral.Visible( false );
    DropDownListGeneral.Visible( false );
    checkboxIsKeyProduct.Visible( false );
    checkboxCreatePurchaseSupplyProduct.Visible( false );
    
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def
@@ -6,7 +6,7 @@
  [*
    // Disabled button to prevent the possibility of multiple firing
    
    macroPlanOld := MacroPlan;
    //macroPlanOld := MacroPlan;
    
    btnOK.Enabled( false, '' )
    
@@ -19,13 +19,14 @@
    
    // New version
    globalotdtable := GlobalOTDTable;
    globalotdsop := GlobalOTDSOP;
    testbusinesstype := "集团";
    if( data.IsCreateNewVersion() ){
      VersionControl::CreateNewSceneVersion( globalotdtable, testbusinesstype );
      VersionControl::CreateNewSceneVersion( globalotdsop, testbusinesstype );
      }else{
        VersionControl::CopyVersion( globalotdtable, testbusinesstype );
        VersionControl::CopyVersion( globalotdsop, testbusinesstype );
        }
    versionname := VersionControl::GetVersionInfo( globalotdtable, testbusinesstype ).Element( 3 );
    versionname := VersionControl::GetVersionInfo( globalotdsop, testbusinesstype ).Element( 3 );
    
    // Get Version Name
    if( data.Name() = "" ){
@@ -33,10 +34,11 @@
      }
    
    // Get Business Type from Scenario Name
    businesstype := select( globalotdtable,
                            BusinessType,
                            b,
                            b.ScenarioName()=data.ScenarioName() ).BusinessTypeName();
    businesstype := guard( select( globalotdtable,
                                   BusinessType,
                                   b,
                                   b.ScenarioName()=data.ScenarioName() ).BusinessTypeName(),
                           "" );
    data.BusinessType( businesstype );
    
    // Copy scenario
@@ -110,7 +112,7 @@
    }
    
    macroPlanNew := MacroPlan;
    ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew );
    //ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew );
    
    // sync data
    if( data.EnableSync() ) {
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_TIANMA_JITUAN_PanelGeneral_549_checkboxEnableSync_OnChanged.def
@@ -10,7 +10,7 @@
  {
    Body:
    [*
      dropDownStringListGeneral.Visible(checkboxEnableSync.Checked());
      DropDownListGeneral.Visible(checkboxEnableSync.Checked());
      checkboxIsKeyProduct.Visible(checkboxEnableSync.Checked());
      checkboxCreatePurchaseSupplyProduct.Visible(checkboxEnableSync.Checked());
    *]
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditWorkOrderType/Method_NewWorkOrderType.def
@@ -7,7 +7,7 @@
  #keys: '[414702.0.145493830]'
  Body:
  [*
    workOrderType := GlobalOTDTable.WorkOrderType( relshadow );
    workOrderType := GlobalOTDSOP.WorkOrderType( relshadow );
    
    DataHolderForm.Data( formWorkOrderType );
    
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditWorkOrderType/Response_pnlActions_btnOk_OnClick.def
@@ -12,8 +12,8 @@
    id := efID.Text();
    typeName := efTypeName.Text();
    
    idExists := exists( GlobalOTDTable, WorkOrderType, tempWOT, tempWOT.ID() = id and tempWOT.ID() <> data.ID() );
    typeNameExists := exists( GlobalOTDTable, WorkOrderType, tempWOT, tempWOT.TypeName() = typeName and tempWOT.TypeName() <> data.TypeName() );
    idExists := exists( GlobalOTDSOP, WorkOrderType, tempWOT, tempWOT.ID() = id and tempWOT.ID() <> data.ID() );
    typeNameExists := exists( GlobalOTDSOP, WorkOrderType, tempWOT, tempWOT.TypeName() = typeName and tempWOT.TypeName() <> data.TypeName() );
    
    if ( idExists or typeNameExists ) {
      feedback := "ID或类型名称重复";
@@ -35,7 +35,7 @@
      data := DataHolderDialogData.Data();
      workOrderType := data.WrappedInstance();
      if ( isnull( workOrderType ) ) {
        GlobalOTDTable.WorkOrderType( relnew, ID := data.ID(), TypeName := data.TypeName() );
        GlobalOTDSOP.WorkOrderType( relnew, ID := data.ID(), TypeName := data.TypeName() );
      } else {
        workOrderType.ID( data.ID() );
        workOrderType.TypeName( data.TypeName() );
_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[414702.1.84941726]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[414702.1.84941730]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[414702.1.84941732]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Cancel'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Border: true
    ExcludeFromActiveComponent: true
    FixedSize: true
    Orientation: 'horizontal'
    Padding: 'true'
    Style: 'footer'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[414702.1.84941724]'
  BaseType: 'WebPanel'
  Children:
  [
    Component dropDownStringListGeneral id:dropDownStringListGeneral_549
    {
      #keys: '[414702.1.87540205]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        AllowEmpty: true
        DataBinding: 'DataHolderScenario.Data.ScenarioName'
        Label: 'Scenario Name'
        Taborder: 0
      ]
    }
    Component checkboxIsKeyProduct id:checkboxIsKeyProduct_593
    {
      #keys: '[414702.1.87540263]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        DataBinding: 'DataHolderScenario.Data.IsKeyProduct'
        Label: 'S&OP'
        Taborder: 1
      ]
    }
    Component checkboxCreatePurchaseSupplyProduct id:checkboxCreatePurchaseSupplyProduct_102
    {
      #keys: '[414702.1.84942148]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        DataBinding: 'DataHolderScenario.Data.CreatePurchaseSupplyMaterial'
        Label: 'CreatePurchase'
        Taborder: 2
      ]
    }
    Component CheckboxIsCreateNewVersion id:CheckboxIsCreateNewVersion_653
    {
      #keys: '[414702.1.84942205]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'Create a new version'
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Method_DataDistribution.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method DataDistribution (
  Scenario scenario
) id:Method_DialogDataDistribution_DataDistribution
{
  #keys: '[414702.1.87530593]'
  Body:
  [*
    DataHolderScenario.Data( scenario );
    dropDownStringListGeneral.Strings( GlobalOTDTable::GetBusnessStrings( GlobalOTDTable ) );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/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.1.84941736]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[414702.1.84941735]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    flag := not isnull( GlobalOTDTable ) and not isnull( GlobalOTDLog );
    activeScenario := DataHolderActiveScenario.Data();
    currentScenario := DataHolderScenario.Data();
    if ( activeScenario = currentScenario ) {
      flag := false;
      feedback := "无法对当前选中场景进行分发";
    }
    isExists := exists( GlobalOTDLog, DataDistributionLog, tempDD, tempDD.ExecuteStatus() = "Running" and tempDD.MacroPlanMDSID() = currentScenario.DatasetMDSID() );
    if ( flag and isExists ) {
      flag := false;
      feedback := "当前场景正在进行分发";
    }
    return flag;
  *]
  QuillAction
  {
    Body:
    [*
      Form.ApplyChanges();
      businessType := select( GlobalOTDTable,
                              BusinessType,
                              b,
                              b.ScenarioName() = dropDownStringListGeneral.Text()
                             );
      DataDistributionLog::Create( GlobalOTDLog, ApplicationMacroPlanner.GetUserName(), DataHolderScenario.Data().DatasetMDSID(), DataHolderScenario.Data().Name() );
      MacroPlan::DoASync( DataHolderScenario.Data(),
                          businessType.BusinessTypeName(),
                          checkboxIsKeyProduct.Checked(),
                          checkboxCreatePurchaseSupplyProduct.Checked(),
                          GlobalOTDTable );
      Form.Close();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogDataDistribution/_ROOT_Component_DialogDataDistribution.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogDataDistribution
{
  #keys: '[414702.1.84941722]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
    Component DataHolderScenario
    {
      #keys: '[414702.1.89308159]'
      BaseType: 'WebDataHolder'
      Databinding: 'Scenario'
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Image: 'CAKE2'
    Padding: 'false'
    Title: '数据分发'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def
@@ -24,6 +24,7 @@
      data := guard( DataHolderFillingCapacityOrder.Data().WrappedInstance(), null( FillingCapacityOrder ) );;
      if ( isnull( data ) ) {
        MacroPlan.FillingCapacityOrder( relnew,
                                        VerNo              := guard( DataHolderActiveScenario.Data().Name(), "" ),
                                        ID                 := OS::GenerateGUIDAsString(),
                                        ProductID          := guard( ddlProduct_MP.Data().ID(), "null" ),
                                        BusinessType       := guard( ddlBusinessType.Data().BusinessTypeName(), "null" ),
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def
@@ -12,6 +12,7 @@
      Properties:
      [
        DataBinding: 'DataHolderFilling.Data.VerNo'
        Enabled: false
        Label: '版本号'
        Taborder: 0
      ]
@@ -24,7 +25,7 @@
      [
        DataBinding: 'DataHolderFilling.Data.BusinessType'
        Enabled: false
        Label: 'BusinessType'
        Label: '事业部'
        ReadOnly: true
        Taborder: 1
      ]
@@ -37,7 +38,7 @@
      [
        DataBinding: 'DataHolderFilling.Data.Customer'
        Enabled: false
        Label: 'Customer'
        Label: '客户名称'
        ReadOnly: true
        Taborder: 2
      ]
@@ -49,7 +50,7 @@
      Properties:
      [
        DataBinding: 'DataHolderFilling.Data.SalesAmount'
        Label: 'SalesAmount'
        Label: '填产数量'
        Taborder: 3
      ]
    }
@@ -60,7 +61,7 @@
      Properties:
      [
        DataBinding: 'DataHolderFilling.Data.DemandDate'
        Label: 'Demand Date'
        Label: '需求时间'
        ReadOnly: true
        Taborder: 4
      ]
@@ -72,10 +73,21 @@
      Properties:
      [
        DataBinding: 'DataHolderFilling.Data.ForecastDemandDate'
        Label: 'Forecast Demand Date'
        Label: '需求预测时间'
        Taborder: 5
      ]
    }
    Component ddslOrderType id:ddslOrderType_944
    {
      #keys: '[414702.1.71083523]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: '订单类型'
        Strings: '反签;授权'
        Taborder: 6
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Method_ClickBtnOk.def
@@ -7,15 +7,15 @@
  [*
    // Disabled button to prevent the possibility of multiple firing
    
    btnOk.Enabled(false,'');
    //btnOk.Enabled(false,'');
    
    // OnOk
    this.ApplyChanges();
    DataHolderFilling.Data().Commit();
    //DataHolderFilling.Data().Commit();
    
    fillingData := DataHolderFilling.Data();
    //fillingData := DataHolderFilling.Data();
    
    CustomerAndForecastOrder::CreateFillingCapacityOrder( MacroPlan, fillingData.WrappedInstance());
    //CustomerAndForecastOrder::CreateFillingCapacityOrder( MacroPlan, fillingData.WrappedInstance());
    
    //if( not isnull( DataHolderForm.Data() ) )
    //{
@@ -23,6 +23,15 @@
    //  DataHolderForm.Data().ListAssumptions().SelectByKey( DataHolderDialogData.Data().WrappedInstance().Key() );
    //}
    
    FillingCapacityOrder::CreateFillingCapacityOrder( MacroPlan,
                                                      DataHolderFilling.Data().OrderID(),
                                                      [Real]edtSalesAmount.Text(),
                                                      dsDemandDate.Date(),
                                                      dsForecastDemandDate.Date(),
                                                      ddslOrderType.Text(),
                                                      DataHolderFilling.Data().VerNo()
                                                     );
    this.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Response_pnlActions_btnOk_OnClick.def
@@ -6,10 +6,14 @@
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    verNo := efVerNo.Text();
    salesAmount := edtSalesAmount.Text();
    feedback := Translations::FilllingCapacity_ValidateInput();
    return not salesAmount = '' and not verNo = '';
    //verNo := efVerNo.Text();
    //salesAmount := edtSalesAmount.Text();
    //feedback := Translations::FilllingCapacity_ValidateInput();
    //return not salesAmount = '' and not verNo = '';
    flag := guard( [Real]edtSalesAmount.Text(), 0 ) > 0;
    return flag;
  *]
  QuillAction
  {
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlActions_btnOk_OnClick.def
@@ -15,7 +15,7 @@
      Form.ApplyChanges();
      try {
        macroPlan := ExternalMDSEditor::MacroPlan( ddlSelectVersion.Data().DatasetName() ).AsMacroPlan();
        GlobalOTDTable.SynchronizeOrders( macroPlan );
        GlobalOTDSOP.SynchronizeOrders( macroPlan );
      
        Form.Close();
      
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblAutomotiveElectronics_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "汽车电子" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "汽车电子" );
      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "无数据" ) );
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblIT_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "IT" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "IT" );
      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "无数据" ) );
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblMaterialVehicle_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "车载" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "车载" );
      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "无数据" ) );
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblSpecializedDisplay_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "专显" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "专显" );
      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "无数据" ) );
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblSportsHealth_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "运动健康" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "运动健康" );
      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "无数据" ) );
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM17_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM17" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM17" );
      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "无数据" ) );
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTM18_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM18" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM18" );
      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "无数据" ) );
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_DialogFusionData/Response_pnlReceiveDatas_lblTianHua_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "天华" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "天华" );
      this.Text( guard( targetPanelMaterialAll.ReleaseDate(), "无数据" ) );
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuCall_OnClick.def
@@ -19,10 +19,10 @@
      productIdsOver14Days := PRData::ProductIdOver14Days( selection );
      if( productIdsOver14Days <> "" ) {
        if( WebMessageBox::Question( "该批次中的物料号" + productIdsOver14Days + "订单应该在2周后释放,请确认是否现在释放?(已释放的将被跳过)" ) = 0 ) {
          PRData::DoCall( GlobalOTDTable, selection, ApplicationMacroPlanner.GetUserName() );
          PRData::DoCall( GlobalOTDTable, GlobalOTDSOP, selection, ApplicationMacroPlanner.GetUserName() );
        }
      } else if( WebMessageBox::Question( "是否发送选中的数据?(已释放的将被跳过)" ) = 0 ) {
        PRData::DoCall( GlobalOTDTable, selection, ApplicationMacroPlanner.GetUserName() );
        PRData::DoCall( GlobalOTDTable, GlobalOTDSOP, selection, ApplicationMacroPlanner.GetUserName() );
      }
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuPrintRequest_OnClick#623.def
@@ -12,7 +12,7 @@
  {
    Body:
    [*
      info( selection.PrintCall( GlobalOTDTable, ApplicationMacroPlanner.GetUserName() ) )
      info( selection.PrintCall( GlobalOTDTable, GlobalOTDSOP, ApplicationMacroPlanner.GetUserName() ) )
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def
@@ -13,8 +13,7 @@
  {
    Body:
    [*
      tableBinaryData := PRData::ExportTheFileStream( MacroPlan ).AsBinaryData();
      Application.Download( "PRData.xlsx", tableBinaryData );
      Application.Download( "PRData.xlsx", PRData::Export( MacroPlan ) );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonLoad_OnClick.def
@@ -14,7 +14,7 @@
    Body:
    [*
      MacroPlan.PRData( relflush );
      PRData::FromSupplyPlanning( GlobalOTDTable, MacroPlan, "", ApplicationMacroPlanner.GetUserName() );
      PRData::FromSupplyPlanning( GlobalOTDTable, GlobalOTDSOP, MacroPlan, "", ApplicationMacroPlanner.GetUserName() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonSendPR_OnClick.def
@@ -16,10 +16,10 @@
      productIdsOver14Days := PRData::ProductIdOver14Days( DataHolderChecked.Data() );
      if( productIdsOver14Days <> "" ) {
        if( WebMessageBox::Question( "该批次中的物料号" + productIdsOver14Days + "订单应该在2周后释放,请确认是否现在释放?(已释放的将被跳过)" ) = 0 ) {
          PRData::DoCall( GlobalOTDTable, DataHolderChecked.Data(), ApplicationMacroPlanner.GetUserName() );
          PRData::DoCall( GlobalOTDTable, GlobalOTDSOP, DataHolderChecked.Data(), ApplicationMacroPlanner.GetUserName() );
        }
      } else if( WebMessageBox::Question( "是否发送选中的数据?(已释放的将被跳过)" ) = 0 ) {
        PRData::DoCall( GlobalOTDTable, DataHolderChecked.Data(), ApplicationMacroPlanner.GetUserName() );
        PRData::DoCall( GlobalOTDTable, GlobalOTDSOP, DataHolderChecked.Data(), ApplicationMacroPlanner.GetUserName() );
      }
    *]
    GroupServerCalls: false
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_ButtonGenerateCapacityAllocationR#39.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan, DataHolderActiveScenario.Data() );
      CapacityAllocationResults::CreateDate( GlobalOTDSOP, MacroPlan, DataHolderActiveScenario.Data() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'CapacityAllocationResultsRuleConfiguration'
      ]
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMaterialCode","title":"PanelMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMaterialCode","title":"ModuleMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Division","title":"Division","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Division"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMaterialCode","title":"ModuleMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ModuleMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMaterialCode","title":"PanelMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"PanelMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Division","title":"Division","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Division"}}]'
        ContextMenu: 'listContextMenuCapacityAllocationResultsRuleConfiguration'
        Taborder: 2
      ]
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_listContextMenuCapacityAllocationResultsRuleConfiguration.def
@@ -72,6 +72,17 @@
        Title: '自动创建规则'
      ]
    }
    Component MenuGenerateByPegging
    {
      #keys: '[414702.1.60885527]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'PODIUM2'
        Taborder: 9
        Title: '通过Pegging生成'
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_ListCapacityAllocationResultsRuleConfiguration_MenuGenerateByPeggin.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: ListCapacityAllocationResultsRuleConfiguration
Response OnClick (
  structured[CapacityAllocationResultsRuleConfiguration] selection
) id:Response_ListCapacityAllocationResultsRuleConfiguration_MenuGenerateByPegging_OnClick
{
  #keys: '[414702.1.58432888]'
  CanBindMultiple: false
  DefinitionID => /ListCapacityAllocationResultsRuleConfiguration/Responsedef_ListCapacityAllocationResultsRuleConfiguration_WebMenu_OnClick
  Initiator: 'MenuGenerateByPegging'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      CapacityAllocationResults::Test1( MacroPlan, GlobalOTDSOP, selection );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Export_OnClick.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      Application.Download( "产能分配结果规则.xlsx", CapacityAllocationResultsRuleConfiguration::Export( GlobalOTDTable ).AsBinaryData() );
      Application.Download( "产能分配结果规则.xlsx", CapacityAllocationResultsRuleConfiguration::Export( GlobalOTDSOP ).AsBinaryData() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Import_OnClick.def
@@ -16,7 +16,7 @@
          
          fileName := uploadJson.Get( "name" ).GetString();
          base64String := uploadJson.Get( "data" ).GetString();
          CapacityAllocationResultsRuleConfiguration::Import( GlobalOTDTable, base64String );
          CapacityAllocationResultsRuleConfiguration::Import( GlobalOTDSOP, base64String );
          
          WebMessageBox::Success( "上传成功", true );
        }
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def
@@ -7,7 +7,7 @@
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MPSync );
    return not isnull( GlobalOTDTable );
  *]
  QuillAction
  {
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportTest_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonGenerateTestData_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
#parent: ButtonGenerateTestData
Response OnClick () id:Response_FormCapacityAndSaleBudge_ButtonGenerateTestData_OnClick
{
  #keys: '[414384.0.971540692]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      GlobalOTDTable.InitTestDataByYear( MacroPlan, DataHolderCapacityAndSaleBudgeFilterYear.Data() );
      Global_MappingAnnualBudgetData::SetOrgCodeFromForecast( GlobalOTDTable );
      GlobalOTDSOP::RefreshCapacityAndSaleBudgeFilter( true, GlobalOTDTable, GlobalOTDSOP );
      CapacityAndSaleBudgeFilterItem::Initial( GlobalOTDSOP );
      CapacityAndSaleBudgeFilterYear::Initial( GlobalOTDSOP );
      CapacityAndSaleBudgeFilterMonth::Initial( GlobalOTDSOP );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def
@@ -16,19 +16,18 @@
      [
        Image: 'EXPORT1'
        Label: '导出'
        Taborder: 0
        Taborder: 1
      ]
    }
    Component ButtonExportTest
    Component ButtonGenerateTestData
    {
      #keys: '[414384.0.914711826]'
      #keys: '[414384.0.971540693]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Label: '导出测试'
        Taborder: 1
        Visible: false
        Image: 'IMPORT1'
        Label: '根据筛选年份生成测试数据'
        Taborder: 0
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def
@@ -17,8 +17,8 @@
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'GlobalOTDTable'
            Source: 'GlobalOTDTable'
            DataType: 'GlobalOTDSOP'
            Source: 'GlobalOTDSOP'
            Taborder: 0
            Transformation: 'CapacityAndSaleBudgeChartElement'
          ]
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def
@@ -12,15 +12,15 @@
    [*
      //CapacityAndSaleBudgeChartElement::TestData( GlobalOTDTable );
      
      GlobalOTDTable.CapacityAndSaleBudgeChart( DataHolderMacroPlansForScenarioComparison.Data(),
                                                DropDownSaleOrCapacity.Text(),
                                                DropDownTimeGroup.Text(),
                                                DropDownByBusinessTypeOrByOrgCode.Text(),
                                                DataHolderCapacityAndSaleBudgeFilterBusinessType.Data(),
                                                DataHolderCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.Data(),
                                                DataHolderCapacityAndSaleBudgeFilterYear.Data(),
                                                DataHolderCapacityAndSaleBudgeFilterMonth.Data(),
                                                GlobalOTDTable );
      GlobalOTDSOP.CapacityAndSaleBudgeChart( DataHolderMacroPlansForScenarioComparison.Data(),
                                              DropDownSaleOrCapacity.Text(),
                                              DropDownTimeGroup.Text(),
                                              DropDownByBusinessTypeOrByOrgCode.Text(),
                                              DataHolderCapacityAndSaleBudgeFilterBusinessType.Data(),
                                              DataHolderCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.Data(),
                                              DataHolderCapacityAndSaleBudgeFilterYear.Data(),
                                              DataHolderCapacityAndSaleBudgeFilterMonth.Data(),
                                              GlobalOTDTable );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Component_MatrixEditorCapacityAndSaleBudgeCompare.def
@@ -17,8 +17,8 @@
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'GlobalOTDTable'
            Source: 'GlobalOTDTable'
            DataType: 'GlobalOTDSOP'
            Source: 'GlobalOTDSOP'
            Taborder: 0
            Transformation: 'CapacityAndSaleBudgeCompareItemColumn.CapacityAndSaleBudgeCompareItemCell'
          ]
@@ -44,8 +44,8 @@
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'GlobalOTDTable'
            Source: 'GlobalOTDTable'
            DataType: 'GlobalOTDSOP'
            Source: 'GlobalOTDSOP'
            Taborder: 0
            Transformation: 'CapacityAndSaleBudgeCompareItemRow'
          ]
@@ -70,8 +70,8 @@
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'GlobalOTDTable'
            Source: 'GlobalOTDTable'
            DataType: 'GlobalOTDSOP'
            Source: 'GlobalOTDSOP'
            Taborder: 0
            Transformation: 'CapacityAndSaleBudgeCompareItemColumn'
          ]
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def
@@ -14,11 +14,11 @@
      info( DataHolderCapacityAndSaleBudgeFilterItem.Data().Size() );
      info( DataHolderCapacityAndSaleBudgeFilterYear.Data().Size() );
      info( DataHolderCapacityAndSaleBudgeFilterMonth.Data().Size() );
      GlobalOTDTable.CapacityAndSaleBudgeCompare( DataHolderMacroPlansForScenarioComparison.Data(),
                                                  DataHolderCapacityAndSaleBudgeFilterItem.Data(),
                                                  DataHolderCapacityAndSaleBudgeFilterYear.Data(),
                                                  DataHolderCapacityAndSaleBudgeFilterMonth.Data(),
                                                  GlobalOTDTable );
      GlobalOTDSOP.CapacityAndSaleBudgeCompare( DataHolderMacroPlansForScenarioComparison.Data(),
                                                DataHolderCapacityAndSaleBudgeFilterItem.Data(),
                                                DataHolderCapacityAndSaleBudgeFilterYear.Data(),
                                                DataHolderCapacityAndSaleBudgeFilterMonth.Data(),
                                                GlobalOTDTable );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonExportCompare_OnClick.def
@@ -13,8 +13,7 @@
  {
    Body:
    [*
      tableBinaryData := GlobalOTDTable.CapacityAndSaleBudgeCompareExport().AsBinaryData();
      Application.Download( "年度产销预算对比.xlsx", tableBinaryData );
      Application.Download( "年度产销预算对比.xlsx", GlobalOTDSOP.CapacityAndSaleBudgeCompareExport().AsBinaryData() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Component_ListCapacityAndSaleBudgeFilterBusinessType.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'CapacityAndSaleBudgeFilterBusinessType'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterBusinessType/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnClick.def
@@ -10,7 +10,7 @@
  {
    Body:
    [*
      GlobalOTDTable.RefreshCapacityAndSaleBudgeFilter( true );
      GlobalOTDSOP::RefreshCapacityAndSaleBudgeFilter( true, GlobalOTDTable, GlobalOTDSOP );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Component_ListCapacityAndSaleBudgeFilterItem.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'CapacityAndSaleBudgeFilterItem'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterItem/Response_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Component_ListCapacityAndSaleBudgeFilterMonth.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'CapacityAndSaleBudgeFilterMonth'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterMonth/Response_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Component_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'CapacityAndSaleBudgeFilterPlaceOfProductionOfArray'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray/Response_listContextMenuCapacityAndSaleBudgeFilterYear_1_MenuRefresh_OnC#663.def
@@ -10,7 +10,7 @@
  {
    Body:
    [*
      GlobalOTDTable.RefreshCapacityAndSaleBudgeFilter( true );
      GlobalOTDSOP::RefreshCapacityAndSaleBudgeFilter( true, GlobalOTDTable, GlobalOTDSOP );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Component_ListCapacityAndSaleBudgeFilterYear.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'CapacityAndSaleBudgeFilterYear'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeFilterYear/Response_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormDataDistributionLog/Component_ListDataDistributionLog.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
Quintiq file version 2.0
Component ListDataDistributionLog
{
  #keys: '[414702.1.155206692]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorDataDistributionLog
    {
      #keys: '[414702.1.155206693]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDLog'
        Source: 'GlobalOTDLog'
        Taborder: 0
        Transformation: 'DataDistributionLog'
      ]
    }
    #child: listActionBarPageDataDistributionLog
    Component DataSetLevelDataDistributionLog
    {
      #keys: '[414702.1.155206698]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuDataDistributionLog
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgExecuteStatus","title":"ImgExecuteStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgExecuteStatus"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ExecuteUser","title":"执行用户","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ExecuteUser"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MacroPlanMDSID","title":"MacroPlanMDSID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"MacroPlanMDSID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorNo","title":"错误号","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ErrorMessage","title":"错误消息","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ErrorMessage"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ScenarioName","title":"场景名称","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ScenarioName"}}]'
        ContextMenu: 'listContextMenuDataDistributionLog'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListDataDistributionLog_WebMenu_OnClick
    {
      #keys: '[414702.1.156607910]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[373.0.2183601]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDataDistributionLog/Component_listActionBarPageDataDistributionLog.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageDataDistributionLog
{
  #keys: '[414702.1.155206695]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDataDistributionLog/Component_listContextMenuDataDistributionLog.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
Quintiq file version 2.0
Component listContextMenuDataDistributionLog
{
  #keys: '[414702.1.155206700]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuDelete
    {
      #keys: '[414702.1.155342244]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DELETE'
        Taborder: 3
        Title: '删除'
      ]
    }
    Component MenuSelectionAll
    {
      #keys: '[414702.1.156679633]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'SELECTION'
        Shortcut: 'Ctrl+A'
        Taborder: 4
        Title: '全选'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDataDistributionLog/Response_ListDataDistributionLog_MenuDelete_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: ListDataDistributionLog
Response OnClick (
  DataDistributionLog selection
) id:Response_ListDataDistributionLog_MenuDelete_OnClick
{
  #keys: '[414702.1.156508213]'
  DefinitionID => /ListDataDistributionLog/Responsedef_ListDataDistributionLog_WebMenu_OnClick
  Initiator: 'MenuDelete'
  QuillAction
  {
    Body:
    [*
      selection.Delete();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDataDistributionLog/Response_ListDataDistributionLog_MenuSelectionAll_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListDataDistributionLog
Response OnClick () id:Response_ListDataDistributionLog_MenuSelectionAll_OnClick
{
  #keys: '[414702.1.156679773]'
  CanBindMultiple: false
  DefinitionID => /ListDataDistributionLog/Responsedef_ListDataDistributionLog_WebMenu_OnClick
  Initiator: 'MenuSelectionAll'
  QuillAction
  {
    Body:
    [*
      this.SelectAll();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDataDistributionLog/_ROOT_Component_FormDataDistributionLog.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormDataDistributionLog
{
  #keys: '[414702.1.154060867]'
  BaseType: 'WebForm'
  Children:
  [
    #child: ListDataDistributionLog
  ]
  Properties:
  [
    Image: 'MUSHROOM'
    Title: '数据分发日志'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Component_listContextMenuFillingCapacityOrder.def
@@ -50,6 +50,18 @@
        Title: 'Save Scheme'
      ]
    }
    Component MenuSelectAll
    {
      #keys: '[414702.1.72339677]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DOCUMENT_SELECTION'
        Shortcut: 'Ctrl+A'
        Taborder: 7
        Title: '全选'
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_ListFillingCapacityOrder_MenuDelete_OnClick.def
@@ -5,7 +5,6 @@
) id:Response_ListFillingCapacityOrder_MenuDelete_OnClick
{
  #keys: '[414382.0.402561135]'
  CanBindMultiple: false
  DefinitionID => /ListFillingCapacityOrder/Responsedef_ListFillingCapacityOrder_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuDelete'
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_ListFillingCapacityOrder_MenuSelectAll_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListFillingCapacityOrder
Response OnClick () id:Response_ListFillingCapacityOrder_MenuSelectAll_OnClick
{
  #keys: '[414702.1.72149428]'
  CanBindMultiple: false
  DefinitionID => /ListFillingCapacityOrder/Responsedef_ListFillingCapacityOrder_WebMenu_OnClick
  Initiator: 'MenuSelectAll'
  QuillAction
  {
    Body:
    [*
      this.SelectAll();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Component_listContextMenuCustomerAndFillingCapacityOrder.def
@@ -16,17 +16,6 @@
        Title: '填产'
      ]
    }
    Component MenuRefresh
    {
      #keys: '[414382.0.415603149]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'EDITOR_HAS_DECLARATIVE_DEFINITION'
        Taborder: 4
        Title: '创建测试数据'
      ]
    }
    Component MenuDelete
    {
      #keys: '[414702.0.472081906]'
@@ -34,7 +23,7 @@
      Properties:
      [
        Image: 'DELETE'
        Taborder: 5
        Taborder: 4
        Title: '删除'
      ]
    }
@@ -46,7 +35,7 @@
      [
        Image: 'DOCUMENT_SELECTION'
        Shortcut: 'Ctrl+A'
        Taborder: 6
        Taborder: 5
        Title: '全选'
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_ListCustomerAndFillingCapacityOrder_MenuRefresh_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityScheme/Response_PanelButton_ButtonTransform_OnClick.def
@@ -17,8 +17,9 @@
      
      message := "总订单个数:"                                                               + 
                [String]counter( MacroPlan, SalesDemand.astype( CustomerOrder ), cs, true )  + 
                 "    æˆåŠŸè½¬æ¢ä¸ªæ•°ï¼š"                                                         +
                 [String]counter( MacroPlan, SalesDemand.astype( CustomerOrder ), cs, true )
                String::NewLine()                                                            +
                "    æˆåŠŸè½¬æ¢ä¸ªæ•°ï¼š"                                                         +
                [String]counter( MacroPlan, SalesDemand.astype( CustomerOrder ), cs, true )
      
      WebMessageBox::Success( message, true );
    *]
_Main/UI/MacroPlannerWebApp/Component_FormIT/Component_ListPanelMaterialIT.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'PanelMaterialAll.PanelMaterialIT'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormIT/Response_DataHolderPanelIT_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "IT" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "IT" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormIT/Response_DataHolderPanelIT_OnDataChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "IT" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "IT" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_listContextMenuInterfaceTest.def
@@ -13,7 +13,7 @@
      [
        Image: 'VIEW'
        Taborder: 3
        Title: '显示数据'
        Title: '测试'
      ]
    }
    Component MenuDelete
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuCreateShowData_OnClick.def
@@ -27,6 +27,7 @@
      //GlobalOTDTable.Global_ShowCell( relflush );
      //
      //Global_ShowCell::ShowData( GlobalOTDTable, selection );
      WebMessageBox::Information( "此按钮用于测试", true );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Component_ListManufactureLT#943.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MacroPlan'
        Source: 'MacroPlan'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'ManufactureLTImputation'
      ]
@@ -37,7 +37,7 @@
  ]
  Properties:
  [
    Taborder: 0
    Taborder: 1
  ]
  ResponseDefinitions:
  [
_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Response_ButtonLoad_OnClick#417.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: ButtonLoad_657
Response OnClick () id:Response_PanelPRDataButton_ButtonLoad_OnClick_417
{
  #keys: '[414384.0.967076760]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      ManufactureLTImputation::Transfer( MacroPlan, GlobalOTDSOP );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/Response_ListManufactureLT_943_MenuApply_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: ListManufactureLT_943
Response OnClick (
  structured[ManufactureLTImputation] selection
) id:Response_ListManufactureLT_943_MenuApply_OnClick
{
  #keys: '[414384.0.967590502]'
  CanBindMultiple: false
  DefinitionID => /ListManufactureLT_943/Responsedef_ListManufactureLT_943_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuApply'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      ManufactureLTImputation::Apply( selection, MacroPlan );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormManufactureLT/_ROOT_Component_FormManufactureLT.def
@@ -8,6 +8,17 @@
  Children:
  [
    #child: ListManufactureLT_943
    Component ButtonLoad id:ButtonLoad_657
    {
      #keys: '[414384.0.967076761]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'THICK_ARROW_DOWN_BLUE'
        Label: '重新加载'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListMaterialMaterialLabelingAndPlanningStrategy#880.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'MatAttrSettingAndPlanStrategy'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndImport_OnCl.def
@@ -22,7 +22,7 @@
          
          fileName := uploadJson.Get( "name" ).GetString();
          base64String := uploadJson.Get( "data" ).GetString();
          matAttrSettingAndPlanStrategyInputSource := MatAttrSettingAndPlanStrategyInputSource::Upload( GlobalOTDTable, fileName, base64String, ApplicationMacroPlanner.GetUserName() );
          matAttrSettingAndPlanStrategyInputSource := MatAttrSettingAndPlanStrategyInputSource::Upload( GlobalOTDSOP, fileName, base64String, ApplicationMacroPlanner.GetUserName() );
          
          matAttrSettingAndPlanStrategyInputSource.ParseTable();
          
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_.def
@@ -19,7 +19,7 @@
  {
    Body:
    [*
      MatAttrSettingAndPlanStrategy::SynchronizeInventoryTargets( GlobalOTDTable, MacroPlan );
      MatAttrSettingAndPlanStrategy::SynchronizeInventoryTargets( GlobalOTDSOP, MacroPlan );
      
      WebMessageBox::Success( "库存目标同步成功", true );
    *]
_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData#844.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'PRHistoryData'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonExportPRHistory_OnClick.def
@@ -13,8 +13,7 @@
  {
    Body:
    [*
      tableBinaryData := PRHistoryData::ExportTheFileStream( GlobalOTDTable ).AsBinaryData();
      Application.Download( "PRData.xlsx", tableBinaryData );
      Application.Download( "PRHistoryData.xlsx", PRHistoryData::Export( GlobalOTDSOP ) );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Component_ListPanelMaterialAutomotiveElectronics.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'PanelMaterialAll.PanelMaterialAutomotiveElectronics'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Response_DataHolderPanelAutomotiveElectronics_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "汽车电子" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "汽车电子" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialAutomotiveElectronics/Response_DataHolderPanelAutomotiveElectronics_OnDataChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "汽车电子" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "汽车电子" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Component_ListPanelMaterialSpecializedDisplay.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'PanelMaterialAll.PanelMaterialSpecializedDisplay'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Response_DataHolderPanelSpecializedDisplay_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "专显" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "专显" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSpecializedDisplay/Response_DataHolderPanelSpecializedDisplay_OnDataChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "专显" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "专显" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Component_ListPanelMaterialSportsHealth.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'PanelMaterialAll.PanelMaterialSportsHealth'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Response_DataHolderPanelSportsHealth_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "运动健康" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "运动健康" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialSportsHealth/Response_DataHolderPanelSportsHealth_OnDataChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "运动健康" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "运动健康" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Component_ListPanelMaterialTM.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'PanelMaterialAll.PanelMaterialTM17'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Response_DataHolderPanelTM17_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM17" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM17" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM17/Response_DataHolderPanelTM17_OnDataChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM17" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM17" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Component_ListPanelMaterialTM.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'PanelMaterialAll.PanelMaterialTM18'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Response_DataHolderPanelTM18_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM18" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM18" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTM18/Response_DataHolderPanelTM18_OnDataChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM18" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "TM18" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Component_ListPanelMaterialTianHua.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'PanelMaterialAll.PanelMaterialTianHua'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Response_DataHolderPanelTianHua_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "天华" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "天华" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialTianHua/Response_DataHolderPanelTianHua_OnDataChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "天华" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "天华" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Component_ListPanelMaterialVehicle.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'PanelMaterialAll.PanelMaterialVehicle'
      ]
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_DataHolderPanelMaterialVehicle_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "车载" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "车载" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormPanelMaterialVehicle/Response_DataHolderPanelMaterialVehicle_OnDataChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      targetPanelMaterialAll := select( GlobalOTDTable, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "车载" );
      targetPanelMaterialAll := select( GlobalOTDSOP, PanelMaterialAll, tempPMA, tempPMA.BusinessType() = "车载" );
      if ( not isnull( targetPanelMaterialAll ) ) {
        this.Data( targetPanelMaterialAll );
      }
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Response_TIANMA_JITUAN_ListProduct_844_MenuMarkingPanelMaterial_OnClick.def
@@ -5,7 +5,6 @@
) id:Response_ListProduct_844_MenuMarkingPanelMaterial_OnClick
{
  #keys: '[414502.0.406201138]'
  CanBindMultiple: false
  DefinitionID => /ListProduct_844/Responsedef_ListProduct_844_WebMenu_OnClick
  Initiator: 'MenuMarkingPanelMaterial'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def
@@ -110,9 +110,33 @@
                Taborder: 21
              ]
            }
            Component MenuScenarioDataDistribution
            {
              #keys: '[414702.1.89337672]'
              BaseType: 'WebMenu'
              Properties:
              [
                Image: 'CABINET_FLASH'
                Taborder: 22
                Title: '数据分发'
              ]
            }
          ]
        }
      ]
      Properties:
      [
        FilterArguments: 'availablescenarios:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderAvailableScenarios'
        FixedFilter: 'availablescenarios.Find( object ) >= 0'
      ]
    }
    Component DataExtractorScenario #extension
    {
      Properties:
      [
        FilterArguments: 'availablescenarios:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderAvailableScenarios'
        FixedFilter: 'availablescenarios.Find( object ) >= 0'
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick#545.def
@@ -15,8 +15,7 @@
      // Create a new scenario
      dlg := construct( DialogCreateEditScenario );
      dlg.checkboxEnableSync().Visible( true );
      dlg.dropDownStringListGeneral().Visible( true );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.DropDownListGeneral().Visible( true );
      dlg.checkboxIsKeyProduct().Visible( true );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( true );
      dlg.NewScenario( ScenarioManager, selection, true );
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def
@@ -16,8 +16,7 @@
      // Create a new Scenario
      dlg := construct( DialogCreateEditScenario );
      dlg.checkboxEnableSync().Visible( true );
      dlg.dropDownStringListGeneral().Visible( true );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.DropDownListGeneral().Visible( true );
      dlg.checkboxIsKeyProduct().Visible( true );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( true );
      parent := selection.Element( 0 ).Parent();
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick#549.def
@@ -16,8 +16,7 @@
      dlg := construct( DialogCreateEditScenario );
      dlg.checkboxEnableSync().Checked( false );
      dlg.checkboxEnableSync().Visible( false );
      dlg.dropDownStringListGeneral().Visible( false );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.DropDownListGeneral().Visible( false );
      dlg.checkboxIsKeyProduct().Visible( false );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( false );
      dlg.NewScenario( ScenarioManager, selection );
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def
@@ -17,8 +17,7 @@
      dlg := construct( DialogCreateEditScenario );
      dlg.checkboxEnableSync().Checked( false );
      dlg.checkboxEnableSync().Visible( false );
      dlg.dropDownStringListGeneral().Visible( false );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.DropDownListGeneral().Visible( false );
      dlg.checkboxIsKeyProduct().Visible( false );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( false );
      parent := selection.Element( 0 ).Parent();
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuEdit_OnClick.def
@@ -17,8 +17,7 @@
    [*
      // Edit scenario
      dlg := construct( DialogCreateEditScenario );
      dlg.dropDownStringListGeneral().Visible( selection.EnableSync() );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.DropDownListGeneral().Visible( selection.EnableSync() );
      dlg.checkboxIsKeyProduct().Visible( selection.EnableSync() );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( selection.EnableSync() );
      
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuSelectScenario_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuRelaeaseNewVersion_OnClick.def
@@ -18,12 +18,12 @@
    Body:
    [*
      // Copy scenario
      owner := GlobalOTDTable;
      owner := GlobalOTDSOP;
      macroplan := MacroPlan;
      testbusinesstype := "集团";
      
      VersionControl::ReleaseNewVersion( owner, testbusinesstype );
      GlobalOTDTable::GetOutputVersionData( owner, macroplan, testbusinesstype );
      GlobalOTDSOP::GetOutputVersionData( owner, macroplan, testbusinesstype );
      selection.SetReleased();
      
      versionname := VersionControl::GetVersionInfo( owner, testbusinesstype ).Element( 3 );
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuSaveNewVersion_OnClick.def
@@ -18,7 +18,7 @@
    Body:
    [*
      // Copy scenario
      owner := GlobalOTDTable;
      owner := GlobalOTDSOP;
      macroplan := MacroPlan;
      testbusinesstype := "集团";
      
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_TIANMA_JITUAN_ListScenario_MenuScenarioDataDistribution_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: ListScenario
Response OnClick (
  Scenario selection
) id:Response_ListScenario_MenuScenarioDataDistribution_OnClick
{
  #keys: '[414702.1.89410379]'
  CanBindMultiple: false
  DefinitionID => /ListScenario/Responsedef_ListScenario_WebMenu_OnClick
  Initiator: 'MenuScenarioDataDistribution'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogDataDistribution );
      dlg.DataDistribution( selection );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderCopy_OnClick.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      owner := GlobalOTDTable;
      owner := GlobalOTDSOP;
      testbusinesstype := "集团";
      rootversionid := VersionControl::GetVersionInfo( owner, testbusinesstype ).Element( 2 );
      dlg := construct( DialogVersionIDCopy );
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderFresh_OnClick.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      owner := GlobalOTDTable;
      owner := GlobalOTDSOP;
      testbusinesstype := "集团";
      //GlobalOTDTable::GetVersionData( owner, testbusinesstype );
      rootversionid := VersionControl::GetVersionInfo( owner, testbusinesstype ).Element( 0 );
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Response_PanelVersionOfSOPHeader_ButtonVersionOfSOPHeaderRelease_OnClick.def
@@ -10,7 +10,7 @@
  {
    Body:
    [*
      owner := GlobalOTDTable;
      owner := GlobalOTDSOP;
      macroplan := MacroPlan;
      testbusinesstype := "集团";
      
_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/_ROOT_Component_FormVersionOfSOP.def
@@ -21,8 +21,8 @@
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'GlobalOTDTable'
            Source: 'GlobalOTDTable'
            DataType: 'GlobalOTDSOP'
            Source: 'GlobalOTDSOP'
            Taborder: 0
            Transformation: 'VersionStatus'
          ]
_Main/UI/MacroPlannerWebApp/Component_FormWorkOrderType/Component_ListWorkOrderType.def
@@ -11,8 +11,8 @@
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        DataType: 'GlobalOTDSOP'
        Source: 'GlobalOTDSOP'
        Taborder: 0
        Transformation: 'WorkOrderType'
      ]
_Main/UI/MacroPlannerWebApp/Views/Test.vw
@@ -29,30 +29,12 @@
          FormCapacityAllocationResultsRuleConfiguration_DataSetLevelCapacityAllocationResultsRuleConfiguration
          {
            groupDepth: -1
            column_PanelMaterialCode
            {
              columnId: 'PanelMaterialCode'
              dataPath: 'PanelMaterialCode'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_ModuleMaterialCode
            {
              columnId: 'ModuleMaterialCode'
              dataPath: 'ModuleMaterialCode'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_Division
            {
              columnId: 'Division'
              dataPath: 'Division'
              dataType: 'string'
              index: 2
              index: 0
              subtotals: ''
              width: 150
            }
@@ -61,6 +43,24 @@
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 117
            }
            column_PanelMaterialCode
            {
              columnId: 'PanelMaterialCode'
              dataPath: 'PanelMaterialCode'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 129
            }
            column_Division
            {
              columnId: 'Division'
              dataPath: 'Division'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
_Main/UI/MacroPlannerWebApp/Views/Êý¾Ý·Ö·¢.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,250 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormBusinessType
      {
        title: 'QTIANMA_JITUAN::FormBusinessType'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormBusinessType'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 15
          columnPosition: 1
          columnSpan: 4
        }
        components
        {
          FormBusinessType_ListBusinessType
          {
          }
          FormBusinessType_DataSetLevelBusinessType
          {
            groupDepth: -1
            sort: 'ScenarioName'
            column_BusinessTypeName
            {
              columnId: 'BusinessTypeName'
              dataPath: 'BusinessTypeName'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_DisplayType
            {
              columnId: 'DisplayType'
              dataPath: 'DisplayType'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 147
            }
            column_ScenarioName
            {
              columnId: 'ScenarioName'
              dataPath: 'ScenarioName'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
          }
          FormBusinessType_PanelBusinessType
          {
            sizeRatio: 1
          }
          FormBusinessType_ListOrganCode
          {
          }
          FormBusinessType_DataSetLevelOrganCode
          {
            groupDepth: -1
            column_OrganCodeName
            {
              columnId: 'OrganCodeName'
              dataPath: 'OrganCodeName'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormScenarioManager
      {
        title: 'QLibMacroPlannerWebUI::FormScenarioManager'
        shown: true
        componentID: 'QLibMacroPlannerWebUI::FormScenarioManager'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 8
          columnPosition: 5
          columnSpan: 8
        }
        components
        {
          FormScenarioManager_ListScenario
          {
          }
          FormScenarioManager_DataSetLevelScenario
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 100
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_ChangedBy
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_ChangedOn
            {
              columnId: 'ChangedOn'
              dataPath: 'ChangedOn'
              dataType: 'datetime'
              index: 3
              subtotals: ''
              width: 150
            }
            column_StorageMode
            {
              columnId: 'StorageMode'
              dataPath: 'StorageMode'
              dataType: 'string'
              index: 4
              subtotals: ''
              width: 150
            }
            column_ImgOptimizerStatus
            {
              columnId: 'ImgOptimizerStatus'
              dataPath: 'ImgOptimizerStatus'
              dataType: 'string'
              index: 5
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormDataDistributionLog
      {
        title: 'QTIANMA_JITUAN::FormDataDistributionLog'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormDataDistributionLog'
        layout
        {
          mode: 'open'
          rowPosition: 9
          rowSpan: 7
          columnPosition: 5
          columnSpan: 8
        }
        components
        {
          FormDataDistributionLog_ListDataDistributionLog
          {
          }
          FormDataDistributionLog_DataSetLevelDataDistributionLog
          {
            groupDepth: -1
            column_ImgExecuteStatus
            {
              columnId: 'ImgExecuteStatus'
              dataPath: 'ImgExecuteStatus'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 42
            }
            column_ExecuteUser
            {
              columnId: 'ExecuteUser'
              dataPath: 'ExecuteUser'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 115
            }
            column_MacroPlanMDSID
            {
              columnId: 'MacroPlanMDSID'
              dataPath: 'MacroPlanMDSID'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 132
            }
            column_ErrorNo
            {
              columnId: 'ErrorNo'
              dataPath: 'ErrorNo'
              dataType: 'number'
              index: 3
              subtotals: ''
              width: 150
            }
            column_ErrorMessage
            {
              columnId: 'ErrorMessage'
              dataPath: 'ErrorMessage'
              dataType: 'string'
              index: 4
              subtotals: ''
              width: 150
            }
            column_ScenarioName
            {
              columnId: 'ScenarioName'
              dataPath: 'ScenarioName'
              dataType: 'string'
              index: 5
              subtotals: ''
              width: 150
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 0
    image: 'PALM_TREE'
    description: ''
  }
  formatversion: 2
  id: '数据分发'
  name: '数据分发'
  isglobal: false
  isroot: true
}
_var/_Main/ModelSettings/Common/Dev-48/_ROOT_Role_Dev-48.properties
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,575 @@
#The properties belonging to _meta and _self groups are reserved. Please do not change them. Comments on these properties will not be preserved.
_meta.application=server
_meta.kind=Quintiq Property File
_meta.type=model
_meta.version.config=1.3
_self.configsettype=Role
_self.name=Dev-48
arg=template:serverargs
arg.architectdependencies=
arg.custom=""
arg.versioncontrolmode=true
domainmodel.ediremotedatasourcedefinition.remotestorage.destination=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.destination.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.destination.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.destination.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.importcim=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.connection=DBODBC1
domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.parameters=/datasource=CIM_Carco /owner=dbo /user=quintiq
domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.connection=dbodbc1
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.parameters=/datasource=orclpdb /owner=TIANMA /chardatatypeforstring /characterencoding=UTF-8 /appdatatypeforstring=wchar
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.password=1 E9FE769DABE91891284EBBA6CEA8F41B 479d6f99-cffb-41e6-94f1-d35bdf20703c
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.connection=dbodbc1
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.parameters=/datasource=otd /owner=OTD /chardatatypeforstring /characterencoding=UTF-8 /appdatatypeforstring=wchar
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.password=1 A205E2668CFBD9365E030C36BB0A4297 730524bf-f9c9-426f-94a0-953687be1178
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.syncobject=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.syncobject.parameters=/datasource=MPERPIntegrationDataSource /owner=dbo /user=quintiq
domainmodel.fileprovider.qdrive=template:domainmodel.fileprovider.qdrive
domainmodel.fileprovider.qdrive.enabled=true
domainmodel.fileprovider.qdrive.readonly=false
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint=template:domainmodel.integratorconfig.dsendpoint
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.connectiontimeout=0
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.dspassword=1 D27640F00F09F1085D52409202B71B4E 2a9f48ef-2467-4394-afcb-75e45a1c40d9
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.dsserviceurl=https://vdemopro1342dsy.extranet.3ds.com/3DSpace/resources/v1/model/
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.dsuser=Push
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.maxconnections=10
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.receivecontentcharset=ASCII
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.requesttimeout=60
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sendingcontentcharset=UTF-8
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sockettimeout=0
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.trustmanagername=Q3DSpace
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.integratorid=Q3DSpace
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver=template:domainmodel.integratorconfig.restendpoint
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam1=
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam2=
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationtype=None
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.connectiontimeout=0
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.contenttype=JSON
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.enablehttpmessagelogging=true
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.includerawcontent=false
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.maxconnections=10
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.passonvalidationerrors=false
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.portnumber=8080
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.proxyportnumber=0
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.receivecontentcharset=ASCII
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.requesttimeout=60
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sendingcontentcharset=utf-8
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sockettimeout=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial=template:domainmodel.integratorconfig.restendpoint
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam1=
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam2=
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationtype=None
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.connectiontimeout=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.contenttype=JSON
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.enablehttpmessagelogging=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.includerawcontent=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.maxconnections=10
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.passonvalidationerrors=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.portnumber=8080
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.proxyportnumber=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.receivecontentcharset=ASCII
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.requesttimeout=60
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sendingcontentcharset=utf-8
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sockettimeout=0
domainmodel.mdsstoragedefinitionmanager=template:domainmodel.mdsstoragedefinitionmanager
domainmodel.mdsstoragedefinitionmanager.audittrailenabled=false
domainmodel.mdsstoragedefinitionmanager.audittraillocation=
domainmodel.mdsstoragedefinitionmanager.databaseenabled=false
domainmodel.mdsstoragedefinitionmanager.datasetstoredatasource=MacroPlanner
domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=false
domainmodel.mdsstoragedefinitionmanager.datasetstoreislocal=false
domainmodel.mdsstoragedefinitionmanager.dbformat=Legacy
domainmodel.mdsstoragedefinitionmanager.defaultencryptioncertificate=
#domainmodel.mdsstoragedefinitionmanager.defaultencryptioncertificate=
domainmodel.mdsstoragedefinitionmanager.driver=OCI
domainmodel.mdsstoragedefinitionmanager.dssfilesystemenabled=false
domainmodel.mdsstoragedefinitionmanager.maxcolumnname=0
domainmodel.mdsstoragedefinitionmanager.maxtablename=0
domainmodel.mdsstoragedefinitionmanager.name=dbodbc1
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasichost=10.110.14.50
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicport=1521
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicservice=totddb
domainmodel.mdsstoragedefinitionmanager.ociconnectiontnsname=totddb
domainmodel.mdsstoragedefinitionmanager.ociconnectiontype=Basic
domainmodel.mdsstoragedefinitionmanager.parameters=/datasource=MacroPlannerInternalDB /user=otd
domainmodel.mdsstoragedefinitionmanager.password=1 463752FBAC1C9172263ADBF875F4CBF3 d5a0fc9a-a372-4807-9f03-34bcf85e582d
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients=template:domainmodel.soapclientinterfacedefinition
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.datasetkind=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.datasetname=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.endpoint=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.groupname=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.hostname=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.idescription=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.password=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.sslkeystore=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.timeout=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.username=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces=template:domainmodel.soapclientinterfacedefinition
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.endpoint=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.groupname=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.idescription=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.password=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.sslkeystore=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.timeout=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.username=
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients=template:domainmodel.soapclientinterfacedefinition
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.endpoint=
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.groupname=
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.idescription=
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.password=
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.sslkeystore=
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.username=
domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver=template:domainmodel.soapserverinterfacedefinition
domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver.groupname=
domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver.idescription=
domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver.url=
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap=template:domainmodel.soapserverinterfacedefinition
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.encodingstrategy=UseSameAsRequest
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.exporttzoffset=false
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.forssl=false
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.groupname=
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.idescription=
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.securecommunication.protocols=TLSv1,TLSv1.1,TLSv1.2
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.timezone=GMT
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.useoslocaltimezone=true
domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface=template:domainmodel.soapserverinterfacedefinition
domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface.groupname=
domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface.idescription=
domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface.url=
domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver=template:domainmodel.soapserverinterfacedefinition
domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver.groupname=
domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver.idescription=
domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver.url=
domainmodel.soapserverinterfacedefinition.interface.utf=template:domainmodel.soapserverinterfacedefinition
domainmodel.soapserverinterfacedefinition.interface.utf.groupname=
domainmodel.soapserverinterfacedefinition.interface.utf.idescription=
user=template:user
user.increasestartofplanning=false
user.sizingparameter=false
_var/_Main/ModelSettings/Common/Dev-68/_ROOT_Role_Dev-68.properties
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,575 @@
#The properties belonging to _meta and _self groups are reserved. Please do not change them. Comments on these properties will not be preserved.
_meta.application=server
_meta.kind=Quintiq Property File
_meta.type=model
_meta.version.config=1.3
_self.configsettype=Role
_self.name=Dev-68
arg=template:serverargs
arg.architectdependencies=
arg.custom=""
arg.versioncontrolmode=true
domainmodel.ediremotedatasourcedefinition.remotestorage.destination=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.destination.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.destination.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.destination.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.exportcim.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.importcim=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.connection=DBODBC1
domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.parameters=/datasource=CIM_Carco /owner=dbo /user=quintiq
domainmodel.ediremotedatasourcedefinition.remotestorage.importcim.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcampaignsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputcurrenciesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputentitycostsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputglobalparametersfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputgroupsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventoryspecificationsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputinventorysuppliesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputlanesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputperioddefinitionsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputpostponementsandfulfillmentsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputprioritiesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputproductsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputrecipesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputroutingsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalesdemandsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsalessegmentsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputshiftpatternsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointcapacitiesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputstockingpointsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputsupplyspecificationsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitavailabilitiesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcalendarelementsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitcapacitiesfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitofmeasuresfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfromexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.inputunitsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.connection=dbodbc1
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.parameters=/datasource=orclpdb /owner=TIANMA /chardatatypeforstring /characterencoding=UTF-8 /appdatatypeforstring=wchar
domainmodel.ediremotedatasourcedefinition.remotestorage.localoracle.password=1 E9FE769DABE91891284EBBA6CEA8F41B 479d6f99-cffb-41e6-94f1-d35bdf20703c
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.connection=dbodbc1
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.parameters=/datasource=otd /owner=OTD /chardatatypeforstring /characterencoding=UTF-8 /appdatatypeforstring=wchar
domainmodel.ediremotedatasourcedefinition.remotestorage.oracle.password=1 A205E2668CFBD9365E030C36BB0A4297 730524bf-f9c9-426f-94a0-953687be1178
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcampaignstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputcurrenciestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputentitycoststomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputforecaststoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparameterstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputglobalparamterstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputgroupstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventoryspecificationstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputinventorysuppliestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputlanestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionsfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputperioddefinitionstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.maxcolumnnamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.maxtablenamelength=0
domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputpostponementsandfulfillmentstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputprioritiestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputproductstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputrecipestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputroutingstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalesdemandstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsalessegmentstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputshiftpatternstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointcapacitiestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputstockingpointstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputsupplyspecificationstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputtransportcapacitiestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitavailabilitiestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcalendarelementstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiesfrommodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitcapacitiestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitofmeasurestomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstoexcel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel.connection=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel.parameters=
domainmodel.ediremotedatasourcedefinition.remotestorage.outputunitstomodel.password=
domainmodel.ediremotedatasourcedefinition.remotestorage.syncobject=template:domainmodel.ediremotedatasourcedefinition
domainmodel.ediremotedatasourcedefinition.remotestorage.syncobject.parameters=/datasource=MPERPIntegrationDataSource /owner=dbo /user=quintiq
domainmodel.fileprovider.qdrive=template:domainmodel.fileprovider.qdrive
domainmodel.fileprovider.qdrive.enabled=true
domainmodel.fileprovider.qdrive.readonly=false
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint=template:domainmodel.integratorconfig.dsendpoint
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.connectiontimeout=0
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.dspassword=1 D27640F00F09F1085D52409202B71B4E 2a9f48ef-2467-4394-afcb-75e45a1c40d9
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.dsserviceurl=https://vdemopro1342dsy.extranet.3ds.com/3DSpace/resources/v1/model/
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.dsuser=Push
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.maxconnections=10
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.receivecontentcharset=ASCII
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.requesttimeout=60
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sendingcontentcharset=UTF-8
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.sockettimeout=0
domainmodel.integratorconfig.dsendpoint.q3dspace_3dsendpoint.trustmanagername=Q3DSpace
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.jtmbrestserver_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.panelmaterialrestserver_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint=template:domainmodel.integratorconfig.quintiqendpoint
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.connectiongroupname=SERVER
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.integratorid=Q3DSpace
domainmodel.integratorconfig.quintiqendpoint.q3dspace_quintiqendpoint.outboundrequesttimeout=60
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver=template:domainmodel.integratorconfig.restendpoint
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam1=
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationparam2=
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.authenticationtype=None
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.connectiontimeout=0
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.contenttype=JSON
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.enablehttpmessagelogging=true
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.includerawcontent=false
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.maxconnections=10
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.passonvalidationerrors=false
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.portnumber=8080
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.proxyportnumber=0
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.receivecontentcharset=ASCII
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.requesttimeout=60
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sendingcontentcharset=utf-8
domainmodel.integratorconfig.restendpoint.jtmbrestserver_restserver.sockettimeout=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial=template:domainmodel.integratorconfig.restendpoint
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam1=
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationparam2=
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.authenticationtype=None
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.connectiontimeout=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.contenttype=JSON
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.enablehttpmessagelogging=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.includerawcontent=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.maxconnections=10
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.passonvalidationerrors=false
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.portnumber=8080
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.proxyportnumber=0
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.receivecontentcharset=ASCII
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.requesttimeout=60
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.restschemaurl="C:\\Users\\hongjli\\Desktop\\integratorrestexample\\openapi.yaml"
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sendingcontentcharset=utf-8
domainmodel.integratorconfig.restendpoint.panelmaterialrestserver_restendpointpanelmaterial.sockettimeout=0
domainmodel.mdsstoragedefinitionmanager=template:domainmodel.mdsstoragedefinitionmanager
domainmodel.mdsstoragedefinitionmanager.audittrailenabled=false
domainmodel.mdsstoragedefinitionmanager.audittraillocation=
domainmodel.mdsstoragedefinitionmanager.databaseenabled=false
domainmodel.mdsstoragedefinitionmanager.datasetstoredatasource=MacroPlanner
domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=false
domainmodel.mdsstoragedefinitionmanager.datasetstoreislocal=false
domainmodel.mdsstoragedefinitionmanager.dbformat=Legacy
domainmodel.mdsstoragedefinitionmanager.defaultencryptioncertificate=
#domainmodel.mdsstoragedefinitionmanager.defaultencryptioncertificate=
domainmodel.mdsstoragedefinitionmanager.driver=OCI
domainmodel.mdsstoragedefinitionmanager.dssfilesystemenabled=false
domainmodel.mdsstoragedefinitionmanager.maxcolumnname=0
domainmodel.mdsstoragedefinitionmanager.maxtablename=0
domainmodel.mdsstoragedefinitionmanager.name=dbodbc1
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasichost=10.110.14.50
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicport=1521
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicservice=totddb_jtmb
domainmodel.mdsstoragedefinitionmanager.ociconnectiontnsname=totddb
domainmodel.mdsstoragedefinitionmanager.ociconnectiontype=Basic
domainmodel.mdsstoragedefinitionmanager.parameters=/datasource=MacroPlannerInternalDB /user=OTDJTMBUSER
domainmodel.mdsstoragedefinitionmanager.password=1 463752FBAC1C9172263ADBF875F4CBF3 d5a0fc9a-a372-4807-9f03-34bcf85e582d
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients=template:domainmodel.soapclientinterfacedefinition
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.datasetkind=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.datasetname=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.endpoint=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.groupname=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.hostname=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.idescription=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.password=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.sslkeystore=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.timeout=
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.username=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces=template:domainmodel.soapclientinterfacedefinition
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.endpoint=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.groupname=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.idescription=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.password=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.sslkeystore=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.timeout=
domainmodel.soapclientinterfacedefinition.interface.sopdsscclientinterfaces.username=
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients=template:domainmodel.soapclientinterfacedefinition
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.endpoint=
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.groupname=
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.idescription=
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.password=
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.sslkeystore=
domainmodel.soapclientinterfacedefinition.interface.sopworkflowclients.username=
domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver=template:domainmodel.soapserverinterfacedefinition
domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver.groupname=
domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver.idescription=
domainmodel.soapserverinterfacedefinition.interface.libdef_soapserver.url=
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap=template:domainmodel.soapserverinterfacedefinition
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.encodingstrategy=UseSameAsRequest
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.exporttzoffset=false
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.forssl=false
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.groupname=
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.idescription=
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.securecommunication.protocols=TLSv1,TLSv1.1,TLSv1.2
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.timezone=GMT
domainmodel.soapserverinterfacedefinition.interface.monitoringlibrarysoap.useoslocaltimezone=true
domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface=template:domainmodel.soapserverinterfacedefinition
domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface.groupname=
domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface.idescription=
domainmodel.soapserverinterfacedefinition.interface.sopdsscserverinterface.url=
domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver=template:domainmodel.soapserverinterfacedefinition
domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver.groupname=
domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver.idescription=
domainmodel.soapserverinterfacedefinition.interface.sopworkflowserver.url=
domainmodel.soapserverinterfacedefinition.interface.utf=template:domainmodel.soapserverinterfacedefinition
domainmodel.soapserverinterfacedefinition.interface.utf.groupname=
domainmodel.soapserverinterfacedefinition.interface.utf.idescription=
user=template:user
user.increasestartofplanning=false
user.sizingparameter=false
_var/_Main/ProjSettings/MacroPlanner/Views/X_·ÖÎöÊÓͼ_[414702.1.50321581].vw
@@ -14,9 +14,9 @@
  ICONIMAGE 'WINDOWS'
  CREATIONDATETIME '2023-10-12T10:00:44'
  CREATIONUSER 'quintiq/hongjli'
  UPDATEDATETIME '2023-10-12T10:18:13'
  UPDATEDATETIME '2023-10-12T23:32:10'
  UPDATEUSER 'quintiq/hongjli'
  LASTACCESSDATE '2023-10-12'
  LASTACCESSDATE '2023-10-13'
  VIEWSCOPE 0
}
AUTHORIZATIONS
@@ -42,33 +42,33 @@
INFOOBJECT
{
  KEY [626.0.4514905]
  OBJECTTYPE Application // ApplicationLibMacroPlanner
  OBJECTTYPE Application
  BASEINFOOBJECTS
  {
   BASEINFOOBJECT
   {
    KEY [626.0.4514905]
    OBJECTTYPE GUIComponent // ApplicationLibMacroPlanner
    OBJECTTYPE GUIComponent
    CONTENTS
    {
     SETTINGS_MDS_WITH_FOLDER
     {
       [414702.1.52504981]:LibInt_IntegratorProxy:/root:LibInt_IntegratorProxy
       [414702.1.52533373]:SWF_CommunicationDataset:/root:SWF_CommunicationDataset
       [414702.1.52528776]:SWF_WorkflowDataset:/root:SWF_WorkflowDataset
       [414702.1.52500409]:LibDEF_DataBroker:/root:LibDEF_DataBroker
       [414702.1.50285849]:LibDEF_DataRepository:/root:LibDEF_DataRepository
       [414702.1.50276708]:DMF_ConvertorDataset:/root:DMF_ConvertorDataset
       [414702.1.52542521]:LibMon_Monitor:/root:LibMon_Monitor
       [414702.1.52537950]:LibUTF:/root:UTF
       [414702.1.52550001]:Lib3DS_RootDataset:/root:Lib3DS_RootDataset
       [414702.1.52580001]:KpiTracker:/root:KpiTracker
       [414702.1.50281280]:MPDomainHandler:/root:MPDomainHandler
       [414702.1.52560001]:MPSync:/root:MPSync
       [414702.1.52509550]:ScenarioManager:/root:ScenarioManager
       [414702.1.52570001]:LibSCIIntegrationInterface:/root:LibSCIIntegrationInterface
       [414702.1.52519619]:GlobalOTDTable:/root:GlobalOTDTable
       [414702.1.52585361]:MacroPlan:/root:MacroPlan
       [414702.1.62804981]:LibInt_IntegratorProxy:/root:LibInt_IntegratorProxy
       [414702.1.62833373]:SWF_CommunicationDataset:/root:SWF_CommunicationDataset
       [414702.1.62828776]:SWF_WorkflowDataset:/root:SWF_WorkflowDataset
       [414702.1.62800409]:LibDEF_DataBroker:/root:LibDEF_DataBroker
       [414702.1.61685849]:LibDEF_DataRepository:/root:LibDEF_DataRepository
       [414702.1.61676708]:DMF_ConvertorDataset:/root:DMF_ConvertorDataset
       [414702.1.62842521]:LibMon_Monitor:/root:LibMon_Monitor
       [414702.1.62837950]:LibUTF:/root:UTF
       [414702.1.62860001]:Lib3DS_RootDataset:/root:Lib3DS_RootDataset
       [414702.1.62850001]:KpiTracker:/root:KpiTracker
       [414702.1.62875363]:MacroPlan:/root:MacroPlan
       [414702.1.61681280]:MPDomainHandler:/root:MPDomainHandler
       [414702.1.62880001]:MPSync:/root:MPSync
       [414702.1.62809550]:ScenarioManager:/root:ScenarioManager
       [414702.1.62870001]:LibSCIIntegrationInterface:/root:LibSCIIntegrationInterface
       [414702.1.62819619]:GlobalOTDTable:/root:GlobalOTDTable
     }
    }
   }
@@ -78,19 +78,19 @@
   INFOOBJECT
   {
    KEY [514.0.2180]
    OBJECTTYPE Frame // Frame
    OBJECTTYPE Frame
    CONTENTS
    {
     State := maximized
     (200,0,1536,809)
     WorkspaceLocation :=
     WorkspaceLocation :=
    }
    INFOOBJECTS
    {
     INFOOBJECT
     {
      KEY [113694.2.1024236755]
      OBJECTTYPE ValueHolder // ValueHolderViewLayout
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value ''
@@ -99,16 +99,16 @@
     INFOOBJECT
     {
      KEY [127710.1.721401771]
      OBJECTTYPE ValueHolder // ValueHolderActiveMacroPlan
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value '[414702.1.52620491]'
       Value '[414702.1.64020493]'
      }
     }
     INFOOBJECT
     {
      KEY [132448.0.224582518]
      OBJECTTYPE ValueHolder // ValueHolderSetMPDefaultViewForFirstLogin
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value 'false'
@@ -117,7 +117,7 @@
     INFOOBJECT
     {
      KEY [146450.2.1404665746]
      OBJECTTYPE ValueHolder // vhConfiguration
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value 'false'
@@ -126,7 +126,7 @@
     INFOOBJECT
     {
      KEY [146874.1.233869144]
      OBJECTTYPE ValueHolder // vhConfigurationMatrix
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value 'false'
@@ -135,7 +135,7 @@
     INFOOBJECT
     {
      KEY [132894.0.1007052496]
      OBJECTTYPE ValueHolder // ValueHolderSetDataHolderSelectedPISPIPExtractor
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value 'false'
@@ -144,7 +144,7 @@
     INFOOBJECT
     {
      KEY [108684.0.1782661552]
      OBJECTTYPE ValueHolder // ValueHolderLastSelected3DDriveDirectory
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value ''
@@ -153,16 +153,16 @@
     INFOOBJECT
     {
      KEY [107654.0.557163713]
      OBJECTTYPE ValueHolder // ValueHolderUserGroup
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value ';Administrator;Developer;AggregatedPlanning;Blending;CampaignPlanning;CapacitySmoothing;DatabaseIntegration;Development;Feedback;Groups;InventoryMixBalancing;InventorySpecifications;InventorySupplies;LotSizes;OptimizerBenchmarking;Pegging;ProductPlanningGanttChart;SafetyStockCalculation;SalesDemandPostponement;ShelfLife;SupplyChainMap;SupplySpecifications;TransportationPlanning;Workflow;Functionalities;Software;SOP;Cloud;OnPremise;SupplyChainDirector;SupplyPlanner;DemandPlanner;CollaborativeForecasting;SOAPServerUserGroup;Web_SupplyPlanning;Web_SupplyChainData;Web_CampaignPlanning;Web_Sales;Web_Development;Web;Web_ScenariosAndSettings;Web_Blending;Web_DemandPostponement;Web_Allocation;Web_Financials;Web_Feedbacks;Web_InventoryMixBalancing;Web_SafetyStockCalculation;Web_WorkFlowConfiguration;Web_MyActivities;Web_Integration;Web_OptimizerBenchmarking;Web_SupplyDashboard;Web_Optimizer;Web_LotSizes;Web_ShelfLife;Web_CapacitySmoothing;Web_Inventory;Web_SafetyStock;KpiTrackerAdmin;Web_ProductionPlan;Web_PurchasingPlan;Web_TripPlan;Web_Plan;Web_BlendingPlan;BusinessUnitOM;ProductionPlan;MRPPlanning;AppConfigurators;Implementors'
       Value ';MRPPlanning;ProductionPlan;BusinessUnitOM;Web_BlendingPlan;Web_Plan;Web_TripPlan;Web_PurchasingPlan;Web_ProductionPlan;KpiTrackerAdmin;Web_SafetyStock;Web_Inventory;Web_CapacitySmoothing;Web_ShelfLife;Web_LotSizes;Web_Optimizer;Web_SupplyDashboard;Web_OptimizerBenchmarking;Web_Integration;Web_MyActivities;Web_WorkFlowConfiguration;Web_SafetyStockCalculation;Web_InventoryMixBalancing;Web_Feedbacks;Web_Financials;Web_Allocation;Web_DemandPostponement;Web_Blending;Web_ScenariosAndSettings;Web;Web_Development;Web_Sales;Web_CampaignPlanning;Web_SupplyChainData;Web_SupplyPlanning;SOAPServerUserGroup;CollaborativeForecasting;DemandPlanner;SupplyPlanner;SupplyChainDirector;OnPremise;Cloud;SOP;Software;Functionalities;Workflow;TransportationPlanning;SupplySpecifications;SupplyChainMap;ShelfLife;SalesDemandPostponement;SafetyStockCalculation;ProductPlanningGanttChart;Pegging;OptimizerBenchmarking;LotSizes;InventorySupplies;InventorySpecifications;InventoryMixBalancing;Groups;Feedback;Development;DatabaseIntegration;CapacitySmoothing;CampaignPlanning;Blending;AggregatedPlanning;Developer;Administrator;Implementors;AppConfigurators'
      }
     }
     INFOOBJECT
     {
      KEY [113694.1.227882923]
      OBJECTTYPE ValueHolder // ValueHolderShowSanityCheck
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value ''
@@ -171,7 +171,7 @@
     INFOOBJECT
     {
      KEY [126224.0.581715]
      OBJECTTYPE ValueHolder // ValueHolder
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value 'Feasible'
@@ -180,7 +180,7 @@
     INFOOBJECT
     {
      KEY [132894.0.388222255]
      OBJECTTYPE ValueHolder // ValueHolderImportProfileMessage
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value ''
@@ -189,7 +189,7 @@
     INFOOBJECT
     {
      KEY [127238.1.80067038]
      OBJECTTYPE ValueHolder // ValueHolderSizing
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value 'true'
@@ -198,7 +198,7 @@
     INFOOBJECT
     {
      KEY [122192.0.103731718]
      OBJECTTYPE ValueHolder // ValueHolderSanityCheckHighestSeverityMsgCount
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value '39'
@@ -207,7 +207,7 @@
     INFOOBJECT
     {
      KEY [113694.2.1085093394]
      OBJECTTYPE ValueHolder // ValueHolderIsImportSucceed
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value 'true'
@@ -216,7 +216,7 @@
     INFOOBJECT
     {
      KEY [132448.0.331221783]
      OBJECTTYPE ValueHolder // ValueHolderScenarioMPSize
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value '1'
@@ -225,7 +225,7 @@
     INFOOBJECT
     {
      KEY [127238.1.502176570]
      OBJECTTYPE ValueHolder // ValueHolderPeriodRollStatus
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value 'false'
@@ -234,7 +234,7 @@
     INFOOBJECT
     {
      KEY [112884.1.706803944]
      OBJECTTYPE ValueHolder // ValueHolderSanityCheckHighestSeverity
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value '2'
@@ -243,7 +243,7 @@
     INFOOBJECT
     {
      KEY [132448.0.662420775]
      OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel
      OBJECTTYPE GUIDataSetLevel
      CONTENTS
      {
       Columns
@@ -283,13 +283,13 @@
     INFOOBJECT
     {
      KEY [136682.0.314428046]
      OBJECTTYPE GUIComponent // PTFPanelTestController
      OBJECTTYPE GUIComponent
      INFOOBJECTS
      {
       INFOOBJECT
       {
        KEY [105690.0.246954464]
        OBJECTTYPE ValueHolder // vhLogging
        OBJECTTYPE ValueHolder
        CONTENTS
        {
         Value ''
@@ -298,7 +298,7 @@
       INFOOBJECT
       {
        KEY [104342.0.773994982]
        OBJECTTYPE ValueHolder // vhDoActionInfoReturn
        OBJECTTYPE ValueHolder
        CONTENTS
        {
         Value ''
@@ -307,7 +307,7 @@
       INFOOBJECT
       {
        KEY [104342.0.867521338]
        OBJECTTYPE ValueHolder // vhPendingActions
        OBJECTTYPE ValueHolder
        CONTENTS
        {
         Value ''
@@ -316,7 +316,7 @@
       INFOOBJECT
       {
        KEY [104342.0.867524820]
        OBJECTTYPE ValueHolder // vhSharedRepository
        OBJECTTYPE ValueHolder
        CONTENTS
        {
         Value '\\\\CNLEN1845000693\\PTF_Repository\\'
@@ -325,7 +325,7 @@
       INFOOBJECT
       {
        KEY [105690.0.892938783]
        OBJECTTYPE ValueHolder // vhAsyncActionStatus
        OBJECTTYPE ValueHolder
        CONTENTS
        {
         Value ''
@@ -334,7 +334,7 @@
       INFOOBJECT
       {
        KEY [105690.0.247211998]
        OBJECTTYPE ValueHolder // vhResultLogPath
        OBJECTTYPE ValueHolder
        CONTENTS
        {
         Value ''
@@ -343,7 +343,7 @@
       INFOOBJECT
       {
        KEY [105690.0.892939622]
        OBJECTTYPE ValueHolder // vhPTFExecutionStatus
        OBJECTTYPE ValueHolder
        CONTENTS
        {
         Value 'Inactive'
@@ -352,7 +352,7 @@
       INFOOBJECT
       {
        KEY [103546.0.81355542]
        OBJECTTYPE ValueHolder // vhAutoClose
        OBJECTTYPE ValueHolder
        CONTENTS
        {
         Value ''
@@ -361,7 +361,7 @@
       INFOOBJECT
       {
        KEY [103546.0.54652306]
        OBJECTTYPE ValueHolder // vhLogStart
        OBJECTTYPE ValueHolder
        CONTENTS
        {
         Value ''
@@ -372,7 +372,7 @@
     INFOOBJECT
     {
      KEY [113694.2.1146370710]
      OBJECTTYPE Toolbar // ToolbarWorkflow
      OBJECTTYPE Toolbar
      CONTENTS
      {
       'vertical' '50' '0'
@@ -382,19 +382,16 @@
       INFOOBJECT
       {
        KEY [113694.2.1146375645]
        OBJECTTYPE CustomDrawComponent // SWF_MP_CustomDrawComponentProcessDashboard
        BASEINFOOBJECTS
        {
        }
        OBJECTTYPE CustomDrawComponent
        INFOOBJECTS
        {
         INFOOBJECT
         {
          KEY [132478.0.288924864]
          OBJECTTYPE ValueHolder // ValueHolderLastSyncDateTime
          OBJECTTYPE ValueHolder
          CONTENTS
          {
           Value '12-10-2023, 10:01:17'
           Value '12-10-2023, 20:12:19'
          }
         }
        }
@@ -404,7 +401,7 @@
     INFOOBJECT
     {
      KEY [11660.0.360702312]
      OBJECTTYPE Toolbar // ToolbarSupplyChainPanel
      OBJECTTYPE Toolbar
      CONTENTS
      {
       'horizontal' '50' '336'
@@ -414,7 +411,7 @@
       INFOOBJECT
       {
        KEY [113694.2.1070869880]
        OBJECTTYPE ValueHolder // ValueHolderNavigationPanelState
        OBJECTTYPE ValueHolder
        CONTENTS
        {
         Value 'true'
@@ -423,7 +420,7 @@
       INFOOBJECT
       {
        KEY [113694.2.1070870209]
        OBJECTTYPE ValueHolder // ValueHolderNavigationPanelSize
        OBJECTTYPE ValueHolder
        CONTENTS
        {
         Value '336'
@@ -432,13 +429,13 @@
       INFOOBJECT
       {
        KEY [113694.2.1033284312]
        OBJECTTYPE SplitterWnd // SplitterWnd
        OBJECTTYPE SplitterWnd
        INFOOBJECTS
        {
         INFOOBJECT
         {
          KEY [113694.2.1033284313]
          OBJECTTYPE SplitterPane // SplitterPane
          OBJECTTYPE SplitterPane
          CONTENTS
          {
           VISIBLE true
@@ -448,7 +445,7 @@
           INFOOBJECT
           {
            KEY [127238.0.1883499282]
            OBJECTTYPE TabComponent // TabComponent
            OBJECTTYPE TabComponent
            CONTENTS
            {
             ActivePageIndex 0
@@ -458,7 +455,7 @@
             INFOOBJECT
             {
              KEY [132448.0.71838188]
              OBJECTTYPE List // ListNavigationPanelSelection
              OBJECTTYPE List
              CONTENTS
              {
               Quantorrow := false
@@ -468,16 +465,16 @@
               INFOOBJECT
               {
                KEY [127238.0.1883514459]
                OBJECTTYPE ValueHolder // ValueHolderListSelections
                OBJECTTYPE ValueHolder
                CONTENTS
                {
                 Value 'Stocking points and units'
                 Value 'Products'
                }
               }
               INFOOBJECT
               {
                KEY [127238.0.1883514458]
                OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel288
                OBJECTTYPE GUIDataSetLevel
                CONTENTS
                {
                 Columns
@@ -508,13 +505,13 @@
             INFOOBJECT
             {
              KEY [127238.0.1883516525]
              OBJECTTYPE SplitterWnd // SplitterWnd516
              OBJECTTYPE SplitterWnd
              INFOOBJECTS
              {
               INFOOBJECT
               {
                KEY [127238.0.1883516526]
                OBJECTTYPE SplitterPane // SplitterPaneEntities
                OBJECTTYPE SplitterPane
                CONTENTS
                {
                 Size 100
@@ -525,20 +522,17 @@
                 INFOOBJECT
                 {
                  KEY [127238.0.1883516528]
                  OBJECTTYPE List // ListEntityTreeInPanel
                  OBJECTTYPE List
                  CONTENTS
                  {
                   Quantorrow := false
                  }
                  BASEINFOOBJECTS
                  {
                  }
                  INFOOBJECTS
                  {
                   INFOOBJECT
                   {
                    KEY [113694.2.1026852831]
                    OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelUnit
                    OBJECTTYPE GUIDataSetLevel
                    CONTENTS
                    {
                     Columns
@@ -553,7 +547,7 @@
                         Column internal[DataSetDataColumn] [127710.1.1014102531]
                         {
                           Header := 'Name'
                           Width := 100
                           Width := 60
                           Subtotals := false
                           Specific
                           {
@@ -573,7 +567,7 @@
               INFOOBJECT
               {
                KEY [127238.0.1883516541]
                OBJECTTYPE SplitterPane // SplitterPaneProducts
                OBJECTTYPE SplitterPane
                CONTENTS
                {
                 Size 0
@@ -584,20 +578,17 @@
                 INFOOBJECT
                 {
                  KEY [127238.0.1883516544]
                  OBJECTTYPE List // ListProductInPanel
                  OBJECTTYPE List
                  CONTENTS
                  {
                   Quantorrow := false
                  }
                  BASEINFOOBJECTS
                  {
                  }
                  INFOOBJECTS
                  {
                   INFOOBJECT
                   {
                    KEY [113694.2.1025678105]
                    OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelProducts
                    OBJECTTYPE GUIDataSetLevel
                    CONTENTS
                    {
                     Columns
@@ -611,7 +602,7 @@
                       {
                         Column internal[DataSetDataColumn] [127710.1.791646005]
                         {
                           Width := 43
                           Width := 60
                           Subtotals := false
                           Specific
                           {
@@ -630,7 +621,7 @@
               INFOOBJECT
               {
                KEY [127238.0.1883516552]
                OBJECTTYPE SplitterPane // SplitterPaneSalesSegment
                OBJECTTYPE SplitterPane
                CONTENTS
                {
                 Size 0
@@ -641,20 +632,17 @@
                 INFOOBJECT
                 {
                  KEY [127238.0.1883516554]
                  OBJECTTYPE List // ListSalesSegmentInPanel
                  OBJECTTYPE List
                  CONTENTS
                  {
                   Quantorrow := false
                  }
                  BASEINFOOBJECTS
                  {
                  }
                  INFOOBJECTS
                  {
                   INFOOBJECT
                   {
                    KEY [11660.0.1616690288]
                    OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelSalesSegment
                    OBJECTTYPE GUIDataSetLevel
                    CONTENTS
                    {
                     Columns
@@ -668,7 +656,7 @@
                       {
                         Column internal[DataSetDataColumn] [127710.1.791646006]
                         {
                           Width := 100
                           Width := 60
                           Subtotals := false
                           Specific
                           {
@@ -687,7 +675,7 @@
               INFOOBJECT
               {
                KEY [131438.0.356639347]
                OBJECTTYPE SplitterPane // SplitterPanePeriods
                OBJECTTYPE SplitterPane
                CONTENTS
                {
                 Size 0
@@ -698,7 +686,7 @@
                 INFOOBJECT
                 {
                  KEY [131438.0.353247249]
                  OBJECTTYPE List // ListPeriodSpecificationInPanel
                  OBJECTTYPE List
                  CONTENTS
                  {
                   Quantorrow := false
@@ -708,7 +696,7 @@
                   INFOOBJECT
                   {
                    KEY [131438.0.371333408]
                    OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelPeriodSpecifications
                    OBJECTTYPE GUIDataSetLevel
                    CONTENTS
                    {
                     Columns
@@ -723,7 +711,7 @@
                         Column internal[DataSetDataColumn] [131438.0.360619967]
                         {
                           Header := 'Name'
                           Width := 100
                           Width := 60
                           Subtotals := false
                           Specific
                           {
@@ -740,7 +728,7 @@
                     INFOOBJECT
                     {
                      KEY [131438.0.402834330]
                      OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelPeriods
                      OBJECTTYPE GUIDataSetLevel
                      CONTENTS
                      {
                       Columns
@@ -789,13 +777,13 @@
             INFOOBJECT
             {
              KEY [127238.0.1884468404]
              OBJECTTYPE SplitterWnd // SplitterWnd466
              OBJECTTYPE SplitterWnd
              INFOOBJECTS
              {
               INFOOBJECT
               {
                KEY [127238.0.1884468405]
                OBJECTTYPE SplitterPane // SplitterPane252
                OBJECTTYPE SplitterPane
                CONTENTS
                {
                 VISIBLE true
@@ -805,7 +793,7 @@
                 INFOOBJECT
                 {
                  KEY [127238.0.1884468597]
                  OBJECTTYPE List // ListBookmarks
                  OBJECTTYPE List
                  CONTENTS
                  {
                   Quantorrow := false
@@ -815,7 +803,7 @@
                   INFOOBJECT
                   {
                    KEY [130238.0.368320209]
                    OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelBookmarks
                    OBJECTTYPE GUIDataSetLevel
                    CONTENTS
                    {
                     Columns
@@ -846,7 +834,7 @@
                     INFOOBJECT
                     {
                      KEY [130238.0.368320210]
                      OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelBookmarkChildren
                      OBJECTTYPE GUIDataSetLevel
                      CONTENTS
                      {
                       Columns
@@ -895,29 +883,26 @@
      SINGLEINSTANCE false
      ID 'Pegging'
      PARENTKEY [514.0.2180]
      OBJECTTYPE Form // FormPegging
      OBJECTTYPE Form
      CREATETYPE FormPegging
      CONTENTS
      {
       State := normal
       (354,421,990,664)
       DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[1]Selection[FRONT]
      }
      BASEINFOOBJECTS
      {
       DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[0]Selection[NONE]
      }
      INFOOBJECTS
      {
       INFOOBJECT
       {
        KEY [108486.1.1171911809]
        OBJECTTYPE SplitterWnd // SplitterWnd1
        OBJECTTYPE SplitterWnd
        INFOOBJECTS
        {
         INFOOBJECT
         {
          KEY [108486.1.1171911810]
          OBJECTTYPE SplitterPane // SplitterPane
          OBJECTTYPE SplitterPane
          CONTENTS
          {
           Size 50.132802124834
@@ -928,13 +913,13 @@
           INFOOBJECT
           {
            KEY [108486.1.1171921411]
            OBJECTTYPE SplitterWnd // SplitterWndDemand_MP_Pegging
            OBJECTTYPE SplitterWnd
            INFOOBJECTS
            {
             INFOOBJECT
             {
              KEY [108486.1.1171921412]
              OBJECTTYPE SplitterPane // SplitterPane2
              OBJECTTYPE SplitterPane
              CONTENTS
              {
               Size 52.6515151515151
@@ -945,7 +930,7 @@
               INFOOBJECT
               {
                KEY [108486.1.1171921414]
                OBJECTTYPE List // ListDemand
                OBJECTTYPE List
                CONTENTS
                {
                 Quantorrow := false
@@ -955,7 +940,7 @@
                 INFOOBJECT
                 {
                  KEY [108486.1.1171924299]
                  OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelDemand_MP
                  OBJECTTYPE GUIDataSetLevel
                  CONTENTS
                  {
                   Columns
@@ -1100,7 +1085,7 @@
             INFOOBJECT
             {
              KEY [108486.1.1171921413]
              OBJECTTYPE SplitterPane // SplitterPane3
              OBJECTTYPE SplitterPane
              CONTENTS
              {
               Size 47.3484848484849
@@ -1111,7 +1096,7 @@
               INFOOBJECT
               {
                KEY [113694.0.1490022148]
                OBJECTTYPE List // ListDemandPegging
                OBJECTTYPE List
                CONTENTS
                {
                 Quantorrow := false
@@ -1121,7 +1106,7 @@
                 INFOOBJECT
                 {
                  KEY [113694.0.1490022154]
                  OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel2
                  OBJECTTYPE GUIDataSetLevel
                  CONTENTS
                  {
                   Columns
@@ -1222,7 +1207,7 @@
         INFOOBJECT
         {
          KEY [108486.1.1171911811]
          OBJECTTYPE SplitterPane // SplitterPane1
          OBJECTTYPE SplitterPane
          CONTENTS
          {
           Size 49.867197875166
@@ -1233,13 +1218,13 @@
           INFOOBJECT
           {
            KEY [108486.1.1175693802]
            OBJECTTYPE SplitterWnd // SplitterWndSupply_MP_Pegging
            OBJECTTYPE SplitterWnd
            INFOOBJECTS
            {
             INFOOBJECT
             {
              KEY [108486.1.1175693803]
              OBJECTTYPE SplitterPane // SplitterPane4
              OBJECTTYPE SplitterPane
              CONTENTS
              {
               Size 52.6315789473684
@@ -1250,7 +1235,7 @@
               INFOOBJECT
               {
                KEY [108486.1.1175693804]
                OBJECTTYPE List // ListSupply
                OBJECTTYPE List
                CONTENTS
                {
                 Quantorrow := false
@@ -1260,7 +1245,7 @@
                 INFOOBJECT
                 {
                  KEY [108486.1.1175693807]
                  OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelSupply_MP
                  OBJECTTYPE GUIDataSetLevel
                  CONTENTS
                  {
                   Columns
@@ -1384,7 +1369,7 @@
             INFOOBJECT
             {
              KEY [108486.1.1175693810]
              OBJECTTYPE SplitterPane // SplitterPane5
              OBJECTTYPE SplitterPane
              CONTENTS
              {
               Size 47.3684210526316
@@ -1395,7 +1380,7 @@
               INFOOBJECT
               {
                KEY [108486.1.1175693811]
                OBJECTTYPE List // ListSupplyPegging
                OBJECTTYPE List
                CONTENTS
                {
                 Quantorrow := false
@@ -1405,7 +1390,7 @@
                 INFOOBJECT
                 {
                  KEY [108486.1.1175693814]
                  OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel4
                  OBJECTTYPE GUIDataSetLevel
                  CONTENTS
                  {
                   Columns
@@ -1511,23 +1496,20 @@
      SINGLEINSTANCE false
      ID '产品规划数据矩阵'
      PARENTKEY [514.0.2180]
      OBJECTTYPE Form // FormProductPlanningMatrix
      OBJECTTYPE Form
      CREATETYPE FormProductPlanningMatrix
      CONTENTS
      {
       State := normal
       (0,0,0,0)
       DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4493;]TabIdx[0]Selection[NONE]
      }
      BASEINFOOBJECTS
      {
       DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4493;]TabIdx[0]Selection[FRONT]
      }
      INFOOBJECTS
      {
       INFOOBJECT
       {
        KEY [127710.1.821866707]
        OBJECTTYPE CheckBox // CheckBoxFilterByProductLevel
        OBJECTTYPE CheckBox
        CONTENTS
        {
         Checkstate 1
@@ -1536,19 +1518,16 @@
       INFOOBJECT
       {
        KEY [127710.1.821866918]
        OBJECTTYPE StringSelection // StringSelectionProductLevel
        OBJECTTYPE StringSelection
        CONTENTS
        {
         BoundValue '[Leaf product]'
        }
        INFOOBJECTS
        {
        }
       }
       INFOOBJECT
       {
        KEY [127710.1.818312567]
        OBJECTTYPE MatrixEditor // MatrixEditorProductPlanning
        OBJECTTYPE MatrixEditor
        CONTENTS
        {
         RowHeight 29
@@ -1561,13 +1540,13 @@
         INFOOBJECT
         {
          KEY [127710.1.819572713]
          OBJECTTYPE GUIScaleView // MatrixEditorColumns
          OBJECTTYPE GUIScaleView
          INFOOBJECTS
          {
           INFOOBJECT
           {
            KEY [127710.1.820829335]
            OBJECTTYPE UserConfigurableInformation // UserConfigurableInformationPeriod
            OBJECTTYPE UserConfigurableInformation
            CONTENTS
            {
             ObjectText 'VALUE(object.Start())'
@@ -1578,13 +1557,13 @@
         INFOOBJECT
         {
          KEY [127710.1.819572710]
          OBJECTTYPE GUIScaleView // MatrixEditorRows
          OBJECTTYPE GUIScaleView
          INFOOBJECTS
          {
           INFOOBJECT
           {
            KEY [127710.1.820300549]
            OBJECTTYPE UserConfigurableInformation // UserConfigurableInformationPISP
            OBJECTTYPE UserConfigurableInformation
            CONTENTS
            {
             ObjectText 'VALUE( object.Name() ) (VALUE( object.UnitOfMeasureName() ))'
@@ -1602,29 +1581,26 @@
      SINGLEINSTANCE false
      ID '销售需求'
      PARENTKEY [514.0.2180]
      OBJECTTYPE Form // FormSalesDemands
      OBJECTTYPE Form
      CREATETYPE FormSalesDemands
      CONTENTS
      {
       State := normal
       (1344,0,192,928)
       DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4493;]TabIdx[1]Selection[FOCUS]
      }
      BASEINFOOBJECTS
      {
       DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4493;]TabIdx[1]Selection[NONE]
      }
      INFOOBJECTS
      {
       INFOOBJECT
       {
        KEY [124112.0.87054864]
        OBJECTTYPE SplitterWnd // SplitterWnd1
        OBJECTTYPE SplitterWnd
        INFOOBJECTS
        {
         INFOOBJECT
         {
          KEY [124112.0.87054865]
          OBJECTTYPE SplitterPane // SplitterPaneSalesDemand
          OBJECTTYPE SplitterPane
          CONTENTS
          {
           Size 72.2642807983482
@@ -1635,7 +1611,7 @@
           INFOOBJECT
           {
            KEY [124112.0.87250426]
            OBJECTTYPE List // ListSalesDemand
            OBJECTTYPE List
            CONTENTS
            {
             Quantorrow := false
@@ -1645,7 +1621,7 @@
             INFOOBJECT
             {
              KEY [124112.0.87253131]
              OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelSalesDemand
              OBJECTTYPE GUIDataSetLevel
              CONTENTS
              {
               Columns
@@ -1780,7 +1756,7 @@
         INFOOBJECT
         {
          KEY [124112.0.87054866]
          OBJECTTYPE SplitterPane // SplitterPaneSalesDemandInPeriod
          OBJECTTYPE SplitterPane
          CONTENTS
          {
           Size 27.7357192016518
@@ -1791,13 +1767,13 @@
           INFOOBJECT
           {
            KEY [116826.1.6886965]
            OBJECTTYPE SplitterWnd // SplitterWnd
            OBJECTTYPE SplitterWnd
            INFOOBJECTS
            {
             INFOOBJECT
             {
              KEY [116826.1.6886966]
              OBJECTTYPE SplitterPane // SplitterPane
              OBJECTTYPE SplitterPane
              CONTENTS
              {
               VISIBLE true
@@ -1807,7 +1783,7 @@
               INFOOBJECT
               {
                KEY [116826.1.6887229]
                OBJECTTYPE List // ListAggregatedSalesDemandInPeriod
                OBJECTTYPE List
                CONTENTS
                {
                 Quantorrow := false
@@ -1817,7 +1793,7 @@
                 INFOOBJECT
                 {
                  KEY [116826.1.6887235]
                  OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelSalesDemandInPeriod
                  OBJECTTYPE GUIDataSetLevel
                  CONTENTS
                  {
                   Columns
@@ -1910,7 +1886,7 @@
             INFOOBJECT
             {
              KEY [116826.1.6886967]
              OBJECTTYPE SplitterPane // SplitterPane552
              OBJECTTYPE SplitterPane
              CONTENTS
              {
               VISIBLE true
@@ -1920,7 +1896,7 @@
               INFOOBJECT
               {
                KEY [116826.1.6889558]
                OBJECTTYPE List // ListDisaggregatedSalesDemandInPeriod
                OBJECTTYPE List
                CONTENTS
                {
                 Quantorrow := false
@@ -1930,7 +1906,7 @@
                 INFOOBJECT
                 {
                  KEY [116826.1.6889563]
                  OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel
                  OBJECTTYPE GUIDataSetLevel
                  CONTENTS
                  {
                   Columns
@@ -2035,29 +2011,26 @@
      SINGLEINSTANCE false
      ID '加工路径'
      PARENTKEY [514.0.2180]
      OBJECTTYPE Form // FormRoutings
      OBJECTTYPE Form
      CREATETYPE FormRoutings
      CONTENTS
      {
       State := normal
       (0,0,0,0)
       DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[0]Selection[NONE]
      }
      BASEINFOOBJECTS
      {
       DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[1]Selection[NONE]
      }
      INFOOBJECTS
      {
       INFOOBJECT
       {
        KEY [136682.0.365497231]
        OBJECTTYPE SplitterWnd // SplitterWnd1
        OBJECTTYPE SplitterWnd
        INFOOBJECTS
        {
         INFOOBJECT
         {
          KEY [136682.0.365497232]
          OBJECTTYPE SplitterPane // SplitterPane
          OBJECTTYPE SplitterPane
          CONTENTS
          {
           VISIBLE true
@@ -2067,7 +2040,7 @@
           INFOOBJECT
           {
            KEY [136682.0.365497233]
            OBJECTTYPE List // ListRouting
            OBJECTTYPE List
            CONTENTS
            {
             Quantorrow := false
@@ -2077,7 +2050,7 @@
             INFOOBJECT
             {
              KEY [136682.0.365497235]
              OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelRouting
              OBJECTTYPE GUIDataSetLevel
              CONTENTS
              {
               Columns
@@ -2322,7 +2295,7 @@
         INFOOBJECT
         {
          KEY [136682.0.365497250]
          OBJECTTYPE SplitterPane // SplitterPane1
          OBJECTTYPE SplitterPane
          CONTENTS
          {
           VISIBLE true
@@ -2332,19 +2305,16 @@
           INFOOBJECT
           {
            KEY [136682.0.365497251]
            OBJECTTYPE SplitterWnd // SplitterWnd2
            OBJECTTYPE SplitterWnd
            INFOOBJECTS
            {
             INFOOBJECT
             {
              KEY [136682.0.365497252]
              OBJECTTYPE SplitterPane // SplitterPane2
              OBJECTTYPE SplitterPane
              CONTENTS
              {
               VISIBLE true
              }
              INFOOBJECTS
              {
              }
             }
            }
@@ -2356,7 +2326,7 @@
       INFOOBJECT
       {
        KEY [136682.0.365502343]
        OBJECTTYPE CheckBox // CheckBoxFilterProduct
        OBJECTTYPE CheckBox
        CONTENTS
        {
         Checkstate 1
@@ -2364,6 +2334,882 @@
       }
      }
     }
     INFOOBJECT
     {
      KEY [414702.0.340554698]
      SINGLEINSTANCE false
      ID '功能测试按钮'
      PARENTKEY [514.0.2180]
      OBJECTTYPE Form
      CREATETYPE FormTestButtonCollection
      CONTENTS
      {
       State := normal
       (0,0,0,0)
       DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[3]Selection[FOCUS]
      }
     }
     INFOOBJECT
     {
      KEY [514.0.2141306]
      SINGLEINSTANCE false
      ID '后台输出'
      PARENTKEY [514.0.2180]
      OBJECTTYPE Dialog
      CREATETYPE dlgServerMessages
      CONTENTS
      {
       State := normal
       (0,0,0,0)
       DockableLocation := Station[MAIN]State[NORM]TreePath[B0.5507;]TabIdx[2]Selection[NONE]
      }
      INFOOBJECTS
      {
       INFOOBJECT
       {
        KEY [514.0.2141287]
        OBJECTTYPE List
        CONTENTS
        {
         Quantorrow := false
        }
        INFOOBJECTS
        {
         INFOOBJECT
         {
          KEY [536.0.860799]
          OBJECTTYPE GUIDataSetLevel
          CONTENTS
          {
           Columns
           {
             Definition := [514.0.2141302]
             {
               [514.0.2141305]
             }
             SubTotals := true
             Visible
             {
               Column internal[DataSetDataColumn] [514.0.2141305]
               {
                 Header := 'Message'
                 Width := 100
                 Subtotals := false
                 Specific
                 {
                   DataPath := 'Message [1.2.530]'
                 }
               }
             }
           }
           Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="internal[ClientReport]">\n  <GEBFiltering Key="@Default_Filter1" TargetType="internal[ClientReport]">\n    <CurrentFilter>true</CurrentFilter>\n    <Name>Default Filter</Name>\n    <Active>true</Active>\n    <IsFavorite>false</IsFavorite>\n    <SortIndex>0</SortIndex>\n    <GEBFilteringData Key="@2">\n      <DefaultColumnPrefix></DefaultColumnPrefix>\n      <ColumnPostfix></ColumnPostfix>\n      <GEBSelectColumn Key="@Message1" ElementType="internal[ClientReport]" ValueType="String">\n        <ColumnID>[414702.1.53972260]</ColumnID>\n        <BaseName>Message</BaseName>\n        <Name>Message</Name>\n        <Title>Message</Title>\n        <IsTarget>false</IsTarget>\n        <NameHasBeenSet>true</NameHasBeenSet>\n        <ColumnFinal>Fail</ColumnFinal>\n        <AttributePathText>Message</AttributePathText>\n        <AttributePathIdentifier>\n        </AttributePathIdentifier>\n      </GEBSelectColumn>\n      <GEBFilter Key="@3">\n        <FreeFilterEnabled>true</FreeFilterEnabled>\n        <GEBFilterColumn Key="@4" Column="@Message1">\n          <ColumnID>[414702.1.53972260]</ColumnID>\n        </GEBFilterColumn>\n        <GEBFreeFilterBody Key="@5">\n          <ExpressionText></ExpressionText>\n          <Converter>\n          </Converter>\n        </GEBFreeFilterBody>\n      </GEBFilter>\n    </GEBFilteringData>\n  </GEBFiltering>\n</GEBObjectsFilter>\n'
           DataMemberSort 'Index [1.2.531]' true true
          }
         }
        }
       }
      }
     }
     INFOOBJECT
     {
      KEY [414702.0.137524322]
      SINGLEINSTANCE false
      ID 'Analysis GlobalOTDTable'
      PARENTKEY [514.0.2180]
      OBJECTTYPE Form
      CREATETYPE frmStandardAnalysisGlobalOTDTable
      CONTENTS
      {
       State := normal
       (0,0,0,0)
       DockableLocation := Station[MAIN]State[NORM]TreePath[T0.4493;]TabIdx[2]Selection[NONE]
      }
      INFOOBJECTS
      {
       INFOOBJECT
       {
        KEY [530.0.3531801]
        OBJECTTYPE SplitterWnd
        INFOOBJECTS
        {
         INFOOBJECT
         {
          KEY [530.0.3531802]
          OBJECTTYPE SplitterPane
          CONTENTS
          {
           VISIBLE true
          }
          INFOOBJECTS
          {
           INFOOBJECT
           {
            KEY [530.0.3531806]
            OBJECTTYPE SplitterWnd
            INFOOBJECTS
            {
             INFOOBJECT
             {
              KEY [530.0.3531807]
              OBJECTTYPE SplitterPane
              CONTENTS
              {
               VISIBLE true
              }
              INFOOBJECTS
              {
               INFOOBJECT
               {
                KEY [530.0.3532065]
                OBJECTTYPE GUIAnalysis
                CONTENTS
                {
                 START(0,0,0,0,false)
                 ANALYSIS(0,0,0,0,false,'Analysis1')
                 {
                   SOURCE 'Types' '[414702.0.340560328]' 0
                   NAME 'Analysis1'
                 }
                 COLUMNSETTINGS
                 {
                   CapacityAllocationResults
                   {
                     Columns
                     {
                       Visible
                       {
                         Column internal[DataSetDataColumn] [414702.1.64628063]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'Date [414702.0.388471425]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628064]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'Description [414702.0.388471435]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628065]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'Division [414702.0.340560477]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628066]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'ID [414702.0.388471445]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628067]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'ManufacturedDate [414702.0.388471485]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628068]
                         {
                           Width := 173
                           SizedByUser := true
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'ModuleBase [414702.0.340560467]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628069]
                         {
                           Width := 199
                           SizedByUser := true
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'ModuleMaterialCode [414702.0.340560428]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628070]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'ModuleMeasurementUnit [414702.0.340560457]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628071]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'NumberOfModules [414702.0.340560441]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628072]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'NumberOfPanels [414702.0.340560390]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628073]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'PanelBase [414702.0.340560370]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628074]
                         {
                           Width := 180
                           SizedByUser := true
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'PanelMaterialCode [414702.0.340560380]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628075]
                         {
                           Width := 231
                           SizedByUser := true
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'PanelMeasurementUnit [414702.0.340560403]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628076]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'ProductID [414702.0.388471455]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628077]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'RequirementDate [414702.0.340560505]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628078]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'StockingPointID [414702.0.388471465]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628079]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'UserQuantity [414702.0.388471475]'
                           }
                         }
                         Column internal[DataSetDataColumn] [414702.1.64628080]
                         {
                           Width := 100
                           Subtotals := false
                           Specific
                           {
                             DataPath := 'VersionNumber [414702.0.340560354]'
                           }
                         }
                       }
                     }
                   }
                 }
                 CURRENT 'Analysis1'
                 FIXEDANALYSIS
                 {
                 }
                }
               }
               INFOOBJECT
               {
                KEY [530.1.25480335]
                OBJECTTYPE List
                CONTENTS
                {
                 Quantorrow := false
                }
                INFOOBJECTS
                {
                 INFOOBJECT
                 {
                  KEY [530.1.25480340]
                  OBJECTTYPE GUIDataSetLevel
                  CONTENTS
                  {
                   Columns
                   {
                     Definition := [530.1.25480345]
                     {
                       [530.1.25480393]
                       [530.1.25480394]
                     }
                     SubTotals := true
                     Visible
                     {
                       Column internal[DataSetDataColumn] [530.1.25480393]
                       {
                         Header := 'Name'
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'Name [1.2.2366]'
                         }
                       }
                       Column internal[DataSetDataColumn] [530.1.25480394]
                       {
                         Header := 'Description'
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'Description [1.2.1211]'
                         }
                       }
                     }
                   }
                   ColumnSort [530.1.25480393] true false
                  }
                 }
                }
               }
              }
             }
             INFOOBJECT
             {
              KEY [530.0.3531808]
              OBJECTTYPE SplitterPane
              CONTENTS
              {
               VISIBLE true
              }
              INFOOBJECTS
              {
               INFOOBJECT
               {
                KEY [530.0.3532013]
                OBJECTTYPE GUIAnalysisGrid
                CONTENTS
                {
                 NEWFORMAT
                 COLUMN 102 50
                 COLUMN 103 50
                }
               }
              }
             }
            }
           }
          }
         }
         INFOOBJECT
         {
          KEY [530.0.3531803]
          OBJECTTYPE SplitterPane
          CONTENTS
          {
           VISIBLE true
          }
          INFOOBJECTS
          {
           INFOOBJECT
           {
            KEY [530.0.3531811]
            OBJECTTYPE SplitterWnd
            INFOOBJECTS
            {
             INFOOBJECT
             {
              KEY [530.0.3531812]
              OBJECTTYPE SplitterPane
              CONTENTS
              {
               Size 44.6569920844327
               VISIBLE true
              }
              INFOOBJECTS
              {
               INFOOBJECT
               {
                KEY [530.0.3532136]
                OBJECTTYPE SplitterWnd
                INFOOBJECTS
                {
                 INFOOBJECT
                 {
                  KEY [530.0.3532137]
                  OBJECTTYPE SplitterPane
                  CONTENTS
                  {
                   VISIBLE true
                  }
                  INFOOBJECTS
                  {
                   INFOOBJECT
                   {
                    KEY [530.0.3532138]
                    OBJECTTYPE SplitterWnd
                    INFOOBJECTS
                    {
                     INFOOBJECT
                     {
                      KEY [530.0.3532139]
                      OBJECTTYPE SplitterPane
                      CONTENTS
                      {
                       VISIBLE true
                      }
                      INFOOBJECTS
                      {
                       INFOOBJECT
                       {
                        KEY [530.0.3532140]
                        OBJECTTYPE List
                        CONTENTS
                        {
                         Quantorrow := false
                        }
                        INFOOBJECTS
                        {
                         INFOOBJECT
                         {
                          KEY [530.0.3532156]
                          OBJECTTYPE GUIDataSetLevel
                          CONTENTS
                          {
                           Columns
                           {
                             Definition := [514.0.499727]
                             {
                               [514.0.499730]
                               [530.1.32701549]
                               [678.0.64301138]
                             }
                             SubTotals := true
                             Visible
                             {
                               Column internal[DataSetDataColumn] [514.0.499730]
                               {
                                 Header := 'Name'
                                 Width := 68
                                 Subtotals := false
                                 Specific
                                 {
                                   DataPath := 'Name [1.2.34]'
                                 }
                               }
                               Column internal[DataSetDataColumn] [530.1.32701549]
                               {
                                 Header := 'Description'
                                 Width := 105
                                 Subtotals := false
                                 Specific
                                 {
                                   DataPath := 'Description [1.2.2564]'
                                 }
                               }
                               Column internal[DataSetDataColumn] [678.0.64301138]
                               {
                                 Header := 'astype(UITypeDataMember).DataType.FullName'
                                 Width := 404
                                 Subtotals := false
                                 Specific
                                 {
                                   DataPath := 'downcast(internal[UITypeDataMember]) [1.1.1409]|DataType [1.3.1182]|FullName [1.2.8615]'
                                 }
                               }
                             }
                           }
                           ColumnSort [514.0.499730] true false
                          }
                         }
                        }
                       }
                      }
                     }
                     INFOOBJECT
                     {
                      KEY [530.0.3532169]
                      OBJECTTYPE SplitterPane
                      CONTENTS
                      {
                       VISIBLE true
                      }
                      INFOOBJECTS
                      {
                       INFOOBJECT
                       {
                        KEY [530.0.3532170]
                        OBJECTTYPE List
                        CONTENTS
                        {
                         Quantorrow := false
                        }
                        INFOOBJECTS
                        {
                         INFOOBJECT
                         {
                          KEY [530.0.3532175]
                          OBJECTTYPE GUIDataSetLevel
                          CONTENTS
                          {
                           Columns
                           {
                             Definition := [514.0.499727]
                             {
                               [514.0.499730]
                               [530.1.32701549]
                               [678.0.64301138]
                             }
                             SubTotals := true
                             Visible
                             {
                               Column internal[DataSetDataColumn] [514.0.499730]
                               {
                                 Header := 'Name'
                                 Width := 100
                                 Subtotals := false
                                 Specific
                                 {
                                   DataPath := 'Name [1.2.34]'
                                 }
                               }
                               Column internal[DataSetDataColumn] [530.1.32701549]
                               {
                                 Header := 'Description'
                                 Width := 100
                                 Subtotals := false
                                 Specific
                                 {
                                   DataPath := 'Description [1.2.2564]'
                                 }
                               }
                               Column internal[DataSetDataColumn] [678.0.64301138]
                               {
                                 Header := 'astype(UITypeDataMember).DataType.FullName'
                                 Width := 100
                                 Subtotals := false
                                 Specific
                                 {
                                   DataPath := 'downcast(internal[UITypeDataMember]) [1.1.1409]|DataType [1.3.1182]|FullName [1.2.8615]'
                                 }
                               }
                             }
                           }
                           ColumnSort [514.0.499730] true false
                          }
                         }
                        }
                       }
                      }
                     }
                    }
                   }
                  }
                 }
                 INFOOBJECT
                 {
                  KEY [530.0.3532181]
                  OBJECTTYPE SplitterPane
                  CONTENTS
                  {
                   VISIBLE true
                  }
                  INFOOBJECTS
                  {
                   INFOOBJECT
                   {
                    KEY [530.1.8006303]
                    OBJECTTYPE SplitterWnd
                    INFOOBJECTS
                    {
                     INFOOBJECT
                     {
                      KEY [530.1.8006304]
                      OBJECTTYPE SplitterPane
                      CONTENTS
                      {
                       VISIBLE true
                      }
                     }
                     INFOOBJECT
                     {
                      KEY [530.1.8006305]
                      OBJECTTYPE SplitterPane
                      CONTENTS
                      {
                       VISIBLE true
                      }
                      INFOOBJECTS
                      {
                       INFOOBJECT
                       {
                        KEY [530.0.3532182]
                        OBJECTTYPE GUIAnalysisBarChart
                        CONTENTS
                        {
                         LeftSize 207
                        }
                       }
                      }
                     }
                    }
                   }
                  }
                 }
                }
               }
              }
             }
             INFOOBJECT
             {
              KEY [530.0.3531813]
              OBJECTTYPE SplitterPane
              CONTENTS
              {
               Size 55.3430079155673
               VISIBLE true
              }
              INFOOBJECTS
              {
               INFOOBJECT
               {
                KEY [530.0.3531950]
                OBJECTTYPE List
                CONTENTS
                {
                 Quantorrow := false
                }
                INFOOBJECTS
                {
                 INFOOBJECT
                 {
                  KEY [530.0.3531958]
                  OBJECTTYPE GUIDataSetLevel
                  CONTENTS
                  {
                   Columns
                   {
                     SubTotals := true
                     Visible
                     {
                       Column internal[DataSetDataColumn] [414702.1.64628063]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'Date [414702.0.388471425]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628064]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'Description [414702.0.388471435]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628065]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'Division [414702.0.340560477]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628066]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'ID [414702.0.388471445]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628067]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'ManufacturedDate [414702.0.388471485]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628068]
                       {
                         Width := 173
                         SizedByUser := true
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'ModuleBase [414702.0.340560467]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628069]
                       {
                         Width := 199
                         SizedByUser := true
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'ModuleMaterialCode [414702.0.340560428]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628070]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'ModuleMeasurementUnit [414702.0.340560457]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628071]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'NumberOfModules [414702.0.340560441]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628072]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'NumberOfPanels [414702.0.340560390]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628073]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'PanelBase [414702.0.340560370]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628074]
                       {
                         Width := 180
                         SizedByUser := true
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'PanelMaterialCode [414702.0.340560380]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628075]
                       {
                         Width := 231
                         SizedByUser := true
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'PanelMeasurementUnit [414702.0.340560403]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628076]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'ProductID [414702.0.388471455]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628077]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'RequirementDate [414702.0.340560505]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628078]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'StockingPointID [414702.0.388471465]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628079]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'UserQuantity [414702.0.388471475]'
                         }
                       }
                       Column internal[DataSetDataColumn] [414702.1.64628080]
                       {
                         Width := 100
                         Subtotals := false
                         Specific
                         {
                           DataPath := 'VersionNumber [414702.0.340560354]'
                         }
                       }
                     }
                   }
                  }
                 }
                }
               }
              }
             }
            }
           }
          }
         }
        }
       }
      }
     }
    }
   }
  }
_var/_Main/ProjSettings/MacroPlannerWebApp/Views/ManufactureLT.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,239 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_legacy_1
      {
        title: 'Scenario manager'
        shown: true
        componentID: 'FormScenarioManager'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 8
          columnPosition: 1
          columnSpan: 5
        }
        components
        {
          FormScenarioManager_ListScenario
          {
          }
          FormScenarioManager_DataSetLevelScenario
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 90
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 197
            }
            column_ChangedBy
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              dataType: 'string'
              title: 'Changed by'
              index: 2
              subtotals: ''
              width: 91
            }
            column_ChangedOn
            {
              columnId: 'ChangedOn'
              dataPath: 'ChangedOn'
              dataType: 'datetime'
              title: 'Changed on'
              index: 3
              subtotals: ''
              width: 99
            }
            column_StorageMode
            {
              columnId: 'StorageMode'
              dataPath: 'StorageMode'
              dataType: 'string'
              title: 'StorageMode'
              index: 4
              subtotals: ''
              width: 40
            }
          }
        }
      }
      form_FormOptimizerPuzzles
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 0
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: '描述'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI
      {
        title: 'KPI Dashboard'
        shown: false
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 1
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPISelection'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: '名称'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
      form_SWF_DialogWorkflowParameter
      {
        title: 'S&OP Workflow Parameters'
        shown: true
        componentID: 'SWF_DialogWorkflowParameter'
        layout
        {
          mode: 'dockright'
          index: 2
        }
        components
        {
          SWF_DialogWorkflowParameter_PanelCurrentDate
          {
            sizeRatio: 1
          }
          SWF_DialogWorkflowParameter_PanelIntegration
          {
            sizeRatio: 1
          }
          SWF_DialogWorkflowParameter_PanelSynchronizeRoles
          {
            sizeRatio: 1
          }
          SWF_DialogWorkflowParameter_PanelRequestDatasetSync
          {
            sizeRatio: 1
          }
          SWF_DialogWorkflowParameter_PanelKickQueues
          {
            sizeRatio: 1
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: 'ActionBarPageData'
    group: ''
    index: 1
    image: 'CODE_LINE'
    description: '制造LT'
  }
  formatversion: 2
  id: 'ManufactureLT'
  name: 'ManufactureLT'
  isglobal: false
  isroot: true
}