Compartir a través de


Un botón de la barra de comandos está oculto cuando debe estar visible en Power Apps.

Se aplica a: Power Apps
Número de KB original: 4552163

Determinar por qué se oculta un botón

Un botón se puede ocultar debido a una regla de habilitación o a una regla de visualización en el comando asociado al botón que se evalúa como false. Podría ser que el comando asociado tenga una Mscrm.HideOnModern regla de visualización que ocultaría el botón en las aplicaciones de interfaz unificada. También se podría haber creado hideCustomAction que forzaría que el botón estuviera oculto. Si el usuario está sin conexión, no se mostrarán los comandos personalizados y los comandos predeterminados sin la Mscrm.IsEntityAvailableForUserInMocaOffline regla de habilitación.

Advertencia

  • Cualquier regla de visualización del tipo EntityPrivilegeRule con un valor PrivilegeType de uno de los siguientes (Create, Write, Delete, Assign, Share) se evaluará como false si la entidad tiene habilitada la opción Read-Only in Mobile, que obligará a la entidad a permitir solo privilegios de lectura. Algunos ejemplos de algunas de las reglas del sistema predeterminadas más comunes que se evaluarán como false cuando la marca Read-Only in Mobile esté habilitada en la entidad, son las siguientes, pero no solo se limitan a esta lista (Mscrm.CreateSelectedEntityPermission, Mscrm.CanSavePrimary, Mscrm.DeletePrimaryEntityPermissionMscrm.WriteSelectedEntityPermissionMscrm.WritePrimaryEntityPermissionMscrm.DeleteSelectedEntityPermissionMscrm.CanDeletePrimaryMscrm.CanWriteSelectedMscrm.CanWritePrimary, , Mscrm.AssignSelectedEntityPermission, , ). Mscrm.ShareSelectedEntityPermissionMscrm.SharePrimaryPermission Puede editar la entidad y desactivar la opción Solo lectura en móvil para permitir que estas reglas se evalúen como true, siempre que también se conceda al usuario el privilegio probado por la regla.
  • No quite la Mscrm.HideOnModern regla de visualización de un comando para forzar que aparezca un botón en la interfaz unificada. Los comandos que tienen la Mscrm.HideOnModern regla de visualización están diseñados para la interfaz de cliente web heredada y no se admiten en la interfaz unificada y es posible que no funcionen correctamente.
  1. Habilite el comprobador de comandos y seleccione el botón de comando que se va a inspeccionar.

  2. En el ejemplo siguiente se muestra el botón Nuevo de la página de cuadrícula de la entidad de contacto no está visible y se representa mediante un elemento con la etiqueta New (hidden).

    Nota:

    Si el botón no aparece en la lista, podría deberse a una personalización HideCustomAction que puede haberse instalado o el comando asociado tiene una Mscrm.HideOnModern regla de visualización. En el momento de escribir esta guía, la herramienta Comprobador de comandos no enumera los botones ocultos por una HideCustomAction regla de visualización o Mscrm.HideOnModern . Actualmente estamos trabajando para aumentar esta lista para incluir esta información en una actualización futura.

    Captura de pantalla que muestra el botón Nuevo en la página de cuadrícula de la entidad de contacto no está visible y se representa mediante un elemento etiquetado como Nuevo (oculto).

    Nota:

    Si el botón sigue oculto cuando todas las reglas se evalúan como True, puede deberse a comandos contextuales en cuadrículas. Cuando se seleccionan registros en una cuadrícula, todos los botones sin un SelectionCountRule elemento se considerarán no relevantes para los registros seleccionados. Y están ocultos incluso si su evaluación de reglas es True. Tenga en cuenta que los controles flotantes no se ven afectados, ya que los elementos secundarios del control flotante pueden tener comandos basados en registros.

  3. Seleccione la pestaña Propiedades del comando para mostrar los detalles del comando para este botón. Esto mostrará las reglas de habilitación y las reglas de visualización, junto con el resultado (True, False, Omitido) de cada evaluación de reglas. En el ejemplo siguiente se muestra el comando del botón Nuevo (oculto) que va a ser Mscrm.NewRecordFromGrid y hay una regla de habilitación denominada new.contact.EnableRule.EntityRule que se ha evaluado como False, como resultado, se ocultará el botón.

    Captura de pantalla que muestra los detalles de las propiedades command del comando para el botón Nuevo (oculto).

  4. Expanda la new.contact.EnableRule.EntityRule regla de habilitación; para ello, seleccione en el icono de botón de contenido adicional para ver los detalles de la regla. Para comprender por qué una regla se evalúa como True o False requiere un poco de comprensión del tipo de regla. Para obtener más información sobre cada tipo de regla, vea Definir reglas de habilitación de la cinta de opciones y Definir reglas de presentación de la cinta de opciones. En el ejemplo siguiente se muestra que el tipo de regla es Entity y el nombre lógico de la entidad es account. Dado que la entidad actual es contact, que no es igual a la cuenta, esta regla devuelve False.

    Captura de pantalla que muestra un ejemplo para ver los detalles de la regla.

  5. El enfoque necesario para corregir la visibilidad de un botón dependerá de las distintas personalizaciones de su escenario específico. Teniendo en cuenta nuestro ejemplo:

    • Si esta regla se creó erróneamente, de modo que la entidad declarada en la regla estaba pensada para ponerse en contacto , pero se estableció en cuenta, podría editar la new.contact.EnableRule.EntityRule regla de habilitación y realizar cambios que permitirían que la regla se evaluara como true.
    • Si esta regla se agregó al comando involuntariamente, podría modificar el Mscrm.NewRecordFromGrid comando y quitar la new.contact.EnableRule.EntityRule regla enable de la definición de comando.
    • Si el comando es una invalidación de una definición publicada de Microsoft, esta versión personalizada del comando podría eliminarse para restaurar la funcionalidad predeterminada.

Opciones de reparación

Seleccione una opción de reparación en una de las pestañas siguientes. La primera pestaña está seleccionada de forma predeterminada.

Eliminación de un comando

Si hay otra capa de solución que contiene una definición de trabajo del comando, puede eliminar la definición para restaurar la definición de trabajo inactiva.

Si este es el único nivel y ya no necesita el comando, puede quitarlo de la solución si ningún otro botón hace referencia al comando.

Para eliminar un comando, es necesario determinar qué solución instaló la personalización:

  1. Seleccione el vínculo Ver capas de solución de definición de comandos debajo del nombre del comando para ver las soluciones que instalaron una definición del comando.

    Captura de pantalla del vínculo Ver capas de solución de definición de comandos bajo un nombre de comando.

  2. El panel Capas de solución mostrará la capa de cada definición de componente de cinta de opciones que ha instalado una solución determinada. La capa de la parte superior de la lista es la definición actual que usa la aplicación, las demás capas están inactivas y no las usa la aplicación en este momento. Si se desinstala la solución superior o se instala una versión actualizada que quita la definición, la siguiente capa se convertirá en la definición activa actual que usa la aplicación. Cuando hay una capa de solución activa no administrada, siempre será la definición que usa la aplicación. Si no aparece ninguna solución activa, la solución que aparece en la parte superior de la lista será la definición que usa la aplicación. Las soluciones administradas personalizadas que no publique Microsoft también tendrán prioridad sobre las capas de solución publicadas de Microsoft.

    El contexto de entidad indica el objeto en el que está activada la personalización de la cinta de opciones, si aparece "Todas las entidades", la capa procede de las extensiones de cliente de la cinta de aplicaciones y no de la entidad, de lo contrario, se mostrará el nombre lógico de la entidad.

    Cuando hay dos o más capas, puede seleccionar dos filas y seleccionar Comparar para ver una comparación de las definiciones presentadas por cada solución.

    Al seleccionar Atrás, volverá a la ventana anterior del Comprobador de comandos.

    En la imagen siguiente se muestran las capas de solución para el comando en nuestro ejemplo e indica que hay una capa de solución para la entidad de contacto que es una personalización no administrada como se indica en la solución denominada Activo. El escenario real puede diferir, es posible que no tenga una capa de solución activa , es posible que tenga una solución administrada y el nombre de esa solución se mostrará aquí.

    Captura de pantalla que muestra un ejemplo de la capa de solución.

  3. Ahora que hemos revisado las capas de solución y hemos identificado la solución que instaló la personalización, debemos corregir la definición en la solución adecuada.

Seleccione una de las siguientes opciones que coincidan con su escenario concreto:

El comando está en la solución activa no administrada.

Para eliminar un comando en el nivel de solución no administrada activo , exportaremos una solución no administrada que contenga la entidad o la cinta de aplicaciones y editaremos el <RibbonDiffXml> nodo en el archivo customizations.xml y, a continuación, importaremos una nueva versión de esta solución donde este comando se ha quitado para eliminar el componente. Consulte Exportación, preparación para editar e importar la cinta de opciones.

El comando es específico de la entidad.

En función de nuestro escenario de ejemplo, hemos identificado que la entidad es contact y el comando que se debe eliminar es Mscrm.NewRecordFromGrid y se declara en la capa de solución no administrada Activa de un publicador denominado DefaultPublisherCITTest.

  1. Abra Configuración avanzada.

  2. Desplácese a Configuración>Soluciones.

  3. Seleccione Nuevo para crear una nueva solución, establezca Publisher en el valor que se muestra en la lista de capas de solución del Comprobador de comandos para el comando y la capa de solución Activa. (En nuestro ejemplo, esto es DefaultPublisherCITTest)

  4. Seleccione Entities Add Existing (>Agregar entidades existentes).

  5. Seleccione la entidad en la que se define el comando (en nuestro ejemplo, se trata de contacto) y seleccione Aceptar.

  6. Asegúrese de desactivar los metadatos de la entidad Incluir y Agregar todas las opciones de recursos antes de seleccionar Finalizar.

  7. Haga clic en Guardar.

  8. Seleccione Exportar solución y exporte la solución no administrada.

  9. Extraiga el archivo .zip.

  10. Abra el archivo customizations.xml .

  11. Busque el <Entity> nodo secundario del nodo de entidad que desea editar y busque su nodo secundario <RibbonDiffXml> .

  12. Busque el <CommandDefinition> nodo. (En nuestro ejemplo, el identificador del <CommandDefinition> nodo es Mscrm.NewRecordFromGrid, por lo que buscaríamos el siguiente nodo).

    Captura de pantalla que muestra la ubicación del nodo CommandDefinition.

  13. Edite el <RibbonDiffXml> nodo y quite el nodo específico <CommandDefinition> que tiene el identificador del comando que desea eliminar. Asegúrese de que no elimine involuntariamente otros <CommandDefinition> nodos que puedan estar presentes. (En función de nuestro ejemplo, eliminaríamos el nodo en el <CommandDefinition> que id. es Mscrm.NewRecordFromGrid).

    Captura de pantalla para eliminar el nodo CommandDefinition.

  14. Guarde el archivo customizations.xml .

  15. Vuelva a agregar el archivo customizations.xml modificado al archivo .zip de la solución.

  16. Importar el archivo de solución.

  17. Seleccione Publicar todas las personalizaciones.

El comando está en la cinta de opciones de la aplicación (se aplica a "Todas las entidades")

Si el comando no es específico de la entidad, sino que es aplicable a "Todas las entidades" declaradas en la cinta de aplicaciones, los pasos serán ligeramente diferentes de la siguiente manera:

  1. Abra Configuración avanzada.
  2. Desplácese a Configuración>Soluciones.
  3. Seleccione Nuevo para crear una nueva solución, establezca Publisher en el valor que se muestra en la lista de capas de solución del Comprobador de comandos para el comando y la capa de solución Activa.
  4. Seleccione Extensiones>de cliente Agregar cintas de opciones de aplicación existentes.>
  5. Haga clic en Guardar.
  6. Seleccione Exportar solución y exporte la solución no administrada.
  7. Extraiga el archivo .zip.
  8. Abra el archivo customizations.xml .
  9. Busque el nodo raíz <RibbonDiffXml> .
  10. Busque el <CommandDefinition> nodo.
  11. Edite el <RibbonDiffXml> nodo y quite el <CommandDefinition> nodo que tiene el identificador del comando que desea eliminar. Asegúrese de que no elimine involuntariamente otros <CommandDefinitions> nodos que puedan estar presentes.
  12. Guarde el archivo customizations.xml .
  13. Vuelva a agregar el archivo customizations.xml modificado a la solución comprimida .zip archivo.
  14. Importar el archivo de solución.
  15. Seleccione Publicar todas las personalizaciones.
El comando procede de una solución administrada personalizada que mi empresa creó.

Para eliminar un comando instalado por una solución administrada personalizada que creó, siga estos pasos:

  1. En la organización de desarrollo independiente que tiene la versión de origen no administrada de la solución personalizada, complete los pasos enumerados anteriormente para el comando está en la opción Solución activa no administrada.
  2. Incremente la versión de la solución personalizada.
  3. Exporte la solución como administrada.
  4. En la organización afectada independiente, importe esta nueva versión de la solución administrada personalizada.
El comando procede de una solución administrada personalizada que mi empresa no creó (desde terceros o ISV).

Para eliminar un comando instalado por una solución administrada personalizada creada por un ISV o de terceros, deberá ponerse en contacto con el autor de la solución y solicitar una nueva versión de la solución que ha quitado la definición de comandos específica e instalar esta nueva solución en la organización afectada.