Aktionen auf einer Seite und deren Eigenschaften definieren

Abgeschlossen

Aktionen werden oben auf jeder Seite im Menüband angezeigt. Diese Aktionen sind RoleCenter-Aktionen, da sie auf einer RoleCenter-Seite definiert sind. Dieser Ort wird als Navigationsleiste bezeichnet.

Unter der Navigationsleiste befindet sich die Befehlsleiste. Diese Aktionen sind auf der Seite Karte oder auf der Seite Liste definiert.

Screenshot mit den verfügbaren Aktionen auf einer Seite

Aktionen in AL definieren

Sie können Aktionen in AL definieren, indem Sie einen Aktionsabschnitt unter dem Layoutabschnitt einer Seite erstellen.

Im Aktionsabschnitt müssen Sie Aktionen innerhalb eines Bereichs erstellen, genau wie Felder im Layoutabschnitt. Die folgenden vier Bereiche sind verfügbar:

  • Navigation – Entspricht dem Menü Navigieren.

  • Erstellung – Entspricht dem Menü Neues Dokument im Menü Aktionen.

  • Berichterstellung – Entspricht dem Menü Bericht.

  • Verarbeitung – Entspricht dem Menü Verarbeiten.

Diese vier Bereiche entsprechen den Menüs auf der Befehlsleiste, die nach dem Trennzeichen angezeigt werden. Das folgende Bild zeigt
die ausgewählten Menüs in Rot. Wenn die Menüs nicht angezeigt werden, wählen Sie die Schaltfläche Weitere Optionen aus.

Screenshot mit den Bereichen „Aktion“ einer Seite

Die verfügbaren Menüs sind in Business Central festgelegt. Wenn Sie Untermenüs erstellen möchten, müssen Sie Gruppen innerhalb eines Bereichs und dann Aktionen innerhalb dieser Gruppe definieren.

Wenn Sie Aktionen im ersten Teil der Befehlsleiste vor dem Trennzeichen anzeigen möchten, müssen Sie Ihre Aktionen höher stufen, indem Sie die Eigenschaft Heraufgestuft verwenden.

Codierung für Aktionsbereiche in AL für eine Business Central-Seite

Aktionseigenschaften

Genau wie bei Tabellen, Feldern, Seiten und Steuerelementen weisen auch die Aktionen auf einer Seite einige Eigenschaften auf. Alle Aktionen verfügen über die Eigenschaften ID, Name, Beschriftung, und Bild. Die Eigenschaft Bild dient zum Anzeigen eines Bilds in der Aktion.

Screenshot, der die Codierung zum Definieren von Aktionseigenschaften zeigt.

Die Eigenschaft Heraufgestuft wird verwendet, um die Aktion im ersten Teil der Befehlsleiste vor das Trennzeichen zu verschieben. Die heraufgestuften Aktionen sollten immer in einer bestimmten Kategorie heraufgestuft werden. Daher müssen Sie die Eigenschaft PromotedCategory festlegen. Die Eigenschaft PromotedCategory führt dazu, dass ein Menü angezeigt wird, das die Aktion enthält.

Screenshot mit einigen heraufgestuften Aktionen auf einer Seite

Die Eigenschaft PromotedCategory verfügt über feste Werte. Sie können zwischen Neu, Prozess, Bericht und von Kategorie4 bis Kategorie20 auswählen. Der Name des Menüs soll natürlich nicht als Kategorie5 angezeigt werden. Daher müssen Sie eine Seiteneigenschaft mit dem Namen PromotedActionCategories verwenden.

Im nächsten Beispiel wird die Aktion mit dem Namen Kommentare in Kategorie7 heraufgestuft, was bedeutet, dass sie im Menü Debitor angezeigt wird.

Codierung für eine „PromotedActionCategories“-Eigenschaft in AL

Wenn Ihre Aktion nur heraufgestuft und nicht in einem der normalen Menüs (Aktionen, Navigieren, Bericht, Neue Dokumente) angezeigt werden soll, können Sie PromotedOnly, eine boolesche Eigenschaft, verwenden.

Mit der Eigenschaft PromotedIsBig wird die Reihenfolge der angezeigten Aktionen geändert. Mit PromotedIsBig wird die Aktion vor anderen Aktionen angezeigt.

Seiten und Seitenerweiterungen können jetzt eine neue Aktionsgruppe für heraufgestufte Aktionen umfassen. Diese Gruppen können Verweise auf vorhandene Aktionen umfassen. Sie können bereits bestehende Gruppen ergänzen oder neue Gruppen in Seitenerweiterungen hinzufügen. Benutzer können selbst Aktionen heraufstufen, um ihre Erfahrung zu personalisieren. Die Plattform und der Client behalten die vorhandene Eigenschaft für geförderte Aktionen bei und bleiben so abwärts kompatibel. Eine Seite oder Seitenerweiterung muss jedoch bei der Verwendung entweder des alten oder des neuen Modells konsistent sein. Es gibt eine Code-Aktion für die Konvertierung des alten Modells zum neuen.

Sie können Aktionen fördern, die häufiger als andere verwendet werden, und so einen schnellen Zugriff auf diese sicherstellen. Dieser Aktionstyp wird geförderte Aktionen genannt. Heraufgestufte Aktionen sind Aktionen, die in den Aktionsmenüs, Navigationsmenüs oder Berichtsmenüs auf der Aktionsleiste eingerichtet, aber auch für die Anzeige auf der Registerkarte Start konfiguriert werden. Obwohl die Aktionen in den Aktionsmenüs, Navigationsmenüs oder Berichtsmenüs eingerichtet werden, können sie in diesen Menüs ausgeblendet und nur auf der Registerkarte Start angezeigt werden, wenn Sie dies wünschen.

Heraufgestufte Aktionen können auf Karten‑, Dokument‑, Listen‑, ListPlus‑ und Arbeitsblattseiten verwendet werden, um einen schnellen Zugriff auf allgemeine Aufgaben zu ermöglichen, die auf der Registerkarte Startseite angezeigt werden.

Ab dem zweiten Veröffentlichungszyklus von Business Central 2022 hat sich die Art und Weise geändert, wie Sie Aktionen auf Seiten oder Seitenerweiterungen heraufstufen. Heraufstufende Aktionen werden in einem bestimmten Abschnitt des Codes für eine Seite festgelegt und enthalten einen Verweis auf die Aktion. Die neue Syntax zeigt mehr Sichtbarkeit im Code, da die heraufgestuften Aktionen in einem separaten Abschnitt gruppiert sind. Für den Endbenutzer werden Optionen zur Förderung von Aktionen hinzugefügt, um das Personalisierungserlebnis zu verbessern:

In Business Central wird die neue Aktionsleiste aktiviert, wenn das Funktionskennzeichen Moderne Aktionsleiste auf der Seite Funktionsverwaltung auf Aktiviert gesetzt ist. Das Kennzeichen kann deaktiviert werden, um Legacy-Verhalten zu simulieren. Der hochgestufte Aktionscode in der Basisanwendung verwendet jedoch die Syntax actionref.

Geben Sie einen Bereich (Promoted) im Aktionsbereich einer Seite oder einer Seitenerweiterung an, um hochgestufte Aktionen zu definieren. Im area(Promoted)-Abschnitts können Sie einen oder mehrere Abschnitte actionref angeben. Bei einer Actionref handelt es sich um einen Objekttyp mit Verweis auf eine Aktion auf der Seite. Durch Hinzufügen im Abschnitt „Hochgestufter Bereich“ wird er in der Benutzeroberfläche hochgestuft. Eine actionref kann nur im Abschnitt area(Promoted) festgelegt werden. Sie können entweder Gruppen im area(Promoted) für die actionref-Referenzen erstellen oder actionref-Abschnitte direkt hinzufügen. Eine actionref erbt die Eigenschaften von der referenzierten Aktion. Bei Seitenerweiterungen können Sie bestehenden Gruppen etwas hinzufügen und neue Gruppen hinzufügen.

Als Teil des neuen Programmiermodells für beworbene Aktionen können Sie mehrere Aktionen in einer geteilten Schaltfläche kombinieren, um die von Ihnen beworbenen Aktionen zu organisieren. Dadurch wird die Unordnung reduziert und die Kohärenz und Nähe verwandter Aktionen verbessert. Für eine Seitenaktionsgruppe kann eine geteilte Schaltfläche festgelegt werden, die als Kombination aus einer Schaltfläche und einem Menü gerendert wird. Mit der ShowAs-Eigenschaft können Sie festlegen, dass eine bestimmte Seitenaktionsgruppe als geteilte Schaltfläche gerendert wird. Weitere Informationen finden Sie unter der Eigenschaft ShowAs in der Dokumentation.

Das folgende Beispiel zeigt eine Seite mit der Syntax promoted area. Im Beispiel legt der Bereich area(Processing) die Aktion MyBaseAction für die Seite fest, die eine Nachricht Hallo Welt auslöst. Die MyBaseAction ist unter der Gruppe „Verarbeitung“ in der Aktionsleiste verfügbar und wird heraufgestuft, da sie zum Abschnitt „area(Promoted)“ hinzugefügt wurde, der die hochzustufenden Aktionen festlegt. Das Beispiel veranschaulicht, dass Sie Ihre Abschnitte actionref gruppieren oder sie ohne Gruppierung angeben können. Die actionref(MyPromotedActionRef; MyBaseAction) stuft die festgelegte MyBaseAction hoch. Dadurch wird dies zusätzlich zur Platzierung in der Verarbeitungsgruppe auch für den einfachen Zugriff auf der Seite hochgestuft. Zudem veranschaulicht das Beispiel die Verwendung einer geteilten Schaltfläche für Group2 mit zwei actionrefs.

al-languageCopy
page 50105 ActionRefPage
{
    actions
    {
        area(Promoted)
        {
            actionref(MyPromotedActionRef; MyBaseAction)
            {
            }
            group(Group1)
            {
                actionref(MySecondPromotedActionRef; MyBaseAction)
                {
                }
            }

            group(Group2)
            {
                ShowAs = SplitButton;

                actionref(MySplitButtonPromotedActionRef; MyBaseAction)
                {
                }
                
                actionref(MyOtherSplitButtonPromotedActionRef; MyBaseAction)
                {
                }
            }
        }
        area(Processing)
        {
            action(MyBaseAction)
            {
                Visible = true;
                trigger OnAction()
                begin
                    Message('Hello world!');
                end;
            }
        }
    }
}

Alte und neue Syntax für eine Weile existieren parallel, daher kann die Umstellung auf die neue Syntax für geförderte Aktionen schrittweise erfolgen. Wir empfehlen Ihnen jedoch, so schnell wie möglich zu wechseln. Bei der Umgestaltung des Codes sind einige Dinge zu beachten:

  • Es ist nicht zulässig, sowohl die alte als auch die neue Syntax für hochgestufte Aktionen auf derselben Seite oder Seitenerweiterung zu verwenden. Wenn Sie Ihrem Code also die actionref-Syntax hinzufügen, sind die Eigenschaften Promoted (Promoted, PromotedOnly, PromotedActionCategories, und PromotedCategory) nicht zulässig.

  • In einem Projekt können Sie alte und neue Syntax kombinieren und die neue Syntax actionref auf einer Seite implementieren, ohne vorhandene Seitenerweiterungen zu beschädigen. Sie können auch basierend auf einer Seite, die die Legacy-Syntax verwendet, eine Seitenerweiterung mit der neuen actionref-Syntax schreiben.

Mit dem zweiten Veröffentlichungszyklus von Business Central 2022 ist eine Code-Aktion zum Konvertieren von Seiten mit Legacy-Syntax verfügbar. Die Code-Aktion kann auf einen engeren oder breiteren Codebereich angewendet werden.

Wenn Sie bei Auswahl einer Seite durch einen Benutzer eine Seite öffnen oder Code ausführen möchten, können Sie AL-Code in den Trigger OnAction schreiben. Sie können auch die Eigenschaft RunObject verwenden.

Mit der Eigenschaft RunObject lassen sich die folgenden Objekte ausführen:

  • Seite

  • Bericht

  • XMLPort

  • Codeunit

Die Eigenschaften RunPageLink, RunPageMode und RunPageView
beziehen sich alle auf Seiten, sodass Sie sie beim Ausführen einer Seite verwenden.

Mit RunPageLink wird eine Verbindung zwischen zwei Quelltabellen von zwei Seiten hergestellt. Wenn Sie beispielsweise alle Verkaufsaufträge für einen bestimmten Debitor über eine Aktion auf der Debitorenkarte anzeigen möchten, müssen Sie den Debitor mit den Verkaufsaufträgen verknüpfen. Somit wird die Seite Verkaufsaufträge für den ausgewählten Debitor gefiltert. Sie können auch zusätzliche Filter festlegen.

Die Eigenschaft RunPageMode gibt an, in welchem Modus die von Ihnen ausgeführte Seite geöffnet werden soll. Sie kann in den Modi „Anzeigen“, „Bearbeiten“ oder „Erstellen“ geöffnet werden. Wenn Sie Ihre Seite jedoch konfiguriert haben und deren Eigenschaft InsertAllowed auf Nein festgelegt ist, kann Ihre Seite nicht im Modus „Erstellen“ ausgeführt werden.

Mit der Eigenschaft RunPageView können Sie einen Tabellenfilter auf Ihrer Seite einfügen und Ergebnisse filtern.

Die Eigenschaft ShowAs legt fest, wie eine Aktionsgruppe gerendert werden soll:

  • Standard – Legt fest, dass eine Aktionsgruppe als Standardgruppe gerendert werden soll.

  • SplitButton – Legt fest, dass eine Aktionsgruppe als geteilte Schaltfläche gerendert werden soll.

Durch das Festlegen des Renderns der Gruppe auf SplitButton wird die Gruppe als Kombination aus einer Schaltfläche und einem Menü gerendert. Diese Art Steuerelement gibt Ihnen Zugriff auf die erste Aktion mit einem Klick, die auf Sichtbar und Aktiviert gesetzt ist ein einem Menü mit dem linken Schaltflächenteil und Zugriff auf andere verwandte Aktionen mit dem rechten Dropdownteil.

Beachten Sie die folgenden Richtlinien für das Design:

  • In Aktionsleisten von Unterformularen oder in Kontextmenüs werden geteilte Schaltflächen nicht unterstützt. Wenn die Funktionstaste ModernActionBar deaktiviert ist, wird sie nicht unterstützt, wenn die Eigenschaft ShowAs auf einer hochgestuften Aktionskategoriegruppe auf SplitButton festgelegt ist.

  • Mobile Clients unterstützen keine geteilten Schaltflächen. Die Eigenschaft ShowAs wird ignoriert, wenn Sie auf SplitButton festgelegt ist.

  • Wenn die Gruppe als geteilte Schaltfläche festgelegt ist, werden die für eine Gruppe festgelegten QuickInfos, Beschriftungen oder Bildeigenschaften nicht gerendert. Das Festlegen dieser Eigenschaften ist noch immer eine bewährte Methode, da sie verwendet werden, wenn die Gruppe als reguläre Gruppe gerendert wird, z. B. auf mobilen Clients.

  • Eine geteilte Schaltfläche kann in eine andere geteilte Schaltfläche verschachtelt werden.

  • Mit der Personalisierung über die Benutzeroberfläche können Sie eine Aktion auf einer geteilten Schaltfläche ablegen. Die Aktion wird dann zur primären Aktion, wenn sie aktiviert und sichtbar ist. Während der Personalisierung können auch die untergeordneten Aktionen neu angeordnet werden, wodurch die primäre Aktion nach Bedarf dynamisch aktualisiert wird.

Im folgenden Beispiel wird die Gruppe MyGroup als geteilte Schaltfläche gerendert. Dadurch haben Sie mit einem Klick Zugriff auf die Aktion MyAction:

al-languageCopy
group(MyGroup)
{
    ShowAs = SplitButton;
    
    action(MyAction)
    {
    }   
    ...

Das folgende Beispiel veranschaulicht das Verhalten der geteilten Schaltfläche, wenn Sie eine hochgestufte Aktionskategorie mit der Eigenschaft ShowAs verwenden:

al-languageCopy
...
area(Promoted)
        {
            // Not rendered as a split button when the feature flag is OFF
            group(Category_New) // This is a promoted action category
            {
                Caption = 'New';
                ShowAs = SplitButton;

                actionref(TestAction1_Promoted; TestAction1)
                {
                }

                actionref(TestAction2_Promoted; TestAction2)
                {
                }
            }

            // Rendered as a split button (whether feature flag is ON or OFF)
            group(Test)
            {
                ShowAs = SplitButton;

                actionref(TestAction1_Promoted2; TestAction1)
                {
                }

                actionref(TestAction2_Promoted2; TestAction2)
                {
                }
            }
        } 

Benutzerdefinierte Aktionen in AL definieren

Seiten in Business Central können über Aktionen verfügen, die zum Ausführen von Objekten wie anderen Seiten, Berichten oder Codeunits verwendet werden. Diese Objekte sind alle in Business Central nativ. Es besteht jedoch ein zunehmender Bedarf, externe Ziele aufzurufen. Es wurde eine neue benutzerdefinierte Aktion hinzugefügt, um dies zu unterstützen. Momentan ist es möglich, nur Power Automate-Flows aufzurufen, aber potenziell benutzerdefinierte Aktionen könnten verwendet werden, um Dinge wie Power BI-Berichte, Power Apps oder Websites im Kontext einer bestimmten Business Central-Seite aufzurufen.

al-languageCopy
customaction(MyFlowAction)
{
    CustomActionType = Flow;
    FlowId = '<the-GUID-identifying-the-Power-Automate-Flow>';
    FlowEnvironmentId = '<the-GUID-identifying-the-Power-Automate-environment>';
}