Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.CanWritePrimary
Mscrm.CanWriteSelected
,Mscrm.WritePrimaryEntityPermission
,Mscrm.WriteSelectedEntityPermission
,Mscrm.CanDeletePrimary
,Mscrm.DeleteSelectedEntityPermission
Mscrm.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 harMscrm.HideOnModern
visningsregeln är avsedda för det äldre webbklientgränssnittet och stöds inte i det enhetliga gränssnittet och fungerar kanske inte korrekt.
Aktivera kommandokontrollen och välj kommandoknappen som ska kontrolleras.
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 enHideCustomAction
regel ellerMscrm.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.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.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 namnetnew.contact.EnableRule.EntityRule
som har utvärderats till False. Därför döljs knappen.new.contact.EnableRule.EntityRule
Expandera aktiveringsregeln genom att välja på sparrikonenfö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.
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 bortnew.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.
- 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
Reparationsalternativ
Välj ett reparationsalternativ på någon av flikarna nedan. Den första fliken är markerad som standard.
- Ta bort kommandot
- Åtgärda regeln för aktivering/visning
- Ta bort regeln för aktivering/visning från kommandot
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:
Välj länken Visa kommandodefinitionslösningslager under kommandonamnet för att visa de lösningar som installerade en definition av kommandot.
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.
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.
Öppna Avancerade inställningar.
Navigera till Inställningar>Lösningar.
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)
Välj Entiteter>Lägg till befintlig.
Välj den entitet som kommandot har definierats på (i vårt exempel är det här kontakten) och välj OK.
Kontrollera att du avmarkerar alternativen Inkludera entitetsmetadata och Lägg till alla tillgångar innan du väljer Slutför.
Välj Spara.
Välj Exportera lösning och exportera den ohanterade lösningen.
Extrahera zip-filen.
Öppna filen customizations.xml .
Leta upp nod underordnad
<Entity>
den entitetsnod som du vill redigera och leta upp dess underordnade<RibbonDiffXml>
nod.<CommandDefinition>
Leta upp noden. (I vårt exempel ärMscrm.NewRecordFromGrid
ID för<CommandDefinition>
noden , så vi skulle leta upp följande nod)<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 ärMscrm.NewRecordFromGrid
.)Spara filen customizations.xml .
Lägg till den ändrade customizations.xml filen i lösningen .zip fil.
Importera lösningsfilen.
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:
- Öppna Avancerade inställningar.
- Navigera till Inställningar>Lösningar.
- 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.
- Välj Klienttillägg>Lägg till befintliga>programflikar.
- Välj Spara.
- Välj Exportera lösning och exportera den ohanterade lösningen.
- Extrahera zip-filen.
- Öppna filen customizations.xml .
- Leta upp rotnoden
<RibbonDiffXml>
. <CommandDefinition>
Leta upp noden.<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.- Spara filen customizations.xml .
- Lägg till den ändrade customizations.xml filen i den komprimerade lösningen .zip fil.
- Importera lösningsfilen.
- 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:
- 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 .
- Öka versionen av din anpassade lösning.
- Exportera lösningen som hanterad.
- 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.