Compartir a través de


Un botón de la barra de comandos está visible cuando se debe ocultar

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

Determinar por qué un botón está visible

Se hará visible un botón si todas las reglas de habilitación y las reglas de visualización del comando asociado al botón se evalúan como true. Si esto es inesperado, es posible que la definición de comando se haya invalidado y que falten reglas de habilitación o reglas de visualización, o que las definiciones de regla se invaliden y que el botón esté visible cuando espera que esté oculto.

Nota:

Algunos botones no son personalizables. Para obtener más información, vea Botones no personalizables en la cinta de opciones.

Advertencia

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 muestran dos botones De cita en la página de cuadrícula de actividades y se espera que se oculte uno.

    Captura de pantalla que muestra que hay dos botones De cita en la página de cuadrícula de actividades.

  3. Seleccione la pestaña Propiedades del comando para mostrar los detalles del comando para este botón. Se mostrarán las acciones, las reglas de habilitación y las reglas de visualización, junto con el resultado (True, False, Omitido) de cada evaluación de reglas. Revise las reglas de habilitación y las reglas de visualización, si espera que una regla determinada se evalúe como false, es posible que la regla se personalice incorrectamente o no se cumplan las circunstancias necesarias para devolver un resultado falso. Si es así, vaya al paso 9; de lo contrario, es posible que el comando falte una regla o reglas y veremos las capas de solución de comandos para un análisis posterior.

    Captura de pantalla para seleccionar la pestaña Propiedades del comando para mostrar los detalles del comando para este botón.

  4. 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 debajo del nombre del comando.

  5. 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.

    Si solo hay una capa de solución, vaya al paso 9; de lo contrario, seleccione las dos capas de solución principales (si tiene una capa en la solución activa, pero no aparece en la parte superior, seleccione la capa de solución activa y, a continuación, la fila superior) y seleccione Comparar.

    Captura de pantalla para seleccionar las dos capas de solución principales y seleccionar la opción Comparar.

  6. La comparación de la definición activa actual y la definición inactiva anterior se mostrarán mostrando las diferencias, si las hay. En el ejemplo siguiente se muestra la definición active no administrada que se va a personalizar con la eliminación de una regla Mscrm.HideOnModern de visualización que se incluye en el nivel de solución publicado de Microsoft inactivo msdynce_ActivitiesPatch .

    Captura de pantalla que muestra la comparación de la definición activa actual y la definición inactiva anterior.

  7. El enfoque necesario para corregir la visibilidad de un botón dependerá de las distintas personalizaciones de su escenario específico. Si ha determinado que una regla se evalúa incorrectamente como false y si la definición de regla está definida incorrectamente, debe modificar la definición de regla y realizar cambios que permitan que la regla se evalúe como false en las circunstancias adecuadas. Si la definición de regla es correcta, es posible que no se cumplan los requisitos que harían que la regla devuelva false, como un valor de campo o un privilegio de seguridad no está asignado correctamente. En función de la definición de la regla, los requisitos pueden variar considerablemente, consulte Definir reglas de habilitación de la cinta de opciones y Definir reglas de presentación de la cinta de opciones. Teniendo en cuenta nuestro ejemplo, el comando se personalizó con la eliminación de una Mscrm.HideOnModern regla de visualización. Esta regla de visualización está pensada para ocultar que este botón concreto se muestre en las aplicaciones de interfaz unificada y solo sea visible en la interfaz de cliente web heredada. Podríamos modificar la versión personalizada del comando y agregar la falta de la Mscrm.HideOnModern regla de presentación a la definición de comando. Dado que se trata de una invalidación personalizada de una definición publicada de Microsoft y no hay otras modificaciones intencionadas, se recomienda eliminar esta versión personalizada del comando 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 de este comando, puede eliminar esta definición para restaurar la siguiente 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.

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 activitypointer y el comando que se debe eliminar es Mscrm.CreateAppointment y se declara en la capa de solución no administrada Activa de un publicador denominado DefaultPublisherCITTest.

  1. Abra Configuración avanzada.

  2. Vaya 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, este es activitypointer) y seleccione Aceptar.

  6. Asegúrese de desactivar la casilla Incluir metadatos de entidad y desactive 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.CreateAppointment, 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.CreateAppointment).

    Captura de pantalla que muestra un ejemplo 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 .<CommandDefinition>
  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 <CommandDefinition> 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.