lihongji
2024-11-07 7da84821eb07cfa1370adfe4144e41416cf1cefa
Merge remote-tracking branch 'origin/dev' into dev
已修改27个文件
已添加8个文件
422 ■■■■■ 文件已修改
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Order.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanCell0/DefaultValue_Order.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_Publish.qbl 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_Clear.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_Generate.qbl 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GenerateColumn.qbl 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GetRow.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_InitiateSearch.qbl 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_RefreshData.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_Publish.qbl 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceDataset/Method_GenerateArchiveData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersion/Method_GetRowByUnit.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetRow.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_MatrixEditorTable#384.def 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelHeader#952.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelOperation#283.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelTable#273.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelOperation_283_ButtonSearch_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_937_ddslProduct_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_ddslUnit_OnCreated.def 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/_ROOT_Component_FormAssemblyOnlinePlanVersion.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_369_ButtonSearch_OnClick.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_ButtonSearch_OnClick.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_MatrixEditorTable#791.def 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelUnit_ddslUnit_OnCreated.def 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelExport_ButtonSearch_OnClick.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_MatrixEditorTable.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_844_ddslUnit_OnCreated.def 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl
@@ -50,7 +50,7 @@
      }
    }
    
    traverse( owner, OfflinePlanArchiveVersion, table ){
    traverse( owner, OfflinePlanArchiveVersion, table, not table.IsShow() ){
      traverse( table, Column, column, column.StartDate() >= startdate and column.StartDate() <= enddate ){
        traverse( column, Cell, cell, ( werk = 'All' or cell.Row().Unit().FindString( werk, 0 ) > -1 )
                  and ( cell.Row().ProductionLine() <> 'DL_MOMO' or cell.Row().ProductionLine() <> 'CC_MOMO' ) ){
_Main/BL/Type_AssemblyOnlinePlanCell0/Attribute_Order.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Order
{
  #keys: '3[415136.0.1280830135][415136.0.1280830134][415136.0.1280830136]'
  Description: '生产顺序(String)'
  ValueType: String
}
_Main/BL/Type_AssemblyOnlinePlanCell0/DefaultValue_Order.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Order
}
_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl
@@ -1,10 +1,9 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GenerateData (
  const MacroPlan macroplan,
  InterfaceDataset interfaceDataset,
  String executor,
  Boolean versionflag
  const MacroPlan macroplan,
  String executor
)
{
  Description: '生成可以下发的客户需求(PPA+IDS)数据'
@@ -25,32 +24,28 @@
                                                                 , Name := Translations::InterfaceDataset_AssemblyOnlinePlanPPPSPush_Name()
                                                                 , InterfaceDateTime := nowdate
                                                                 , Message := '装配上线计划-PPPS传输至数据中台(包含排序)/SAP(不包含排序)'
                                                                 , IsShow := false
                                                                 , Last := true
                                                                 , ReturnSuccess := true
                                                                 , ReturnMsg := 'Success'
                                                                 , Success := true
                                                                 , Last                      := true
                                                                  );
    traverse( macroplan, AssemblyOnlinePlanColumn, column ){
      traverse( column, AssemblyOnlinePlanCell, cell, cell.Value() <> '' and cell.AssemblyOnlinePlanRow().Type() = '1' ){
        quantityrow        := cell.AssemblyOnlinePlanRow();
        ordercell          := selectobject( column, AssemblyOnlinePlanCell, ocell, ocell.AssemblyOnlinePlanRow().ProductID() = quantityrow.ProductID()
                                            and ocell.AssemblyOnlinePlanRow().ProductionLine() = quantityrow.ProductionLine()
                                            and ocell.AssemblyOnlinePlanRow().Type() = '2' );
        product            := selectobject( macroplan, Product_MP, product, product.ID() = quantityrow.ProductID() );
        cd                  :=interfaceDataset.AssemblyOnlinePlanPPPSPush( relnew, Product           := product.ID()
                                                                           , PlanningDate            := column.ColumnDate()
                                                                           , PlanningQty             := [Number]cell.Value()
                                                                           , Sequence                := ordercell.Value()
    traverse( interfaceDataset, AssemblyOnlinePlanVersion, verison, not verison.IsShow() ){
      traverse( verison, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() ){
        traverse( column, Cell, cell ){
          row              := cell.Row();
          cd               :=interfaceDataset.AssemblyOnlinePlanPPPSPush( relnew, Product            := row.ProductID()
                                                                           , PlanningDate            := column.StartDate()
                                                                           , PlanningQty             := [Number]cell.Quantity()
                                                                           , Sequence                := cell.Order()
                                                                           , VersionName             := macroplan.ScenarioName()
                                                                           , InterfaceTime           := nowdate
                                                                           , VersionFlag             := versionflag
                                                                           , ProductFourCode         := product.Notes()
                                                                           , FactoryName             := row.Unit()
                                                                          , Fac                     := ifexpr( row.Unit() = FinancialProductionReport::GetDefaultCCUnit(), 'CC', 'DL' )
    //                                                                       , VersionFlag             := versionflag
                                                                           , ProductFourCode         := ifexpr( row.ProductID() = row.Name(), '', row.Name() )
                                                                           );
        loginfo.AssemblyOnlinePlanPPPSPush( relinsert, cd );
        }
      }
    }
    loginfo.TotalRow( loginfo.AssemblyOnlinePlanPPPSPush( relsize ) );
    AssemblyOnlinePlanPPPSPush::Publish( interfaceDataset, loginfo );
  *]
}
_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_Publish.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Publish (
  InterfaceDataset owner,
  InterfaceLoginfo loginfo
)
{
  TextBody:
  [*
    //// ç”„兰鸽 Jul-17-2024 (created)
    jsonarray          := JSON::Array();
    traverse( owner, AssemblyOnlinePlanPPPSPush, aopdata ){
      aopdatajson      := JSON::Object().Add( "product", aopdata.Product() ).Add( "planningDate", aopdata.PlanningDate().Format( 'Y-M2-D2' ) )//"2024-10-01" )
                                    .Add( "planningQty", aopdata.PlanningQty() )
                                    .Add( "sequence", aopdata.Sequence() )
                                    .Add( "factoryName", aopdata.FactoryName() )
                                    .Add( "fac", aopdata.Fac() )
                                    .Add( "versionName", aopdata.VersionName() )
                                    .Add( "interfaceTime", aopdata.InterfaceTime().Format( 'Y-M2-D2 H:m:s' ) ).Build();/*"2024-10-01 12:00:00" )*/
      jsonarray.Add( aopdatajson );
    }
    requestbody := jsonarray.Build().AsString();
    info(  requestbody );
    data     := InterfaceLoginfo::CallInterfaceForDataCenter( owner, loginfo );
    info( '----------------', data.AsString() );
  *]
}
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_Clear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method Clear (
  Dates periods
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    this.Column( relflush );
    this.Row( relflush );
    this.GenerateColumn( periods, true );
  *]
}
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_Generate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: #root
Method Generate (
  AssemblyOnlinePlanVersionSearch search
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    info( '-----------Search start-------' );
    table                   := selectobject( this,InterfaceDataset.AssemblyOnlinePlanVersion, report, not report.IsShow() );
    //清空之前存储的显示数据
    aopcolumns              := selectuniquevalues(  table, Column, aopcolumn, aopcolumn.TimeUnit() = search.TimeUnit() and aopcolumn.StartDate() >= search.StartDate() and aopcolumn.StartDate() <= search.EndDate(), aopcolumn.StartDate() );
    this.Clear( aopcolumns );
    traverse( table, Row, row, ( search.Unit() = FinancialProductionReport::GetDefaultAllUnit() or row.Unit() = search.Unit() )
              and ( search.Product() = FinancialProductionReport::GetDefaultAllUnit() or search.Product() = row.Name() )
              and ( search.ProductionLine() = FinancialProductionReport::GetDefaultAllUnit() or search.ProductionLine() = row.ProductionLine() ) ){
      showrow               := selectobject( this, Row, showrow, showrow.Name() = row.Name() and showrow.Unit() = search.Unit() );
      if( isnull( showrow ) ){
        showrow             := this.Row( relnew, Name := row.Name(), ProductID := row.ProductID(), ProductionLine := row.ProductionLine(), Type := row.Type(), Unit := search.Unit() );
      }
      traverse( row, Cell, cell, cell.Column().TimeUnit() = search.TimeUnit() ){
        column              := selectobject( this, Column, column, column.ColumnName() = cell.Column().ColumnName() );
        if( not isnull( column ) ){
          showcell          := selectobject( showrow, Cell, showcell, showcell.Column() = column );
          if( isnull( showcell ) ){
            showcell        := column.Cell( relnew, Quantity := 0 );
            showrow.Cell( relinsert, showcell );
          }
          showcell.Quantity( cell.Quantity() + showcell.Quantity() );
        }
      }
    }
    info( '-----------Search end-------' );
  *]
}
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GenerateColumn.qbl
@@ -1,40 +1,47 @@
Quintiq file version 2.0
#parent: #root
Method GenerateColumn (
  Dates periods
  Dates periods,
  Boolean isshow
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    timeunit              := guard( this.InterfaceDataset().AssemblyOnlinePlanVersionSearch().TimeUnit(), Translations::MP_GlobalParameters_Day() ) ;
    weekstart             := periods.Element( 0 );
    
    monthstart            := periods.Element( 0 );
    traverse( periods, Elements, periodtime ){
      periodname          := periodtime.Format( "M2/D2/Y" );
      this.Column( relnew, ColumnName := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
      weekend             := ( weekstart + Duration::Days( 6 ) ).Date();
      if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
        weekstart         := periodtime;
      }
      if( periodtime = weekstart ){
        weekperiodname    := weekstart.Format( "M2/D2/Y" );
        this.Column( relnew, ColumnName := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
      if( not isshow or timeunit = Translations::MP_GlobalParameters_Day() ){
        periodname        := periodtime.Format( "M2/D2/Y" );
        
        this.Column( relnew, ColumnName := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
      }
      if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
        monthstart        := periodtime;
      if( not isshow or timeunit = Translations::MP_GlobalParameters_Week() ){
        weekend           := ( weekstart + Duration::Days( 6 ) ).Date();
        if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
          weekstart       := periodtime;
        }
        if( periodtime = weekstart ){
          weekperiodname  := weekstart.Format( "M2/D2/Y" );
          this.Column( relnew, ColumnName := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
        }
        weekstart         := periodtime.StartOfNextWeek();
      }
      if( periodtime = monthstart ){
        monthperiodname   := monthstart.Format( "M2/D2/Y" );
        enddate           := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
        this.Column( relnew, ColumnName := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
      if( not isshow or timeunit = Translations::MP_GlobalParameters_Month() ){
        if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
          monthstart      := periodtime;
        }
        if( periodtime = monthstart ){
          monthperiodname := monthstart.Format( "M2/D2/Y" );
          enddate         := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
          this.Column( relnew, ColumnName := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
        }
        monthstart        := periodtime.StartOfNextMonth();
      }
      weekstart         := periodtime.StartOfNextWeek();
      monthstart        := periodtime.StartOfNextMonth();
    }
  *]
}
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GetRow.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
Method GetRow (
  const NewAssemblyOnlinePlanRow aoprow
  NewAssemblyOnlinePlanRow aoprow
) as AssemblyOnlinePlanVersionRow
{
  TextBody:
@@ -10,8 +10,10 @@
    row       := selectobject( this, Row, row, row.ProductID() = aoprow.ProductID() and row.ProductionLine() = aoprow.ProductionLine() and row.Type() = aoprow.Type() );
    
    if( isnull( row ) ){
      product := selectobject( aoprow.MacroPlan(), Product_MP, product, product.ID() = aoprow.ProductID() );
      unit    := ifexpr( aoprow.ProductionLine().FindString( "CC", 0 ) > -1, FinancialProductionReport::GetDefaultCCUnit(), FinancialProductionReport::GetDefaultDLUnit() );
      row     := this.Row( relnew, ProductID := aoprow.ProductID(), ProductionLine := aoprow.ProductionLine(), Type := aoprow.Type(), Unit := unit );
      row     := this.Row( relnew, Name := aoprow.ProductID(), ProductionLine := aoprow.ProductionLine(), Type := aoprow.Type(), Unit := unit
                           , ProductID := ifexpr( exists( product.GetAllParent(), Elements, e, e.ID() = EnginePipelineReport::GetDefaultProductParent() ), product.Notes(), product.ID() ) );
      //初始化单元格
      row.InitializeCell();
    }
_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_InitiateSearch.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InitiateSearch (
  InterfaceDataset owner
) as AssemblyOnlinePlanVersion
{
  TextBody:
  [*
    // ç”„兰鸽 Sep-29-2024 (created)
    allunit                   := FinancialProductionReport::GetDefaultAllUnit();
    search                    := owner.AssemblyOnlinePlanVersionSearch();
    if( isnull( owner.AssemblyOnlinePlanVersionSearch() ) ){
      search                  := owner.AssemblyOnlinePlanVersionSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    }else{
      search                  := owner.AssemblyOnlinePlanVersionSearch();
      search.Product( allunit );
      search.ProductionLine( allunit );
      search.TimeUnit(  Translations::MP_GlobalParameters_Day() );
      search.Unit( allunit );
      search.StartDate( Date::MinDate() );
      search.EndDate( Date::MaxDate() );
    }
    table                     := selectobject( owner, AssemblyOnlinePlanVersion, table, table.IsShow() );
    if( not isnull( table ) ){
      table.Generate( search);
    }
    return table;
  *]
}
_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_RefreshData.qbl
@@ -2,7 +2,7 @@
#parent: #root
StaticMethod RefreshData (
  InterfaceDataset interface,
  const MacroPlan macroPlan
  MacroPlan macroPlan
)
{
  TextBody:
@@ -11,30 +11,26 @@
    interface.AssemblyOnlinePlanVersion( relflush );
    allunit                := AssemblyOnlinePlanVersion::GetDefaultAllUnit();
    name                   := AssemblyOnlinePlanVersion::GetDefaultName();//search                 := 
    interface.AssemblyOnlinePlanVersionSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    search                 := interface.AssemblyOnlinePlanVersionSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    table                  := selectobject( interface, AssemblyOnlinePlanVersion, version, not version.IsShow() );
    if( isnull( table ) ){
      table                := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name );
    }
    //showtable              := selectobject( interface, AssemblyOnlinePlanVersion, version, version.IsShow() );
    //if( isnull( table ) ){
    //  showtable               := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name, IsShow := true );
    //}
    showtable              := selectobject( interface, AssemblyOnlinePlanVersion, version, version.IsShow() );
    if( isnull( table ) ){
      showtable               := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name, IsShow := true );
    }
    aopcolumns             := selectuniquevalues(  macroPlan, NewAssemblyOnlinePlanColumn, aopcolumn, not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcolumn.StartDate() ), aopcolumn.StartDate() );
    table.GenerateColumn( aopcolumns );
    table.GenerateColumn( aopcolumns, false );
    traverse( macroPlan, NewAssemblyOnlinePlanRow, aoprow, aoprow.Type() = '1' ){
      row                  := table.GetRow( aoprow );
      info( '------------------------', row.Type() );
      traverse( aoprow, NewAssemblyOnlinePlanCell, aopcell ){
        column             := selectobject( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcell.NewAssemblyOnlinePlanColumn().StartDate() );
        cell               := selectobject( row, Cell, cell, cell.Column() = column );
        cell.InventoryWeight( aopcell.InventoryWeight() );
    //    cell.ProductionSerialNumber( aopcell.ProductionSerialNumber() );
    //    cell.InventoryWeight( aopcell.InventoryWeight() );
        cell.Quantity( aopcell.Quantity() );
    //    cell.Shift( aopcell.Shift() );
    //    cell.Value( aopcell.Value() );
      }
    }
    //showtable.Generate( search, products );
    showtable.Generate( search );
  *]
}
_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl
@@ -25,10 +25,6 @@
                                                                 , InterfaceDateTime         := nowdate
                                                                 , Message                   := '客户需求(PPA+IDS)数据推送'
                                                                 , Last                      := true
                                                                 , IsShow                    := false
                                                                 , ReturnSuccess             := true
                                                                 , ReturnMsg                 := 'Success'
                                                                 , Success                   := true
                                                                  );
    traverse( interfaceDataset, CustomerDemandIDS.Row, row ){
      traverse( row, Cell, cell ){
@@ -37,11 +33,14 @@
                                                                     , DemandQty               := [Number]cell.Value()
                                                                     , VersionName             := macroplan.ScenarioName()
                                                                     , InterfaceTime           := nowdate
                                                                     , FactoryName             := row.Factory()
                                                                     , Fac                     := ifexpr( row.Factory() = FinancialProductionReport::GetDefaultCCUnit(), 'CC', 'DL' )
    //                                                                 , VersionFlag             := versionflag
                                                                     );
        loginfo.CustomerDemandPPAIDS( relinsert, cd );
      }
    }
    loginfo.TotalRow( loginfo.CustomerDemandPPAIDS( relsize ) );
    CustomerDemandPPAIDS::Publish( interfaceDataset, loginfo );
  *]
}
_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_Publish.qbl
@@ -2,7 +2,7 @@
#parent: #root
StaticMethod Publish (
  InterfaceDataset owner,
  String executor
  InterfaceLoginfo loginfo
)
{
  TextBody:
@@ -16,35 +16,9 @@
                                    .Add( "interfaceTime", ids.InterfaceTime().Format( 'Y-M2-D2 H:m:s' ) ).Build();/*"2024-10-01 12:00:00" )*/
      jsonarray.Add( idsjson );
    }
    //jsonarray := JSON::Array().Add( JSON::Object().Add( "product", "DZ948293" )
    //                                 ).Build();
    requestbody := jsonarray.Build().AsString();
    info(  requestbody );
    loginfo := owner.InterfaceLoginfo( relnew, ExecuteUser := executor
                                       , Name := Translations::InterfaceDataset_CustomerDemandPPAIDS_Name()
                                       , InterfaceDateTime := DateTime::ActualTime()
                                       , Message := '客户需求(PPA+IDS)'
                                       , RequestBody := requestbody);
    //error( '--------------------', requestbody );
    data     := InterfaceLoginfo::CallInterfaceForDataCenter( owner, loginfo );
    info( '----------------', data.AsString() );
    //if( not isnull( data ) ){
    //
    //  cnv2 := StringToDate::StandardConverter();
    //  cnv2.SetCustomConversion();
    //  cnv2.CustomFormatString( 'yyyy-MM-dd' );
    //
    //  sadatalist := construct( FinishedEngineInventorys );
    //  for( seq := 0;seq < data.Size();seq++){
    //    item := data.Get(seq);
    //    sadata := FinishedEngineInventory::GenerateData( loginfo, cnv2, item );
    //    sadatalist.Add( sadata );
    //  }
    //
    //  options := DatasetFindOptions::Construct( 'MacroPlan' ).IncludeOffline( true ); //to load we must search offline datasets.
    //  mdskey := DatasetController::FindUnique( options );
    //
    //  MDSMacroPlan::Root( mdskey ) -> InventoryInterfaceData::SynchronizeInventory( owner, sadatalist );
    //}
  *]
}
_Main/BL/Type_InterfaceDataset/Method_GenerateArchiveData.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
Method GenerateArchiveData (
  const MacroPlan macroplan,
  MacroPlan macroplan,
  RecycleBin recyclebin,
  Archive archive,
  Boolean iscustomdemand,
@@ -30,7 +30,7 @@
      AssemblyOnlinePlanVersion::RefreshData( this, macroplan );
    }
    if( isinventoryplan ){//库存计划
    //  CustomerDemandIDS::GenerateData( this, recyclebin, archive );
      InventoryPlanArchiveVersion::GenerateData( macroplan, this );
    }
    if( istrcdemand ){//TRC需求
    //  CustomerDemandIDS::GenerateData( this, recyclebin, archive );
_Main/BL/Type_InterfaceDataset/Method_PublishPlanReportData.qbl
@@ -24,7 +24,7 @@
    //  CustomerDemandIDS::GenerateData( this, recyclebin, archive );
    }
    if( isassembleonlineplan ){//装配上线计划
    //  AssemblyOnlinePlanVersion::RefreshData( this, macroplan );
      AssemblyOnlinePlanPPPSPush::GenerateData( this, macroplan, executor );
    }
    if ( isinventoryplan ) { // è®¡åˆ’库存数据
      InterfaceDataset::PushPlanInventoryData( macroplan, this );
_Main/BL/Type_InventoryPlanArchiveVersion/Method_GetRowByUnit.qbl
@@ -1,17 +1,17 @@
Quintiq file version 2.0
#parent: #root
Method GetRowByUnit (
  String product,
  Product_MP product,
  String unit
) as InventoryPlanArchiveRow
{
  TextBody:
  [*
    // ç”„兰鸽 Sep-6-2024 (created)
    row := selectobject( this, Row, row, row.Name() = product and row.Unit() = unit );
    row := selectobject( this, Row, row, row.Name() = product.ID() and row.Unit() = unit );
    if( isnull( row ) ){
      //初始化单元格 
      row := this.Row( relnew, Name := product, Unit := unit );
      row := this.Row( relnew, Name := product.ID(), Unit := unit, ProductID := ifexpr( exists( product.GetAllParent(), Elements, e, e.ID() = EnginePipelineReport::GetDefaultProductParent() ), product.Notes(), product.ID() )  );
      traverse( this, Column, column ){
        row.Initialize( column );
      }
_Main/BL/Type_InventoryPlanArchiveVersion/StaticMethod_GenerateData.qbl
@@ -46,7 +46,7 @@
    }
    traverse ( macroPlan, Product_MP.ProductInStockingPoint_MP, pispmp, not pispmp.IsSystem() and pispmp.IsLeaf() ) {
      unit                 := ifexpr( pispmp.StockingPointID().Regex( "大连" ) or pispmp.StockingPointID().Regex( "DL" ), FinancialProductionReport::GetDefaultDLUnit(), FinancialProductionReport::GetDefaultCCUnit() );
      inventoryrow         := table.GetRowByUnit( pispmp.ProductID(), unit );
      inventoryrow         := table.GetRowByUnit( pispmp.Product_MP(), unit );
      traverse ( pispmp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, not pispippl.IsPeriodFrozen() ) {
        startdate          := pispippl.Start().Date();
        daycolumn          := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Day(), startdate );
_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetRow.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
Method GetRow (
  const NewOfflinePlanRow noprow
  NewOfflinePlanRow noprow
) as OfflinePlanArchiveRow
{
  TextBody:
@@ -10,8 +10,10 @@
    row       := selectobject( this, Row, row, row.ProductID() = noprow.ProductID() and row.ProductionLine() = noprow.ProductionLine() and row.Type() = noprow.Type() );
    
    if( isnull( row ) ){
      product := selectobject( noprow.NewOfflinePlanTable().MacroPlan(), Product_MP, product, product.ID() = noprow.ProductID() );
      unit    := ifexpr( noprow.ProductionLine().FindString( "CC", 0 ) > -1, FinancialProductionReport::GetDefaultCCUnit(), FinancialProductionReport::GetDefaultDLUnit() );
      row     := this.Row( relnew, ProductID := noprow.ProductID(), ProductionLine := noprow.ProductionLine(), Type := noprow.Type(), Unit := unit );
      row     := this.Row( relnew, Name := noprow.ProductID(), ProductionLine := noprow.ProductionLine(), Type := noprow.Type(), Unit := unit
                           , ProductID := ifexpr( exists( product.GetAllParent(), Elements, e, e.ID() = EnginePipelineReport::GetDefaultProductParent() ), product.Notes(), product.ID() ) );
      //初始化单元格
      row.InitializeCell();
    }
_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl
@@ -2,7 +2,7 @@
#parent: #root
StaticMethod RefreshData (
  InterfaceDataset interface,
  const MacroPlan macroPlan,
  MacroPlan macroPlan,
  const Archive archive
)
{
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_MatrixEditorTable#384.def
@@ -17,18 +17,16 @@
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'InterfaceDataset'
            FilterArguments: 'search:QMacroPlanner::FormAssemblyOnlinePlanVersion.dhSearch'
            FixedFilter: 'object.Column().TimeUnit() = search.TimeUnit() and object.Column().StartDate() >= search.StartDate() and object.Column().StartDate() <= search.EndDate()'
            Source: 'InterfaceDataset'
            DataType: 'AssemblyOnlinePlanVersion'
            Source: 'DataHolderTable'
            Taborder: 0
            Transformation: 'AssemblyOnlinePlanVersion.Row.Cell'
            Transformation: 'Row.Cell'
          ]
        }
      ]
      Properties:
      [
        Attributes: 'Value'
        Attributes: 'Quantity'
        Column: 'Column'
        Row: 'Row'
        Taborder: 0
@@ -46,20 +44,17 @@
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'InterfaceDataset'
            Description: "( search.Generation() = '<All>' or object.Product_MP().Generation() = search.Generation() ) and ( search.MqbMlb() = '<All>' or object.Product_MP().MQBMLB() = search.MqbMlb() ) and ( search.Power() = '<All>' or object.Product_MP().Power() = search.Power() )"
            FilterArguments: 'search:QMacroPlanner::FormAssemblyOnlinePlanVersion.dhSearch'
            FixedFilter: "( search.Product() = '<All>' or object.ProductID() = search.Product() ) and ( search.ProductionLine() = '<All>' or object.ProductionLine() = search.ProductionLine() ) and ( search.Unit() = '<All>' or object.Unit() = search.Unit() )"
            Source: 'InterfaceDataset'
            DataType: 'AssemblyOnlinePlanVersion'
            Source: 'DataHolderTable'
            Taborder: 0
            Transformation: 'AssemblyOnlinePlanVersion.Row'
            Transformation: 'Row'
          ]
        }
      ]
      Properties:
      [
        Legend: 'ProductID'
        SortCriteria: 'ProductID'
        Legend: 'Name'
        SortCriteria: 'Name'
        Taborder: 1
      ]
    }
@@ -75,12 +70,10 @@
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'InterfaceDataset'
            FilterArguments: 'search:QMacroPlanner::FormAssemblyOnlinePlanVersion.dhSearch'
            FixedFilter: 'object.TimeUnit() = search.TimeUnit() and  ( search.StartDate().IsMinInfinity() or object.StartDate() >= search.StartDate() ) and ( search.EndDate().IsMaxInfinity() or object.StartDate() <= search.EndDate() )'
            Source: 'InterfaceDataset'
            DataType: 'AssemblyOnlinePlanVersion'
            Source: 'DataHolderTable'
            Taborder: 0
            Transformation: 'AssemblyOnlinePlanVersion.Column'
            Transformation: 'Column'
          ]
        }
      ]
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelHeader#952.def
@@ -16,6 +16,6 @@
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 1
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelOperation#283.def
@@ -19,6 +19,5 @@
  Properties:
  [
    Taborder: 5
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelTable#273.def
@@ -9,6 +9,6 @@
  ]
  Properties:
  [
    Taborder: 2
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
Response OnCreated () id:Response_FormAssemblyOnlinePlanVersion_OnCreated
{
  #keys: '[415136.0.1283300735]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      table := AssemblyOnlinePlanVersion::InitiateSearch( InterfaceDataset );
      DataHolderTable.Data( table );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelOperation_283_ButtonSearch_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: PanelOperation_283/ButtonSearch
Response OnClick () id:Response_PanelOperation_283_ButtonSearch_OnClick
{
  #keys: '[415136.0.1283312413]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      if( not isnull( DataHolderTable.Data() ) ){
        DataHolderTable.Data().Generate( dhSearch.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_937_ddslProduct_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      values := selectuniquevalues( InterfaceDataset, AssemblyOnlinePlanVersion.Row, row, true, row.ProductID() );
      values := selectuniquevalues( InterfaceDataset, AssemblyOnlinePlanVersion.Row, row, true, row.Name());
      
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_ddslUnit_OnCreated.def
@@ -9,9 +9,7 @@
  {
    Body:
    [*
      valueString := "All";
      this.Strings( valueString.Concat( ";" ).Concat( FinancialProductionReport::GetDefaultCCUnit().Concat( ";" ) ).Concat( FinancialProductionReport::GetDefaultDLUnit() ) );
      this.Strings( FinancialProductionReport::GetDefaultAllUnit().Concat( ";" ).Concat( FinancialProductionReport::GetDefaultCCUnit().Concat( ";" ) ).Concat( FinancialProductionReport::GetDefaultDLUnit() ) );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/_ROOT_Component_FormAssemblyOnlinePlanVersion.def
@@ -29,10 +29,20 @@
      ]
      Properties:
      [
        Taborder: 0
        Taborder: 1
      ]
    }
    #child: PanelHeader_952
    #child: PanelTable_273
    Component DataHolderTable id:DataHolderTable_568
    {
      #keys: '[415136.0.1283300574]'
      BaseType: 'WebDataHolder'
      Databinding: 'AssemblyOnlinePlanVersion'
      Properties:
      [
        Taborder: 0
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_369_ButtonSearch_OnClick.def
@@ -9,12 +9,10 @@
  {
    Body:
    [*
      if( not isnull( DataHolderTable.Data() ) ){
        productids              := selectuniquevalues( DataHolderProduct.Data(), Elements, product, exists( dhGenerations.Data(), Elements, e, e.Generation() = product.Generation() )
                                                       and exists( dhMQBMLBs.Data(), Elements, e, e.MLBMQB() = product.MQBMLB() )
                                                       and exists( dhPowers.Data(), Elements, e, e.Power() = product.Power() ), product.ID() );
        productids              := selectuniquevalues( DataHolderProduct.Data(), Elements, product, ( dhGenerations.Data().Size() = 0 or exists( dhGenerations.Data(), Elements, e, e.Generation() = product.Generation() ) )
                                                       and ( dhGenerations.Data().Size() = 0 or exists( dhMQBMLBs.Data(), Elements, e, e.MLBMQB() = product.MQBMLB() ) )
                                                       and ( dhGenerations.Data().Size() = 0 or exists( dhPowers.Data(), Elements, e, e.Power() = product.Power() ) ), product.ID() );
        DataHolderTable.Data().Generate( dhSearch.Data(), dhFactorys.Data(), productids );
      }
    *]
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_ButtonSearch_OnClick.def
@@ -10,10 +10,9 @@
    Body:
    [*
      if( not isnull( DataHolderTable.Data() ) ){
        productids              := selectuniquevalues( DataHolderProduct.Data(), Elements, product, exists( dhGenerations.Data(), Elements, e, e.Generation() = product.Generation() )
                                                       and exists( dhMQBMLBs.Data(), Elements, e, e.MLBMQB() = product.MQBMLB() )
                                                       and exists( dhPowers.Data(), Elements, e, e.Power() = product.Power() ), product.ID() );
        productids              := selectuniquevalues( DataHolderProduct.Data(), Elements, product, ( dhGenerations.Data().Size() = 0 or exists( dhGenerations.Data(), Elements, e, e.Generation() = product.Generation() ) )
                                                       and ( dhGenerations.Data().Size() = 0 or exists( dhMQBMLBs.Data(), Elements, e, e.MLBMQB() = product.MQBMLB() ) )
                                                       and ( dhGenerations.Data().Size() = 0 or exists( dhPowers.Data(), Elements, e, e.Power() = product.Power() ) ), product.ID() );
        DataHolderTable.Data().Generate( dhSearch.Data(), dhFactorys.Data(), productids );
      }
    *]
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_MatrixEditorTable#791.def
@@ -47,9 +47,6 @@
          Properties:
          [
            DataType: 'InterfaceDataset'
            Description: "( search.Generation() = '<All>' or object.Product_MP().Generation() = search.Generation() ) and ( search.MqbMlb() = '<All>' or object.Product_MP().MQBMLB() = search.MqbMlb() ) and ( search.Power() = '<All>' or object.Product_MP().Power() = search.Power() )"
            FilterArguments: 'search:QMacroPlanner::FormAssemblyOnlinePlanVersion.dhSearch'
            FixedFilter: "( search.Product() = '<All>' or object.Name() = search.Product() ) and ( search.Unit() = '<All>' or object.Unit() = search.Unit() )"
            Source: 'InterfaceDataset'
            Taborder: 0
            Transformation: 'InventoryPlanArchiveVersion.Row'
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelUnit_ddslUnit_OnCreated.def
@@ -9,9 +9,7 @@
  {
    Body:
    [*
      valueString := "All";
      this.Strings( valueString.Concat( ";" ).Concat( FinancialProductionReport::GetDefaultCCUnit().Concat( ";" ) ).Concat( FinancialProductionReport::GetDefaultDLUnit() ) );
      this.Strings( FinancialProductionReport::GetDefaultAllUnit().Concat( ";" ).Concat( FinancialProductionReport::GetDefaultCCUnit().Concat( ";" ) ).Concat( FinancialProductionReport::GetDefaultDLUnit() ) );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelExport_ButtonSearch_OnClick.def
@@ -10,9 +10,9 @@
    Body:
    [*
      if( not isnull( DataHolderTable.Data() ) ){
        productids              := selectuniquevalues( DataHolderProduct.Data(), Elements, product, exists( dhGenerations.Data(), Elements, e, e.Generation() = product.Generation() )
                                                       and exists( dhMQBMLBs.Data(), Elements, e, e.MLBMQB() = product.MQBMLB() )
                                                       and exists( dhPowers.Data(), Elements, e, e.Power() = product.Power() ), product.ID() );
        productids              := selectuniquevalues( DataHolderProduct.Data(), Elements, product, ( dhGenerations.Data().Size() = 0 or exists( dhGenerations.Data(), Elements, e, e.Generation() = product.Generation() ) )
                                                       and ( dhGenerations.Data().Size() = 0 or exists( dhMQBMLBs.Data(), Elements, e, e.MLBMQB() = product.MQBMLB() ) )
                                                       and ( dhGenerations.Data().Size() = 0 or exists( dhPowers.Data(), Elements, e, e.Power() = product.Power() ) ), product.ID() );
        DataHolderTable.Data().Generate( dhSearch.Data(), dhFactorys.Data(), productids );
      }
    *]
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_MatrixEditorTable.def
@@ -58,8 +58,8 @@
      ]
      Properties:
      [
        Legend: 'ProductID'
        SortCriteria: 'ProductID'
        Legend: 'Name'
        SortCriteria: 'Name'
        Taborder: 1
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_844_ddslUnit_OnCreated.def
@@ -9,9 +9,7 @@
  {
    Body:
    [*
      valueString := "All";
      this.Strings( valueString.Concat( ";" ).Concat( FinancialProductionReport::GetDefaultCCUnit().Concat( ";" ) ).Concat( FinancialProductionReport::GetDefaultDLUnit() ) );
      this.Strings( FinancialProductionReport::GetDefaultAllUnit().Concat( ";" ).Concat( FinancialProductionReport::GetDefaultCCUnit().Concat( ";" ) ).Concat( FinancialProductionReport::GetDefaultDLUnit() ) );
    *]
    GroupServerCalls: false
  }