Freigeben über


Bereiche für moderne Befehle

Befehle haben einen von drei Bereichen. Der Bereich bestimmt, ob ein Befehl (schemaname = appaction) wird für eine Tabelle in einer einzelnen App, für eine Tabelle in allen Apps oder für alle Tabellen und alle Apps gerendert.

Ein Befehl muss unabhängig vom Bereich an eine Befehlsleistenposition wie das Hauptraster oder das Hauptformular gebunden sein. Daher wird durch das Ändern des Bereichs der Befehl nicht an verschiedenen Befehlsleistenpositionen wie dem Hauptraster und dem Hauptformular gerendert.

  • App: Dies ist der engste Bereich und das Standardverhalten beim Erstellen oder Bearbeiten von Befehlen mit dem modernen Befehlsdesigner. Der Befehlsdesigner wird im Kontext einer modellgesteuerten App, einer Tabelle und einer Befehlsleistenposition geöffnet.
  • Tabelle: Auch als Entitätsbereich bekannt. An eine bestimmte Tabellen- und Befehlsleistenposition gebunden. Keine Bindung an eine bestimmte App. Befehle mit dem Bereich „Tabelle“ werden deshalb in allen Apps gerendert, welche die Tabelle benutzen. Beispielsweise ist ein Befehl mit dem Bereich „Tabelle“ für die Kontotabelle und den Speicherort des Hauptformulars in allen Apps vorhanden, wenn das Hauptformular für einen Kontodatensatz angezeigt wird.
  • Global: Dies ist der breiteste Bereich. Befehle mit dem Bereich „global“ sind nur an eine Befehlsleistenposition gebunden, nicht an eine App oder Tabelle. Beispielsweise ist ein Befehl mit dem Bereich „global“ für den Speicherort des Hauptformulars in allen Apps einer Umgebung vorhanden, wenn das Hauptformular für jede Tabelle angezeigt wird.

Wichtig

Befehle, die Power Fx für die Aktion und/oder Sichtbarkeit verwenden, können derzeit nicht in Tabellen- oder globalen Bereich konvertiert werden.

Wenn Befehle in Dropdownlisten, Gruppen und geteilten Schaltflächen verschachtelt sind, müssen alle auf denselben Geltungsbereich festgelegt werden.

Wenn ein Befehl mit globalem oder Tabellenbereich im modernen Befehlsdesigner bearbeitet wird, wird eine Kopie (Instanz) mit App-Bereich erstellt und mit dem ursprünglichen Befehl verknüpft. Beispielsweise überschreibt das Bearbeiten eines globalen Bereichsbefehls im Befehlsdesigner den ursprünglichen globalen Bereichsbefehl, aber nur für die bestimmte App und Tabelle, die beim Öffnen des Befehlsdesigners ausgewählt wurden. Alle anderen Apps und Tabellen rendern den ursprünglichen Befehl. Die Kopie (Instanz) hat jetzt einen eigenen Lebenszyklus. Änderungen am ursprünglichen Befehl mit dem Bereich „global“ wirken sich nicht auf die neue App-Bereichsinstanz aus und umgekehrt.

Tabellen- und globale Bereichsbefehle überschreiben

Engere Bereiche können einen breiteren Bereichsbefehl auf jeder Ebene außer Kraft setzen. Der engste Bereich gewinnt.

  • Befehl mit dem Bereich „Tabelle (Entität)“ überschreibt globale Befehle. Sie können einen Befehl definieren, der für alle Tabellen gleich ist, aber das Verhalten nur für bestimmte Tabellen ändern.
  • Ein Befehl mit dem Bereich „App“ überschreibt alle anderen Bereiche, jedoch nur für eine bestimmte App und Tabelle.

Einen Befehl mit dem Bereich „Tabelle“ erstellen

  1. Erstellen Sie mit dem Befehlsdesigner einen oder mehrere Befehle in Ihrer Lösung. Alternativ erstellen Sie eine separate Lösung und wählen Sie Vorhandenes hinzufügen > Tabelle aus.

  2. Wählen Sie Objekte auswählen aus und fügen Sie dann die gewünschten Befehle hinzu.

  3. Wählen Sie Export, um Ihre Lösung zu exportieren.

    Lösung exportieren

  4. Wenn Sie kürzlich Änderungen vorgenommen haben, die noch nicht veröffentlicht wurden, wählen Sie Veröffentlichen. Wählen Sie dann Ausführen aus, um zu überprüfen, ob die Lösung Probleme oder Abhängigkeiten aufweist. Wählen Sie dann Weiter aus.

  5. Wählen Sie die Option Unverwaltet und dann Export aus.

  6. Wählen Sie im Dialogfeld Dateidownload Speichern und im Dialogfeld Download abgeschlossen Ordner öffnen aus.

  7. Klicken Sie mit der rechten Maustaste, um die komprimierte ZIP-Datei auszuwählen, die Sie heruntergeladen haben, und wählen Sie dann Alle extrahieren.

  8. Wählen Sie einen Speicherort aus, an den die Dateien extrahiert wird, und wählen Sie Extrahieren.

  9. Öffnen Sie den Ordner mit den extrahierten Dateien, öffnen Sie die Datei appaction.xml und suchen Sie den gewünschten Befehl (appaction).

  10. Löschen Sie den Knoten appmoduleid aus der XML.

     <appmoduleid>
       <uniquename>demo_DemoFestApp</uniquename>
     </appmoduleid>
    
  11. Ändern Sie den Wert von appaction uniquename Es reicht aus, eines der letzten Zeichen zu ändern, z. B. von 1 auf 2, oder Sie können bei Bedarf aussagekräftigere Namenskonventionen verwenden.

Beispiel-XML.

   <appaction uniquename="crdff_NewCommand!a078463b5d7c473d8965f0f80469f412!crdff_CustomApp!crdff_entity1!1">
  <buttonlabeltext default="Show Alert">
    <label description="Show Alert" languagecode="1033" />
   </buttonlabeltext>
   <buttonsequencepriority>10.0000000000</buttonsequencepriority>
   <context>1</context>
   <contextentity>
    <logicalname>crdff_entity1</logicalname>
   </contextentity>
   <fonticon>AALinkedInLogo</fonticon>
   <contextvalue>crdff_entity1</contextvalue>
   <hidden>0</hidden>
   <iscustomizable>1</iscustomizable>
   <location>1</location>
   <name>EntityScoped!a078463b5d7c473d8965f0f80469f412</name>
   <onclickeventjavascriptfunctionname>ShowAppAlert</onclickeventjavascriptfunctionname>
   <onclickeventjavascriptparameters>[]</onclickeventjavascriptparameters>
   <onclickeventjavascriptwebresourceid>
    <webresourceid>ac21ad24-3c11-ef11-b6u7-000d3a1d942c</webresourceid>
   </onclickeventjavascriptwebresourceid>
   <onclickeventtype>2</onclickeventtype>
   <statecode>0</statecode>
   <statuscode>1</statuscode>
   <type>0</type>
   </appaction>

Nachdem Sie die Datei appaction.xml bearbeitet und gespeichert haben, komprimieren Sie Ihre Lösung in demselben Format, in das sie exportiert wurde. Importieren Sie dann die Lösung zurück in Ihre Umgebung und testen Sie das Verhalten.

Einen Befehl mit dem Bereich „Global“ erstellen

  1. Befolgen Sie dieselben Schritte oben, um die Datei appaction.xml zu bearbeiten.

  2. Löschen Sie den Knoten appmoduleid aus der XML:

     <appmoduleid>
       <uniquename>demo_DemoFestApp</uniquename>
     </appmoduleid>
    
  3. Ändern Sie den Wert von appaction uniquename Es reicht aus, eines der letzten Zeichen zu ändern, z. B. von 1 auf 2, oder Sie können bei Bedarf aussagekräftigere Namenskonventionen verwenden.

  4. Löschen Sie die Knoten contextentity und contextentity aus der XML:

    <contextentity>
     <logicalname>account</logicalname>
    </contextentity>
    <contextvalue>account</contextvalue>
    
  5. Ändern Sie den Wert des Kontext von 1 auf 0.

    <appaction uniquename="crdff_NewCommand1!8fe72a85-1f84-431e-ac56-854f1bfadc4e!1">
    <buttonlabeltext default="Show Alert">
    <label description="Show Alert" languagecode="1033" />
    </buttonlabeltext>
    <buttonsequencepriority>10.0000000000</buttonsequencepriority>
    <context>0</context>
    <hidden>0</hidden>
    <iscustomizable>1</iscustomizable>
    <fonticon>AALinkedInLogo</fonticon>
    <location>1</location>
    <name>EntityScoped!a078463b5d7c473d8965f0f80469f412</name>
    <onclickeventjavascriptfunctionname>ShowGlobalAlert</onclickeventjavascriptfunctionname>
    <onclickeventjavascriptparameters>[]</onclickeventjavascriptparameters>
    <onclickeventjavascriptwebresourceid>
     <webresourceid>ac21ad24-3c01-ec11-b6e7-000d3a1d942c</webresourceid>
    </onclickeventjavascriptwebresourceid>
    <onclickeventtype>2</onclickeventtype>
    <statecode>0</statecode>
    <statuscode>1</statuscode>
    <type>0</type>
    </appaction>
    

Nachdem Sie die Datei appaction.xml bearbeitet und gespeichert haben, komprimieren Sie Ihre Lösung in demselben Format, in das sie exportiert wurde. Importieren Sie dann die Lösung zurück in Ihre Umgebung und testen Sie das Verhalten.

Einen Befehl mit dem Bereich „Global“ durch den Bereich „Tabelle“ überschreiben

Dieses Beispiel gilt, wenn Sie möchten, dass ein Befehl mit dem Bereich „Global“ überall gleich ist außer für eine bestimmte Tabelle.

  • Die Aktion mit dem Bereich „Entität“ ist in crdff_entity1-Rastern in allen Apps außer in crdff_CustomApp sichtbar.
  • Die Aktion mit dem Bereich „Global“ ist in allen Entitätsrastern außer in crdff_entity1 sichtbar.

Hinweis

Um Befehle mit entweder dem Bereich „Global“ oder „Tabelle“ mit einem App-Bereichsbefehl zu überschreiben, bearbeiten Sie einfach den Befehl mit dem Befehlsdesigner.

Um einen Befehl mit dem Bereich „Global“ mit einem Befehl mit dem Bereich „Tabelle“ zu überschreiben, ändern Sie die appactions.xml-Dateien so, dass sie denselben XML <name> haben.

Schritte zum Überschreiben

  1. Folgen Sie den Schritten in Einen Befehl mit dem Bereich „Global“ erstellen, aber erstellen Sie zwei Befehle mit dem Befehlsdesigner.

  2. Exportieren Sie Ihre Lösung wie in den Schritten beschrieben und bearbeiten Sie die appactions.xml-Dateien.

  3. Fahren Sie mit den Schritten fort, um einen Befehl mit dem Bereich „Global“ und einen mit dem Bereich „Entität“ zu erstellen.

  4. Stellen Sie die Eigenschaft Name für die Befehle mit dem Bereich „Global“ und „Entität“ genau gleich sein.

XML-Beispiel für einen Befehl mit dem Bereich „XML“

<appaction uniquename="crdff_NewCommand1!8fe72a85-1f84-431e-ac56-854f1bfadc4e!1">
<buttonlabeltext default="Show Alert">
 <label description="Show Alert" languagecode="1033" />
</buttonlabeltext>
<buttonsequencepriority>10.0000000000</buttonsequencepriority>
<context>0</context>
<hidden>0</hidden>
<iscustomizable>1</iscustomizable>
<fonticon>AALinkedInLogo</fonticon>
<location>1</location>
<name>EntityScoped!a078463b5d7c473d8965f0f80469f412</name>
<onclickeventjavascriptfunctionname>ShowGlobalAlert</onclickeventjavascriptfunctionname>
<onclickeventjavascriptparameters>[]</onclickeventjavascriptparameters>
<onclickeventjavascriptwebresourceid>
 <webresourceid>ac21ad24-3c01-ec11-b6e7-000d3a1d942c</webresourceid>
</onclickeventjavascriptwebresourceid>
<onclickeventtype>2</onclickeventtype>
<statecode>0</statecode>
<statuscode>1</statuscode>
<type>0</type>
</appaction>

XML-Beispiel für einen Befehl mit dem Bereich „Tabelle“

<appaction uniquename="crdff_NewCommand!a078463b5d7c473d8965f0f80469f412!crdff_entity1!1">
<buttonlabeltext default="Show Alert">
<label description="Show Alert" languagecode="1033" />
</buttonlabeltext>
<buttonsequencepriority>10.0000000000</buttonsequencepriority>
<context>1</context>
<contextentity>
<logicalname>crdff_entity1</logicalname>
</contextentity>
<fonticon>AALinkedInLogo</fonticon>
<contextvalue>crdff_entity1</contextvalue>
<hidden>0</hidden>
<iscustomizable>1</iscustomizable>
<location>1</location>
<name>EntityScoped!a078463b5d7c473d8965f0f80469f412</name>
<onclickeventjavascriptfunctionname>ShowEntityAlert</onclickeventjavascriptfunctionname>
<onclickeventjavascriptparameters>[]</onclickeventjavascriptparameters>
<onclickeventjavascriptwebresourceid>
<webresourceid>ac21ad24-3c01-ec11-b6e7-000d3a1d942c</webresourceid>
</onclickeventjavascriptwebresourceid>
<onclickeventtype>2</onclickeventtype>
<statecode>0</statecode>
<statuscode>1</statuscode>
<type>0</type>
</appaction>

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).