Freigeben über


Eine Schaltfläche auf der Befehlsleiste ist sichtbar, wenn sie ausgeblendet werden soll.

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

Ermitteln, warum eine Schaltfläche sichtbar ist

Eine Schaltfläche wird angezeigt, wenn alle Aktivierungsregeln und Anzeigeregeln für den Befehl angezeigt werden, der der Schaltfläche zugeordnet ist, auf "true" ausgewertet wird. Wenn dies unerwartet ist, ist es möglich, dass die Befehlsdefinition überschrieben wurde und keine Aktivierungsregeln oder Anzeigeregeln fehlt, oder die Regeldefinitionen selbst werden überschrieben und die Schaltfläche sichtbar, wenn Sie erwarten, dass sie ausgeblendet wird.

Notiz

Einige Schaltflächen können nicht angepasst werden. Weitere Informationen finden Sie unter Nicht anpassbare Schaltflächen im Menüband.

Warnung

Entfernen Sie die Mscrm.HideOnModern Anzeigeregel nicht aus einem Befehl, um zu erzwingen, dass eine Schaltfläche in der Unified Interface angezeigt wird. Befehle mit der Mscrm.HideOnModern Anzeigeregel sind für die ältere Webclientschnittstelle vorgesehen und werden in der Unified Interface nicht unterstützt und funktionieren möglicherweise nicht ordnungsgemäß.

  1. Aktivieren Sie die Befehlsüberprüfung, und wählen Sie die zu prüfende Befehlsschaltfläche aus.

  2. Das folgende Beispiel zeigt zwei Terminschaltflächen auf der Aktivitätsrasterseite, und es wird erwartet, dass eine Schaltfläche ausgeblendet wird.

    Screenshot zeigt zwei Schaltflächen

  3. Wählen Sie die Registerkarte "Befehlseigenschaften " aus, um die Details des Befehls für diese Schaltfläche anzuzeigen. Dadurch werden die Aktionen, das Aktivieren von Regeln und die Anzeigeregeln zusammen mit dem Ergebnis (True, False, Übersprungen) jeder Regelauswertung angezeigt. Überprüfen Sie die Aktivierungsregeln und anzeigeregeln, wenn Sie erwarten, dass eine bestimmte Regel auf "false" ausgewertet werden soll, ist es möglich, dass die Regel falsch angepasst ist oder die erforderlichen Umstände, um ein falsches Ergebnis zurückzugeben, nicht erfüllt sind. Wenn ja, fahren Sie mit Schritt 9 fort, andernfalls ist es möglich, dass der Befehl eine Regel oder Regeln enthält und wir die Befehlslösungsebenen zur weiteren Analyse anzeigen.

    Screenshot, um die Registerkarte

  4. Wählen Sie unter dem Befehlsnamen den Link "Ansichtsbefehlsdefinitionslösungsebenen " aus, um die Lösung(en) anzuzeigen, die eine Definition des Befehls installiert haben.

    Screenshot des Links

  5. Im Bereich "Lösungsebenen" wird die Schichtung jeder Menübandkomponentendefinition angezeigt, die eine bestimmte Lösung installiert hat. Die Ebene oben in der Liste ist die aktuelle Definition, die von der Anwendung verwendet wird, die anderen Ebenen sind inaktiv und werden derzeit nicht von der Anwendung verwendet. Wenn die oberste Lösung deinstalliert wird oder eine aktualisierte Version installiert wird, 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 sie immer die Definition, die die Anwendung verwendet. Wenn keine aktive Lösung aufgeführt ist, wird die oben in der Liste aufgeführte Lösung die von der Anwendung verwendete Definition sein. Alle benutzerdefinierten verwalteten Lösungen, die von Microsoft nicht veröffentlicht werden, haben auch Vorrang vor den von Microsoft veröffentlichten Lösungsebenen.

    Der Entitätskontext gibt an, dass das Objekt, auf dem das Menüband angepasst wird, aktiviert ist, wenn "Alle Entitäten" aufgeführt ist, die Ebene aus den Clienterweiterungen des Anwendungsmenübands stammt und nicht entitätsspezifisch ist, andernfalls wird der logische Name der Entität aufgelistet.

    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 Befehlsdetektivfenster zurück.

    Wenn nur eine Lösungsebene vorhanden ist, fahren Sie mit Schritt 9 fort, andernfalls wählen Sie die beiden obersten Lösungsebenen aus (Wenn Sie über eine Ebene in der aktiven Lösung verfügen, sie aber nicht oben aufgeführt ist, wählen Sie die aktive Lösungsebene und dann die oberste Zeile aus), und wählen Sie "Vergleichen" aus.

    Screenshot, um die beiden obersten Lösungsebenen auszuwählen und die Option

  6. Der Vergleich der aktuellen aktiven Definition und der vorherigen inaktiven Definition wird angezeigt, wenn vorhanden. Das folgende Beispiel zeigt die nicht verwaltete Active-Definition, die mit dem Entfernen einer Anzeigeregel Mscrm.HideOnModern angepasst wurde, die in der inaktiven msdynce_ActivitiesPatch microsoft veröffentlichten Lösungsschicht enthalten ist.

    Screenshot zeigt den Vergleich der aktuellen aktiven Definition und der vorherigen inaktiven Definition.

  7. Der Zum Beheben der Sichtbarkeit einer Schaltfläche erforderliche Ansatz hängt von den verschiedenen Anpassungen in Ihrem spezifischen Szenario ab. Wenn Sie festgestellt haben, dass eine Regel fälschlicherweise auf "false" ausgewertet wird und die Regeldefinition falsch definiert ist, sollten Sie die Regeldefinition ändern und Änderungen vornehmen, die es der Regel ermöglichen, unter den richtigen Umständen als falsch ausgewertet zu werden. Wenn die Regeldefinition korrekt ist, ist es möglich, dass die Anforderungen, die die Regelrückgabe "false" machen würden, nicht erfüllt sind, z. B. ein Feldwert oder Sicherheitsberechtigungen, nicht ordnungsgemäß zugewiesen werden. Je nach Regeldefinition können die Anforderungen stark variieren, unter Definieren von Menüband-Aktivierungsregeln und Menübandanzeigeregeln definieren. In Anbetracht unseres Beispiels wurde der Befehl mit der Entfernung einer Mscrm.HideOnModern Anzeigeregel angepasst. Diese Anzeigeregel soll diese bestimmte Schaltfläche ausblenden, die in Unified Interface-Anwendungen angezeigt wird und nur in der älteren Webclientschnittstelle sichtbar ist. Wir könnten die benutzerdefinierte Version des Befehls ändern und die Mscrm.HideOnModern fehlende Anzeigeregel zur Befehlsdefinition hinzufügen. Da es sich um eine benutzerdefinierte Außerkraftsetzung einer von Microsoft veröffentlichten Definition handelt und es keine anderen beabsichtigten Änderungen gibt, wird empfohlen, dass diese benutzerdefinierte Version des Befehls gelöscht wird, um die Standardfunktionalität wiederherzustellen.

Reparaturoptionen

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

So löschen Sie einen Befehl

Wenn eine andere Lösungsebene vorhanden ist, die eine funktionierende Definition dieses Befehls enthält, können Sie diese Definition löschen, um die nächste inaktive Arbeitsdefinition wiederherzustellen.

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

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

Der Befehl befindet sich in der nicht verwalteten aktiven Lösung.

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

Der Befehl ist entitätsspezifisch.

Basierend auf unserem Beispielszenario haben wir festgestellt, dass die Entität "Activitypointer" ist und der Befehl, der gelöscht werden muss, in der Aktiven nicht verwalteten Lösungsebene aus einem Herausgeber namens DefaultPublisherCITTest deklariert istMscrm.CreateAppointment.

  1. Öffnen Sie erweiterte Einstellungen.

  2. Navigieren Sie zu "Einstellungen ->Lösungen".

  3. Wählen Sie "Neu" aus, um eine neue Lösung zu erstellen, legen Sie Publisher auf den Wert fest, der in den Lösungsebenen der Befehlsprüfung für den Befehl und die Aktive Lösungsebene angezeigt wird. (In unserem Beispiel ist diesDefaultPublisherCITTest).

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

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

  6. Deaktivieren Sie die Option Entitätsmetadaten einschließen, und deaktivieren Sie die Option "Alle Ressourcenoptionen hinzufügen", bevor Sie "Fertig stellen" auswählen.

  7. Wählen Sie Speichern.

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

  9. Extrahieren Sie die ZIP-Datei.

  10. Öffnen Sie die datei customizations.xml .

  11. Suchen Sie das <Entity> untergeordnete 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.CreateAppointmentdie ID des <CommandDefinition> Knotens, sodass wir den folgenden Knoten finden würden).

    Der Screenshot zeigt den Speicherort des CommandDefinition-Knotens.

  13. Bearbeiten Sie den <RibbonDiffXml> Knoten, und entfernen Sie den spezifischen <CommandDefinition> Knoten mit der ID des Befehls, den Sie löschen möchten. Stellen Sie sicher, dass Sie nicht unbeabsichtigt 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 angegeben ist Mscrm.CreateAppointment.)

    Screenshot zeigt ein Beispiel zum Löschen des CommandDefinition-Knotens.

  14. Speichern Sie die customizations.xml Datei.

  15. Fügen Sie die geänderte customizations.xml Datei wieder zur Lösung .zip Datei hinzu.

  16. Die Lösungsdatei importieren.

  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>Lösungen
  3. Wählen Sie "Neu" aus, um eine neue Lösung zu erstellen, legen Sie Publisher auf den Wert fest, der in den Lösungsebenen der Befehlsprüfung für den Befehl und die Aktive Lösungsebene angezeigt wird.
  4. Wählen Sie "Clienterweiterungen>" aus, um vorhandene>Anwendungsmenübänder hinzuzufügen.
  5. Wählen Sie Speichern.
  6. Wählen Sie "Lösung exportieren" aus, und exportieren Sie die nicht verwaltete Lösung.
  7. Extrahieren Sie die ZIP-Datei.
  8. Öffnen Sie die datei customizations.xml .
  9. Suchen Sie den Stammknoten <RibbonDiffXml> .
  10. Suchen Sie die <CommandDefinition>.
  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 unbeabsichtigt andere <CommandDefinition> Knoten löschen, die möglicherweise vorhanden sind.
  12. Speichern Sie die customizations.xml Datei.
  13. Fügen Sie die geänderte customizations.xml Datei wieder zur komprimierten Lösung .zip Datei hinzu.
  14. Die Lösungsdatei importieren.
  15. Wählen Sie Alle Anpassungen veröffentlichen aus.
Der Befehl stammt aus einer benutzerdefinierten verwalteten Lösung, die mein Unternehmen erstellt hat

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 Ihrer separaten Entwicklungsorganisation mit der nicht verwalteten Quellversion Ihrer benutzerdefinierten Lösung die oben aufgeführten Schritte für den Befehl in der Option "Nicht verwaltete aktive 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 Ihrer separaten betroffenen Organisation diese neue Version Ihrer benutzerdefinierten verwalteten Lösung.
Der Befehl stammt aus einer benutzerdefinierten verwalteten Lösung, die mein Unternehmen nicht erstellt hat (von Drittanbieter/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 dann diese neue Lösung in Ihrer betroffenen Organisation installieren.