Anleitung

Die Einrichtungstabellen und -Seiten sind in Dynamics 365 Business Central wie in Dynamics NAV einzigartig in der Hinsicht, dass sie nur jeweils einen Datensatz beinhalten und es nicht möglich ist, neue Datensätze anzulegen oder den einen vorhandenen Datensatz zu löschen.

Für eine eigene Einrichtung benötigen wir eine neue Tabelle sowie eine dazugehörige Seite. Zuerst legen wir die Tabelle AL-typisch über das Snippet „ttable” an:

In dieser neu angelegten Tabelle fügen wir zuerst ein Feld vom Typ Code der Länge 10 ein, das wir „Primary Key” nennen, und anschließend, für die Test-Darstellung, noch zwei Test-Felder, eines vom Typ Code und der Länge 10, das andere vom Typ Boolean. Den Primärschlüssel der Tabelle legen wir auf das Feld „Primary Key”. Die fertige Tabelle sieht dann wie folgt aus:

table 50100 "Example Setup"
{
    DataClassification = ToBeClassified;

    fields
    {
        field(1; "Primary Key"; Code[10])
        {

        }
        field(2; "Test 1"; Code[10])
        {

        }
        field(3; "Test 2"; boolean)
        {

        }
    }

    keys
    {
        key("Primary Key"; "Primary Key")
        {
            Clustered = true;
        }
    }
}

Anschließend legen wir die dazugehörige Seite an. Dies verläuft ähnlich wie das Anlegen der Tabelle über ein Snippet, in diesem Fall „tpage”. Auf der neuen Seite setzen wir die Eigenschaften „PageType = Card”, „SourceTable = "Example Setup"” so wie „ InserAllowed = false” und „DeleteAllowed = false”. Anschließend legen wir im Bereich Layout in der Gruppe „general” die beiden Felder „Test 1” sowie „Test 2” an, die wir vorher in der Tabelle definiert haben. Für das Feld „Primary Key” legen wir extra kein Feld auf der Seite an, da nur ein Datensatz vorhanden sein soll und die Anwender dementsprechend nicht zwischen Datensätzen wechseln können müssen.

Zusätzlich legen wir den trigger „OnOpenPage()” an, in den wir folgenden Code eintragen:

Reset();
if not Get() then
    Insert();

Dieser Code stellt sicher, dass beim erstmaligen öffnen der Seite ein Datensatz angelegt wird, ohne dass dies vom Anwender beeinflussbar wäre.

Die fertige Seite sieht in Visual Studio Code anschließend wie folgt aus:

page 50100 "Example Setup"
{
    PageType = Card;
    ApplicationArea = All;
    UsageCategory = Administration;
    SourceTable = "Example Setup";
    InsertAllowed = false;
    DeleteAllowed = false;

    layout
    {
        area(Content)
        {
            group(general)
            {
                field("Test 1"; "Test 1")
                {
                    ApplicationArea = All;

                }
                field("Test 2"; "Test 2")
                {
                    ApplicationArea = All;
                }
            }
        }
    }
    trigger OnOpenPage()
    begin
        Reset();
        if not Get() then
            Insert();
    end;
}

Veröffentlichen wir nun unsere Beispiel-Extension und rufen unsere Einrichtungs-Seite im Web-Client von Dynamics 365 Business Central auf, sieht sie wie folgt aus: