Dela via


En knapp i kommandofältet är dold när den ska visas i Power Apps

Gäller för: Power Apps
Ursprungligt KB-nummer: 4552163

Ta reda på varför en knapp är dold

En knapp kan döljas på grund av en aktiveringsregel eller visningsregel för kommandot som är associerat med knappen som utvärderar till false. Det kan vara så att det associerade kommandot har en Mscrm.HideOnModern visningsregel som döljer knappen i enhetliga gränssnittsprogram. En HideCustomAction kunde också ha skapats som skulle tvinga knappen att vara dold. Om användaren är offline visas inte anpassade kommandon och standardkommandon utan Mscrm.IsEntityAvailableForUserInMocaOffline aktiveringsregeln.

Varning

  • Alla visningsregler av typen EntityPrivilegeRule med ett PrivilegeType-värde av något av följande (Skapa, Skriva, Ta bort, Tilldela, Dela) utvärderas till falskt om entiteten har alternativet Skrivskyddad i mobil aktiverat, vilket tvingar entiteten att endast tillåta läsbehörighet . Exempel på några av de vanligaste standardsystemreglerna som utvärderas till false när flaggan Skrivskyddad i mobil är aktiverad på entiteten är följande, men inte begränsat till den här listan (Mscrm.CreateSelectedEntityPermission, , Mscrm.CanSavePrimary, Mscrm.CanWritePrimaryMscrm.CanWriteSelected, Mscrm.WritePrimaryEntityPermission, Mscrm.WriteSelectedEntityPermission, Mscrm.CanDeletePrimary, Mscrm.DeleteSelectedEntityPermissionMscrm.DeletePrimaryEntityPermission, Mscrm.AssignSelectedEntityPermission, , Mscrm.SharePrimaryPermission, ). Mscrm.ShareSelectedEntityPermission Du kan redigera entiteten och avmarkera alternativet Skrivskyddad i mobil för att tillåta att dessa regler utvärderas till true, förutsatt att behörigheten som testas av regeln också beviljas användaren.
  • Ta inte bort visningsregeln Mscrm.HideOnModern från ett kommando för att framtvinga att en knapp visas i enhetligt gränssnitt. Kommandon som har Mscrm.HideOnModern visningsregeln är avsedda för det äldre webbklientgränssnittet och stöds inte i det enhetliga gränssnittet och fungerar kanske inte korrekt.
  1. Aktivera kommandokontrollen och välj kommandoknappen som ska kontrolleras.

  2. I följande exempel visas knappen Ny på kontaktentitetens rutnätssida är inte synlig och representeras av ett objekt med etiketten Ny (dold).

    Kommentar

    Om knappen inte visas kan det bero på en HideCustomAction-anpassning som kan ha installerats eller på att det associerade kommandot har en Mscrm.HideOnModern visningsregel. När den här guiden skrivs listar inte kommandokontrollverktyget knappar som har dolts av en HideCustomAction regel eller Mscrm.HideOnModern visningsregel. Vi arbetar för närvarande med att utöka den här listan för att inkludera den här informationen i en framtida uppdatering.

    Skärmbild som visar knappen Ny på kontaktentitetens rutnätssida är inte synlig och representeras av ett objekt med etiketten Ny (dold).

    Kommentar

    Om knappen fortfarande är dold när alla regler utvärderas till Sant kan det bero på kontextkänsliga kommandon i rutnät. När poster väljs i ett rutnät anses alla knappar utan element SelectionCountRule inte vara relevanta för de valda posterna. Och de är dolda även om deras regelutvärdering är True. Observera att utfällbara objekt inte påverkas eftersom utfällbara underordnade objekt fortfarande kan ha postbaserade kommandon.

  3. Välj fliken Kommandoegenskaper för att visa information om kommandot för den här knappen. Detta visar aktivera regler och visningsregler, tillsammans med resultatet (Sant, Falskt, Hoppas över) för varje regelutvärdering. I följande exempel visas kommandot Mscrm.NewRecordFromGrid Ny (dold) och det finns en aktiveringsregel med namnet new.contact.EnableRule.EntityRule som har utvärderats till False. Därför döljs knappen.

    Skärmbild som visar information om kommandoegenskaper för kommandot för knappen Ny (dold).

  4. new.contact.EnableRule.EntityRule Expandera aktiveringsregeln genom att välja på sparrikonen för att visa information om regeln. För att förstå varför en regel utvärderas till Sant eller Falskt krävs lite förståelse för typen av regel. Mer information om varje typ av regel finns i Definiera regler för att aktivera menyfliksområdet och Definiera visningsregler för menyfliksområdet. I följande exempel visas att regeltypen är Entitet och entitetens logiska namn är konto. Eftersom den aktuella entiteten är kontakt, som inte är lika med kontot, returnerar den här regeln Falskt.

    Skärmbild som visar ett exempel för att visa information om regeln.

  5. Vilken metod som krävs för att åtgärda en knapps synlighet beror på de olika anpassningarna i ditt specifika scenario. Med tanke på vårt exempel:

    • Om den här regeln skapades felaktigt, så att entiteten som deklarerades i regeln var avsedd att vara kontakt men var inställd på konto, kan du redigera new.contact.EnableRule.EntityRule aktiveringsregeln och göra ändringar som gör att regeln kan utvärderas till true.
    • Om den här regeln lades till i kommandot oavsiktligt kan du ändra Mscrm.NewRecordFromGrid kommandot och ta bort new.contact.EnableRule.EntityRule aktiveringsregeln från kommandodefinitionen.
    • Om kommandot är en åsidosättning av en Microsoft-publicerad definition kan den här anpassade versionen av kommandot tas bort för att återställa standardfunktionerna.

Reparationsalternativ

Välj ett reparationsalternativ på någon av flikarna nedan. Den första fliken är markerad som standard.

Så här tar du bort ett kommando

Om det finns ett annat lösningslager som innehåller en fungerande definition av kommandot kan du ta bort definitionen för att återställa den inaktiva arbetsdefinitionen.

Om det här är det enda lagret och du inte längre behöver kommandot kan du ta bort det från lösningen om ingen annan knapp refererar till kommandot.

För att kunna ta bort ett kommando måste vi ta reda på vilken lösning som installerade anpassningen:

  1. Välj länken Visa kommandodefinitionslösningslager under kommandonamnet för att visa de lösningar som installerade en definition av kommandot.

    Skärmbild av länken Visa kommandodefinitionslösningslager under ett kommandonamn.

  2. Fönstret Lösningslager visar skiktningen för varje komponentdefinition i menyfliksområdet som en viss lösning har installerat. Lagret överst i listan är den aktuella definitionen som används av programmet, de andra lagren är inaktiva och används inte av programmet just nu. Om den översta lösningen avinstalleras eller en uppdaterad version installeras som tar bort definitionen blir nästa lager den aktuella aktiva definitionen som används av programmet. När det finns ett ohanterat aktivt lösningslager är det alltid den definition som programmet använder. Om det inte finns någon aktiv lösning i listan är lösningen överst i listan den definition som används av programmet. Alla anpassade hanterade lösningar som inte publiceras av Microsoft har också företräde framför Microsofts publicerade lösningslager.

    Entitetskontexten anger det objekt som menyfliksområdets anpassning är på, om "Alla entiteter" visas, kommer lagret från programfliksområdets klienttillägg och inte entitetsspecifika, annars visas det logiska namnet på entiteten.

    När det finns två eller flera skikt kan du välja två rader och välja Jämför för att visa en jämförelse av de definitioner som ingår i varje lösning.

    Om du väljer Tillbaka återgår du till föregående kommandokontrollfönster.

    Följande bild visar lösningsskikten för kommandot i vårt exempel och anger att det finns ett lösningslager för kontaktentiteten som det är en ohanterad anpassning som anges av lösningen med namnet Aktiv. Ditt faktiska scenario kan skilja sig, du kanske inte har ett aktivt lösningslager, du kan ha en hanterad lösning och namnet på den lösningen visas här.

    Skärmbild som visar ett exempel på lösningsskiktet.

  3. Nu när vi har granskat lösningsskikten och identifierat lösningen som installerade anpassningen måste vi åtgärda definitionen i rätt lösning.

Välj något av följande alternativ som matchar ditt specifika scenario:

Kommandot finns i den ohanterade aktiva lösningen

Om du vill ta bort ett kommando i det aktiva ohanterade lösningsskiktet exporterar vi en ohanterad lösning som innehåller entiteten eller programfliksområdet och redigerar <RibbonDiffXml> noden i filen customizations.xml och importerar sedan en ny version av den här lösningen där kommandot har tagits bort för att ta bort komponenten. Se Exportera, förbered för att redigera och importera menyfliksområdet.

Kommandot är entitetsspecifikt

Baserat på vårt exempelscenario identifierade vi att entiteten är kontakt och kommandot som måste tas bort är Mscrm.NewRecordFromGrid och det deklareras i det aktiva ohanterade lösningsskiktet från en utgivare med namnet DefaultPublisherCITTest.

  1. Öppna Avancerade inställningar.

  2. Navigera till Inställningar>Lösningar.

  3. Välj Ny för att skapa en ny lösning, ange Publisher till det värde som visas i listan över kommandokontrollistans lösningslager för kommandot och det aktiva lösningsskiktet. (I vårt exempel är dettaDefaultPublisherCITTest)

  4. Välj Entiteter>Lägg till befintlig.

  5. Välj den entitet som kommandot har definierats på (i vårt exempel är det här kontakten) och välj OK.

  6. Kontrollera att du avmarkerar alternativen Inkludera entitetsmetadata och Lägg till alla tillgångar innan du väljer Slutför.

  7. Välj Spara.

  8. Välj Exportera lösning och exportera den ohanterade lösningen.

  9. Extrahera zip-filen.

  10. Öppna filen customizations.xml .

  11. Leta upp nod underordnad <Entity> den entitetsnod som du vill redigera och leta upp dess underordnade <RibbonDiffXml> nod.

  12. <CommandDefinition> Leta upp noden. (I vårt exempel är Mscrm.NewRecordFromGridID för <CommandDefinition> noden , så vi skulle leta upp följande nod)

    Skärmbild som visar platsen för noden CommandDefinition.

  13. <RibbonDiffXml> Redigera noden och ta bort den specifika <CommandDefinition> nod som har ID:t för det kommando som du vill ta bort. Se till att du inte oavsiktligt tar bort andra <CommandDefinition> noder som kan finnas. (Baserat på vårt exempel skulle vi ta bort noden <CommandDefinition> där ID:t är Mscrm.NewRecordFromGrid.)

    Skärmbild för att ta bort noden CommandDefinition.

  14. Spara filen customizations.xml .

  15. Lägg till den ändrade customizations.xml filen i lösningen .zip fil.

  16. Importera lösningsfilen.

  17. Välj Publicera alla anpassningar.

Kommandot finns i menyfliksområdet Program (gäller för "Alla entiteter")

Om kommandot inte är entitetsspecifikt, snarare gäller det för "Alla entiteter" som deklareras i programfliksområdet, så kommer stegen att skilja sig något på följande sätt:

  1. Öppna Avancerade inställningar.
  2. Navigera till Inställningar>Lösningar.
  3. Välj Ny för att skapa en ny lösning, ange Publisher till det värde som visas i listan över kommandokontrollistans lösningslager för kommandot och det aktiva lösningsskiktet.
  4. Välj Klienttillägg>Lägg till befintliga>programflikar.
  5. Välj Spara.
  6. Välj Exportera lösning och exportera den ohanterade lösningen.
  7. Extrahera zip-filen.
  8. Öppna filen customizations.xml .
  9. Leta upp rotnoden <RibbonDiffXml> .
  10. <CommandDefinition> Leta upp noden.
  11. <RibbonDiffXml> Redigera noden och ta bort noden <CommandDefinition> som har ID:t för det kommando som du vill ta bort. Se till att du inte oavsiktligt tar bort andra <CommandDefinitions> noder som kan finnas.
  12. Spara filen customizations.xml .
  13. Lägg till den ändrade customizations.xml filen i den komprimerade lösningen .zip fil.
  14. Importera lösningsfilen.
  15. Välj Publicera alla anpassningar.
Kommandot kommer från en anpassad hanterad lösning som mitt företag har skapat

Följ dessa steg om du vill ta bort ett kommando som installerades av en anpassad hanterad lösning som du skapade:

  1. I din separata utvecklingsorganisation som har den ohanterade källversionen av din anpassade lösning slutför du stegen ovan för kommandot är i alternativet ohanterad aktiv lösning .
  2. Öka versionen av din anpassade lösning.
  3. Exportera lösningen som hanterad.
  4. I din separata berörda organisation importerar du den här nya versionen av din anpassade hanterade lösning.
Kommandot kommer från en anpassad hanterad lösning som mitt företag inte skapade (från tredje part/ISV)

Om du vill ta bort ett kommando som har installerats av en anpassad hanterad lösning som har skapats av en tredje part/ISV måste du kontakta lösningens författare och begära en ny version av lösningen som har tagit bort den specifika kommandodefinitionen och sedan installera den nya lösningen i din berörda organisation.