Un botón de la barra de comandos está visible cuando se debe ocultar
Artículo
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.
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.
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.
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.
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.
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.
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 .
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.
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.
Abra Configuración avanzada.
Vaya a Configuración ->Soluciones.
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).
Seleccione la entidad en la que se define el comando (en nuestro ejemplo, este es activitypointer) y seleccione Aceptar.
Asegúrese de desactivar la casilla Incluir metadatos de entidad y desactive Agregar todas las opciones de recursos antes de seleccionar Finalizar.
Haga clic en Guardar.
Seleccione Exportar solución y exporte la solución no administrada.
Extraiga el archivo .zip.
Abra el archivo customizations.xml .
Busque el <Entity> nodo secundario del nodo de entidad que desea editar y busque su nodo secundario <RibbonDiffXml> .
Busque el <CommandDefinition> nodo (en nuestro ejemplo, el identificador del <CommandDefinition> nodo es Mscrm.CreateAppointment, por lo que buscaríamos el siguiente nodo).
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).
Guarde el archivo customizations.xml .
Vuelva a agregar el archivo customizations.xml modificado al archivo .zip de la solución.
Importar el archivo de solución.
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:
Abra Configuración avanzada.
Desplácese a Configuración>Soluciones.
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.
Seleccione Extensiones>de cliente Agregar cintas de opciones de aplicación existentes.>
Haga clic en Guardar.
Seleccione Exportar solución y exporte la solución no administrada.
Extraiga el archivo .zip.
Abra el archivo customizations.xml .
Busque el nodo raíz <RibbonDiffXml> .
Busque .<CommandDefinition>
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.
Guarde el archivo customizations.xml .
Vuelva a agregar el archivo customizations.xml modificado a la solución comprimida .zip archivo.
Importar el archivo de solución.
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:
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.
Incremente la versión de la solución personalizada.
Exporte la solución como administrada.
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.
Cómo agregar reglas de habilitación o visualización que faltan al comando
Si hay modificaciones en el comando que necesita conservar, pero desea que el botón esté oculto en las circunstancias adecuadas, puede agregar las reglas de habilitación o visualización que faltan al comando en lugar de eliminar la definición personalizada.
Seleccione una de las siguientes opciones que coincidan con su escenario concreto:
El comando está en la solución activa no administrada.
Si ha determinado que faltan reglas de habilitación o visualización de la definición de comandos, puede modificar el <CommandDefinition> nodo y agregar las reglas para lograr el comportamiento deseado. Para corregir un comando en la capa de solución no administrada Activa , 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 que contenga la definición de comando fija. 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 debe corregirse es Mscrm.CreateAppointment y se declara en la capa de solución no administrada Activa de un publicador denominado DefaultPublisherCITTest.
Abra Configuración avanzada.
Desplácese a Configuración>Soluciones.
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)
Seleccione la entidad en la que se define el comando (en nuestro ejemplo, este es activitypointer) y seleccione Aceptar.
Asegúrese de desactivar los metadatos de la entidad Incluir y Agregar todas las opciones de recursos antes de seleccionar Finalizar.
Haga clic en Guardar.
Seleccione Exportar solución y exporte la solución no administrada.
Extraiga el archivo .zip.
Abra el archivo customizations.xml .
Busque el <Entity> nodo secundario del nodo de entidad que desea editar y busque su nodo secundario <RibbonDiffXml> .
Busque el <CommandDefinition> nodo. En el ejemplo, el identificador del <CommandDefinition> nodo es Mscrm.CreateAppointment. Por lo tanto, buscaría el siguiente nodo:
Edite el <RibbonDiffXml> nodo y realice los cambios necesarios en el <CommandDefinition> nodo que permitirán que el comando funcione correctamente en las circunstancias correctas para corregir el comando. Para obtener más información sobre cómo declarar comandos, vea Definir comandos de la cinta de opciones. (En función de nuestro ejemplo, modificaríamos el <CommandDefinition> nodo agregando la Mscrm.HideOnModern regla de visualización que ocultará correctamente este botón).
Restaure el archivo customizations.xml modificado en el archivo .zip de solución.
Importar el archivo de solución.
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:
Abra Configuración avanzada.
Desplácese a Configuración>Soluciones.
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.
Seleccione Extensiones>de cliente Agregar cintas de opciones de aplicación existentes.>
Haga clic en Guardar.
Seleccione Exportar solución y exporte la solución no administrada.
Extraiga el archivo .zip.
Abra el archivo customizations.xml .
Busque el nodo raíz <RibbonDiffXml> .
Busque .<CommandDefinition>
Edite <RibbonDiffXml> y realice los cambios necesarios en el <CommandDefinition> nodo que permitirán que el comando funcione correctamente en las circunstancias correctas para corregir el comando. Para obtener más información sobre cómo declarar comandos, vea Definir comandos de la cinta de opciones.
Vuelva a agregar el archivo customizations.xml modificado al archivo .zip de la solución.
Importar el archivo de solución.
Seleccione Publicar todas las personalizaciones.
El comando procede de una solución administrada personalizada que he creado.
Para corregir un comando instalado por una solución administrada personalizada que creó, siga estos pasos:
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.
Incremente la versión de la solución personalizada.
Exporte la solución como administrada.
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 no he creado o que mi organización no posee (es decir, desde un ISV o de terceros).
Para corregir 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 contiene la definición de comandos fija e instalar esta nueva solución en la organización afectada.
El comando está en una solución administrada publicada por Microsoft
Para corregir un comando instalado por una solución administrada publicada por Microsoft, es posible que necesite una versión más reciente de la solución que se instalará, lo que normalmente se realizaría durante una actualización de versión. Es posible que haya identificado un error que todavía debe corregirse. Póngase en contacto con el servicio de atención al cliente para obtener ayuda.
Cómo corregir una regla de habilitación o visualización
Seleccione el vínculo Ver capas de solución de definición de regla debajo del nombre de la regla para ver las soluciones que instalaron una definición de la regla.
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 la regla de habilitación en nuestro ejemplo e indica que hay una capa de solución en este caso y 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 sea una capa de solución activa, es posible que tenga una solución administrada y el nombre de esa solución se mostrará aquí.
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:
La regla enable/display está en la solución activa no administrada
Para corregir una regla de habilitación o visualización en la capa de solución no administrada activa , 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 la nueva versión de esta solución que contiene la definición de regla de habilitación/visualización fija. Consulte Exportación, preparación para editar e importar la cinta de opciones.
La regla enable/display es específica de la entidad
En función de nuestro escenario de ejemplo, hemos identificado que la entidad está en contacto y la regla de habilitación que debe corregirse es new.contact.EnableRule.EntityRule y se declara en la capa de solución no administrada activa de un publicador denominado DefaultPublisherCITTest.
Abra Configuración avanzada.
Desplácese a Configuración>Soluciones.
Seleccione Nuevo para crear una nueva solución, establezca Publisher en el valor que se muestra en la lista capas de la solución Comprobador de comandos para la regla de habilitación y la capa de solución Activa. (En nuestro ejemplo, esto es DefaultPublisherCITTest)
Seleccione la entidad en la que se define la regla de habilitación o visualización (en nuestro ejemplo, se trata de contacto) y seleccione Aceptar.
Asegúrese de desactivar los metadatos de la entidad Incluir y Agregar todas las opciones de recursos antes de seleccionar Finalizar.
Haga clic en Guardar.
Seleccione Exportar solución y exporte la solución no administrada.
Extraiga el archivo .zip.
Abra el archivo customizations.xml .
Busque el <Entity> nodo secundario del nodo de entidad que desea editar y busque su nodo secundario <RibbonDiffXml> .
Busque la regla enable/display. En el ejemplo, el identificador de la regla de habilitación es new.contact.EnableRule.EntityRule. Por lo tanto, buscaría el siguiente nodo:
Edite el <RibbonDiffXml> nodo y realice los cambios necesarios en la regla enable/display que permitirá que la regla se evalúe como True en las circunstancias correctas para corregir la regla. Para obtener más información sobre cómo declarar reglas, vea Definir reglas de habilitación de la cinta de opciones y Definir reglas de visualización de la cinta de opciones. (En función de nuestro ejemplo, cambiaríamos la definición de regla a la siguiente)
Vuelva a agregar el archivo customizations.xml modificado al archivo .zip de la solución.
Importar el archivo de solución.
Seleccione Publicar todas las personalizaciones.
La regla enable/display está en la cinta de opciones de la aplicación (se aplica a "Todas las entidades")
Si la regla enable/display no es específica 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:
Abra Configuración avanzada.
Desplácese a Configuración>Soluciones.
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 la regla de habilitación/visualización y la capa de solución activa.
Seleccione Extensiones>de cliente Agregar cintas de opciones de aplicación existentes.>
Haga clic en Guardar.
Seleccione Exportar solución y exporte la solución no administrada.
Extraiga el archivo .zip.
Abra el archivo customizations.xml .
Busque el nodo raíz <RibbonDiffXml> .
Busque la regla enable/display.
Edite el <RibbonDiffXml> nodo y realice los cambios necesarios en la regla enable/display que permitirá que la regla se evalúe como True en las circunstancias correctas para corregir la regla. Para obtener más información sobre cómo declarar reglas, vea Definir reglas de habilitación de la cinta de opciones y Definir reglas de visualización de la cinta de opciones.
Vuelva a agregar el archivo customizations.xml modificado al archivo .zip de la solución.
Importar el archivo de solución.
Seleccione Publicar todas las personalizaciones.
La regla de habilitación y visualización procede de una solución administrada personalizada que he creado.
Para corregir una regla de habilitación y visualización instalada por una solución administrada personalizada que creó, siga estos pasos:
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 la opción Habilitar/mostrar regla está en la opción Solución activa no administrada.
Incremente la versión de la solución personalizada.
Exporte la solución como administrada.
En la organización afectada independiente, importe esta nueva versión de la solución administrada personalizada.
La regla de habilitación y visualización procede de una solución administrada personalizada que no he creado o que mi organización no posee (de un ISV o de terceros).
Para corregir una regla de habilitación o visualización instalada 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 contenga la definición de regla de habilitación/visualización fija e instalar esta nueva solución en la organización afectada.
La regla enable/display está en una solución administrada publicada por Microsoft
Para corregir una regla de habilitación o visualización instalada por una solución administrada publicada por Microsoft, es posible que necesite una versión más reciente de la solución que se instalará, lo que normalmente se haría durante una actualización de versión. Es posible que haya identificado un error que todavía debe corregirse. Póngase en contacto con el servicio de atención al cliente para obtener ayuda.