hongji.li
2023-10-17 0764eaf0e5c9603fa5f7643c9eadf5091138a50c
Merge branch 'dev' of http://47.101.211.7:10101/r/TIANMA_JITUAN into dev_lhj
已修改14个文件
已添加9个文件
已删除4个文件
1044 ■■■■ 文件已修改
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoSync#618.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoSync.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_Export#346.qbl 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_Export.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream#595.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/StaticMethod_Export#527.qbl 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/StaticMethod_Export.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream#45.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral#549.def 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_CopyScenario.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_TIANMA_JITUAN_PanelGeneral_549_checkboxEnableSync_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonExportPRHistory_OnClick.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick#545.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick#549.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl
@@ -47,6 +47,8 @@
      organcodelist := selectvalues( this, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
      }
    
    macroPlan.InitialUnitAndStockingPoint();
    if ( isUnitOfMeasure_MP ) {
      Global_MappingUnitOfMeasure_MP::SynchronizeMacroPlanData( this, macroPlan );
    }
@@ -106,35 +108,25 @@
    //if ( isCustomerGrade ) {
    //  Global_MappingCustomerGrade::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_CustomerGrade" );
    //}
    //
    //if ( isStockingPoint_MP ) {
    //  this.Global_MappingStockingPoint_MP( relflush );
    //  Global_BrokerExecuteLog::CreateInOperation( this, "StockingPoint_MP", executionUser );
    ////  this -> Global_MappingStockingPoint_MP::CreateByAPI() -> Exception() -> Global_MappingStockingPoint_MP::OnException( this );
    //}
    //
    //if ( isCurrency_MP ) {
    //  this.Global_MappingCurrency_MP( relflush );
    //  Global_BrokerExecuteLog::CreateInOperation( this, "Currency_MP", executionUser );
    ////  this -> Global_MappingCurrency_MP::CreateByAPI() -> Exception() -> Global_MappingCurrency_MP::OnException( this );
    //}
    //
    //if ( isCurrencyRate_MP ) {
    //  this.Global_MappingCurrencyRate_MP( relflush );
    //  Global_BrokerExecuteLog::CreateInOperation( this, "CurrencyRate_MP", executionUser );
    ////  this -> Global_MappingCurrencyRate_MP::CreateByAPI() -> Exception() -> Global_MappingCurrencyRate_MP::OnException( this );
    //}
    //
    //if ( isLane ) {
    //  this.Global_MappingLane( relflush );
    //  Global_BrokerExecuteLog::CreateInOperation( this, "Lane", executionUser );
    ////  this -> Global_MappingLane::CreateByAPI() -> Exception() -> Global_MappingLane::OnException( this );
    //}
    //
    //if ( isLaneLeg ) {
    //  this.Global_MappingLaneLeg( relflush );
    //  Global_BrokerExecuteLog::CreateInOperation( this, "LaneLeg", executionUser );
    ////  this -> Global_MappingLaneLeg::CreateByAPI() -> Exception() -> Global_MappingLaneLeg::OnException( this );
    //}
    if ( isStockingPoint_MP ) {
      Global_MappingStockingPoint_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
    }
    if ( isCurrency_MP ) {
      Global_MappingCurrency_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
    }
    if ( isCurrencyRate_MP ) {
      Global_MappingCurrencyRate_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
    }
    if ( isLane ) {
      Global_MappingLane::SynchronizeMacroPlanData( this, macroPlan, executionUser );
    }
    if ( isLaneLeg ) {
      Global_MappingLaneLeg::SynchronizeMacroPlanData( this, macroPlan, executionUser );
    }
  *]
}
_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeMacroPlanData (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan,
  String executionUser
)
{
  TextBody:
  [*
    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
                                                                       Name        := "同步货币汇率数据",
                                                                       IsSuccess   := true,
                                                                       ExecuteUser := executionUser
                                                                      );
    try {
      updates := construct( CurrencyRate_MPs );
      traverse( globalOTDTable, Global_MappingCurrencyRate_MP, gcr, true )
      {
        a := CurrencyRate_MP::CreateCurrencyRate( gcr.CurrencyID(), gcr.Start(), gcr.Rate() );
        updates.Add( a );
        }
      origindataset := selectset( macroPlan, Currency_MP.CurrencyRate_MP, cr, true );
      obsoletes := origindataset.Difference( updates );
      // delete obsoleted
      difflength := obsoletes.Size();
      for( j:=0; j<difflength; j++ )
      {
        obsolete := obsoletes.Element( j );
        obsolete.Delete();
        }
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
    } onerror {
      global_BrokerExecuteLog.IsSuccess( false );
      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
    }
  *]
}
_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeMacroPlanData (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan,
  String executionUser
)
{
  TextBody:
  [*
    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
                                                                       Name        := "同步货币数据",
                                                                       IsSuccess   := true,
                                                                       ExecuteUser := executionUser
                                                                      );
    try {
      updates := construct( Currency_MPs );
      traverse( globalOTDTable, Global_MappingCurrency_MP, gc, true )
      {
        a := Currency_MP::CreateCurrency( macroPlan, gc.ID(), gc.Name(), " ", gc.IsBase() );
        updates.Add( a );
        }
      origindataset := selectset( macroPlan, Currency_MP, c, true );
      obsoletes := origindataset.Difference( updates );
      // delete obsoleted
      difflength := obsoletes.Size();
      for( j:=0; j<difflength; j++ )
      {
        obsolete := obsoletes.Element( j );
        obsolete.Delete();
        }
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
    } onerror {
      global_BrokerExecuteLog.IsSuccess( false );
      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
    }
  *]
}
_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeMacroPlanData (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan,
  String executionUser
)
{
  TextBody:
  [*
    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
                                                                       Name        := "同步车道数据",
                                                                       IsSuccess   := true,
                                                                       ExecuteUser := executionUser
                                                                      );
    try {
      updates := construct( Lanes );
      traverse( globalOTDTable, Global_MappingLane, gl, true )
      {
        id := gl.ID();
        unitid := gl.UnitID();
        name := gl.Name();
        userleadtime := gl.UserLeadTime();
        processingtime := Duration::Zero();
        unitofmeasurename := "PCS";
        currencyid := "CNY";
        startdate := Date::Date( 1900, 1, 1 );
        enddate := Date::Date( 9999, 12, 31 );
        capacitytype := "Transport quantity";
        if( userleadtime.Length() = 0 )
        {
          processingtime := Duration::Zero();
          }
        else
        {
          processingtime := Duration::Hours( [Number]userleadtime );
          };
        unit := Unit::FindUnitTypeIndex( unitid );
        if( isnull( unit)){
          unit :=macroPlan.Unit( relnew,
                                 ID := unitid,
                                 Name := unitid,
                                 UnitOfMeasureName := unitofmeasurename,
                                 CurrencyID := currencyid,
                                 StartDate := startdate,
                                 EndDate := enddate,
                                 CapacityType := capacitytype );
        }
        a := Lane::CreateLane( unit, id, name, processingtime);
        updates.Add( a );
        }
      origindataset := selectset( macroPlan, Unit.Lane, l, true );
      obsoletes := origindataset.Difference( updates );
      // delete obsoleted
      difflength := obsoletes.Size();
      for( j:=0; j<difflength; j++ )
      {
        obsolete := obsoletes.Element( j );
        obsolete.Delete();
        }
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
    } onerror {
      global_BrokerExecuteLog.IsSuccess( false );
      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
    }
  *]
}
_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeMacroPlanData (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan,
  String executionUser
)
{
  TextBody:
  [*
    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
                                                                       Name        := "同步车道路线数据",
                                                                       IsSuccess   := true,
                                                                       ExecuteUser := executionUser
                                                                      );
    try {
      updates := construct( LaneLegs );
      traverse( globalOTDTable, Global_MappingLaneLeg, gll, true )
      {
        processingtime := Duration::Zero();
        hasprocessingtime := true;
        userleadtime := gll.UserLeadTime();
        if( userleadtime.Length() = 0 )
        {
          hasprocessingtime := false;
          processingtime := Duration::Zero();
          }
        else
        {
          hasprocessingtime := true;
          processingtime := Duration::Hours( [Number]userleadtime );
          };
        lane := Lane::FindLaneTypeIndex( gll.LaneID() );
        a := LaneLeg::CreateLaneleg(lane, gll.LaneID(), gll.OriginStockingPointID(), gll.DestinationStockingPointID(), gll.Name(), hasprocessingtime, processingtime);
        updates.Add( a );
        }
      origindataset := selectset( macroPlan, Unit.Lane.LaneLeg, ll, true );
      obsoletes := origindataset.Difference( updates );
      // delete obsoleted
      difflength := obsoletes.Size();
      for( j:=0; j<difflength; j++ )
      {
        obsolete := obsoletes.Element( j );
        obsolete.Delete();
        }
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
    } onerror {
      global_BrokerExecuteLog.IsSuccess( false );
      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
    }
  *]
}
_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeMacroPlanData (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan,
  String executionUser
)
{
  TextBody:
  [*
    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
                                                                       Name        := "同步库存点数据",
                                                                       IsSuccess   := true,
                                                                       ExecuteUser := executionUser
                                                                      );
    try {
      updates := construct( StockingPoint_MPs );
      traverse( globalOTDTable, Global_MappingStockingPoint_MP, sp, true )
      {
        a := StockingPoint_MP::CreateStockingpoint( macroPlan, sp.ID(), sp.UnitID(), sp.Name() );
        updates.Add( a );
        }
      origindataset := selectset( macroPlan, StockingPoint_MP, sp, true );
      obsoletes := origindataset.Difference( updates );
      // delete obsoleted
      difflength := obsoletes.Size();
      for( j:=0; j<difflength; j++ )
      {
        obsolete := obsoletes.Element( j );
        obsolete.Delete();
        }
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
    } onerror {
      global_BrokerExecuteLog.IsSuccess( false );
      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
    }
  *]
}
_Main/BL/Type_MacroPlan/StaticMethod_DoSync#618.qbl
@@ -12,9 +12,9 @@
  TextBody:
  [*
    // yypsybs Aug-17-2023 (created)
    businessTypes := construct( Strings );
    businessTypes := construct( BusinessType );
    if( businessTypeStr.Length() > 0 ) {
        businessTypes := businessTypeStr.Tokenize( ',' );
    //    businessTypes := businessTypeStr.Tokenize( ',' );
    }
    MacroPlan::DoSync( macroPlan, businessTypes, isKeyProduct, createPurchaseSupplyMaterial ,globalOTDTable);
  *]
_Main/BL/Type_MacroPlan/StaticMethod_DoSync.qbl
@@ -11,7 +11,7 @@
  TextBody:
  [*
    // yypsybs Aug-17-2023 (created)
    businessTypes := construct( Strings );
    businessTypes := construct( BusinessType );
    MacroPlan::DoSync( macroPlan, businessTypes, isKeyProduct, createPurchaseSupplyMaterial ,globalOTDTable);
  *]
}
_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
@@ -2,7 +2,7 @@
#parent: #root
StaticMethod DoSync (
  MacroPlan macroPlan,
  Strings businessTypes,
  BusinessType businessType,
  Boolean isKeyProduct,
  Boolean createPurchaseSupplyMaterial,
  GlobalOTDTable globalOTDTable
@@ -16,20 +16,8 @@
    //Currency_MP::CreateCurrencyFromJson( macroPlan, jsonDataRow );
    info( "Prepare to do sync" )
    info( "Get organ code list" )
    organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
    if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) {
        traverse( businessTypes, Elements, item ) {
            info( "Business type : " + item )
        }
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
    }
    else{
      if( businessTypes.Size() = 0 ){
        if( not isnull( selectset( globalOTDTable, BusinessType, b, b.BusinessTypeName() = "" ) ) ){
          organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, organ.BusinessType().BusinessTypeName() = "", organ.OrganCodeName() );
          }
        }
      }
    businessTypeName := businessType.BusinessTypeName().Tokenize( "," );
    organcodelist := selectvalues( businessType, OrganCode, organ, true, organ.OrganCodeName() );
    
    if( organcodelist.Size() = 0 ){
      organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
@@ -46,14 +34,14 @@
    UnitOfMeasure_MP::DoSync( globalOTDTable,macroPlan );
    
    // é”€å”®éƒ¨é—¨-2
    SalesSegment_MP::DoSync( macroPlan, businessTypes,globalOTDTable );
    SalesSegment_MP::DoSync( macroPlan, businessTypeName, globalOTDTable );
    
    // Unit-9 
    // ä¸ŽOperation一同处理
    //info( "BaseConversionFactor Finished, Start Operation Data Broker" );
    //macroPlan.Broker_OTD_Operation().Execute();
    info( "Operation Data Broker Finished, Start Unit Mapping" );
    macroPlan.MappingUnitData( businessTypes ,globalOTDTable, organcodelist);
    macroPlan.MappingUnitData( businessTypeName ,globalOTDTable, organcodelist);
    
    // åº“存点-3
    info( "Sales Segment Finished, Start Get StockingPoint From Api" )
@@ -90,18 +78,18 @@
    //macroPlan.Broker_OTD_Product().Execute();
    info( "Product Data Broker Finished, Start Product Mapping" );
    //testproduct := construct( Strings );
    macroPlan.MappingProductData( businessTypes, globalOTDTable,isKeyProduct );
    macroPlan.MappingProductData( businessTypeName, globalOTDTable,isKeyProduct );
    
    //单位转换-7
    BaseConversionFactor::DoSync( macroPlan ,globalOTDTable);
    
    // å·¥è‰ºè·¯çº¿ + BOM-9
    info( "Unit Finished, Start Operation Mapping" );
    macroPlan.MappingOperationData( businessTypes ,globalOTDTable, organcodelist );
    macroPlan.MappingOperationData( businessTypeName ,globalOTDTable, organcodelist );
    //info( "Operation Finished, Start BOM Data Broker" );
    //macroPlan.Broker_OTD_BOM().Execute();
    info( "BOM Data Broker Finished, Start BOM Mapping" );
    macroPlan.MappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist );
    macroPlan.MappingOperationBOMData( businessTypeName, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist );
    
    //车道信息-10
    info( "BOM Finished, Start Get Lanes From Api" );
@@ -133,26 +121,26 @@
    //info( "ProductInLane Finished, Start ActualPISPIP Data Broker" );
    //macroPlan.Broker_OTD_ActualPISPIP().Execute();
    info( "ActualPISPIP Data Broker Finished, Start ActualPISPIP Mapping" );
    macroPlan.MappingActualPISPIPData( businessTypes, globalOTDTable,isKeyProduct, organcodelist );
    macroPlan.MappingActualPISPIPData( businessTypeName, globalOTDTable,isKeyProduct, organcodelist );
    
    // åœ¨é€”库存-14
    //info( "ActualPISPIP Finished, Start ExternalSupply Data Broker" );
    //macroPlan.Broker_OTD_ExternalSupply().Execute();
    info( "ExternalSupply Data Broker Finished, Start ExternalSupply Mapping" );
    macroPlan.MappingExternalSupplyData( businessTypes, isKeyProduct ,globalOTDTable, organcodelist );
    macroPlan.MappingExternalSupplyData( businessTypeName, isKeyProduct ,globalOTDTable, organcodelist );
    
    // åº“存成本-15
    InventoryValueAndCost::DoSync( macroPlan,globalOTDTable );
    
    // todo åˆ¶é€ æˆæœ¬-16
    info( "InventoryCost Finished, Start OperationCost Mapping" );
    macroPlan.MappingOperationCostData( globalOTDTable, businessTypes, organcodelist );
    macroPlan.MappingOperationCostData( globalOTDTable, businessTypeName, organcodelist );
    
    // è®¢å•预测-17
    Forecast::DoSync( macroPlan, businessTypes, globalOTDTable, organcodelist );
    Forecast::DoSync( macroPlan, businessTypeName, globalOTDTable, organcodelist );
    
    // è®¢å•需求-18
    CustomerOrder::DoSync( macroPlan, businessTypes, globalOTDTable, organcodelist );
    CustomerOrder::DoSync( macroPlan, businessTypeName, globalOTDTable, organcodelist );
    
    //删除多余报错数据-19
    macroPlan.DeleteSnaityCheck();
_Main/BL/Type_PRData/StaticMethod_Export#346.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,209 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
  PRDatas toExportList
) as String
{
  TextBody:
  [*
    // generate by generate_export_method.py
    xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?>
    <table>
      <name>PRData</name>
    ';
    convDateToString := DateToString::StandardConverter();
    convDateToString.SetCustomConversion();
    convDateToString.CustomFormatString( 'yyyy-MM-dd' );
    debuginfo( "export start" );
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>物料编码</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      productID := toExportItem.ProductID();
      cellStr := '<cell value="' + productID + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>物料名称</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      productName := toExportItem.ProductName();
      cellStr := '<cell value="' + productName + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>面板物料标识</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      isPanelMaterial := toExportItem.IsPanelMaterial();
      cellStr := '<cell value="' + isPanelMaterial + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>交货日期</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      deliveryDate := toExportItem.DeliveryDate();
      cellStr := '<cell value="' + ifexpr( deliveryDate = Date::MinDate(), "", convDateToString.Convert( deliveryDate )) + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>PR建议日期</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      pRSuggestionDate := toExportItem.PRSuggestionDate();
      cellStr := '<cell value="' + ifexpr( pRSuggestionDate = Date::MinDate(), "", convDateToString.Convert( pRSuggestionDate )) + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>交货数量</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      quantity := toExportItem.Quantity();
      cellStr := '<cell value="' + [String]quantity + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>MRP计算版本号</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      mRPCalverNo := toExportItem.MRPCalverNo();
      cellStr := '<cell value="' + mRPCalverNo + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>业务类型</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      businessType := toExportItem.BusinessType();
      cellStr := '<cell value="' + businessType + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>组织编码</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      organCode := toExportItem.OrganCode();
      cellStr := '<cell value="' + organCode + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>是否长周期</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      isLongLeadItem := toExportItem.IsLongLeadItem();
      cellStr := '<cell value="' + isLongLeadItem + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>是否专用料</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      isGenericMaterial := toExportItem.IsGenericMaterial();
      cellStr := '<cell value="' + isGenericMaterial + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>物料计划策略</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      materialMRPType := toExportItem.MaterialMRPType();
      cellStr := '<cell value="' + materialMRPType + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>提前期</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      leadTime := toExportItem.LeadTime();
      cellStr := '<cell value="' + [String]leadTime + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>供应商代码</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      providerCode := toExportItem.ProviderCode();
      cellStr := '<cell value="' + providerCode + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>供应商名称</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      providerName := toExportItem.ProviderName();
      cellStr := '<cell value="' + providerName + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>收货库存点</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      stockingPointID := toExportItem.StockingPointID();
      cellStr := '<cell value="' + stockingPointID + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>计量单位</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      unitOfMeasure := toExportItem.UnitOfMeasure();
      cellStr := '<cell value="' + unitOfMeasure + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>PR数据发送状态</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      pRReleaseStatus := toExportItem.PRReleaseStatus();
      cellStr := '<cell value="' + pRReleaseStatus + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>发送时间</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      createTimeString := toExportItem.CreateTimeString();
      cellStr := '<cell value="' + createTimeString + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>发送人</name><type>String</type>";
    traverse( toExportList, Elements, toExportItem ) {
      createBy := toExportItem.CreateBy();
      cellStr := '<cell value="' + createBy + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    xmlTemplate := xmlTemplate + "</table>";
    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) );
    XLS::SaveTable( tableHandle, OS::TempPath() + "PRData.xlsx" );
    file := OSFile::Construct();
    file.Open( OS::TempPath() + "PRData.xlsx", "Read", true );
    data := file.ReadBinary()
    debuginfo( "export end" );
    return data.AsBase64EncodedString();
  *]
}
_Main/BL/Type_PRData/StaticMethod_Export.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
  MacroPlan parent
) as String
{
  TextBody:
  [*
    // generate by generate_export_method.py
    toExportList := selectset( parent, PRData, item, true );
    return PRData::Export( toExportList );
  *]
}
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream#595.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl
@@ -14,10 +14,15 @@
    // æŒ‰MRPCalverNo查,已有旧记录时不处理
    oldRecords := selectset( macroPlan, PRData, item,
                             item.MRPCalverNo() = mrpCalverNo );
    nowNo := 1;
    if( isnull( oldRecords ) or oldRecords.Size() = 0 ) {
      pispips := ProductInStockingPointInPeriod::GetByMRPCalverNo( macroPlan, mrpCalverNo );
      traverse( pispips, Elements, item, item.NewSupplyQuantity() > 0 ) {
        PRData::FromSupplyPlanning( otdTable, macroPlan, item, userId );
        nowNo := nowNo + 1;
        if( nowNo mod 1000 = 0 ) {
          info( "SupplyPlanning to prData : " + [String]nowNo );
        }
      }
    }
  *]
_Main/BL/Type_PRHistoryData/StaticMethod_Export#527.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,199 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
  PRHistoryDatas toExportList
) as String
{
  TextBody:
  [*
    // generate by generate_export_method.py
    xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?>
    <table>
      <name>PRHistoryData</name>
    ';
    convDateToString := DateToString::StandardConverter();
    convDateToString.SetCustomConversion();
    convDateToString.CustomFormatString( 'yyyy-MM-dd' );
    debuginfo( "export start" );
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>物料编码</name><type>String</type>";
    debuginfo( "export column ProductID" );
    traverse( toExportList, Elements, toExportItem ) {
      productID := toExportItem.ProductID();
      cellStr := '<cell value="' + productID + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>物料名称</name><type>String</type>";
    debuginfo( "export column ProductName" );
    traverse( toExportList, Elements, toExportItem ) {
      productName := toExportItem.ProductName();
      cellStr := '<cell value="' + productName + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>交货日期</name><type>String</type>";
    debuginfo( "export column DeliveryDate" );
    traverse( toExportList, Elements, toExportItem ) {
      deliveryDate := toExportItem.DeliveryDate();
      cellStr := '<cell value="' + ifexpr( deliveryDate = Date::MinDate(), "", convDateToString.Convert( deliveryDate )) + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>交货数量</name><type>String</type>";
    debuginfo( "export column Quantity" );
    traverse( toExportList, Elements, toExportItem ) {
      quantity := toExportItem.Quantity();
      cellStr := '<cell value="' + [String]quantity + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>MRP计算版本号</name><type>String</type>";
    debuginfo( "export column MRPCalverNo" );
    traverse( toExportList, Elements, toExportItem ) {
      mRPCalverNo := toExportItem.MRPCalverNo();
      cellStr := '<cell value="' + mRPCalverNo + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>业务类型</name><type>String</type>";
    debuginfo( "export column BusinessType" );
    traverse( toExportList, Elements, toExportItem ) {
      businessType := toExportItem.BusinessType();
      cellStr := '<cell value="' + businessType + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>组织编码</name><type>String</type>";
    debuginfo( "export column OrganCode" );
    traverse( toExportList, Elements, toExportItem ) {
      organCode := toExportItem.OrganCode();
      cellStr := '<cell value="' + organCode + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>供应商代码</name><type>String</type>";
    debuginfo( "export column ProviderCode" );
    traverse( toExportList, Elements, toExportItem ) {
      providerCode := toExportItem.ProviderCode();
      cellStr := '<cell value="' + providerCode + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>供应商名称</name><type>String</type>";
    debuginfo( "export column ProviderName" );
    traverse( toExportList, Elements, toExportItem ) {
      providerName := toExportItem.ProviderName();
      cellStr := '<cell value="' + providerName + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>收货库存点</name><type>String</type>";
    debuginfo( "export column StockingPointID" );
    traverse( toExportList, Elements, toExportItem ) {
      stockingPointID := toExportItem.StockingPointID();
      cellStr := '<cell value="' + stockingPointID + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>计量单位</name><type>String</type>";
    debuginfo( "export column UnitOfMeasure" );
    traverse( toExportList, Elements, toExportItem ) {
      unitOfMeasure := toExportItem.UnitOfMeasure();
      cellStr := '<cell value="' + unitOfMeasure + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>PR数据发送状态</name><type>String</type>";
    debuginfo( "export column SendStatus" );
    traverse( toExportList, Elements, toExportItem ) {
      sendStatus := toExportItem.SendStatus();
      cellStr := '<cell value="' + sendStatus + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>发送时间</name><type>String</type>";
    debuginfo( "export column SendTimeString" );
    traverse( toExportList, Elements, toExportItem ) {
      sendTimeString := toExportItem.SendTimeString();
      cellStr := '<cell value="' + sendTimeString + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>发送人</name><type>String</type>";
    debuginfo( "export column ReleaseBy" );
    traverse( toExportList, Elements, toExportItem ) {
      releaseBy := toExportItem.ReleaseBy();
      cellStr := '<cell value="' + releaseBy + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>ERP接收时间</name><type>String</type>";
    debuginfo( "export column ReceiveTimeString" );
    traverse( toExportList, Elements, toExportItem ) {
      receiveTimeString := toExportItem.ReceiveTimeString();
      cellStr := '<cell value="' + receiveTimeString + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>ERP接收状态</name><type>String</type>";
    debuginfo( "export column ReceiveStatus" );
    traverse( toExportList, Elements, toExportItem ) {
      receiveStatus := toExportItem.ReceiveStatus();
      cellStr := '<cell value="' + receiveStatus + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    columnStr := "<column><name>错误信息描述</name><type>String</type>";
    debuginfo( "export column ReceiveError" );
    traverse( toExportList, Elements, toExportItem ) {
      receiveError := toExportItem.ReceiveError();
      cellStr := '<cell value="' + receiveError.ReplaceAll( '"', "'" ) + '"/>';
      columnStr := columnStr + cellStr;
    }
    columnStr := columnStr + "</column>";
    xmlTemplate := xmlTemplate + columnStr;
    //---------------------------------------------------------------------------------------------
    xmlTemplate := xmlTemplate + "</table>";
    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) );
    XLS::SaveTable( tableHandle, OS::TempPath() + "PRHistoryData.xlsx" );
    file := OSFile::Construct();
    file.Open( OS::TempPath() + "PRHistoryData.xlsx", "Read", true );
    data := file.ReadBinary()
    debuginfo( "export end" );
    return data.AsBase64EncodedString();
  *]
}
_Main/BL/Type_PRHistoryData/StaticMethod_Export.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
  GlobalOTDTable parent
) as String
{
  TextBody:
  [*
    // generate by generate_export_method.py
    toExportList := selectset( parent, PRHistoryData, item, true );
    return PRHistoryData::Export( toExportList );
  *]
}
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream#45.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Component_PanelGeneral#549.def
@@ -39,18 +39,6 @@
        Taborder: 3
      ]
    }
    Component dropDownStringListGeneral
    {
      #keys: '[414384.0.692930324]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        AllowEmpty: true
        DataBinding: 'DataHolderDialogData.Data.ScenarioName'
        Label: 'Scenario Name'
        Taborder: 4
      ]
    }
    Component CheckboxIsCreateNewVersion
    {
      #keys: '[412960.0.157150313]'
@@ -62,5 +50,34 @@
        Taborder: 7
      ]
    }
    Component DropDownListGeneral
    {
      #keys: '[412960.0.324971441]'
      BaseType: 'WebDropDownList'
      Databinding: 'BusinessType'
      Children:
      [
        Component DataExtractorGeneral
        {
          #keys: '[412960.0.324971443]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'GlobalOTDTable'
            Description: '传入Business Type类进Dosync'
            Source: 'GlobalOTDTable'
            Taborder: 0
            Transformation: 'BusinessType'
          ]
        }
      ]
      Properties:
      [
        AllowEmpty: true
        DisplayField: 'ScenarioName'
        Label: 'Scenario Name'
        Taborder: 4
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Method_CopyScenario.def
@@ -20,7 +20,7 @@
    // do not distribute
    DataHolderDialogData.Data().EnableSync( false );
    checkboxEnableSync.Visible( false );
    dropDownStringListGeneral.Visible( false );
    DropDownListGeneral.Visible( false );
    checkboxIsKeyProduct.Visible( false );
    checkboxCreatePurchaseSupplyProduct.Visible( false );
    
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditScenario/Response_TIANMA_JITUAN_PanelGeneral_549_checkboxEnableSync_OnChanged.def
@@ -10,7 +10,7 @@
  {
    Body:
    [*
      dropDownStringListGeneral.Visible(checkboxEnableSync.Checked());
      DropDownListGeneral.Visible(checkboxEnableSync.Checked());
      checkboxIsKeyProduct.Visible(checkboxEnableSync.Checked());
      checkboxCreatePurchaseSupplyProduct.Visible(checkboxEnableSync.Checked());
    *]
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def
@@ -13,8 +13,7 @@
  {
    Body:
    [*
      tableBinaryData := PRData::ExportTheFileStream( MacroPlan ).AsBinaryData();
      Application.Download( "PRData.xlsx", tableBinaryData );
      Application.Download( "PRData.xlsx", PRData::Export( MacroPlan ) );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonExportPRHistory_OnClick.def
@@ -13,8 +13,7 @@
  {
    Body:
    [*
      tableBinaryData := PRHistoryData::ExportTheFileStream( GlobalOTDTable ).AsBinaryData();
      Application.Download( "PRData.xlsx", tableBinaryData );
      Application.Download( "PRHistoryData.xlsx", PRHistoryData::Export( GlobalOTDTable ) );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick#545.def
@@ -15,8 +15,7 @@
      // Create a new scenario
      dlg := construct( DialogCreateEditScenario );
      dlg.checkboxEnableSync().Visible( true );
      dlg.dropDownStringListGeneral().Visible( true );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.DropDownListGeneral().Visible( true );
      dlg.checkboxIsKeyProduct().Visible( true );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( true );
      dlg.NewScenario( ScenarioManager, selection, true );
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenarioAndDoSync_OnClick.def
@@ -16,8 +16,7 @@
      // Create a new Scenario
      dlg := construct( DialogCreateEditScenario );
      dlg.checkboxEnableSync().Visible( true );
      dlg.dropDownStringListGeneral().Visible( true );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.DropDownListGeneral().Visible( true );
      dlg.checkboxIsKeyProduct().Visible( true );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( true );
      parent := selection.Element( 0 ).Parent();
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick#549.def
@@ -16,8 +16,7 @@
      dlg := construct( DialogCreateEditScenario );
      dlg.checkboxEnableSync().Checked( false );
      dlg.checkboxEnableSync().Visible( false );
      dlg.dropDownStringListGeneral().Visible( false );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.DropDownListGeneral().Visible( false );
      dlg.checkboxIsKeyProduct().Visible( false );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( false );
      dlg.NewScenario( ScenarioManager, selection );
_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Response_ListScenario_MenuCreateScenario_OnClick.def
@@ -17,8 +17,7 @@
      dlg := construct( DialogCreateEditScenario );
      dlg.checkboxEnableSync().Checked( false );
      dlg.checkboxEnableSync().Visible( false );
      dlg.dropDownStringListGeneral().Visible( false );
      dlg.dropDownStringListGeneral().Strings( ScenarioManager::AvailableScenarioNames( GlobalOTDTable ) );
      dlg.DropDownListGeneral().Visible( false );
      dlg.checkboxIsKeyProduct().Visible( false );
      dlg.checkboxCreatePurchaseSupplyProduct().Visible( false );
      parent := selection.Element( 0 ).Parent();