TabularEditor / TabularEditor3

Bug reports, feature requests, discussion and documentation for Tabular Editor 3 (commercial version).
61 stars 7 forks source link

Getting an error during Power BI refresh process: Can't find parent of affected object in Model tree.. #1256

Closed dpesante closed 1 month ago

dpesante commented 2 months ago

Description

I just upgraded to the February version of Power BI and when I run my c# script that we have been running for a while, it runs without any errors in tabular editor 3 but after pushing the changes to the connected Power BI desktop, i get the following error during the refresh process.

Error Message: An internal error has occured. Details: Can't find parent of affected object in Model tree.. ° Below is the details (dump) which I find it hard to figure out what might be the error or at least to which measure/table is related to... Can you help me figure out what is causing this issue..


Feedback Type: Frown (Error)

Error Message: An internal error has occured. Details: Can't find parent of affected object in Model tree..

Stack Trace: Microsoft.AnalysisServices.Tabular.TomInternalException at Microsoft.AnalysisServices.Tabular.Model.MergeAffectedSubtree(MetadataObject affectedSubtreeRoot, CopyContext mergeCopyContext) at Microsoft.AnalysisServices.Tabular.Model.HandleImpactAffectedObjects(ServerImpact impact) at Microsoft.AnalysisServices.Tabular.Model.ApplyImpact(ServerImpact impact) at Microsoft.AnalysisServices.Tabular.Model.ApplyImpact(ImpactDataSet impactDataSet) at Microsoft.AnalysisServices.Tabular.ExecuteUtil.TryExecuteXmla(Model model, String xmlaRequest, XmlaResultCollection& xmlaResults) at Microsoft.AnalysisServices.Tabular.Model.SaveChangesImpl(SaveFlags flags, Int32 maxParallelism) at Microsoft.PowerBI.Modeler.ModelManager.<>cDisplayClass53_1.b1() at Microsoft.PowerBI.Modeler.TomExtensions.ExecuteTomOperation(Action action) at Microsoft.PowerBI.Modeler.ModelManager.<>cDisplayClass53_0.b0() at Microsoft.PowerBI.Client.Windows.Modeling.Hosting.ModelingTelemetryService.<>cDisplayClass6_01.<RunInActivity>b__0() at Microsoft.PowerBI.Client.Windows.Modeling.Hosting.ModelingTelemetryService.RunInActivity(ModelingActivityKind activity, Action action) at Microsoft.PowerBI.Client.Windows.Modeling.Hosting.ModelingTelemetryService.RunInActivity[T](ModelingActivityKind activity, Func1 action) at Microsoft.PowerBI.Modeler.ModelManager.SaveChangesForCommit(String description, Boolean recalc) at Microsoft.PowerBI.Modeler.ModelManager.InternalTransaction.Commit(Boolean recalc) at Microsoft.PowerBI.Modeling.Engine.Authoring.AsyncModelAuthoringService.ModelAuthoringTransaction.Commit(RecalcBehavior recalcBehavior) at Microsoft.PowerBI.Modeling.Engine.ModelingEngine.<>c__DisplayClass15_1.b3(IExtendedModelChangeScope scope) at Microsoft.PowerBI.Modeling.Engine.Authoring.AsyncModelAuthoringService.<>cDisplayClass11_0.<b0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.PowerBI.Modeling.Engine.Authoring.AsyncModelAuthoringService.d14.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.PowerBI.Modeling.Engine.ModelingEngine.d15.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.PowerBI.Client.Windows.Modeling.Hosting.DesktopModelingHost.<>cDisplayClass37_0.<b0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.PowerBI.Client.Windows.Report.<>cDisplayClass74_0.<b0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.PowerBI.Client.Windows.Report.d73`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.PowerBI.Client.Windows.Modeling.Hosting.DesktopModelingHost.d37.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.PowerBI.Client.Windows.Modeling.ModelAuthoringRoutingService.<>cDisplayClass19_0.<b0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.PowerBI.Client.Windows.Modeling.ModelAuthoringRoutingService.d19.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.PowerBI.Client.Windows.ModelAuthoringHostService.d7.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.PowerBI.Client.Windows.ModelAuthoringHostService.d__15`1.MoveNext()

Stack Trace Message: An internal error has occured. Details: Can't find parent of affected object in Model tree..

Invocation Stack Trace: at Microsoft.Mashup.Host.Document.ExceptionExtensions.GetCurrentInvocationStackTrace() at Microsoft.Mashup.Client.UI.Shared.StackTraceInfo..ctor(String exceptionStackTrace, String invocationStackTrace, String exceptionMessage) at Microsoft.PowerBI.Client.Windows.Telemetry.PowerBIUserFeedbackServices.GetStackTraceInfo(Exception e) at Microsoft.PowerBI.Client.Windows.Telemetry.PowerBIUserFeedbackServices.ReportException(IWindowHandle activeWindow, IUIHost uiHost, FeedbackPackageInfo feedbackPackageInfo, Exception e, Boolean useGDICapture) at Microsoft.Mashup.Client.UI.Shared.UnexpectedExceptionHandler.<>cDisplayClass14_0.b0() at Microsoft.Mashup.Client.UI.Shared.UnexpectedExceptionHandler.HandleException(Exception e) at Microsoft.PowerBI.Client.PowerBIUnexpectedExceptionHandler.HandleException(Exception e) at Microsoft.PowerBI.Client.Windows.Utilities.PowerBIFormUnexpectedExceptionHandler.HandleException(Exception e) at Microsoft.PowerBI.Client.Windows.ModelAuthoringHostService.d151.MoveNext() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) at System.Threading.Tasks.Task1.TrySetException(Object exceptionObject) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.SetException(Exception exception) at Microsoft.PowerBI.Client.Windows.ModelAuthoringHostService.<ApplyCore>d__7.MoveNext() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) at System.Threading.Tasks.Task1.TrySetException(Object exceptionObject) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.SetException(Exception exception) at Microsoft.PowerBI.Client.Windows.Modeling.ModelAuthoringRoutingService.<RouteToLocalModel>d__19.MoveNext() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) at System.Threading.Tasks.Task1.TrySetException(Object exceptionObject) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.SetException(Exception exception) at Microsoft.PowerBI.Client.Windows.Modeling.ModelAuthoringRoutingService.<>c__DisplayClass19_0.<b0>d.MoveNext() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) at System.Threading.Tasks.Task1.TrySetException(Object exceptionObject) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.SetException(Exception exception) at Microsoft.PowerBI.Client.Windows.Modeling.Hosting.DesktopModelingHost.d37.MoveNext() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) at System.Threading.Tasks.Task1.TrySetException(Object exceptionObject) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.SetException(Exception exception) at Microsoft.PowerBI.Client.Windows.Report.d731.MoveNext() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) at System.Threading.Tasks.Task1.TrySetException(Object exceptionObject) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.SetException(Exception exception) at Microsoft.PowerBI.Client.Windows.Report.<>c__DisplayClass74_0.<<SynchronizeLooselyWithQueriesAsync>b__0>d.MoveNext() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) at System.Threading.Tasks.Task1.TrySetException(Object exceptionObject) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.SetException(Exception exception) at Microsoft.PowerBI.Client.Windows.Modeling.Hosting.DesktopModelingHost.<>c__DisplayClass37_0.<<RouteToLocalModel>b__0>d.MoveNext() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) at System.Threading.Tasks.Task1.TrySetException(Object exceptionObject) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.SetException(Exception exception) at Microsoft.PowerBI.Modeling.Engine.ModelingEngine.<RouteModelChangeAsync>d__15.MoveNext() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) at System.Threading.Tasks.Task1.TrySetException(Object exceptionObject) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1.SetException(Exception exception) at Microsoft.PowerBI.Modeling.Engine.Authoring.AsyncModelAuthoringService.<ContinueWithAsyncOperation>d__14.MoveNext() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Delegate.DynamicInvokeImpl(Object[] args) at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbacks() at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Form.ShowDialog(IWin32Window owner) at Microsoft.Mashup.Client.UI.Windows.DialogWindowBase.ShowModal(IWindowHandle windowHandle) at Microsoft.Mashup.Client.UI.Shared.WebDialogs.WebDialog.<>n__0(IWindowHandle owner) at Microsoft.Mashup.Client.UI.Shared.WindowManager.ShowModal[T](T dialog, Func1 showModalFunction) at Microsoft.Mashup.Client.UI.Shared.Ux.WindowService.ShowStatusDialog(LocalizedString message, LocalizedString cancelText, Action cancelCallback, Nullable1 showDelayInMs, LocalizedString title) at Microsoft.PowerBI.Client.Windows.Services.PowerBIWindowService.Microsoft.Mashup.Client.UI.Shared.Ux.IWindowService.ShowStatusDialog(LocalizedString message, Action cancelCallback, Nullable1 showDelayInMs, LocalizedString title) at Microsoft.PowerBI.Client.Windows.BusyHelper.ShowBusyDialog() at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Delegate.DynamicInvokeImpl(Object[] args) at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbacks() at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.Form.WndProc(Message& m) at Microsoft.PowerBI.Client.Windows.ResizableFormWithCustomCaption.WndProc(Message& message) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Form.ShowDialog(IWin32Window owner) at Microsoft.Mashup.Client.UI.Shared.WindowManager.ShowModal[T](T dialog, Func`1 showModalFunction) at Microsoft.PowerBI.Client.Program.<>cDisplayClass6_0.b0() at Microsoft.PowerBI.Client.Windows.IExceptionHandlerExtensions.<>cDisplayClass3_0.b0() at Microsoft.Mashup.Host.Document.ExceptionHandlerExtensions.HandleExceptions(IExceptionHandler exceptionHandler, Action action) at Microsoft.PowerBI.Client.Program.RunApplication(String[] args) at Microsoft.PowerBI.Client.Program.Main(String[] args)

PowerBINonFatalError: {"AppName":"PBIDesktop","AppVersion":"2.126.1261.0","ModuleName":"Microsoft.PowerBI.Tabular.dll","Component":"Microsoft.AnalysisServices.Tabular.Model","Error":"Microsoft.AnalysisServices.Tabular.TomInternalException","MethodDef":"MergeAffectedSubtree","ErrorOffset":"88","ErrorCode":""}

Snapshot Trace Logs: C:\Users\david\AppData\Local\Microsoft\Power BI Desktop\FrownSnapShot9a02477d-87c6-48fc-9f6e-7699b9ef000f.zip

Model Default Mode: Import

Model Version: PowerBI_V3

Performance Trace Logs: C:\Users\david\AppData\Local\Microsoft\Power BI Desktop\PerformanceTraces.zip

Enabled Preview Features: PBI_shapeMapVisualEnabled PBI_qnaLiveConnect PBI_b2bExternalDatasetSharing PBI_sparklines PBI_scorecardVisual PBI_NlToDax PBI_fieldParametersSuperSwitch PBI_angularRls PBI_onObject PBI_backstageUI PBI_setLabelOnExportPdf PBI_dynamicFormatString PBI_oneDriveSave PBI_oneDriveShare PBI_useModernPublishDialogs PBI_gitIntegration PBI_newCard PBI_buttonSlicerAuthoring PBI_modelExplorer PBI_daxQueryView PBI_aiNarrativesVisual PBI_qnaImproveLsdlCopilot PBI_generateMeasureDescriptionsButton

Disabled Preview Features: PBI_SpanishLinguisticsEnabled PBI_enhancedTooltips PBI_tmdlInDataset PBI_EimLessElevatedUser PBI_visualCalculationsAuthoring

Disabled DirectQuery Options: TreatHanaAsRelationalSource

Cloud: GlobalCloud

ModelChangeResult: {"changes":[{"entityRefresh":{"entity":"XRAY REFRESHME CALCGROUP"}}]}

PowerBIUserFeedbackServices_IsReported: True

Formulas:

section Section1;

shared VEDA_FxReplaceNullsAndBlanks = let func = // VEDA FxReplaceNullsAndBlanks (Table as table) as table => let Source = Table.ColumnNames(Table), columnsInfo = Record.ToTable(Type.RecordFields(Type.TableRow(Value.Type((Table))))), Listext=Table.SelectRows(columnsInfo, each Type.NonNullable([Value][Type]) = type text)[Name], Replecer = Table.ReplaceValue( Table,null,"(NULL)", Replacer.ReplaceValue,Listext), Result = Table.ReplaceValue( Replecer,"","(BLANK)", Replacer.ReplaceValue,Listext) in Result, documentation = [ Documentation.Name = " VEDA.FxReplaceNullsAndBlanks ", Documentation.Description = " Returns the in value null fill (NULL) and Blank fill (BLANK) in columns type text", Documentation.LongDescription = " Returns the in value null fill (NULL) and Blank fill (BLANK) in columns type text ", Documentation.Category = " Table.Replace ", Documentation.Source = " VEDA ", Documentation.Version = " 1.0 ", Documentation.Author = "VEDA", Documentation.Examples = {[Description = " ", Code = " ", Result = " "]}]

in
Value.ReplaceType(func, Value.ReplaceMetadata(Value.Type(func), documentation));

shared VEDA_FxProfileSummarization = let Source = (TableName as table) as table => let Source = {0 .. Table.ColumnCount(TableName) - 1},

"Converted to Table" = Table.FromList(

    Source, 
    Splitter.SplitByNothing(), 
    null, 
    null, 
    ExtraValues.Error
  ), 
  #"Added Custom" = Table.AddColumn(
    #"Converted to Table", 
    "Column Name", 
    each Table.ColumnNames(TableName){[Column1]}
  ), 
  #"Added Custom1" = Table.AddColumn(
    #"Added Custom", 
    "Column Values", 
    each Table.ToColumns(TableName){[Column1]}
  ), 
  #"Added Custom3" = Table.AddColumn(
    #"Added Custom1", 
    "Count", 
    each List.Count([Column Values])
  ), 
  #"Added Custom4" = Table.AddColumn(#"Added Custom3", "Min", each List.Min([Column Values])), 
  #"Added Custom2" = Table.AddColumn(#"Added Custom4", "Max", each List.Max([Column Values])), 
  #"Added Custom5" = Table.AddColumn(#"Added Custom2", "Mode", each List.Mode([Column Values])), 
  #"Added Custom6" = Table.AddColumn(
    #"Added Custom5", 
    "FrequencyMode", 
    each 
      let
        a = [Mode], 
        b = List.Count(List.Select([Column Values], each _ = a))
      in
        b
  ), 
  #"Added Custom7" = Table.AddColumn(
    #"Added Custom6", 
    "CounNull", 
    each List.Count(List.Select([Column Values], each _ = null))
  ), 
  #"Added Custom8" = Table.AddColumn(#"Added Custom7", "% Null", each [CounNull] / [Count]), 
  #"Added Custom9" = Table.AddColumn(
    #"Added Custom8", 
    "CountNegatives", 
    each try List.Count(List.Select([Column Values], each (_ <> null and _ < 0))) otherwise null
  ), 
  #"Added Custom11" = Table.AddColumn(
    #"Added Custom9", 
    "% Negative", 
    each [CountNegatives] / [Count]
  ), 
  #"Added Custom10" = Table.AddColumn(
    #"Added Custom11", 
    "CountPositive", 
    each try List.Count(List.Select([Column Values], each (_ <> null and _ > 0))) otherwise null
  ), 
  #"Added Custom12" = Table.AddColumn(
    #"Added Custom10", 
    "% Positive", 
    each [CountPositive] / [Count]
  ), 
  #"Added Custom13" = Table.AddColumn(
    #"Added Custom12", 
    "CountZero", 
    each List.Count(List.Select([Column Values], each (_ <> null and _ = 0)))
  ), 
  #"Added Custom14" = Table.AddColumn(#"Added Custom13", "% Zero", each [CountZero] / [Count]), 
  #"Removed Columns" = Table.RemoveColumns(#"Added Custom14", {"Column Values"}), 
  #"Changed Type" = Table.TransformColumnTypes(
    #"Removed Columns", 
    {
      {"Column1", Int64.Type}, 
      {"Column Name", type text}, 
      {"Count", Int64.Type}, 
      {"Min", type text}, 
      {"Max", type text}, 
      {"Mode", type text}, 
      {"FrequencyMode", Int64.Type}, 
      {"CounNull", Int64.Type}, 
      {"% Null", Percentage.Type}, 
      {"CountNegatives", Int64.Type}, 
      {"% Negative", Percentage.Type}, 
      {"CountPositive", Int64.Type}, 
      {"% Positive", Percentage.Type}, 
      {"CountZero", Int64.Type}, 
      {"% Zero", Percentage.Type}
    }
  )
in
  #"Changed Type"

in Source;

shared VEDA_FxProfileSummarizationDetails = let
Source = (TableName as table) as table => let Source = {0 .. Table.ColumnCount(TableName) - 1},

"Converted to Table" = Table.FromList(

Source,
Splitter.SplitByNothing(),
null,
null,
ExtraValues.Error

),

"Added Custom" = Table.AddColumn(

#"Converted to Table",
"Column Name",
each Table.ColumnNames(TableName){[Column1]}

),

"Added Custom1" = Table.AddColumn(

#"Added Custom",
"Column Values",
each Table.ToColumns(TableName){[Column1]}

),

"Removed Columns" = Table.RemoveColumns(#"Added Custom1", {"Column1"}),

"Expanded Column Values" = Table.ExpandListColumn(#"Removed Columns", "Column Values")

in

"Expanded Column Values"

in Source;

shared VEDA_FxCreateDateList = let VEDA_FxCreateDateList = (start_date as nullable date, end_date as nullable date) => let CreateDateList = if start_date = null or end_date = null or start_date > end_date then null else let AllDates = List.Dates(start_date, Number.From(end_date - start_date) + 1, #duration(1, 0, 0, 0)), DistinctEndOfMonths = List.Distinct(List.Transform(AllDates, Date.EndOfMonth)), ReplacedMinMax = if List.Min(DistinctEndOfMonths) <> List.Max(DistinctEndOfMonths) then try List.ReplaceMatchingItems( DistinctEndOfMonths, { {List.Min(DistinctEndOfMonths), start_date}, {List.Max(DistinctEndOfMonths), end_date} } ) otherwise null else try List.ReplaceMatchingItems( DistinctEndOfMonths, { {List.Min(DistinctEndOfMonths), start_date} } ) otherwise null in ReplacedMinMax in CreateDateList, documentation = [ Documentation.Name = "VEDA_FxCreateDateList", Documentation.Description = "Generates a list of distinct end-of-month dates between given start_date and end_date, adjusting the first and last dates in the list to match the given start and end dates. Returns null if the start_date is after the end_date, or if either date is null.", Documentation.LongDescription = "This function is designed to generate a list of dates for financial or analytical purposes, where the exact start and end dates are crucial, and only distinct end-of-month dates within the range are needed.", Documentation.Category = "Date", Documentation.Source = "Pesante Analytics LLC", Documentation.Version = "2.0", Documentation.Author = "Pesante Analytics LLC", Documentation.Examples = {[ Description = "Generate a list of end-of-month dates between two dates, adjusting for start and end dates.", Code = "= VEDA_FxCreateDateList(#date(2021, 1, 1), #date(2021, 3, 31))", Result = "{#date(2021, 1, 1), #date(2021, 2, 28), #date(2021, 3, 31)}" ]} ] in Value.ReplaceType(VEDA_FxCreateDateList, Value.ReplaceMetadata(Value.Type(VEDA_FxCreateDateList), documentation));

shared FactAssignment = let Source = Excel.Workbook(Web.Contents("https://pesanteanalyticas.sharepoint.com/sites/Projects/Shared%20Documents/RAD%20Consultants/Forecasting/Analytics_Work_Orders_2023_Forecast%20Work.xlsx"), null, true),

"Work Orders Raw_Sheet" = Source{[Item="Work Orders Raw",Kind="Sheet"]}[Data],

#"Filtered Rows" = Table.SelectRows(#"Work Orders Raw_Sheet", each ([Column1] <> null)),
#"Promoted Headers" = Table.PromoteHeaders(#"Filtered Rows", [PromoteAllScalars=true]),
#"Removed Columns" = Table.RemoveColumns(#"Promoted Headers",{"Contractor Name"}),
#"Changed Type" = Table.TransformColumnTypes(#"Removed Columns",{{"WO Start Date", type date}, {"WO End Date", type date}, {"Original End Date", type date},{"Bill Rate", Currency.Type}, {"Max Bill Rate on Job", Currency.Type}, {"Difference Between Bill Rate and Max Bill Rate", Currency.Type}, {"Pay Rate", Currency.Type}, {"Markup", Currency.Type},{"Tenure", type number}}, "en-US"),
#"Removed Columns1" = Table.RemoveColumns(#"Changed Type",{"Hiring Manager", "Organization Unit"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns1",{{"WO Start Date", "Assignment Start Date"}, {"WO End Date", "Assignment End Date"}}),
#"Added Custom" = Table.AddColumn(#"Renamed Columns", "Forecast End Date", each #date(2025,12,31), type date),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Adjusted End Date", each List.Min({[Assignment End Date] , [Forecast End Date]}), type date)

in

"Added Custom1";

shared FactWorkOrderMonthly = let Source = FactAssignment, Custom1 = Table.AddColumn(Source, "Assignment Date", each VEDA_FxCreateDateList([Assignment Start Date], [Adjusted End Date])),

"Expanded Assignment Date" = Table.ExpandListColumn(Custom1, "Assignment Date"),

#"Changed Type" = Table.TransformColumnTypes(#"Expanded Assignment Date",{{"Assignment Date", type date}})

in

"Changed Type";

Tabular Editor 3 Version

3.14.0.18176

Screenshots

No response

Steps to Reproduce

Run our c# script (20k lines of code so not sure I can post here but if knew which area might be causing the issue, I could try to trim the code down.

Expected behavior

No response

Crash Report

No response

Windows Version

No response

dpesante commented 2 months ago

One more point of clarification...

If I deinstall the February version and install the December version and rerun the same exact script against the same exact datamodel, I do not get an error. The error only shows up on the February version... (I have not tested this against the January version - do not know where to get the install file for the January version)

dpesante commented 2 months ago

Has anyone seen this error? Any clues as to what may be causing this?

dpesante commented 2 months ago

@otykier hope you are doing well.

Let me know if you need an example pbix with the issue.... to help us track this issue. Right now, we are not able to upgrade to the February release until this is corrected...

otykier commented 2 months ago

That would be helpful. Please send the example pbix to support@tabulareditor.com

Thanks!

otykier commented 2 months ago

Although looking at the error details, I have a sneaking suspicion that there's not much we can do about this on our side. Have you filed a bug report with Microsoft? Assuming your C# script only performs supported changed to the model, PBI Desktop should not behave this way. Perhaps if you shared your script, we could point out if you're doing something unsupported. You could also try, as a workaround, to save the PBIX as a PBIP, then load the resulting model.bim file in Tabular Editor, and run your script against that. Then save, and reopen it in Power BI Desktop.

dpesante commented 1 month ago

ok... here is a link to a quick video going over what we are seeing.. https://app.screencast.com/q1tbMAJkmOoxT

Also sending the pbix file before I run the script and after running the script *after we get the error shown in the video. to the support@tabulareditor.com email address...

dpesante commented 1 month ago

@otykier also, I am not familiar with working with the model.bim file. Are there instructions on how to do this when working with a regular pbix file (not XMLA point).

BTW.. when I run the script against XMLA point I do not see the error but unfortunately, switching to XMLA point is not an option for us at this point..

mlonsk commented 1 month ago

Hi @dpesante Thank you for sending through the video and the files. We have reviewed it and to us it looks like a bug in Power BI desktop. The most likely scenario is that the refresh dependency analysis fails in Power BI desktop and that when you run the refresh on a specific table there is a dependent table that is not refreshed. The fact that it works through the XMLA endpoint is another data point that this is a Power BI Desktop issue.

If this is still happening in the April release of Power BI Desktop I would suggest you raise a bug report with Microsoft.

dpesante commented 4 days ago

@mlonsk thanks for the advice... the problem is still there even with the latest release. I have never reported anything to MF. do you have the link I should use to report this issue?

Is there anything else you can suggest we try to try to figure out what is causing this? or at least the area that is causing the issue...

thanks!