haorenhui
2023-10-27 1499d8149575493519f2c5b04462c2302a455aa9
Merge branch 'dev' into dev_hrh_global
已重命名1个文件
已添加51个文件
已修改41个文件
已删除15个文件
2618 ■■■■ 文件已修改
_Main/BL/Relations/Relation_GlobalParameters_GlobalOTDTable_GlobalOTDTable_GlobalParameters.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DataInterfaceLog/StaticMethod_Create.qbl 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DataInterfaceLog/StaticMethod_OnException.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DataInterfaceLog/StaticMethod_Success.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/StaticMethod_DeleteAllCategoryData.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/StaticMethod_DeleteAllCategoryDataStream.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/StaticMethod_DeleteAllMappingData.qbl 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/StaticMethod_DeleteAllMappingDataStream.qbl 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalParameters/Attribute_Address.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalParameters/Attribute_AttributeName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalParameters/Attribute_AttributeValue.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalParameters/Attribute_Port.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalParameters/Attribute_PostRequestBody.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalParameters/StaticMethod_TestForApiRequest.qbl 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalParameters/_ROOT_Type_GlobalParameters.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_InventorySupplyCategory/StaticMethod_Create.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_InventorySupplyCategory/StaticMethod_CreateStream.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MAPISPIPCategory/StaticMethod_Create.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MAPISPIPCategory/StaticMethod_CreateStream.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_ProductCategory/StaticMethod_Create.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_ProductCategory/StaticMethod_CreateStream.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_ProductInLineCategory/StaticMethod_Create.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_ProductInLineCategory/StaticMethod_CreateStream.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_StockingPointCostCategory/StaticMethod_Create.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_StockingPointCostCategory/StaticMethod_CreateStream.qbl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryValueAndCost/StaticMethod_DoASync.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingActualPISPIPData.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingInventoryValueAndCostData.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMData.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_DoASyncMappingProductInLaneData.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoASync#253.qbl 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_GeneratesTheSpecifiedXMLColumn#56.qbl 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral#549.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_TIANMA_JITUAN_PanelGeneral_549_dsPlanningStart_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Component_pnlContent.def 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_ClickBtnOk.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_Edit.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_New.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlActions_btnOk_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlContent_IsApi_OnChanged.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/_ROOT_Component_DialogGlobalParameters.def 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNew_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_DataHolderChecked_OnDataChanged#774.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_OnUserCheckedChanged#613.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_OnUserCheckedChanged.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Component_ListDataInterfaceLog.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Component_Panel1.def 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Component_Panel3.def 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Component_Panel4#2.def 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Component_PanelDataInterfaceLog.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel1_Button1_OnClick#673.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel1_ButtonGenerateProductCategory_OnClick#902.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel3_Button2_OnClick#836.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel3_Button3_OnClick#918.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel3_Button4_OnClick#249.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel4_Button5_OnClick#605.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel4_ButtonDeleteMappingData_OnClick#608.def 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_PanelDataInterfaceLog_ButtonDeleteMappingData_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/_ROOT_Component_FormDataInterfaceLog.def 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_ListGlobalParameters.def 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_PanelGlobalParameters.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_listActionBarPageGlobalParameters.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_listContextMenuGlobalParameters.def 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuDelete_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuEdit_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuNew_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_listContextMenuGlobalParameters_MenuInitial_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/_ROOT_Component_FormGlobalParameters.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/Component_ListHistoricalSalesOrders.def 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/Component_listActionBarPageHistoricalSalesOrders.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/Component_listContextMenuHistoricalSalesOrders.def 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/Response_ListHistoricalSalesOrders_MenuDelete_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/Response_ListHistoricalSalesOrders_MenuEdit_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/Response_ListHistoricalSalesOrders_MenuNew_OnClick.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/_ROOT_Component_FormHistoricalSalesOrders.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceGlobal_BrokerExecuteLog#981.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption1.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption2.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption3.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption4.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceTest.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_Button1_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_Button2_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_Button3_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_Button4_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_Button5_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ButtonGenerateProductCategory_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_CheckSelectAll_OnChanged.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnCli.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/PR_DATA.vw 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/全局参数.vw 351 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ModelSettings/Common/Dev-38/_ROOT_Role_Dev-38.properties 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ModelSettings/Common/Dev-40/_ROOT_Role_Dev-40.properties 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ModelSettings/Common/Dev-42/_ROOT_Role_Dev-42.properties 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_GlobalParameters_GlobalOTDTable_GlobalOTDTable_GlobalParameters.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation GlobalParameters_GlobalOTDTable_GlobalOTDTable_GlobalParameters
{
  #keys: '1[412960.0.369930029]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDTable
  {
    #keys: '3[412960.0.369930031][412960.0.369930030][412960.0.369930032]'
    Cardinality: '0to1'
    ObjectDefinition: GlobalParameters
    OwningSide: 'Reference'
  }
  RelationSide.RightSide GlobalParameters
  {
    #keys: '3[412960.0.369930034][412960.0.369930033][412960.0.369930035]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDTable
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_DataInterfaceLog/StaticMethod_Create.qbl
@@ -2,14 +2,20 @@
#parent: #root
StaticMethod Create (
  GlobalOTDLog globalOTDLog,
  String executeUser
)
  String executeUser,
  String message
) as String
{
  TextBody:
  [*
    globalOTDLog.DataDistributionLog( relnew,
    dataInterfaceLog := globalOTDLog.DataInterfaceLog( relnew,
                                                       ID            := OS::GenerateGUIDAsString(),
                                      ExecuteStatus  := "Running",
                                      ExecuteUser    := executeUser
                                                       ExecuteUser   := executeUser,
                                                       Message       := message,
                                                       CreateDate    := DateTime::ActualTime()
                                     );
    return dataInterfaceLog.ID();
  *]
}
_Main/BL/Type_DataInterfaceLog/StaticMethod_OnException.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod OnException (
  Exception e,
  String dataInterfaceLogID
)
{
  TextBody:
  [*
    options := DatasetFindOptions::Construct( "GlobalOTDLog" ).IncludeOffline( true );
    mdskey := DatasetController::FindUnique( options );
    MDSGlobalOTDLog::Root( mdskey ) -> DataInterfaceLog::OnError( e.ErrorNumber(), e.Message(), dataInterfaceLogID );
  *]
}
_Main/BL/Type_DataInterfaceLog/StaticMethod_Success.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Success (
  GlobalOTDTable globalOTDTable,
  String dataInterfaceLogID
)
{
  TextBody:
  [*
    options := DatasetFindOptions::Construct( "GlobalOTDLog" ).IncludeOffline( true );
    mdskey := DatasetController::FindUnique( options );
    MDSGlobalOTDLog::Root( mdskey ) -> DataInterfaceLog::OnSuccess( dataInterfaceLogID );
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl
@@ -101,14 +101,6 @@
      Global_MappingOperationCost::SynchronizeMacroPlanData( this, macroPlan, executionUser, businessTypes, organcodelist );
    }
    
    //if ( isDOI_DSI ) {
    //  Global_MappingDOI_DSI::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_DOI_DSI" );
    //}
    //
    //if ( isCustomerGrade ) {
    //  Global_MappingCustomerGrade::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_CustomerGrade" );
    //}
    if ( isStockingPoint_MP ) {
      Global_MappingStockingPoint_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
    }
_Main/BL/Type_GlobalDTOTable/StaticMethod_DeleteAllCategoryData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DeleteAllCategoryData (
  GlobalOTDTable globalOTDTable,
  String dataInterfaceLogID
)
{
  TextBody:
  [*
    globalOTDTable -> GlobalOTDTable::DeleteAllCategoryDataStream()
                   -> DataInterfaceLog::Success( dataInterfaceLogID )
                   -> Exception()
                   -> DataInterfaceLog::OnException( dataInterfaceLogID );
  *]
}
_Main/BL/Type_GlobalDTOTable/StaticMethod_DeleteAllCategoryDataStream.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DeleteAllCategoryDataStream (
  GlobalOTDTable globalOTDTable
) as stream[GlobalOTDTable]
{
  TextBody:
  [*
    globalOTDTable.Global_ProductCategory( relflush );
    globalOTDTable.Global_ProductInLineCategory( relflush );
    globalOTDTable.Global_InventorySupplyCategory( relflush );
    globalOTDTable.Global_StockingPointCostCategory( relflush );
    globalOTDTable.Global_MAPISPIPCategory( relflush );
    return emit( globalOTDTable );
  *]
}
_Main/BL/Type_GlobalDTOTable/StaticMethod_DeleteAllMappingData.qbl
@@ -1,30 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DeleteAllMappingData (
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  String dataInterfaceLogID
)
{
  TextBody:
  [*
    globalOTDTable.Global_MappingCustomOrder( relflush );
    globalOTDTable.Global_MappingForecast( relflush );
    globalOTDTable.Global_MappingUnitOfMeasure_MP( relflush );
    globalOTDTable.Global_MappingSalesSegment_MP( relflush );
    globalOTDTable.Global_MappingProduct_MP( relflush );
    globalOTDTable.Global_MappingConversionFactor( relflush );
    globalOTDTable.Global_MappingOperation( relflush );
    globalOTDTable.Global_MappingOperationBOM( relflush );
    globalOTDTable.Global_MappingProductInLane( relflush );
    globalOTDTable.Global_MappingActualProductInStockingPointInPeriod( relflush );
    globalOTDTable.Global_MappingInventorySupply( relflush );
    globalOTDTable.Global_MappingStockingPointCost( relflush );
    globalOTDTable.Global_MappingOperationCost( relflush );
    globalOTDTable.Global_MappingDOI_DSI( relflush );
    globalOTDTable.Global_MappingCustomerGrade( relflush );
    globalOTDTable.Global_MappingStockingPoint_MP( relflush );
    globalOTDTable.Global_MappingCurrency_MP( relflush );
    globalOTDTable.Global_MappingCurrencyRate_MP( relflush );
    globalOTDTable.Global_MappingLane( relflush );
    globalOTDTable.Global_MappingLaneLeg( relflush );
    globalOTDTable -> GlobalOTDTable::DeleteAllMappingDataStream()
                   -> DataInterfaceLog::Success( dataInterfaceLogID )
                   -> Exception()
                   -> DataInterfaceLog::OnException( dataInterfaceLogID );
  *]
}
_Main/BL/Type_GlobalDTOTable/StaticMethod_DeleteAllMappingDataStream.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DeleteAllMappingDataStream (
  GlobalOTDTable globalOTDTable
) as stream[GlobalOTDTable]
{
  TextBody:
  [*
    globalOTDTable.Global_MappingCustomOrder( relflush );
    globalOTDTable.Global_MappingForecast( relflush );
    globalOTDTable.Global_MappingUnitOfMeasure_MP( relflush );
    globalOTDTable.Global_MappingSalesSegment_MP( relflush );
    globalOTDTable.Global_MappingProduct_MP( relflush );
    globalOTDTable.Global_MappingConversionFactor( relflush );
    globalOTDTable.Global_MappingOperation( relflush );
    globalOTDTable.Global_MappingOperationBOM( relflush );
    globalOTDTable.Global_MappingProductInLane( relflush );
    globalOTDTable.Global_MappingActualProductInStockingPointInPeriod( relflush );
    globalOTDTable.Global_MappingInventorySupply( relflush );
    globalOTDTable.Global_MappingStockingPointCost( relflush );
    globalOTDTable.Global_MappingOperationCost( relflush );
    globalOTDTable.Global_MappingDOI_DSI( relflush );
    globalOTDTable.Global_MappingCustomerGrade( relflush );
    globalOTDTable.Global_MappingStockingPoint_MP( relflush );
    globalOTDTable.Global_MappingCurrency_MP( relflush );
    globalOTDTable.Global_MappingCurrencyRate_MP( relflush );
    globalOTDTable.Global_MappingLane( relflush );
    globalOTDTable.Global_MappingLaneLeg( relflush );
    return emit( globalOTDTable );
  *]
}
_Main/BL/Type_GlobalParameters/Attribute_Address.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Address
{
  #keys: '3[412960.0.369930086][412960.0.369930085][412960.0.369930087]'
  Description: 'Api使用的地址'
  ValueType: String
}
_Main/BL/Type_GlobalParameters/Attribute_AttributeName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute AttributeName
{
  #keys: '3[412960.0.369930046][412960.0.369930045][412960.0.369930047]'
  Description: '变量名称'
  ValueType: String
}
_Main/BL/Type_GlobalParameters/Attribute_AttributeValue.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute AttributeValue
{
  #keys: '3[412960.0.369930056][412960.0.369930055][412960.0.369930057]'
  Description: '变量值'
  ValueType: String
}
_Main/BL/Type_GlobalParameters/Attribute_Port.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Port
{
  #keys: '3[412960.0.369930066][412960.0.369930065][412960.0.369930067]'
  Description: 'Api使用的端口'
  ValueType: String
}
_Main/BL/Type_GlobalParameters/Attribute_PostRequestBody.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute PostRequestBody
{
  #keys: '3[412960.0.369930076][412960.0.369930075][412960.0.369930077]'
  Description: 'Api使用的post body'
  ValueType: String
}
_Main/BL/Type_GlobalParameters/StaticMethod_TestForApiRequest.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,172 @@
Quintiq file version 2.0
#parent: #root
StaticMethod TestForApiRequest (
  GlobalOTDTable owner
)
{
  TextBody:
  [*
    // Administrator Oct-26-2023 (created)
    //info( "Sales Segment Finished, Start Get StockingPoint From Api" )
    //bodynumber := "2";
    //postrequestbody := JSON::Object()
    //                    .Add( "serviceInterfaceCode", "ESBOTDH000" + bodynumber )
    //                    .Add( "fromSystemCode", "OTDH000" + bodynumber )
    //                    .Add( "toInterfaceCode", "QIDH000" + bodynumber )
    //                    .Add( "ouZone", "OU_TMSH" )
    //                    .Add( "uuid", "1617355496bb588e353e80147eea5f45" )
    //                    .Add( "requestTime", DateTime::Now().Format( "Y-M2-D2 H:m:s" ) )
    //                    .Add( "dataType", "JSON" )
    //                    .Add( "data", JSON::Object()
    //                                  .Add( "pageIndex", "1" ) ).Build();
    //
    //info( DateTime::Now().Format( "Y-M2-D2 H:m:s" ) );
    //postrequestbodystring := postrequestbody.AsString();
    //info( postrequestbodystring );
    //
    //parameter := select( owner, GlobalParameters, param, param.AttributeName() = "test" );
    //body := parameter.PostRequestBody();
    //address := parameter.Address();
    //url := parameter.AttributeValue();
    //port := [Number]parameter.Port();
    //
    //// for HTTPS requests:
    //i := HTTPInterface::Create( address, port);
    ////i := HTTPInterface::Create( address ,443);
    //info( address, url, port, body );
    //
    //i.URL(url);
    //i.SSL(false);
    ////i.SSL(true);
    ////i.SSLKeystore('MyKeystore'); // created in the Config Utility
    //
    //i.PostMethod(true); //it's a POST method
    //
    //i.Call(body); // Call's argument is for POST method's content.
    //htmlresult := i.Result();
    //info( htmlresult );
    //
    //htmlresponse := JSON::Parse( htmlresult );
    //info( htmlresponse );
    info( "Init StockingPoint For Api" )
    existparameter := select( owner, GlobalParameters, param, param.AttributeName() = "StockingPoint" );
    if( not isnull( existparameter ) ){
      existparameter.Delete();
      }
    spparameter := owner.GlobalParameters( relnew );
    spparameter.AttributeName( "StockingPoint" );
    spparameter.AttributeValue( "/otdService/https/GetStockingPointsInfo" );
    spparameter.Address( "api-uat-sgc.tianma.cn" );
    spparameter.Port( "443" );
    bodynumber := "2";
    postrequestbody := JSON::Object()
                        .Add( "serviceInterfaceCode", "ESBOTDH000" + bodynumber )
                        .Add( "fromSystemCode", "OTDH000" + bodynumber )
                        .Add( "toInterfaceCode", "QIDH000" + bodynumber )
                        .Add( "ouZone", "OU_TMSH" )
                        .Add( "uuid", "1617355496bb588e353e80147eea5f45" )
                        .Add( "requestTime", DateTime::Now().Format( "Y-M2-D2 H:m:s" ) )
                        .Add( "dataType", "JSON" )
                        .Add( "data", JSON::Object()
                                      .Add( "pageIndex", "1" ) ).Build();
    postrequestbodystring := postrequestbody.AsString();
    spparameter.PostRequestBody( postrequestbodystring );
    info( "Init CurrencyInfo For Api" )
    existparameter := select( owner, GlobalParameters, param, param.AttributeName() = "CurrencyInfo" );
    if( not isnull( existparameter ) ){
      existparameter.Delete();
      }
    ciparameter := owner.GlobalParameters( relnew );
    ciparameter.AttributeName( "CurrencyInfo" );
    ciparameter.AttributeValue( "/otdService/https/GetCurrenciesInfo" );
    ciparameter.Address( "api-uat-sgc.tianma.cn" );
    ciparameter.Port( "443" );
    bodynumber := "1";
    postrequestbody := JSON::Object()
                        .Add( "serviceInterfaceCode", "ESBOTDH000" + bodynumber )
                        .Add( "fromSystemCode", "OTDH000" + bodynumber )
                        .Add( "toInterfaceCode", "QIDH000" + bodynumber )
                        .Add( "ouZone", "OU_TMSH" )
                        .Add( "uuid", "1617355496bb588e353e80147eea5f45" )
                        .Add( "requestTime", DateTime::Now().Format( "Y-M2-D2 H:m:s" ) )
                        .Add( "dataType", "JSON" )
                        .Add( "data", JSON::Object()
                                      .Add( "pageIndex", "1" ) ).Build();
    postrequestbodystring := postrequestbody.AsString();
    ciparameter.PostRequestBody( postrequestbodystring );
    info( "Init CurrencyRates For Api" )
    existparameter := select( owner, GlobalParameters, param, param.AttributeName() = "CurrencyRates" );
    if( not isnull( existparameter ) ){
      existparameter.Delete();
      }
    crparameter := owner.GlobalParameters( relnew );
    crparameter.AttributeName( "CurrencyRates" );
    crparameter.AttributeValue( "/otdService/https/GetCurrencyRatesInfo" );
    crparameter.Address( "api-uat-sgc.tianma.cn" );
    crparameter.Port( "443" );
    bodynumber := "5";
    postrequestbody := JSON::Object()
                        .Add( "serviceInterfaceCode", "ESBOTDH000" + bodynumber )
                        .Add( "fromSystemCode", "OTDH000" + bodynumber )
                        .Add( "toInterfaceCode", "QIDH000" + bodynumber )
                        .Add( "ouZone", "OU_TMSH" )
                        .Add( "uuid", "1617355496bb588e353e80147eea5f45" )
                        .Add( "requestTime", DateTime::Now().Format( "Y-M2-D2 H:m:s" ) )
                        .Add( "dataType", "JSON" )
                        .Add( "data", JSON::Object()
                                      .Add( "pageIndex", "1" ) ).Build();
    postrequestbodystring := postrequestbody.AsString();
    crparameter.PostRequestBody( postrequestbodystring );
    info( "Init Lanes For Api" )
    existparameter := select( owner, GlobalParameters, param, param.AttributeName() = "Lanes" );
    if( not isnull( existparameter ) ){
      existparameter.Delete();
      }
    lparameter := owner.GlobalParameters( relnew );
    lparameter.AttributeName( "Lanes" );
    lparameter.AttributeValue( "/otdService/https/GetLanesInfo" );
    lparameter.Address( "api-uat-sgc.tianma.cn" );
    lparameter.Port( "443" );
    bodynumber := "3";
    postrequestbody := JSON::Object()
                        .Add( "serviceInterfaceCode", "ESBOTDH000" + bodynumber )
                        .Add( "fromSystemCode", "OTDH000" + bodynumber )
                        .Add( "toInterfaceCode", "QIDH000" + bodynumber )
                        .Add( "ouZone", "OU_TMSH" )
                        .Add( "uuid", "1617355496bb588e353e80147eea5f45" )
                        .Add( "requestTime", DateTime::Now().Format( "Y-M2-D2 H:m:s" ) )
                        .Add( "dataType", "JSON" )
                        .Add( "data", JSON::Object()
                                      .Add( "pageIndex", "1" ) ).Build();
    postrequestbodystring := postrequestbody.AsString();
    lparameter.PostRequestBody( postrequestbodystring );
    info( "Init LaneLegs For Api" )
    existparameter := select( owner, GlobalParameters, param, param.AttributeName() = "LaneLegs" );
    if( not isnull( existparameter ) ){
      existparameter.Delete();
      }
    llparameter := owner.GlobalParameters( relnew );
    llparameter.AttributeName( "LaneLegs" );
    llparameter.AttributeValue( "/otdService/https/GetLaneLegsInfo" );
    llparameter.Address( "api-uat-sgc.tianma.cn" );
    llparameter.Port( "443" );
    bodynumber := "4";
    postrequestbody := JSON::Object()
                        .Add( "serviceInterfaceCode", "ESBOTDH000" + bodynumber )
                        .Add( "fromSystemCode", "OTDH000" + bodynumber )
                        .Add( "toInterfaceCode", "QIDH000" + bodynumber )
                        .Add( "ouZone", "OU_TMSH" )
                        .Add( "uuid", "1617355496bb588e353e80147eea5f45" )
                        .Add( "requestTime", DateTime::Now().Format( "Y-M2-D2 H:m:s" ) )
                        .Add( "dataType", "JSON" )
                        .Add( "data", JSON::Object()
                                      .Add( "pageIndex", "1" ) ).Build();
    postrequestbodystring := postrequestbody.AsString();
    llparameter.PostRequestBody( postrequestbodystring );
  *]
}
_Main/BL/Type_GlobalParameters/_ROOT_Type_GlobalParameters.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type GlobalParameters
{
  #keys: '5[412960.0.369930026][412960.0.369930024][0.0.0][412960.0.369930025][412960.0.369930027]'
  BaseType: Object
  Description: '全局参数'
  StructuredName: 'GlobalParameterss'
}
_Main/BL/Type_Global_InventorySupplyCategory/StaticMethod_Create.qbl
@@ -1,18 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  String dataInterfaceLogID
)
{
  TextBody:
  [*
    globalOTDTable.Global_InventorySupplyCategory( relflush );
    productIDs := selectuniquevalues( globalOTDTable, Global_MappingInventorySupply,
                                      tempGMIS, true, tempGMIS.ProductID() );
    traverse ( productIDs, Elements, id ) {
      globalOTDTable.Global_InventorySupplyCategory( relnew, ProductID := id );
    }
    globalOTDTable -> Global_InventorySupplyCategory::CreateStream()
                   -> DataInterfaceLog::Success( dataInterfaceLogID )
                   -> Exception()
                   -> DataInterfaceLog::OnException( dataInterfaceLogID );
  *]
}
_Main/BL/Type_Global_InventorySupplyCategory/StaticMethod_CreateStream.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateStream (
  GlobalOTDTable globalOTDTable
) as stream[GlobalOTDTable]
{
  TextBody:
  [*
    globalOTDTable.Global_InventorySupplyCategory( relflush );
    productIDs := selectuniquevalues( globalOTDTable, Global_MappingInventorySupply,
                                      tempGMIS, true, tempGMIS.ProductID() );
    traverse ( productIDs, Elements, id ) {
      globalOTDTable.Global_InventorySupplyCategory( relnew, ProductID := id );
    }
    return emit( globalOTDTable );
  *]
}
_Main/BL/Type_Global_MAPISPIPCategory/StaticMethod_Create.qbl
@@ -1,18 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  String dataInterfaceLogID
)
{
  TextBody:
  [*
    globalOTDTable.Global_MAPISPIPCategory( relflush );
    productIDs := selectuniquevalues( globalOTDTable, Global_MappingActualProductInStockingPointInPeriod,
                                      tempGMAPISPIP, true, tempGMAPISPIP.ProductID() );
    traverse ( productIDs, Elements, id ) {
      globalOTDTable.Global_MAPISPIPCategory( relnew, ProductID := id );
    }
    globalOTDTable -> Global_MAPISPIPCategory::CreateStream()
                   -> DataInterfaceLog::Success( dataInterfaceLogID )
                   -> Exception()
                   -> DataInterfaceLog::OnException( dataInterfaceLogID );
  *]
}
_Main/BL/Type_Global_MAPISPIPCategory/StaticMethod_CreateStream.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateStream (
  GlobalOTDTable globalOTDTable
) as stream[GlobalOTDTable]
{
  TextBody:
  [*
    globalOTDTable.Global_MAPISPIPCategory( relflush );
    productIDs := selectuniquevalues( globalOTDTable, Global_MappingActualProductInStockingPointInPeriod,
                                      tempGMAPISPIP, true, tempGMAPISPIP.ProductID() );
    traverse ( productIDs, Elements, id ) {
      globalOTDTable.Global_MAPISPIPCategory( relnew, ProductID := id );
    }
    return emit( globalOTDTable );
  *]
}
_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl
@@ -8,11 +8,11 @@
  [*
    globalOTDTable.Global_MappingCurrencyRate_MP( relflush );
    
    bodynumber := "5";
    postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
    address := "api-uat-sgc.tianma.cn";
    url := "/otdService/https/GetCurrencyRatesInfo";
    port := 443;
    parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "CurrencyRates" );
    postrequestbody := parameter.PostRequestBody();
    address := parameter.Address();
    url := parameter.AttributeValue();
    port := [Number]parameter.Port();
    i := HTTPInterface::Create( address, port);
    i.URL( url );
    i.SSL( true );
_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl
@@ -8,11 +8,11 @@
  [*
    globalOTDTable.Global_MappingCurrency_MP( relflush );
    
    bodynumber := "1";
    postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
    address := "api-uat-sgc.tianma.cn";
    url := "/otdService/https/GetCurrenciesInfo";
    port := 443;
    parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "CurrencyInfo" );
    postrequestbody := parameter.PostRequestBody();
    address := parameter.Address();
    url := parameter.AttributeValue();
    port := [Number]parameter.Port();
    i := HTTPInterface::Create( address, port);
    i.URL( url );
    i.SSL( true );
_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl
@@ -8,11 +8,11 @@
  [*
    globalOTDTable.Global_MappingLane( relflush );
    
    bodynumber := "3";
    postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
    address := "api-uat-sgc.tianma.cn";
    url := "/otdService/https/GetLanesInfo";
    port := 443;
    parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "Lanes" );
    postrequestbody := parameter.PostRequestBody();
    address := parameter.Address();
    url := parameter.AttributeValue();
    port := [Number]parameter.Port();
    i := HTTPInterface::Create( address, port);
    i.URL( url );
    i.SSL( true );
_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl
@@ -8,11 +8,11 @@
  [*
    globalOTDTable.Global_MappingLaneLeg( relflush );
    
    bodynumber := "4";
    postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
    address := "api-uat-sgc.tianma.cn";
    url := "/otdService/https/GetLaneLegsInfo";
    port := 443;
    parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "LaneLegs" );
    postrequestbody := parameter.PostRequestBody();
    address := parameter.Address();
    url := parameter.AttributeValue();
    port := [Number]parameter.Port();
    i := HTTPInterface::Create( address, port);
    i.URL( url );
    i.SSL( true );
_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl
@@ -8,11 +8,11 @@
  [*
    globalOTDTable.Global_MappingStockingPoint_MP( relflush );
    
    bodynumber := "2";
    postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
    address := "api-uat-sgc.tianma.cn";
    url := "/otdService/https/GetStockingPointsInfo";
    port := 443;
    parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "StockingPoint" );
    postrequestbody := parameter.PostRequestBody();
    address := parameter.Address();
    url := parameter.AttributeValue();
    port := [Number]parameter.Port();
    i := HTTPInterface::Create( address, port);
    i.URL( url );
    i.SSL( true );
_Main/BL/Type_Global_ProductCategory/StaticMethod_Create.qbl
@@ -1,17 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  String dataInterfaceLogID
)
{
  TextBody:
  [*
    globalOTDTable.Global_ProductCategory( relflush );
    businessTypes := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, tempGMPMP, true, tempGMPMP.BusinessType() );
    traverse ( businessTypes, Elements, bt ) {
      globalOTDTable.Global_ProductCategory( relnew, BusinessTypeName := bt );
    }
    globalOTDTable -> Global_ProductCategory::CreateStream()
                   -> DataInterfaceLog::Success( dataInterfaceLogID )
                   -> Exception()
                   -> DataInterfaceLog::OnException( dataInterfaceLogID );
  *]
}
_Main/BL/Type_Global_ProductCategory/StaticMethod_CreateStream.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateStream (
  GlobalOTDTable globalOTDTable
) as stream[GlobalOTDTable]
{
  TextBody:
  [*
    globalOTDTable.Global_ProductCategory( relflush );
    businessTypes := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, tempGMPMP, true, tempGMPMP.BusinessType() );
    traverse ( businessTypes, Elements, bt ) {
      globalOTDTable.Global_ProductCategory( relnew, BusinessTypeName := bt );
    }
    return emit( globalOTDTable );
  *]
}
_Main/BL/Type_Global_ProductInLineCategory/StaticMethod_Create.qbl
@@ -1,17 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  String dataInterfaceLogID
)
{
  TextBody:
  [*
    globalOTDTable.Global_ProductInLineCategory( relflush );
    productIDs := selectuniquevalues( globalOTDTable, Global_MappingProductInLane, tempGMPIL, true, tempGMPIL.ProductID() );
    traverse ( productIDs, Elements, id ) {
      globalOTDTable.Global_ProductInLineCategory( relnew, ProductID := id );
    }
    globalOTDTable -> Global_ProductInLineCategory::CreateStream()
                   -> DataInterfaceLog::Success( dataInterfaceLogID )
                   -> Exception()
                   -> DataInterfaceLog::OnException( dataInterfaceLogID );
  *]
}
_Main/BL/Type_Global_ProductInLineCategory/StaticMethod_CreateStream.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateStream (
  GlobalOTDTable globalOTDTable
) as stream[GlobalOTDTable]
{
  TextBody:
  [*
    globalOTDTable.Global_ProductInLineCategory( relflush );
    productIDs := selectuniquevalues( globalOTDTable, Global_MappingProductInLane, tempGMPIL, true, tempGMPIL.ProductID() );
    traverse ( productIDs, Elements, id ) {
      globalOTDTable.Global_ProductInLineCategory( relnew, ProductID := id );
    }
    return emit( globalOTDTable );
  *]
}
_Main/BL/Type_Global_StockingPointCostCategory/StaticMethod_Create.qbl
@@ -1,17 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  String dataInterfaceLogID
)
{
  TextBody:
  [*
    globalOTDTable.Global_StockingPointCostCategory( relflush );
    productIDs := selectuniquevalues( globalOTDTable, Global_MappingStockingPointCost, tempGMSPC, true, tempGMSPC.ProductID() );
    traverse ( productIDs, Elements, id ) {
      globalOTDTable.Global_StockingPointCostCategory( relnew, ProductID := id );
    }
    globalOTDTable -> Global_StockingPointCostCategory::CreateStream()
                   -> DataInterfaceLog::Success( dataInterfaceLogID )
                   -> Exception()
                   -> DataInterfaceLog::OnException( dataInterfaceLogID );
  *]
}
_Main/BL/Type_Global_StockingPointCostCategory/StaticMethod_CreateStream.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateStream (
  GlobalOTDTable globalOTDTable
) as stream[GlobalOTDTable]
{
  TextBody:
  [*
    globalOTDTable.Global_StockingPointCostCategory( relflush );
    productIDs := selectuniquevalues( globalOTDTable, Global_MappingStockingPointCost, tempGMSPC, true, tempGMSPC.ProductID() );
    traverse ( productIDs, Elements, id ) {
      globalOTDTable.Global_StockingPointCostCategory( relnew, ProductID := id );
    }
    return emit( globalOTDTable );
  *]
}
_Main/BL/Type_InventoryValueAndCost/StaticMethod_DoASync.qbl
@@ -3,7 +3,7 @@
StaticMethod DoASync (
  MacroPlan macroPlan,
  const GlobalOTDTable globalOTDTable,
  String businessTypeName
  Strings businessTypeNames
)
{
  TextBody:
@@ -12,6 +12,6 @@
    //info( "ActualPISPIP Finished, Start InventoryCost Data Broker" );
    //macroPlan.Broker_OTD_InventoryCost().Execute();
    info( "InventoryCost Data Broker Finished, Start InventoryCost Mapping" );
    macroPlan.DoASyncMappingInventoryValueAndCostData(globalOTDTable,businessTypeName);
    macroPlan.DoASyncMappingInventoryValueAndCostData(globalOTDTable,businessTypeNames);
  *]
}
_Main/BL/Type_MacroPlan/Method_DoASyncMappingActualPISPIPData.qbl
@@ -12,9 +12,10 @@
    // renhao Aug-14-2023 (created)
    listtodeal := construct( Global_MappingActualProductInStockingPointInPeriods, constcontent );
    if ( businessTypes.Size() > 0 ) {
      businessTypeName := businessTypes.Element( 0 );
      targetGlobal_ProductCategory := select( globalOTDTable, Global_ProductCategory, tempGPC, tempGPC.BusinessTypeName() = businessTypeName );
      listtodeal := selectset( targetGlobal_ProductCategory, Global_MappingProduct_MP.Global_MAPISPIPCategory.Global_MappingActualProductInStockingPointInPeriod,
      targetGlobal_ProductCategory := selectset( globalOTDTable, Global_ProductCategory, tempGPC,
                                                 exists( businessTypes, Elements, tempBTN, tempBTN = tempGPC.BusinessTypeName() ) );
      listtodeal := selectset( targetGlobal_ProductCategory,
                               Elements.Global_MappingProduct_MP.Global_MAPISPIPCategory.Global_MappingActualProductInStockingPointInPeriod,
                               tempGMPIL, 
                               ( tempGMPIL.ActualInventoryLevelEnd() > 0 ) and 
                               ( organcodelist.Find( tempGMPIL.StockingPointID().SubString( 0, 3 ) ) >= 0 ) );
_Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl
@@ -15,9 +15,10 @@
    
    listtodeal := construct( Global_MappingInventorySupplys, constcontent );
    if ( businessTypes.Size() > 0 ) {
      businessTypeName := businessTypes.Element( 0 );
      targetGlobal_ProductCategory := select( globalOTDTable, Global_ProductCategory, tempGPC, tempGPC.BusinessTypeName() = businessTypeName );
      listtodeal := selectset( targetGlobal_ProductCategory, Global_MappingProduct_MP.Global_InventorySupplyCategory.Global_MappingInventorySupply,
      targetGlobal_ProductCategory := selectset( globalOTDTable, Global_ProductCategory, tempGPC,
                                                 exists( businessTypes, Elements, tempBTN, tempBTN = tempGPC.BusinessTypeName() ) );
      listtodeal := selectset( targetGlobal_ProductCategory,
                               Elements.Global_MappingProduct_MP.Global_InventorySupplyCategory.Global_MappingInventorySupply,
                               tempGMIS, 
                               ( tempGMIS.UserQuantity()>0 ) and 
                               ( tempGMIS.Date() >= queryStartDate ) and 
_Main/BL/Type_MacroPlan/Method_DoASyncMappingInventoryValueAndCostData.qbl
@@ -2,18 +2,22 @@
#parent: #root
Method DoASyncMappingInventoryValueAndCostData (
  const GlobalOTDTable globalOTDTable,
  String businessTypeName
  Strings businessTypeNames
)
{
  TextBody:
  [*
    // yypsybs Aug-15-2023 (created)
    listtodeal := construct( Global_MappingStockingPointCosts, constcontent );
    if ( businessTypeName = "" ) {
    if ( businessTypeNames.Size() = 0 ) {
      listtodeal := selectset( globalOTDTable,Global_MappingStockingPointCost,item,true );
    } else {
      targetGlobal_ProductCategory := select( globalOTDTable, Global_ProductCategory, tempGPC, tempGPC.BusinessTypeName() = businessTypeName );
      listtodeal := selectset( targetGlobal_ProductCategory, Global_MappingProduct_MP.Global_StockingPointCostCategory.Global_MappingStockingPointCost, tempGMPIL, true );
      targetGlobal_ProductCategory := selectset( globalOTDTable, Global_ProductCategory, tempGPC,
                                                 exists( businessTypeNames, Elements, tempBTN, tempBTN = tempGPC.BusinessTypeName() ) );
      listtodeal := selectset( targetGlobal_ProductCategory,
                               Elements.Global_MappingProduct_MP.Global_StockingPointCostCategory.Global_MappingStockingPointCost,
                               tempGMPIL,
                               true );
    }
    totalcount := listtodeal.Size();
    
_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMData.qbl
@@ -94,9 +94,15 @@
        toCreateBomList := toCreateBomList.Union( alterCodes);
        traverse( toCreateBomList, Elements, key ) {
            boms := selectset( bomList, Elements, item, item.ComponentType() = "P" and item.OrganCode() + item.ComponentCode() = key );
            if( boms.Size()=0){
              boms := selectset( bomList, Elements, item, item.ComponentType() = "P" and item.OrganCode() + item.AlternativeMaterialCode() = key );
            }
            if( boms.Size()>0){
            bom := boms.First();
            this.MappingOperationBOMDataSupplyPurchase( bom.OrganCode(), bom.ComponentCode(), bom.ComponentType());
        }
        }
    }
    
    
_Main/BL/Type_MacroPlan/Method_DoASyncMappingProductInLaneData.qbl
@@ -2,7 +2,7 @@
#parent: #root
Method DoASyncMappingProductInLaneData (
  const GlobalOTDTable globalOTDTable,
  String businessTypeName
  Strings businessTypeNames
)
{
  Description: 'Get Product In Line data'
@@ -11,11 +11,15 @@
    // Administrator Aug-17-2023 (created)
    // list to deal
    listtodeal := construct( Global_MappingProductInLanes, constcontent );
    if ( businessTypeName = "" ) {
    if ( businessTypeNames.Size() = 0 ) {
      listtodeal := selectset( globalOTDTable, Global_MappingProductInLane, item ,true );
    } else {
      targetGlobal_ProductCategory := select( globalOTDTable, Global_ProductCategory, tempGPC, tempGPC.BusinessTypeName() = businessTypeName );
      listtodeal := selectset( targetGlobal_ProductCategory, Global_MappingProduct_MP.Global_ProductInLineCategory.Global_MappingProductInLane, tempGMPIL, true );
      targetGlobal_ProductCategory := selectset( globalOTDTable, Global_ProductCategory, tempGPC,
                                                 exists( businessTypeNames, Elements, tempBTN, tempBTN = tempGPC.BusinessTypeName() ) );
      listtodeal := selectset( targetGlobal_ProductCategory,
                               Elements.Global_MappingProduct_MP.Global_ProductInLineCategory.Global_MappingProductInLane,
                               tempGMPIL,
                               true );
    }
    totalcount := listtodeal.Size();
    info( "ProductInLane has " + totalcount.AsQUILL() + " rows in total" );
_Main/BL/Type_MacroPlan/StaticMethod_DoASync#253.qbl
@@ -45,31 +45,31 @@
    
    // åº“存点-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;
    parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "StockingPoint" );
    postrequestbody := parameter.PostRequestBody();
    address := parameter.Address();
    url := parameter.AttributeValue();
    port := [Number]parameter.Port();
    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;
    parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "CurrencyInfo" );
    postrequestbody := parameter.PostRequestBody();
    address := parameter.Address();
    url := parameter.AttributeValue();
    port := [Number]parameter.Port();
    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;
    parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "CurrencyRates" );
    postrequestbody := parameter.PostRequestBody();
    address := parameter.Address();
    url := parameter.AttributeValue();
    port := [Number]parameter.Port();
    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
    macroPlan.ApiCurencyRatesData( data );
    
@@ -93,21 +93,21 @@
    
    //车道信息-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;
    parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "Lanes" );
    postrequestbody := parameter.PostRequestBody();
    address := parameter.Address();
    url := parameter.AttributeValue();
    port := [Number]parameter.Port();
    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;
    parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "LaneLegs" );
    postrequestbody := parameter.PostRequestBody();
    address := parameter.Address();
    url := parameter.AttributeValue();
    port := [Number]parameter.Port();
    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
    macroPlan.ApiLaneLegsData( data );
    
@@ -115,7 +115,7 @@
    //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,guard( businessTypeName.Element( 0 ), "" ));
    macroPlan.DoASyncMappingProductInLaneData( globalOTDTable,businessTypeName );
    
    // åœ¨åº“库存数据-13
    //info( "ProductInLane Finished, Start ActualPISPIP Data Broker" );
@@ -130,7 +130,7 @@
    macroPlan.DoASyncMappingExternalSupplyData( businessTypeName, isKeyProduct ,globalOTDTable, organcodelist );
    
    // åº“存成本-15
    InventoryValueAndCost::DoASync( macroPlan,globalOTDTable,guard( businessTypeName.Element( 0 ), "" ) );
    InventoryValueAndCost::DoASync( macroPlan,globalOTDTable,businessTypeName );
    
    // todo åˆ¶é€ æˆæœ¬-16
    info( "InventoryCost Finished, Start OperationCost Mapping" );
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,53 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ExportTheFileStream (
  PRDatas toExportList
) as BinaryValue
{
  TextBody:
  [*
    text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>PR</name><column><name>物料编码</name><type>String</type></column><column><name>物料名称</name><type>String</type></column><column><name>面板物料标识</name><type>String</type></column><column><name>交货日期</name><type>String</type></column><column><name>PR建议日期</name><type>String</type></column><column><name>交货数量</name><type>Number</type></column><column><name>MRP计算版本号</name><type>String</type></column><column><name>业务类型</name><type>String</type></column><column><name>组织编码</name><type>String</type></column><column><name>是否长周期</name><type>String</type></column><column><name>是否专用料</name><type>String</type></column><column><name>物料计划策略</name><type>String</type></column><column><name>提前期</name><type>Number</type></column><column><name>供应商代码</name><type>String</type></column><column><name>供应商名称</name><type>String</type></column><column><name>收货库存点</name><type>String</type></column><column><name>计量单位</name><type>String</type></column><column><name>PR数据发送状态</name><type>String</type></column><column><name>发送时间</name><type>String</type></column><column><name>发送人</name><type>String</type></column></table>';
    sc := DateToString::StandardConverter();
    sc.SetCustomConversion();
    sc.CustomFormatString( 'yyyy-MM-dd' );
    xmlDOMImplementation := XMLDOMImplementation::Create();
    xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text );
    tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
    traverse ( toExportList, Elements, prd ) {
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.ProductID(), "物料编码" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.ProductName(), "物料名称" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.IsPanelMaterial(), "面板物料标识" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, sc.Convert( prd.DeliveryDate() ), "交货日期" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, sc.Convert( prd.PRSuggestionDate() ), "PR建议日期" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]( prd.Quantity().Round( 0 ) ), "交货数量" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.MRPCalverNo(), "MRP计算版本号" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.BusinessType(), "业务类型" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.OrganCode(), "组织编码" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.IsLongLeadItem(), "是否长周期" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.IsGenericMaterial(), "是否专用料" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.MaterialMRPType(), "物料计划策略" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]prd.LeadTime(), "提前期" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.ProviderCode(), "供应商代码" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.ProviderName(), "供应商名称" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.StockingPointID(), "收货库存点" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.UnitOfMeasure(), "计量单位" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.PRReleaseStatus(), "PR数据发送状态" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.CreateTimeString(), "发送时间" );
      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, prd.CreateBy(), "发送人" );
    }
    xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
    xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
    tableGroupHandle := TableGroupHandle::Create( "PR" );
    tableGroupHandle.Add( tableHandle );
    tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
    return tableBinaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_PRData/StaticMethod_GeneratesTheSpecifiedXMLColumn#56.qbl
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral#549.def
@@ -79,5 +79,15 @@
        Taborder: 4
      ]
    }
    Component dsPlanningStart
    {
      #keys: '[414702.1.259278858]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Label: '计划开始时间'
        Taborder: 8
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_OnOk.def
@@ -123,6 +123,8 @@
    macroPlanNew.IsKeyProduct( data.IsKeyProduct() );
    macroPlanNew.CreatePurchaseSupplyMaterial( data.CreatePurchaseSupplyMaterial() );
    
    MacroPlan.UpdateStartOfPlanning( dsPlanningStart.Date().DateTime() );
    this.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_TIANMA_JITUAN_PanelGeneral_549_dsPlanningStart_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: PanelGeneral_549/dsPlanningStart
Response OnCreated () id:Response_TIANMA_JITUAN_PanelGeneral_549_dsPlanningStart_OnCreated
{
  #keys: '[414702.1.259420402]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      this.Date( Date::ActualDate() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[412960.0.370310585]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[412960.0.370310589]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[412960.0.370310591]'
      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_DialogGlobalParameters/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[412960.0.370310583]'
  BaseType: 'WebPanel'
  Children:
  [
    Component editAttributeName
    {
      #keys: '[412960.0.370311392]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderGlobalParameters.Data.AttributeName'
        Label: '参数名称'
        Taborder: 1
      ]
    }
    Component editAttributeValue
    {
      #keys: '[412960.0.370311429]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderGlobalParameters.Data.AttributeValue'
        Label: '参数值'
        Taborder: 2
      ]
    }
    Component editAddress
    {
      #keys: '[412960.0.370311489]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderGlobalParameters.Data.Address'
        Label: 'Api地址'
        Taborder: 3
        Visible: false
      ]
    }
    Component editPort
    {
      #keys: '[412960.0.370311527]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderGlobalParameters.Data.Port'
        Label: 'Api端口号'
        Taborder: 4
        Visible: false
      ]
    }
    Component editPostRequestBody
    {
      #keys: '[412960.0.370311577]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderGlobalParameters.Data.PostRequestBody'
        Label: 'Api请求主体'
        Taborder: 5
        Visible: false
      ]
    }
    Component IsApi
    {
      #keys: '[412960.0.370311617]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Description: '是否为API相关参数'
        Label: 'API配置'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_ClickBtnOk.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: #root
Method ClickBtnOk () id:Method_DialogGlobalParameters_ClickBtnOk
{
  #keys: '[412960.0.370310978]'
  Body:
  [*
    // Disabled button to prevent the possibility of multiple firing
    btnOk.Enabled(false,'');
    // OnOk
    this.ApplyChanges();
    DataHolderGlobalParameters.Data().Commit();
    this.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_Edit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
Method Edit (
  GlobalParameters selection
) id:Method_DialogGlobalParameters_Edit
{
  #keys: '[412960.0.370310979]'
  Body:
  [*
    // Edits assumption
    data := shadow( selection );
    DataHolderGlobalParameters.Data( &data );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_New.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method New (
  GlobalOTDTable owner
) id:Method_DialogGlobalParameters_New
{
  #keys: '[412960.0.370310981]'
  Body:
  [*
    data := owner.GlobalParameters(relshadow);
    DataHolderGlobalParameters.Data( &data);
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/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: '[412960.0.370310595]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[412960.0.370310594]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.ClickBtnOk()
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlContent_IsApi_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: pnlContent/IsApi
Response OnChanged () id:Response_pnlContent_IsApi_OnChanged
{
  #keys: '[412960.0.370311653]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      editAddress.Visible( this.Checked() );
      editPort.Visible( this.Checked() );
      editPostRequestBody.Visible( this.Checked() );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/_ROOT_Component_DialogGlobalParameters.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogGlobalParameters
{
  #keys: '[412960.0.370310581]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
    Component DataHolderGlobalParameters
    {
      #keys: '[412960.0.370311111]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[GlobalParameters]*'
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Padding: 'false'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNew_OnClick.def
@@ -2,7 +2,7 @@
#parent: ListBusinessType
Response OnClick () id:Response_ListBusinessType_MenuNew_OnClick
{
  #keys: '[414382.0.377975353]'
  #keys: '[412960.0.373110863]'
  CanBindMultiple: false
  DefinitionID => /ListBusinessType/Responsedef_ListBusinessType_WebMenu_OnClick
  GroupServerCalls: true
_Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def
@@ -41,6 +41,8 @@
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_DataHolderChecked_OnDataChanged#774.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_OnUserCheckedChanged#613.def
@@ -5,13 +5,12 @@
  #keys: '[414384.0.798051611]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      info( "checked 0 PRs" );
      DataHolderChecked.Data().Flush();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_OnUserCheckedChanged.def
@@ -7,13 +7,12 @@
  #keys: '[414384.0.798051163]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      info( "checked " + [String]checkeditems.Size() + " PRs" );
      DataHolderChecked.Data( checkeditems.Copy() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def
@@ -13,7 +13,7 @@
  {
    Body:
    [*
      Application.Download( "PRData.xlsx", PRData::Export( MacroPlan ) );
      Application.Download( "PRData.xlsx", PRData::ExportTheFileStream( DataHolderChecked.Data() ).AsBinaryData() );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Component_ListDataInterfaceLog.def
@@ -36,7 +36,7 @@
  ]
  Properties:
  [
    Taborder: 1
    Taborder: 3
  ]
  ResponseDefinitions:
  [
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Component_Panel1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
Component Panel1
{
  #keys: '[414702.1.241718154]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonGenerateProductCategory id:ButtonGenerateProductCategory_943
    {
      #keys: '[414702.1.245048887]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'TELEPHONE2'
        Label: '根据事业部生成产品分类'
        Taborder: 0
      ]
    }
    Component Button1 id:Button1_838
    {
      #keys: '[414702.1.247625600]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'BRUSH2'
        Label: '根据产品ID生成ProductInLine分类'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Component_Panel3.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
Quintiq file version 2.0
Component Panel3
{
  #keys: '[414702.1.247664260]'
  BaseType: 'WebPanel'
  Children:
  [
    Component Button2 id:Button2_925
    {
      #keys: '[414702.1.242541029]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'INDUSTRIAL_ROBOT'
        Label: '根据产品ID生成StockingPoingCost分类'
        Taborder: 0
      ]
    }
    Component Button3 id:Button3_414
    {
      #keys: '[414702.1.247559425]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'BANANA'
        Label: '根据产品ID生成MAPISPIP分类'
        Taborder: 1
      ]
    }
    Component Button4 id:Button4_433
    {
      #keys: '[414702.1.247870242]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'BEER_GLASS'
        Label: '根据产品ID生成InventorySupply分类'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Component_Panel4#2.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
Component Panel4
{
  #keys: '[414702.1.246784986]'
  BaseType: 'WebPanel'
  Children:
  [
    Component Button5 id:Button5_56
    {
      #keys: '[414702.1.247191910]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'BROOM'
        Label: '清空分类'
        Taborder: 1
      ]
    }
    Component ButtonDeleteMappingData id:ButtonDeleteMappingData_928
    {
      #keys: '[414702.1.247703528]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'GARBAGE'
        Label: '删除所有中间表数据'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Component_PanelDataInterfaceLog.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel1_Button1_OnClick#673.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: Panel1/Button1_838
Response OnClick () id:Response_FormInterfaceTest_Button1_OnClick_673
{
  #keys: '[414702.1.247625599]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      WebMessageBox::Information( "任务开始执行,仅限一人操作!", true );
      id := DataInterfaceLog::Create( GlobalOTDLog, guard( ApplicationMacroPlanner.GetUserName(), "账号异常" ), "生成产品在车道分类" );
      Global_ProductInLineCategory::Create( GlobalOTDTable, id );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel1_ButtonGenerateProductCategory_OnClick#902.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: Panel1/ButtonGenerateProductCategory_943
Response OnClick () id:Response_Panel1_ButtonGenerateProductCategory_OnClick_902
{
  #keys: '[414702.1.245048886]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( GlobalOTDTable );
  *]
  QuillAction
  {
    Body:
    [*
      WebMessageBox::Information( "任务开始执行,仅限一人操作!", true );
      id := DataInterfaceLog::Create( GlobalOTDLog, guard( ApplicationMacroPlanner.GetUserName(), "账号异常" ), "生成产品分类" );
      Global_ProductCategory::Create( GlobalOTDTable, id );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel3_Button2_OnClick#836.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: Panel3/Button2_925
Response OnClick () id:Response_FormInterfaceTest_Button2_OnClick_836
{
  #keys: '[414702.1.242541028]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      WebMessageBox::Information( "任务开始执行,仅限一人操作!", true );
      id := DataInterfaceLog::Create( GlobalOTDLog, guard( ApplicationMacroPlanner.GetUserName(), "账号异常" ), "生成库存成本分类" );
      Global_StockingPointCostCategory::Create( GlobalOTDTable, id );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel3_Button3_OnClick#918.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: Panel3/Button3_414
Response OnClick () id:Response_FormInterfaceTest_Button3_OnClick_918
{
  #keys: '[414702.1.247559424]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      WebMessageBox::Information( "任务开始执行,仅限一人操作!", true );
      id := DataInterfaceLog::Create( GlobalOTDLog, guard( ApplicationMacroPlanner.GetUserName(), "账号异常" ), "生成实际库存分类" );
      Global_MAPISPIPCategory::Create( GlobalOTDTable, id );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel3_Button4_OnClick#249.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: Panel3/Button4_433
Response OnClick () id:Response_FormInterfaceTest_Button4_OnClick_249
{
  #keys: '[414702.1.247870241]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      WebMessageBox::Information( "任务开始执行,仅限一人操作!", true );
      id := DataInterfaceLog::Create( GlobalOTDLog, guard( ApplicationMacroPlanner.GetUserName(), "账号异常" ), "生成外部库存分类" );
      Global_InventorySupplyCategory::Create( GlobalOTDTable, id );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel4_Button5_OnClick#605.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: Panel4/Button5_56
Response OnClick () id:Response_Panel4_Button5_OnClick_605
{
  #keys: '[414702.1.247191909]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      WebMessageBox::Information( "任务开始执行,仅限一人操作!", true )
      id := DataInterfaceLog::Create( GlobalOTDLog, guard( ApplicationMacroPlanner.GetUserName(), "账号异常" ), "清空分类数据" );
      GlobalOTDTable::DeleteAllCategoryData( GlobalOTDTable, id );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_Panel4_ButtonDeleteMappingData_OnClick#608.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
Quintiq file version 2.0
#parent: Panel4/ButtonDeleteMappingData_928
Response OnClick () id:Response_Panel1_ButtonDeleteMappingData_OnClick_608
{
  #keys: '[414702.1.247703527]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    isExists := exists( GlobalOTDLog, DataInterfaceLog, tempDIL, tempDIL.Message() = "清空中间表数据" and tempDIL.ExecuteStatus() = "Running" );
    if ( isExists ) {
      feedback := "已有正在运行的任务!";
    }
    return not isnull( GlobalOTDTable ) and not isnull( GlobalOTDLog ) and not isExists;
  *]
  QuillAction
  {
    Body:
    [*
      WebMessageBox::Information( "任务开始执行,仅限一人操作!", true )
      id := DataInterfaceLog::Create( GlobalOTDLog, guard( ApplicationMacroPlanner.GetUserName(), "账号异常" ), "删除所有中间表数据" );
      GlobalOTDTable::DeleteAllMappingData( GlobalOTDTable, id );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/Response_PanelDataInterfaceLog_ButtonDeleteMappingData_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormDataInterfaceLog/_ROOT_Component_FormDataInterfaceLog.def
@@ -8,7 +8,9 @@
  Children:
  [
    #child: ListDataInterfaceLog
    #child: PanelDataInterfaceLog
    #child: Panel1
    #child: Panel4
    #child: Panel3
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_ListGlobalParameters.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
Quintiq file version 2.0
Component ListGlobalParameters
{
  #keys: '[412960.0.370311764]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorGlobalParameters
    {
      #keys: '[412960.0.370311765]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        Taborder: 0
        Transformation: 'GlobalParameters'
      ]
    }
    #child: listActionBarPageGlobalParameters
    Component DataSetLevelGlobalParameters
    {
      #keys: '[412960.0.370311770]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuGlobalParameters
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AttributeName","title":"AttributeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AttributeName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AttributeValue","title":"AttributeValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AttributeValue"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Address","title":"Address","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Address"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Port","title":"Port","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Port"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PostRequestBody","title":"PostRequestBody","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PostRequestBody"}}]'
        ContextMenu: 'listContextMenuGlobalParameters'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListGlobalParameters_WebMenu_OnClick
    {
      #keys: '[412960.0.373111120]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[693.0.13162755]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_PanelGlobalParameters.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component PanelGlobalParameters
{
  #keys: '[412960.0.370311750]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListGlobalParameters
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_listActionBarPageGlobalParameters.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageGlobalParameters
{
  #keys: '[412960.0.370311767]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_listContextMenuGlobalParameters.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
Quintiq file version 2.0
Component listContextMenuGlobalParameters
{
  #keys: '[412960.0.370311772]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuNew id:MenuNew_21
    {
      #keys: '[412960.0.370312224]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'ADD2'
        Taborder: 3
        Title: 'New'
      ]
    }
    Component MenuEdit id:MenuEdit_368
    {
      #keys: '[412960.0.370312277]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'PENCIL'
        Taborder: 4
        Title: 'Edit'
      ]
    }
    Component MenuDelete id:MenuDelete_832
    {
      #keys: '[412960.0.370312355]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DELETE'
        Taborder: 5
        Title: 'Delete'
      ]
    }
    Component MenuInitial
    {
      #keys: '[412960.0.376011203]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'ARROW_LOOP3'
        Taborder: 6
        Title: 'Init Api'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuDelete_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListGlobalParameters
Response OnClick (
  GlobalParameters selection
) id:Response_ListGlobalParameters_MenuDelete_OnClick
{
  #keys: '[412960.0.373113087]'
  CanBindMultiple: false
  DefinitionID => /ListGlobalParameters/Responsedef_ListGlobalParameters_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuDelete'
  QuillAction
  {
    Body:
    [*
      selection.Delete();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuEdit_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: ListGlobalParameters
Response OnClick (
  GlobalParameters selection
) id:Response_ListGlobalParameters_MenuEdit_OnClick
{
  #keys: '[412960.0.373112994]'
  CanBindMultiple: false
  DefinitionID => /ListGlobalParameters/Responsedef_ListGlobalParameters_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuEdit'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogGlobalParameters );
      dlg.Edit( selection );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuNew_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: ListGlobalParameters
Response OnClick () id:Response_ListGlobalParameters_MenuNew_OnClick
{
  #keys: '[412960.0.373111139]'
  CanBindMultiple: false
  DefinitionID => /ListGlobalParameters/Responsedef_ListGlobalParameters_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuNew'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogGlobalParameters );
      dlg.New( GlobalOTDTable );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_listContextMenuGlobalParameters_MenuInitial_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: listContextMenuGlobalParameters/MenuInitial
Response OnClick () id:Response_listContextMenuGlobalParameters_MenuInitial_OnClick
{
  #keys: '[412960.0.376011242]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      GlobalParameters::TestForApiRequest( GlobalOTDTable );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/_ROOT_Component_FormGlobalParameters.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormGlobalParameters
{
  #keys: '[412960.0.367611841]'
  BaseType: 'WebForm'
  Children:
  [
    #child: PanelGlobalParameters
  ]
  Properties:
  [
    Description: '存放各类全局参数,目前仅包含API相关'
    Image: 'EARTH2'
    Title: 'Global Parameters'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/Component_ListHistoricalSalesOrders.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/Component_listActionBarPageHistoricalSalesOrders.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/Component_listContextMenuHistoricalSalesOrders.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/Response_ListHistoricalSalesOrders_MenuDelete_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/Response_ListHistoricalSalesOrders_MenuEdit_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/Response_ListHistoricalSalesOrders_MenuNew_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormHistoricalSalesOrders/_ROOT_Component_FormHistoricalSalesOrders.def
@@ -5,10 +5,6 @@
{
  #keys: '[414382.0.386940324]'
  BaseType: 'WebForm'
  Children:
  [
    #child: ListHistoricalSalesOrders
  ]
  Properties:
  [
    Title: '外卖CELL历史订单'
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceGlobal_BrokerExecuteLog#981.def
@@ -9,6 +9,6 @@
  ]
  Properties:
  [
    Taborder: 5
    Taborder: 6
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption1.def
@@ -60,6 +60,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption2.def
@@ -60,6 +60,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption3.def
@@ -60,6 +60,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 2
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption4.def
@@ -60,6 +60,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 3
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceTest.def
@@ -32,6 +32,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 4
    Taborder: 5
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_Button1_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_Button2_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_Button3_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_Button4_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_Button5_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ButtonGenerateProductCategory_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_CheckSelectAll_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
#parent: CheckSelectAll
Response OnChanged () id:Response_FormInterfaceTest_CheckSelectAll_OnChanged
{
  #keys: '[414702.1.245944876]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
  QuillAction
  {
    Body:
    [*
      CheckboxCustomOrder.Checked( this.Checked() );
      CheckboxForecast.Checked( this.Checked() );
      CheckboxUnitOfMeasure_MP.Checked( this.Checked() );
      CheckboxSalesSegment_MP.Checked( this.Checked() );
      CheckboxProduct_MP.Checked( this.Checked() );
      CheckboxConversionFactor.Checked( this.Checked() );
      CheckboxOperation.Checked( this.Checked() );
      CheckboxOperationBOM.Checked( this.Checked() );
      CheckboxProductInLane.Checked( this.Checked() );
      CheckboxAIPISPIP.Checked( this.Checked() );
      CheckboxInventorySupply.Checked( this.Checked() );
      CheckboxStockingPointCost.Checked( this.Checked() );
      CheckboxOperationCost.Checked( this.Checked() );
      CheckboxDOI_DSI.Checked( this.Checked() );
      CheckboxCustomerGrade.Checked( this.Checked() );
      CheckboxStockingPoint_MP.Checked( this.Checked() );
      CheckboxCurrency_MP.Checked( this.Checked() );
      CheckboxCurrencyRate_MP.Checked( this.Checked() );
      CheckboxLane.Checked( this.Checked() );
      CheckboxLaneLeg.Checked( this.Checked() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnCli.def
@@ -19,6 +19,8 @@
  {
    Body:
    [*
      WebMessageBox::Information( "数据开始拉取中!(仅限一人操作)", true );
      GlobalOTDTable.SynchronizationAllMappingBrokerAndAPIByOption( ApplicationMacroPlanner.GetUserName(),
                                                                    CheckboxCustomOrder.Checked(),
                                                                    CheckboxForecast.Checked(),
@@ -40,8 +42,6 @@
                                                                    CheckboxCurrencyRate_MP.Checked(),
                                                                    CheckboxLane.Checked(),
                                                                    CheckboxLaneLeg.Checked() );
      WebMessageBox::Information( "数据开始拉取中!(仅限一人操作)", true );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def
@@ -13,70 +13,14 @@
    #child: PanelInterfaceOption3
    #child: PanelInterfaceOption2
    #child: PanelInterfaceOption1
    Component ButtonGenerateProductCategory
    Component CheckSelectAll
    {
      #keys: '[414702.1.220980872]'
      BaseType: 'WebButton'
      #keys: '[414702.1.245944647]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Image: 'TELEPHONE2'
        Label: '根据事业部生成产品分类'
        Taborder: 6
      ]
    }
    Component Button1
    {
      #keys: '[414702.1.225920560]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'BRUSH2'
        Label: '根据产品ID生成ProductInLine分类'
        Taborder: 7
      ]
    }
    Component Button2
    {
      #keys: '[414702.1.225920577]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'INDUSTRIAL_ROBOT'
        Label: '根据产品ID生成StockingPoingCost分类'
        Taborder: 8
      ]
    }
    Component Button3
    {
      #keys: '[414702.1.226882098]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'BANANA'
        Label: '根据产品ID生成MAPISPIP分类'
        Taborder: 9
      ]
    }
    Component Button4
    {
      #keys: '[414702.1.226891739]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'BEER_GLASS'
        Label: '根据产品ID生成InventorySupply分类'
        Taborder: 10
      ]
    }
    Component Button5
    {
      #keys: '[414702.1.228751221]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'BROOM'
        Label: '清空分类'
        Taborder: 11
        Label: '全选'
        Taborder: 0
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Views/PR_DATA.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,204 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormPRHistoryData
      {
        title: 'QTIANMA_JITUAN::FormPRHistoryData'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPRHistoryData'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 15
          columnPosition: 5
          columnSpan: 8
        }
        components
        {
          FormPRHistoryData_PanelPRHistoryButton
          {
            sizeRatio: 1
          }
          FormPRHistoryData_ListPRHistoryData
          {
          }
          FormPRHistoryData_DataSetLevelPRHistoryData
          {
            groupDepth: -1
            column_BusinessType
            {
              columnId: 'BusinessType'
              dataPath: 'BusinessType'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_MRPCalverNo
            {
              columnId: 'MRPCalverNo'
              dataPath: 'MRPCalverNo'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_OrganCode
            {
              columnId: 'OrganCode'
              dataPath: 'OrganCode'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_ProductID
            {
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 4
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'real'
              index: 5
              subtotals: ''
              width: 150
            }
            column_SendStatus
            {
              columnId: 'SendStatus'
              dataPath: 'SendStatus'
              dataType: 'string'
              index: 6
              subtotals: ''
              width: 150
            }
            column_ReleaseBy
            {
              columnId: 'ReleaseBy'
              dataPath: 'ReleaseBy'
              dataType: 'string'
              index: 7
              subtotals: ''
              width: 150
            }
            column_ReceiveStatus
            {
              columnId: 'ReceiveStatus'
              dataPath: 'ReceiveStatus'
              dataType: 'string'
              index: 8
              subtotals: ''
              width: 150
            }
            column_ReceiveError
            {
              columnId: 'ReceiveError'
              dataPath: 'ReceiveError'
              dataType: 'string'
              index: 9
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormPRData
      {
        title: 'QTIANMA_JITUAN::FormPRData'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPRData'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 15
          columnPosition: 1
          columnSpan: 4
        }
        components
        {
          FormPRData_PanelPRDataButton
          {
            sizeRatio: 1
          }
          FormPRData_ListPRData
          {
          }
          FormPRData_DataSetLevelPRData
          {
            groupDepth: -1
            column_MRPCalverNo
            {
              columnId: 'MRPCalverNo'
              dataPath: 'MRPCalverNo'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_ProductID
            {
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'real'
              index: 3
              subtotals: ''
              width: 150
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: 'ActionBarPageData'
    group: ''
    index: 0
    image: 'BEAR'
    description: 'PR申请'
  }
  formatversion: 2
  id: 'PR_DATA'
  name: 'PR_DATA'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/È«¾Ö²ÎÊý.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,351 @@
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: 277
            }
            column_ChangedBy
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              dataType: 'string'
              title: 'Changed by'
              index: 2
              subtotals: ''
              width: 106
            }
            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_legacy_2
      {
        title: 'Assumptions'
        shown: true
        componentID: 'FormAssumptions'
        layout
        {
          mode: 'open'
          rowPosition: 9
          rowSpan: 8
          columnPosition: 1
          columnSpan: 5
        }
        components
        {
          FormAssumptions_ListAssumptions
          {
          }
          FormAssumptions_DataSetLevelAssumptions
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Category
            {
              columnId: 'Category'
              dataPath: 'Category'
              dataType: 'string'
              title: '类别'
              index: 1
              subtotals: ''
              width: 108
            }
            column_Importance
            {
              columnId: 'Importance'
              dataPath: 'Importance'
              dataType: 'string'
              title: '重要性'
              index: 2
              subtotals: ''
              width: 110
            }
            column_Title
            {
              columnId: 'Title'
              dataPath: 'Title'
              dataType: 'string'
              title: '标题'
              index: 3
              subtotals: ''
              width: 150
            }
            column_ChangedBy
            {
              columnId: 'ChangedBy'
              dataPath: 'ChangedBy'
              dataType: 'string'
              title: 'Changed by'
              index: 4
              subtotals: ''
              width: 150
            }
            column_CreatedOn
            {
              columnId: 'CreatedOn'
              dataPath: 'CreatedOn'
              dataType: 'datetime'
              title: 'Created on'
              index: 5
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormScenariosKPIsComparison
      {
        title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
        shown: true
        componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 16
          columnPosition: 6
          columnSpan: 7
        }
        components
        {
          FormScenariosKPIsComparison_MatrixEditorFinancialKPIs
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_DisplayValue
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'DisplayValue'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: ''
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'KPISetting.DisplayIndex'"
                  }
                }
              }
            }
          }
        }
      }
      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: true
        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
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: 'applicationDevelopmentActionBarPageDef'
    group: ''
    index: 4
    image: 'EARTH2'
    description: ''
  }
  formatversion: 2
  id: '全局参数'
  name: '全局参数'
  isglobal: false
  isroot: true
}
_var/_Main/ModelSettings/Common/Dev-38/_ROOT_Role_Dev-38.properties
@@ -513,12 +513,12 @@
domainmodel.mdsstoragedefinitionmanager.maxcolumnname=0
domainmodel.mdsstoragedefinitionmanager.maxtablename=0
domainmodel.mdsstoragedefinitionmanager.name=dbodbc1
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasichost=10.110.14.50
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicport=1521
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicservice=totddb_it
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasichost=totddb.tianma.cn
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicport=1529
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicservice=todbpdb1
domainmodel.mdsstoragedefinitionmanager.ociconnectiontnsname=
domainmodel.mdsstoragedefinitionmanager.ociconnectiontype=Basic
domainmodel.mdsstoragedefinitionmanager.parameters=/datasource=MacroPlannerInternalDB /user=otdit
domainmodel.mdsstoragedefinitionmanager.parameters=/datasource=MacroPlannerInternalDB /user=otddevsyb
domainmodel.mdsstoragedefinitionmanager.password=1 2A801D084589485925DA39115D5C7855 b91e3007-e230-4ef5-833e-a07edfc8903c
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients=template:domainmodel.soapclientinterfacedefinition
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.datasetkind=
_var/_Main/ModelSettings/Common/Dev-40/_ROOT_Role_Dev-40.properties
@@ -513,12 +513,12 @@
domainmodel.mdsstoragedefinitionmanager.maxcolumnname=0
domainmodel.mdsstoragedefinitionmanager.maxtablename=0
domainmodel.mdsstoragedefinitionmanager.name=dbodbc1
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasichost=10.110.14.50
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicport=1521
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicservice=totddb_it
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasichost=totddb.tianma.cn
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicport=1529
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicservice=todbpdb2
domainmodel.mdsstoragedefinitionmanager.ociconnectiontnsname=
domainmodel.mdsstoragedefinitionmanager.ociconnectiontype=Basic
domainmodel.mdsstoragedefinitionmanager.parameters=/datasource=MacroPlannerInternalDB /user=otdit
domainmodel.mdsstoragedefinitionmanager.parameters=/datasource=MacroPlannerInternalDB /user=otddevjtmb
domainmodel.mdsstoragedefinitionmanager.password=1 2A801D084589485925DA39115D5C7855 b91e3007-e230-4ef5-833e-a07edfc8903c
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients=template:domainmodel.soapclientinterfacedefinition
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.datasetkind=
_var/_Main/ModelSettings/Common/Dev-42/_ROOT_Role_Dev-42.properties
@@ -513,12 +513,12 @@
domainmodel.mdsstoragedefinitionmanager.maxcolumnname=0
domainmodel.mdsstoragedefinitionmanager.maxtablename=0
domainmodel.mdsstoragedefinitionmanager.name=dbodbc1
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasichost=10.110.14.50
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicport=1521
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicservice=totddb_it
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasichost=totddb.tianma.cn
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicport=1529
domainmodel.mdsstoragedefinitionmanager.ociconnectionbasicservice=todbpdb3
domainmodel.mdsstoragedefinitionmanager.ociconnectiontnsname=
domainmodel.mdsstoragedefinitionmanager.ociconnectiontype=Basic
domainmodel.mdsstoragedefinitionmanager.parameters=/datasource=MacroPlannerInternalDB /user=otdit
domainmodel.mdsstoragedefinitionmanager.parameters=/datasource=MacroPlannerInternalDB /user=otddevoled
domainmodel.mdsstoragedefinitionmanager.password=1 2A801D084589485925DA39115D5C7855 b91e3007-e230-4ef5-833e-a07edfc8903c
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients=template:domainmodel.soapclientinterfacedefinition
domainmodel.soapclientinterfacedefinition.interface.libdef_soapclients.datasetkind=