Freigeben über


Eine Schaltfläche auf der Befehlsleiste ist ausgeblendet, wenn sie in Power Apps sichtbar sein soll.

Gilt für: Power Apps
Ursprüngliche KB-Nummer: 4552163

Bestimmen, warum eine Schaltfläche ausgeblendet ist

Eine Schaltfläche kann aufgrund einer Aktivierungs- oder Anzeigeregel für den Befehl ausgeblendet werden, der der Schaltfläche zugeordnet ist, die als false ausgewertet wird. Es kann sein, dass der zugeordnete Befehl über eine Mscrm.HideOnModern Anzeigeregel verfügt, die die Schaltfläche in Unified Interface-Anwendungen ausblendet. Es könnte auch eine HideCustomAction erstellt worden sein, die das Ausblenden der Schaltfläche erzwingt. Wenn der Benutzer offline ist, werden benutzerdefinierte Befehle und Standardbefehle ohne die Mscrm.IsEntityAvailableForUserInMocaOffline Aktivierungsregel nicht angezeigt.

Warnung

  • Jede Anzeigeregel des EntityPrivilegeRule-Typs mit einem PrivilegeType-Wert von einem der folgenden Werte (Create, Write, Delete, Assign, Share) wird als false ausgewertet, wenn für die Entität die Option Schreibgeschützt in Mobile aktiviert ist, wodurch die Entität erzwungen wird, nur leseberechtigungen zuzulassen. Beispiele für einige der gängigsten Standardsystemregeln, die als false ausgewertet werden, wenn das Flag Schreibgeschützt in Mobile für die Entität aktiviert ist, sind wie folgt, aber nicht nur auf diese Liste beschränkt (Mscrm.CreateSelectedEntityPermission, , Mscrm.CanSavePrimary, Mscrm.CanWritePrimary, Mscrm.WritePrimaryEntityPermissionMscrm.CanWriteSelected, Mscrm.CanDeletePrimaryMscrm.DeletePrimaryEntityPermissionMscrm.DeleteSelectedEntityPermissionMscrm.AssignSelectedEntityPermissionMscrm.WriteSelectedEntityPermission, ). Mscrm.ShareSelectedEntityPermissionMscrm.SharePrimaryPermission Sie können die Entität bearbeiten und die Option Schreibgeschützt in Mobile deaktivieren, damit diese Regeln als "true" ausgewertet werden können, vorausgesetzt, dass die von der Regel getestete Berechtigung auch dem Benutzer gewährt wird.
  • Entfernen Sie die Mscrm.HideOnModern Anzeigeregel nicht aus einem Befehl, um zu erzwingen, dass eine Schaltfläche in der einheitlichen Benutzeroberfläche angezeigt wird. Befehle, die über die Mscrm.HideOnModern Anzeigeregel verfügen, sind für die Legacy-Webclientschnittstelle vorgesehen und werden in der einheitlichen Schnittstelle nicht unterstützt und funktionieren möglicherweise nicht ordnungsgemäß.
  1. Aktivieren Sie die Befehlsüberprüfung, und wählen Sie die Zu überprüfende Befehlsschaltfläche aus.

  2. Das folgende Beispiel zeigt, dass die Schaltfläche Neu auf der Rasterseite der Kontaktentität nicht sichtbar ist und durch ein Element mit der Bezeichnung Neu (ausgeblendet) dargestellt wird.

    Hinweis

    Wenn Ihre Schaltfläche nicht aufgeführt ist, kann dies auf eine HideCustomAction-Anpassung zurückzuführen sein, die möglicherweise installiert wurde, oder der zugeordnete Befehl verfügt über eine Mscrm.HideOnModern Anzeigeregel. Zum Zeitpunkt der Erstellung dieses Leitfadens listet das Tool "Command Checker" keine Schaltflächen auf, die von einer - oder Mscrm.HideOnModern -HideCustomActionAnzeigeregel ausgeblendet wurden. Wir arbeiten derzeit daran, diese Auflistung zu erweitern, um diese Informationen in ein zukünftiges Update aufzunehmen.

    Screenshot: Schaltfläche

    Hinweis

    Wenn die Schaltfläche weiterhin ausgeblendet ist, wenn alle Regeln als True ausgewertet werden, kann dies auf kontextabhängige Befehle in Rastern zurückzuführen sein. Wenn Datensätze in einem Raster ausgewählt werden, werden alle Schaltflächen ohne Element SelectionCountRule als nicht relevant für die ausgewählten Datensätze angesehen. Und sie sind ausgeblendet, auch wenn ihre Regelauswertung True ist. Beachten Sie, dass Flyouts nicht betroffen sind, da untergeordnete Flyout-Elemente möglicherweise immer noch über datensatzbasierte Befehle verfügen.

  3. Wählen Sie die Registerkarte Befehlseigenschaften aus, um die Details des Befehls für diese Schaltfläche anzuzeigen. Dadurch werden die Aktivierungsregeln und Anzeigeregeln zusammen mit dem Ergebnis (True, False, Skipped) jeder Regelauswertung angezeigt. Im folgenden Beispiel wird der Befehl Mscrm.NewRecordFromGrid der Schaltfläche Neu (ausgeblendet) angezeigt, und es gibt eine Aktivierungsregel mit dem Namen new.contact.EnableRule.EntityRule , die auf False ausgewertet wurde. Daher wird die Schaltfläche ausgeblendet.

    Screenshot: Details der Befehlseigenschaften des Befehls für die Schaltfläche Neu (ausgeblendet)

  4. Erweitern Sie die new.contact.EnableRule.EntityRule Aktivierungsregel, indem Sie auf das Chevronsymbol klicken, um die Details der Regel anzuzeigen. Um zu verstehen, warum eine Regel als True oder False ausgewertet wird, erfordert ein wenig Verständnis des Regeltyps. Ausführliche Informationen zu den einzelnen Regeltypen finden Sie unter Definieren von Menüband-Aktivierungsregeln und Definieren von Anzeigeregeln für das Menüband. Das folgende Beispiel zeigt, dass der Regeltyp Entität und der logische Name der Entität konto lautet. Da es sich bei der aktuellen Entität um den Kontakt handelt, der nicht gleich konto ist, gibt diese Regel False zurück.

    Screenshot: Beispiel zum Anzeigen der Details der Regel

  5. Der zum Korrigieren der Sichtbarkeit einer Schaltfläche erforderliche Ansatz hängt von den verschiedenen Anpassungen in Ihrem spezifischen Szenario ab. Betrachten Sie unser Beispiel:

    • Wenn diese Regel fälschlicherweise erstellt wurde, sodass die in der Regel deklarierte Entität als Kontakt gedacht, aber auf Konto festgelegt wurde, können Sie die new.contact.EnableRule.EntityRule Aktivierungsregel bearbeiten und Änderungen vornehmen, die es der Regel ermöglichen würden, als true ausgewertet zu werden.
    • Wenn diese Regel unbeabsichtigt zum Befehl hinzugefügt wurde, können Sie den Mscrm.NewRecordFromGrid Befehl ändern und die new.contact.EnableRule.EntityRule Aktivierungsregel aus der Befehlsdefinition entfernen.
    • Wenn es sich bei dem Befehl um eine Außerkraftsetzung einer von Microsoft veröffentlichten Definition handelt, kann diese benutzerdefinierte Version des Befehls gelöscht werden, um die Standardfunktionalität wiederherzustellen.

Reparaturoptionen

Wählen Sie auf einer der folgenden Registerkarten eine Reparaturoption aus. Die erste Registerkarte ist standardmäßig ausgewählt.

Löschen eines Befehls

Wenn eine andere Lösungsebene eine Arbeitsdefinition des Befehls enthält, können Sie die Definition löschen, um die inaktive Arbeitsdefinition wiederherzustellen.

Wenn dies die einzige Ebene ist und Sie den Befehl nicht mehr benötigen, können Sie ihn aus Der Projektmappe entfernen, wenn keine andere Schaltfläche auf den Befehl verweist.

Um einen Befehl zu löschen, müssen wir ermitteln, welche Lösung die Anpassung installiert hat:

  1. Wählen Sie unter dem Befehlsnamen den Link View command definition solution layers (Projektmappenebenen anzeigen) aus, um die Projektmappen anzuzeigen, die eine Definition des Befehls installiert haben.

    Screenshot: Link

  2. Im Bereich Lösungsebenen wird die Schichtung jeder Menübandkomponentendefinition angezeigt, die eine bestimmte Lösung installiert hat. Die Ebene am Anfang der Liste ist die aktuelle Definition, die von der Anwendung verwendet wird. Die anderen Ebenen sind inaktiv und werden derzeit von der Anwendung nicht verwendet. Wenn die oberste Lösung deinstalliert oder eine aktualisierte Version installiert ist, die die Definition entfernt, wird die nächste Ebene zur aktuellen aktiven Definition, die von der Anwendung verwendet wird. Wenn eine nicht verwaltete aktive Lösungsebene vorhanden ist, ist dies immer die Definition, die von der Anwendung verwendet wird. Wenn keine aktive Lösung aufgeführt ist, ist die Lösung, die oben in der Liste aufgeführt ist, die definition, die von der Anwendung verwendet wird. Alle benutzerdefinierten verwalteten Lösungen, die nicht von Microsoft veröffentlicht werden, haben ebenfalls Vorrang vor von Microsoft veröffentlichten Lösungsebenen.

    Der Entitätskontext gibt das Objekt an, auf dem sich die Menübandanpassung befindet. Wenn "Alle Entitäten" aufgeführt ist, stammt die Ebene aus den Clienterweiterungen des Anwendungsmenübands und nicht entitätsspezifisch. Andernfalls wird der logische Name der Entität aufgeführt.

    Wenn zwei oder mehr Ebenen vorhanden sind, können Sie zwei Zeilen auswählen und Vergleichen auswählen, um einen Vergleich der definitionen anzuzeigen, die von jeder Lösung bereitgestellt werden.

    Wenn Sie Zurück auswählen, kehren Sie zum vorherigen Fenster der Befehlsüberprüfung zurück.

    Die folgende Abbildung zeigt die Lösungsebenen für den Befehl in unserem Beispiel und zeigt an, dass es eine Lösungsebene für die Kontaktentität gibt, dass es sich um eine nicht verwaltete Anpassung handelt, die durch die Projektmappe mit dem Titel Aktiv gekennzeichnet ist. Ihr tatsächliches Szenario kann abweichen. Möglicherweise verfügen Sie nicht über eine aktive Lösungsebene, Sie verfügen möglicherweise über eine verwaltete Lösung, und der Name dieser Lösung wird hier aufgeführt.

    Screenshot: Beispiel für die Lösungsebene

  3. Nachdem wir nun die Lösungsebenen überprüft und die Lösung identifiziert haben, die die Anpassung installiert hat, müssen wir die Definition in der entsprechenden Lösung korrigieren.

Wählen Sie eine der folgenden Optionen aus, die Ihrem jeweiligen Szenario entspricht:

Der Befehl befindet sich in der nicht verwalteten aktiven Projektmappe.

Um einen Befehl auf der Ebene aktiv nicht verwalteter Lösung zu löschen, exportieren wir eine nicht verwaltete Projektmappe, die die Entität oder das Anwendungsmenüband enthält, bearbeiten den <RibbonDiffXml> Knoten in der customizations.xml-Datei und importieren dann eine neue Version dieser Lösung, in der dieser Befehl entfernt wurde, um die Komponente zu löschen. Weitere Informationen finden Sie unter Exportieren, Vorbereiten der Bearbeitung und Importieren des Menübands.

Der Befehl ist entitätsspezifisch.

Basierend auf unserem Beispielszenario haben wir ermittelt, dass die Entität kontakt ist und der zu löschende Befehl ist und in der Projektmappenebene Aktiv nicht verwaltet von einem Herausgeber namens DefaultPublisherCITTest deklariert wirdMscrm.NewRecordFromGrid.

  1. Öffnen Sie Erweiterte Einstellungen.

  2. Navigieren Sie zu Einstellungen>Projektmappen.

  3. Wählen Sie Neu aus, um eine neue Projektmappe zu erstellen, und legen Sie Publisher auf den Wert fest, der in der Liste der Projektmappenebenen der Befehlsüberprüfung für den Befehl und die Aktive Projektmappenebene angezeigt wird. (In unserem Beispiel ist dies DefaultPublisherCITTest)

  4. Wählen Sie Entitäten>Vorhandene hinzufügen aus.

  5. Wählen Sie die Entität aus, für die Ihr Befehl definiert ist (in unserem Beispiel ist dies kontakt), und wählen Sie OK aus.

  6. Deaktivieren Sie die Optionen Entitätsmetadaten einschließen und Alle Ressourcen hinzufügen , bevor Sie Fertig stellen auswählen.

  7. Klicken Sie auf Speichern.

  8. Wählen Sie Projektmappe exportieren aus, und exportieren Sie die nicht verwaltete Lösung.

  9. Extrahieren Sie die .zip Datei.

  10. Öffnen Sie die dateicustomizations.xml .

  11. Suchen Sie den <Entity> untergeordneten Knoten des Entitätsknotens, den Sie bearbeiten möchten, und suchen Sie den untergeordneten <RibbonDiffXml> Knoten.

  12. Suchen Sie den <CommandDefinition> Knoten. (In unserem Beispiel lautet Mscrm.NewRecordFromGriddie ID des <CommandDefinition> Knotens , daher würden wir den folgenden Knoten suchen.)

    Screenshot: Position des CommandDefinition-Knotens

  13. Bearbeiten Sie den <RibbonDiffXml> Knoten, und entfernen Sie den bestimmten <CommandDefinition> Knoten, der über die ID des Befehls verfügt, den Sie löschen möchten. Stellen Sie sicher, dass Sie nicht versehentlich andere <CommandDefinition> Knoten löschen, die möglicherweise vorhanden sind. (Basierend auf unserem Beispiel würden wir den <CommandDefinition> Knoten löschen, in dem die ID lautet Mscrm.NewRecordFromGrid.)

    Screenshot: Löschen des CommandDefinition-Knotens

  14. Speichern Sie die customizations.xml Datei.

  15. Fügen Sie die geänderte customizations.xml-Datei wieder der Projektmappe .zip-Datei hinzu.

  16. Importieren Sie die Projektmappendatei.

  17. Wählen Sie Alle Anpassungen veröffentlichen aus.

Der Befehl befindet sich im Anwendungsmenüband (gilt für "Alle Entitäten").

Wenn der Befehl nicht entitätsspezifisch ist, sondern auf "Alle Entitäten" anwendbar ist, die im Anwendungsmenüband deklariert sind, unterscheiden sich die Schritte geringfügig wie folgt:

  1. Öffnen Sie Erweiterte Einstellungen.
  2. Navigieren Sie zu Einstellungen>Projektmappen.
  3. Wählen Sie Neu aus, um eine neue Projektmappe zu erstellen, und legen Sie Publisher auf den Wert fest, der in der Liste der Projektmappenebenen der Befehlsüberprüfung für den Befehl und die Aktive Projektmappenebene angezeigt wird.
  4. Wählen Sie Clienterweiterungen>Menübandshinzufügen> aus.
  5. Klicken Sie auf Speichern.
  6. Wählen Sie Projektmappe exportieren aus, und exportieren Sie die nicht verwaltete Lösung.
  7. Extrahieren Sie die .zip Datei.
  8. Öffnen Sie die dateicustomizations.xml .
  9. Suchen Sie den Stammknoten <RibbonDiffXml> .
  10. Suchen Sie den <CommandDefinition> Knoten.
  11. Bearbeiten Sie den <RibbonDiffXml> Knoten, und entfernen Sie den <CommandDefinition> Knoten mit der ID des Befehls, den Sie löschen möchten. Stellen Sie sicher, dass Sie nicht versehentlich andere <CommandDefinitions> Knoten löschen, die möglicherweise vorhanden sind.
  12. Speichern Sie die customizations.xml Datei.
  13. Fügen Sie die geändertecustomizations.xml-Datei wieder der komprimierten Projektmappe .zip-Datei hinzu.
  14. Importieren Sie die Projektmappendatei.
  15. Wählen Sie Alle Anpassungen veröffentlichen aus.
Der Befehl stammt aus einer benutzerdefinierten verwalteten Lösung, die von meinem Unternehmen erstellt wurde.

Führen Sie die folgenden Schritte aus, um einen Befehl zu löschen, der von einer von Ihnen erstellten benutzerdefinierten verwalteten Lösung installiert wurde:

  1. Führen Sie in Ihrem separaten Entwicklungs-organization mit der nicht verwalteten Quellversion Ihrer benutzerdefinierten Lösung die oben aufgeführten Schritte für die Option Der Befehl befindet sich in der nicht verwalteten aktiven Lösung aus.
  2. Erhöhen Sie die Version Ihrer benutzerdefinierten Lösung.
  3. Exportieren Sie die Lösung als verwaltet.
  4. Importieren Sie in Ihrem separaten betroffenen organization diese neue Version Ihrer benutzerdefinierten verwalteten Lösung.
Der Befehl stammt aus einer benutzerdefinierten verwalteten Lösung, die von meinem Unternehmen nicht erstellt wurde (von Drittanbietern/ISV).

Um einen Befehl zu löschen, der von einer benutzerdefinierten verwalteten Lösung installiert wurde, die von einem Drittanbieter/ISV erstellt wurde, müssen Sie sich an den Autor der Lösung wenden und eine neue Version der Lösung anfordern, die die spezifische Befehlsdefinition entfernt hat, und diese neue Lösung dann in Ihrem betroffenen organization installieren.