Condividi tramite


Un pulsante sulla barra dei comandi è nascosto quando deve essere visibile in Power Apps

Si applica a: Power Apps
Numero KB originale: 4552163

Determinare il motivo per cui un pulsante è nascosto

Un pulsante può essere nascosto a causa di una regola di abilitazione o di una regola di visualizzazione nel comando associato al pulsante che valuta su false. Potrebbe essere che il comando associato abbia una Mscrm.HideOnModern regola di visualizzazione che nasconderebbe il pulsante nelle applicazioni Unified Interface. Potrebbe anche essere stato creato un hideCustomAction che forzava il pulsante a essere nascosto. Se l'utente è offline, i comandi personalizzati e i comandi predefiniti senza la Mscrm.IsEntityAvailableForUserInMocaOffline regola di abilitazione non verranno visualizzati.

Avviso

  • Qualsiasi regola di visualizzazione del tipo EntityPrivilegeRule con un valore PrivilegeType pari a uno dei valori seguenti (Create, Write, Delete, Assign, Share) restituirà false se l'entità dispone dell'opzione Sola lettura in dispositivi mobili abilitata, che forza l'entità a consentire solo privilegi di lettura. Esempi di alcune delle regole di sistema predefinite più comuni che restituiscono false quando il flag Di sola lettura in Mobile è abilitato nell'entità, sono i seguenti, ma non solo a questo elenco (Mscrm.CreateSelectedEntityPermission, Mscrm.CanSavePrimary, Mscrm.SharePrimaryPermissionMscrm.CanWritePrimaryMscrm.AssignSelectedEntityPermissionMscrm.CanWriteSelectedMscrm.WritePrimaryEntityPermissionMscrm.DeleteSelectedEntityPermissionMscrm.WriteSelectedEntityPermissionMscrm.CanDeletePrimaryMscrm.DeletePrimaryEntityPermission). Mscrm.ShareSelectedEntityPermission È possibile modificare l'entità e deselezionare l'opzione Sola lettura in dispositivi mobili per consentire a queste regole di restituire true, purché all'utente venga concesso anche il privilegio sottoposto a test dalla regola.
  • Non rimuovere la Mscrm.HideOnModern regola di visualizzazione da un comando per forzare la visualizzazione di un pulsante nell'interfaccia unificata. I comandi con la Mscrm.HideOnModern regola di visualizzazione sono destinati all'interfaccia client Web legacy e non sono supportati nell'interfaccia unificata e potrebbero non funzionare correttamente.
  1. Abilitare Controllo comandi e selezionare il pulsante di comando da esaminare.

  2. L'esempio seguente mostra che il pulsante Nuovo nella pagina della griglia dell'entità contatto non è visibile ed è rappresentato da un elemento con etichetta Nuovo (nascosto).

    Note

    Se il pulsante non è elencato, potrebbe essere dovuto a una personalizzazione HideCustomAction che potrebbe essere stata installata o che il comando associato ha una Mscrm.HideOnModern regola di visualizzazione. Al momento della stesura di questa guida, lo strumento Controllo comandi non elenca i pulsanti nascosti da una HideCustomAction regola di visualizzazione o Mscrm.HideOnModern . Attualmente stiamo lavorando per aumentare questa inserzione per includere queste informazioni in un aggiornamento futuro.

    Screenshot che mostra il pulsante Nuovo nella pagina della griglia dell'entità contatto non è visibile ed è rappresentato da un elemento etichettato Nuovo (nascosto).

    Note

    Se il pulsante è ancora nascosto quando tutte le regole restituiscono True, potrebbe essere dovuto a comandi sensibili al contesto nelle griglie. Quando i record vengono selezionati in una griglia, tutti i pulsanti senza un SelectionCountRule elemento verranno considerati non rilevanti per i record selezionati. E sono nascosti anche se la valutazione della regola è True. Si noti che i riquadri a comparsa non sono interessati perché i figli del riquadro a comparsa potrebbero avere ancora comandi basati su record.

  3. Selezionare la scheda Proprietà comando per visualizzare i dettagli del comando per questo pulsante. Verranno visualizzate le regole di abilitazione e le regole di visualizzazione, insieme al risultato (True, False, Ignorato) di ogni valutazione delle regole. Nell'esempio seguente viene illustrato il comando del pulsante Nuovo (nascosto) in modo che sia Mscrm.NewRecordFromGrid presente una regola di abilitazione denominata che new.contact.EnableRule.EntityRule ha valore False, di conseguenza il pulsante verrà nascosto.

    Screenshot che mostra i dettagli delle proprietà del comando per il pulsante Nuovo (nascosto).

  4. Espandere la new.contact.EnableRule.EntityRule regola di abilitazione selezionando l'icona della freccia di espansione per visualizzare i dettagli della regola. Per comprendere il motivo per cui una regola restituisce True o False, è necessario comprendere il tipo di regola. Per informazioni dettagliate su ogni tipo di regola, vedere Definire le regole di abilitazione della barra multifunzione e Definire le regole di visualizzazione della barra multifunzione. L'esempio seguente mostra che il tipo di regola è Entity e il nome logico dell'entità è account. Poiché l'entità corrente è contatto, che non è uguale all'account, questa regola restituisce False.

    Screenshot che mostra un esempio per visualizzare i dettagli della regola.

  5. L'approccio necessario per correggere la visibilità di un pulsante dipende dalle varie personalizzazioni nello scenario specifico. Considerando l'esempio seguente:

    • Se questa regola è stata creata erroneamente, in modo che l'entità dichiarata nella regola fosse destinata a essere contattata ma impostata su account, è possibile modificare la new.contact.EnableRule.EntityRule regola di abilitazione e apportare modifiche che consentano alla regola di restituire true.
    • Se questa regola è stata aggiunta involontariamente al comando, è possibile modificare il Mscrm.NewRecordFromGrid comando e rimuovere la new.contact.EnableRule.EntityRule regola di abilitazione dalla definizione del comando.
    • Se il comando è un override di una definizione pubblicata da Microsoft, è possibile eliminare questa versione personalizzata del comando per ripristinare la funzionalità predefinita.

Opzioni di ripristino

Selezionare un'opzione di ripristino da una delle schede seguenti. La prima scheda è selezionata per impostazione predefinita.

Come eliminare un comando

Se è presente un altro livello di soluzione che contiene una definizione di lavoro del comando, è possibile eliminare la definizione per ripristinare la definizione di lavoro inattiva.

Se si tratta dell'unico livello e non è più necessario il comando, è possibile rimuoverlo dalla soluzione se nessun altro pulsante fa riferimento al comando.

Per eliminare un comando, è necessario determinare quale soluzione ha installato la personalizzazione:

  1. Selezionare il collegamento Visualizza livelli soluzione definizione comando sotto il nome del comando per visualizzare le soluzioni che hanno installato una definizione del comando.

    Screenshot del collegamento Visualizza livelli della soluzione di definizione dei comandi sotto un nome di comando.

  2. Il riquadro Livelli soluzione visualizzerà la sovrapposizione di ogni definizione di componente della barra multifunzione installata da una particolare soluzione. Il livello nella parte superiore dell'elenco è la definizione corrente usata dall'applicazione, gli altri livelli sono inattivi e non vengono usati dall'applicazione al momento. Se la soluzione principale viene disinstallata o viene installata una versione aggiornata che rimuove la definizione, il livello successivo diventerà la definizione attiva corrente usata dall'applicazione. Quando è presente un livello di soluzione Attivo non gestito, sarà sempre la definizione usata dall'applicazione. Se non è elencata alcuna soluzione attiva, la soluzione elencata nella parte superiore dell'elenco sarà la definizione usata dall'applicazione. Anche le soluzioni gestite personalizzate che non vengono pubblicate da Microsoft avranno la precedenza sui livelli di soluzione pubblicati da Microsoft.

    Il contesto Entità indica che l'oggetto su cui si trova la personalizzazione della barra multifunzione, se è elencato "Tutte le entità", il livello proviene dalle estensioni client della barra multifunzione dell'applicazione e non dall'entità specifica, altrimenti verrà elencato il nome logico dell'entità.

    Quando sono presenti due o più livelli, è possibile selezionare due righe e selezionare Confronta per visualizzare un confronto delle definizioni fornite da ogni soluzione.

    Se si seleziona Indietro , si tornerà alla finestra precedente di Controllo comandi.

    L'immagine seguente mostra i livelli della soluzione per il comando nell'esempio e indica che è presente un livello di soluzione per l'entità contatto che si tratta di una personalizzazione non gestita come indicato dalla soluzione denominata Active. Lo scenario effettivo può differire, potrebbe non essere disponibile un livello soluzione attiva , potrebbe essere disponibile una soluzione gestita e il nome di tale soluzione verrà elencato qui.

    Screenshot che mostra un esempio del livello della soluzione.

  3. Dopo aver esaminato i livelli della soluzione e identificato la soluzione che ha installato la personalizzazione, è necessario correggere la definizione nella soluzione appropriata.

Selezionare una delle opzioni seguenti che corrispondono allo scenario specifico:

Il comando si trova nella soluzione Attiva non gestita

Per eliminare un comando nel livello della soluzione non gestita attiva , si esporta una soluzione non gestita contenente l'entità o la barra multifunzione dell'applicazione e si modifica il <RibbonDiffXml> nodo nel file di customizations.xml e quindi si importa una nuova versione di questa soluzione in cui questo comando è stato rimosso per eliminare il componente. Vedere Esportare, preparare la modifica e importare la barra multifunzione.

Il comando è specifico dell'entità

In base allo scenario di esempio, è stato identificato che l'entità è contatto e il comando che deve essere eliminato è Mscrm.NewRecordFromGrid e viene dichiarato nel livello della soluzione non gestita attivo da un server di pubblicazione denominato DefaultPublisherCITTest.

  1. Aprire Impostazioni avanzate.

  2. Passare a Impostazioni>Soluzioni.

  3. Selezionare Nuovo per creare una nuova soluzione, impostare Publisher sul valore visualizzato nell'elenco dei livelli della soluzione di Controllo comandi per il comando e il livello soluzione Attivo. (In questo esempio, questo è DefaultPublisherCITTest)

  4. Selezionare Entità>Aggiungi esistente.

  5. Selezionare l'entità in cui è definito il comando (in questo esempio, questo è contatto) e selezionare OK.

  6. Assicurarsi di deselezionare Includi metadati entità e Aggiungi tutte le opzioni asset prima di selezionare Fine.

  7. Selezionare Salva.

  8. Selezionare Esporta soluzione ed esportare la soluzione non gestita.

  9. Estrai il file .zip.

  10. Aprire il file customizations.xml .

  11. Individuare il <Entity> nodo figlio del nodo di entità che si desidera modificare e individuare il relativo nodo figlio <RibbonDiffXml> .

  12. Individuare il <CommandDefinition> nodo. Nell'esempio l'ID <CommandDefinition> del nodo è Mscrm.NewRecordFromGrid, quindi si individua il nodo seguente.

    Screenshot che mostra il percorso del nodo CommandDefinition.

  13. Modificare il <RibbonDiffXml> nodo e rimuovere il nodo specifico <CommandDefinition> con l'ID del comando da eliminare. Assicurarsi di non eliminare involontariamente altri <CommandDefinition> nodi che potrebbero essere presenti. In base all'esempio, si eliminerebbe il <CommandDefinition> nodo in cui l'ID è Mscrm.NewRecordFromGrid.)

    Screenshot per eliminare il nodo CommandDefinition.

  14. Salvare il file customizations.xml .

  15. Aggiungere di nuovo il file di customizations.xml modificato al file di .zip della soluzione.

  16. Importare il file della soluzione.

  17. Seleziona Pubblica tutte le personalizzazioni.

Il comando si trova nella barra multifunzione dell'applicazione (si applica a "Tutte le entità")

Se il comando non è specifico dell'entità, ma è applicabile a "Tutte le entità" dichiarate nella barra multifunzione dell'applicazione, i passaggi saranno leggermente diversi come indicato di seguito:

  1. Aprire Impostazioni avanzate.
  2. Passare a Impostazioni>Soluzioni.
  3. Selezionare Nuovo per creare una nuova soluzione, impostare Publisher sul valore visualizzato nell'elenco dei livelli della soluzione di Controllo comandi per il comando e il livello soluzione Attivo.
  4. Selezionare Estensioni>client Aggiungi barre multifunzione dell'applicazione esistenti>.
  5. Selezionare Salva.
  6. Selezionare Esporta soluzione ed esportare la soluzione non gestita.
  7. Estrai il file .zip.
  8. Aprire il file customizations.xml .
  9. Individuare il nodo radice <RibbonDiffXml> .
  10. Individuare il <CommandDefinition> nodo.
  11. Modificare il <RibbonDiffXml> nodo e rimuovere il <CommandDefinition> nodo con l'ID del comando da eliminare. Assicurarsi di non eliminare involontariamente altri <CommandDefinitions> nodi che potrebbero essere presenti.
  12. Salvare il file customizations.xml .
  13. Aggiungere di nuovo il file di customizations.xml modificato al file .zip della soluzione compressa.
  14. Importare il file della soluzione.
  15. Seleziona Pubblica tutte le personalizzazioni.
Il comando proviene da una soluzione gestita personalizzata creata dall'azienda

Per eliminare un comando installato da una soluzione gestita personalizzata creata, seguire questa procedura:

  1. Nell'organizzazione di sviluppo separata con la versione di origine non gestita della soluzione personalizzata, completare i passaggi elencati in precedenza per Il comando si trova nell'opzione soluzione Attiva non gestita.
  2. Incrementare la versione della soluzione personalizzata.
  3. Esportare la soluzione come gestita.
  4. Nell'organizzazione interessata separata importare questa nuova versione della soluzione gestita personalizzata.
Il comando proviene da una soluzione gestita personalizzata che l'azienda non ha creato (da terze parti/ISV)

Per eliminare un comando installato da una soluzione gestita personalizzata creata da un isv di terze parti, è necessario contattare l'autore della soluzione e richiedere una nuova versione della soluzione che ha rimosso la definizione di comando specifica e quindi installare questa nuova soluzione nell'organizzazione interessata.