Delen via


Een knop op de opdrachtbalk is verborgen wanneer deze zichtbaar moet zijn in Power Apps

Van toepassing op: Power Apps
Origineel KB-nummer: 4552163

Bepalen waarom een knop verborgen is

Een knop kan worden verborgen vanwege een regel voor inschakelen of weergeven van de opdracht die is gekoppeld aan de knop die wordt geëvalueerd als onwaar. Het kan zijn dat de bijbehorende opdracht een Mscrm.HideOnModern weergaveregel bevat die de knop in Unified Interface-toepassingen verbergt. Er kan ook een HideCustomAction zijn gemaakt waardoor de knop wordt verborgen. Als de gebruiker offline is, worden aangepaste opdrachten en standaardopdrachten zonder de Mscrm.IsEntityAvailableForUserInMocaOffline regel voor inschakelen niet weergegeven.

Waarschuwing

  • Elke weergaveregel van het type EntityPrivilegeRule met een PrivilegeType-waarde van een van de volgende (Maken, Schrijven, Verwijderen, Toewijzen, Delen) wordt als onwaar geëvalueerd als de entiteit de optie Alleen-lezen in mobiel heeft ingeschakeld, waardoor de entiteit alleen leesbevoegdheden toestaat. Voorbeelden van enkele van de meest voorkomende standaardsysteemregels die als onwaar worden geëvalueerd wanneer de vlag Alleen-lezen in mobiel is ingeschakeld voor de entiteit, zijn als volgt, maar niet beperkt tot deze lijst (Mscrm.CreateSelectedEntityPermission, Mscrm.CanSavePrimary, Mscrm.CanWritePrimary, Mscrm.CanWriteSelected, Mscrm.WritePrimaryEntityPermission, Mscrm.WriteSelectedEntityPermission, Mscrm.CanDeletePrimary, , Mscrm.DeleteSelectedEntityPermissionMscrm.DeletePrimaryEntityPermission, , Mscrm.AssignSelectedEntityPermission, Mscrm.SharePrimaryPermission). Mscrm.ShareSelectedEntityPermission U kunt de entiteit bewerken en de optie Alleen-lezen in mobiel uitschakelen om toe te laten dat deze regels waar zijn, mits de bevoegdheid die door de regel wordt getest, ook aan de gebruiker wordt verleend.
  • Verwijder de Mscrm.HideOnModern weergaveregel niet uit een opdracht om af te dwingen dat een knop wordt weergegeven in de Unified Interface. Opdrachten met de Mscrm.HideOnModern weergaveregel zijn bedoeld voor de verouderde webclientinterface en worden niet ondersteund in de Unified Interface en werken mogelijk niet correct.
  1. Schakel Opdrachtcontrole in en selecteer de opdrachtknop om te controleren.

  2. In het volgende voorbeeld ziet u dat de knop Nieuw op de rasterpagina van de entiteit contactpersoon niet zichtbaar is en wordt vertegenwoordigd door een item met het label Nieuw (verborgen).

    Opmerking

    Als uw knop niet wordt weergegeven, kan dit worden veroorzaakt door een aanpassing van HideCustomAction die mogelijk is geïnstalleerd, of de bijbehorende opdracht heeft een Mscrm.HideOnModern weergaveregel. Op het moment dat u deze handleiding schrijft, bevat het hulpprogramma Opdrachtcontrole geen knoppen die zijn verborgen door een HideCustomAction of-weergaveregel Mscrm.HideOnModern . We werken momenteel aan het uitbreiden van deze vermelding om deze informatie op te nemen in een toekomstige update.

    Schermopname van de knop Nieuw op de rasterpagina van de entiteit contactpersoon is niet zichtbaar en wordt vertegenwoordigd door een item met het label Nieuw (verborgen).

    Opmerking

    Als de knop nog steeds verborgen is wanneer alle regels waar zijn, kan dit worden veroorzaakt door contextgevoelige opdrachten in rasters. Wanneer records in een raster worden geselecteerd, worden alle knoppen zonder element SelectionCountRule beschouwd als niet relevant voor de geselecteerde records. En ze zijn verborgen, zelfs als hun regelevaluatie Waar is. Houd er rekening mee dat flyouts niet worden beïnvloed, omdat flyout-kinderen mogelijk nog steeds opdrachten op basis van records hebben.

  3. Selecteer het tabblad Opdrachteigenschappen om de details van de opdracht voor deze knop weer te geven. Hiermee worden de inschakelen- en weergaveregels weergegeven, samen met het resultaat (Waar, Onwaar, Overgeslagen) van elke regelevaluatie. In het volgende voorbeeld ziet u de opdracht Mscrm.NewRecordFromGrid Van de knop Nieuw (verborgen) en is er een inschakelingsregel met de naam new.contact.EnableRule.EntityRuleOnwaar, waardoor de knop wordt verborgen.

    Schermopname van de details van de opdrachteigenschappen van de opdracht voor de knop Nieuw (verborgen).

  4. Vouw de new.contact.EnableRule.EntityRule regel inschakelen uit door op het punthaakpictogram te selecteren om de details van de regel weer te geven. Om te begrijpen waarom een regel waar of Onwaar wordt geëvalueerd, is een beetje inzicht nodig in het type regel. Zie Regels voor inschakelen op het lint definiëren en Weergaveregels voor lint definiëren voor meer informatie over elk type regel. In het volgende voorbeeld ziet u dat het regeltype Entiteit is en de logische naam van de entiteit account is. Omdat de huidige entiteit contactpersoon is, wat niet gelijk is aan account, retourneert deze regel Onwaar.

    Schermopname van een voorbeeld om de details van de regel weer te geven.

  5. De aanpak die nodig is om de zichtbaarheid van een knop te herstellen, is afhankelijk van de verschillende aanpassingen in uw specifieke scenario. Gezien ons voorbeeld:

    • Als deze regel ten onrechte is gemaakt, zodat de entiteit die in de regel is gedeclareerd, bedoeld is als contactpersoon , maar is ingesteld op account, kunt u de new.contact.EnableRule.EntityRule inschakelingsregel bewerken en wijzigingen aanbrengen waarmee de regel waar kan worden geëvalueerd.
    • Als deze regel onbedoeld aan de opdracht is toegevoegd, kunt u de Mscrm.NewRecordFromGrid opdracht wijzigen en de new.contact.EnableRule.EntityRule regel voor inschakelen verwijderen uit de opdrachtdefinitie.
    • Als de opdracht een onderdrukking is van een door Microsoft gepubliceerde definitie, kan deze aangepaste versie van de opdracht worden verwijderd om de standaardfunctionaliteit te herstellen.

Herstelopties

Selecteer een reparatieoptie op een van de onderstaande tabbladen. Het eerste tabblad is standaard geselecteerd.

Een opdracht verwijderen

Als er een andere oplossingslaag is die een werkende definitie van de opdracht bevat, kunt u de definitie verwijderen om de inactieve werkdefinitie te herstellen.

Als dit de enige laag is en u de opdracht niet meer nodig hebt, kunt u deze verwijderen uit uw oplossing als er geen andere knop naar de opdracht verwijst.

Als u een opdracht wilt verwijderen, moeten we bepalen welke oplossing de aanpassing heeft geïnstalleerd:

  1. Selecteer de koppeling Oplossingslagen voor opdrachtdefinities weergeven onder de opdrachtnaam om de oplossing(en) weer te geven die een definitie van de opdracht hebben geïnstalleerd.

    Schermopname van de koppeling Oplossingslagen voor opdrachtdefinities weergeven onder een opdrachtnaam.

  2. In het deelvenster Oplossingslagen worden de lagen weergegeven van elke lintonderdeeldefinitie die door een bepaalde oplossing is geïnstalleerd. De laag boven aan de lijst is de huidige definitie die wordt gebruikt door de toepassing, de andere lagen zijn inactief en worden momenteel niet door de toepassing gebruikt. Als de belangrijkste oplossing wordt verwijderd of als er een bijgewerkte versie is geïnstalleerd waarmee de definitie wordt verwijderd, wordt de volgende laag de huidige actieve definitie die door de toepassing wordt gebruikt. Wanneer een onbeheerde actieve oplossingslaag aanwezig is, is dit altijd de definitie die de toepassing gebruikt. Als er geen Actieve oplossing wordt vermeld, is de oplossing bovenaan de lijst de definitie die door de toepassing wordt gebruikt. Aangepaste beheerde oplossingen die niet door Microsoft zijn gepubliceerd, hebben ook voorrang op door Microsoft gepubliceerde oplossingslagen.

    De entiteitscontext geeft aan op welk object de lintaanpassing zich bevindt. Als 'Alle entiteiten' wordt vermeld, is de laag afkomstig van de clientextensies van het toepassingslint en niet entiteitsspecifiek, anders wordt de logische naam van de entiteit weergegeven.

    Als er twee of meer lagen zijn, kunt u twee rijen selecteren en Vergelijken selecteren om een vergelijking weer te geven van de definities die door elke oplossing worden gebruikt.

    Als u Terug selecteert, keert u terug naar het vorige opdrachtcontrolevenster.

    In de volgende afbeelding ziet u de oplossingslagen voor de opdracht in ons voorbeeld en wordt aangegeven dat er een oplossingslaag voor de entiteit contact is dat het een onbeheerde aanpassing is, zoals aangegeven door de oplossing met de naam Actief. Uw werkelijke scenario kan verschillen, u hebt mogelijk geen actieve oplossingslaag, u hebt mogelijk een beheerde oplossing en de naam van die oplossing wordt hier vermeld.

    Schermopname van een voorbeeld van de oplossingslaag.

  3. Nu we de oplossingslagen hebben bekeken en de oplossing hebben geïdentificeerd die de aanpassing heeft geïnstalleerd, moeten we de definitie in de juiste oplossing oplossen.

Selecteer een van de volgende opties die overeenkomen met uw specifieke scenario:

De opdracht bevindt zich in de onbeheerde actieve oplossing

Als u een opdracht in de laag Actieve onbeheerde oplossing wilt verwijderen, exporteren we een onbeheerde oplossing met de entiteit of het toepassingslint en bewerken we het <RibbonDiffXml> knooppunt in het customizations.xml-bestand en importeren we vervolgens een nieuwe versie van deze oplossing waarbij deze opdracht is verwijderd om het onderdeel te verwijderen. Zie Het lint exporteren, bewerken voorbereiden en importeren.

De opdracht is entiteitsspecifiek

Op basis van ons voorbeeldscenario hebben we vastgesteld dat de entiteit contactpersoon is en dat de opdracht die moet worden verwijderd, is Mscrm.NewRecordFromGrid en wordt gedeclareerd in de laag Actieve onbeheerde oplossing van een uitgever met de naam DefaultPublisherCITTest.

  1. Open Geavanceerde instellingen.

  2. Ga naar Oplossingen voor instellingen>.

  3. Selecteer Nieuw om een nieuwe oplossing te maken, stel Publisher in op de waarde die wordt weergegeven in de oplossingslagen van opdrachtcontrole voor de opdracht en de actieve oplossingslaag. (In ons voorbeeld is dit DefaultPublisherCITTest)

  4. Selecteer Entiteiten>Bestaande toevoegen.

  5. Selecteer de entiteit waarop uw opdracht is gedefinieerd (in ons voorbeeld is dit contactpersoon) en selecteer OK.

  6. Schakel de opties Entiteitsmetagegevens opnemen en Alle assets toevoegen uit voordat u Voltooien selecteert.

  7. Kies Opslaan.

  8. Selecteer Oplossing exporteren en exporteer de onbeheerde oplossing.

  9. Pak het .zip-bestand uit.

  10. Open het customizations.xml-bestand .

  11. Zoek het <Entity> onderliggende knooppunt van het entiteitsknooppunt dat u wilt bewerken en zoek het onderliggende <RibbonDiffXml> knooppunt.

  12. Zoek het <CommandDefinition> knooppunt. (In ons voorbeeld is Mscrm.NewRecordFromGridde id van het <CommandDefinition> knooppunt , zodat we het volgende knooppunt zoeken)

    Schermopname van de locatie van het knooppunt CommandDefinition.

  13. Bewerk het <RibbonDiffXml> knooppunt en verwijder het specifieke <CommandDefinition> knooppunt met de id van de opdracht die u wilt verwijderen. Zorg ervoor dat u niet onbedoeld andere <CommandDefinition> knooppunten verwijdert die mogelijk aanwezig zijn. (Op basis van ons voorbeeld verwijderen we het knooppunt waarin de <CommandDefinition> id zich bevindt Mscrm.NewRecordFromGrid.)

    Schermopname om het knooppunt CommandDefinition te verwijderen.

  14. Sla het customizations.xml-bestand op.

  15. Voeg het gewijzigde customizations.xml-bestand weer toe aan het oplossingsbestand .zip.

  16. Importeer het oplossingsbestand.

  17. Selecteer Alle aanpassingen publiceren.

De opdracht bevindt zich op het toepassingslint (van toepassing op 'Alle entiteiten')

Als de opdracht niet entiteitsspecifiek is, maar van toepassing is op 'Alle entiteiten' die zijn gedeclareerd op het toepassingslint, zijn de stappen als volgt enigszins anders:

  1. Open Geavanceerde instellingen.
  2. Ga naar Oplossingen voor instellingen>.
  3. Selecteer Nieuw om een nieuwe oplossing te maken, stel Publisher in op de waarde die wordt weergegeven in de oplossingslagen van opdrachtcontrole voor de opdracht en de actieve oplossingslaag.
  4. Selecteer Clientextensies>Bestaande>toepassingslinten toevoegen.
  5. Kies Opslaan.
  6. Selecteer Oplossing exporteren en exporteer de onbeheerde oplossing.
  7. Pak het .zip-bestand uit.
  8. Open het customizations.xml-bestand .
  9. Zoek het hoofdknooppunt <RibbonDiffXml> .
  10. Zoek het <CommandDefinition> knooppunt.
  11. Bewerk het <RibbonDiffXml> knooppunt en verwijder het <CommandDefinition> knooppunt met de id van de opdracht die u wilt verwijderen. Zorg ervoor dat u niet onbedoeld andere <CommandDefinitions> knooppunten verwijdert die mogelijk aanwezig zijn.
  12. Sla het customizations.xml-bestand op.
  13. Voeg het gewijzigde customizations.xml-bestand weer toe aan de gecomprimeerde oplossing .zip bestand.
  14. Importeer het oplossingsbestand.
  15. Selecteer Alle aanpassingen publiceren.
De opdracht is afkomstig van een aangepaste beheerde oplossing die door mijn bedrijf is geschreven

Voer de volgende stappen uit om een opdracht te verwijderen die is geïnstalleerd door een aangepaste beheerde oplossing die u hebt gemaakt:

  1. Voer in uw afzonderlijke ontwikkelingsorganisatie met de onbeheerde bronversie van uw aangepaste oplossing de bovenstaande stappen uit voor de optie De opdracht bevindt zich in de onbeheerde actieve oplossing .
  2. Verhoog de versie van uw aangepaste oplossing.
  3. Oplossing exporteren als beheerd.
  4. Importeer in uw afzonderlijke betrokken organisatie deze nieuwe versie van uw aangepaste beheerde oplossing.
De opdracht is afkomstig van een aangepaste beheerde oplossing die mijn bedrijf niet heeft gemaakt (van derden/ISV)

Als u een opdracht wilt verwijderen die is geïnstalleerd door een aangepaste beheerde oplossing die is gemaakt door een externe/ISV, moet u contact opnemen met de auteur van de oplossing en een nieuwe versie van de oplossing aanvragen die de specifieke opdrachtdefinitie heeft verwijderd en deze nieuwe oplossing vervolgens installeren in uw betrokken organisatie.