Table extension 705 Error Message Extension

App
Base Application
Namespace
System.Utilities
Versions
26-28
Extends
Error Message

Procedures, 1Events, 1

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/System/ErrorMessage/ErrorMessageExtension.TableExt.al58 lines, Copyright (c) Microsoft Corporation. MIT

namespace System.Utilities;

using Microsoft.Finance.Dimension;
using Microsoft.Utilities;

tableextension 705 "Error Message Extension" extends "Error Message"
{
    var
        ErrorContextNotFoundErr: Label 'Error context not found: %1', Comment = '%1 - Record Id';

    procedure HandleDrillDown(SourceFieldNo: Integer)
    var
        PageManagement: Codeunit "Page Management";
        RecRef: RecordRef;
        IsHandled: Boolean;
    begin
        OnDrillDownSource(Rec, SourceFieldNo, IsHandled);
        if not IsHandled then
            case SourceFieldNo of
                FieldNo(Rec."Context Record ID"):
                    begin
                        if not RecRef.Get(Rec."Context Record ID") then
                            error(ErrorContextNotFoundErr, Format(Rec."Context Record ID"));
                        PageManagement.PageRunAtField(Rec."Context Record ID", Rec."Context Field Number", false);
                    end;
                FieldNo(Rec."Record ID"):
                    if IsDimSetEntryInconsistency() then
                        RunDimSetEntriesPage()
                    else
                        PageManagement.PageRunAtField(Rec."Record ID", Rec."Field Number", false);
            end
    end;

    local procedure IsDimSetEntryInconsistency(): Boolean
    var
        DimensionSetEntry: Record "Dimension Set Entry";
        RecId: RecordId;
    begin
        RecId := "Record ID";
        exit((RecId.TableNo() = Database::"Dimension Set Entry") and (Rec."Field Number" = DimensionSetEntry.FieldNo("Global Dimension No.")));
    end;

    local procedure RunDimSetEntriesPage()
    var
        DimensionSetEntry: Record "Dimension Set Entry";
        DimensionSetEntries: Page "Dimension Set Entries";
    begin
        DimensionSetEntry.Get(Rec."Record ID");
        DimensionSetEntries.SetRecord(DimensionSetEntry);
        DimensionSetEntries.SetUpdDimSetGlblDimNoVisible();
        DimensionSetEntries.Run();
    end;

    [IntegrationEvent(false, false)]
    local procedure OnDrillDownSource(ErrorMessage: Record "Error Message"; SourceFieldNo: Integer; var IsHandled: Boolean)
    begin
    end;
}