Quintiq file version 2.0 #parent: #root Method PopulateScenarioComparisonAccountsData ( structured[MacroPlan] macroplans, structured[Period_MP] activePeriods, structured[Unit] units, structured[StockingPoint_MP] sps, structured[Product_MP] products ) id:Method_ApplicationMacroPlanner_PopulateScenarioComparisonAccountsData { #keys: '[138546.0.68205360]' Body: [* // Populate accounts data for scenario comparison account := DataHolderScenarioComparisonAccount.Data(); if( not isnull( account ) ) { // Assign data to DataHolderGlobalParameter gp := MacroPlan.GlobalParameters_MP(); owner := shadow( gp ); accountName := account.Name(); accounts := selectset( macroplans, Elements.Account_MP, acc, acc.Name() = accountName ); unitIDs := selectvalues( units, Elements, e, true, e.ID() ); spIDs := selectvalues( sps, Elements, e, true, e.ID() ); productIDs := selectvalues( products, Elements, e, true, e.ID() ); uas := selectset( accounts, Elements.UnitAccount, ua, ua.Unit().IsInUnitWeb( unitIDs ) ); spas := selectset( accounts, Elements.StockingPointAccount, spa, spa.StockingPoint_MP().IsInStockingPointWeb( spIDs ) ); pispas := selectset( accounts, Elements.PISPAccount, pispa, pispa.ProductInStockingPoint_MP().StockingPoint_MP().IsInStockingPointWeb( spIDs ) and pispa.ProductInStockingPoint_MP().Product_MP().IsInProductWeb( productIDs ) ); ApplicationMacroPlanner.CreateShadowAcountAssignmentInPeriodForUnitAccount( owner, uas, activePeriods ); ApplicationMacroPlanner.CreateShadowAcountAssignmentInPeriodForStockingPointAccount ( owner, spas, activePeriods ); ApplicationMacroPlanner.CreateShadowAcountAssignmentInPeriodForPISPAccount( owner, pispas, activePeriods ); // Software latest behavior, only set once to dataholder after all manipulation is done // After storing to dataholder, subsequent manipulation will not take effect DataHolderScenarioComparisonGlobalParameters.Data( &owner ); } *] }