Partilhar via


Um botão na barra de comandos fica visível quando deve ser oculto

Aplica-se a: Power Apps
Número de KB original: 4552163

Determinar por que um botão está visível

Um botão ficará visível se todas as regras de habilitação e as regras de exibição no comando associado ao botão forem avaliadas como true. Se isso for inesperado, é possível que a definição de comando tenha sido substituída e esteja ausente de regras de habilitação ou regras de exibição, ou as próprias definições de regra sejam substituídas e fazendo com que o botão fique visível quando você espera que ele fique oculto.

Observação

Alguns botões não são personalizáveis. Para obter mais informações, confira Botões não personalizáveis na faixa de opções.

Aviso

Não remova a Mscrm.HideOnModern regra de exibição de um comando para forçar um botão a aparecer na Interface Unificada. Os comandos que têm a Mscrm.HideOnModern regra de exibição são destinados à interface herdada do Cliente Web e não têm suporte na Interface Unificada e podem não funcionar corretamente.

  1. Habilite o verificador de comando e selecione o botão de comando para inspecionar.

  2. O exemplo a seguir mostra dois botões de compromisso na página de grade de atividades e espera-se que um esteja oculto.

    A captura de tela mostra que há dois botões de compromisso na página de grade de atividades.

  3. Selecione a guia Propriedades de Comando para exibir os detalhes do comando para este botão. Isso exibirá as ações, habilitará regras e exibirá regras, juntamente com o resultado (True, False, Skipped) de cada avaliação de regra. Examine as regras de habilitação e as regras de exibição, se você espera que uma regra específica esteja avaliando como false, então é possível que a regra seja personalizada incorretamente ou as circunstâncias necessárias para retornar um resultado falso não sejam atendidas. Se assim for, pule para a etapa 9, caso contrário, é possível que o comando esteja ausente de uma regra ou regras e exibiremos as camadas de solução de comando para análise posterior.

    Captura de tela para selecionar a guia Propriedades de Comando para exibir os detalhes do comando para este botão.

  4. Selecione o link Exibir camadas de solução de definição de comando abaixo do nome do comando para exibir as soluções que instalaram uma definição do comando.

    Captura de tela do link Exibir camadas de solução de definição de comando abaixo do nome do comando.

  5. O painel Camadas de Solução exibirá a camada de cada definição de componente de faixa de opções que uma solução específica instalou. A camada na parte superior da lista é a definição atual que é usada pelo aplicativo, as outras camadas estão inativas e não são usadas pelo aplicativo no momento. Se a solução superior estiver desinstalada ou uma versão atualizada for instalada que remova a definição, a próxima camada se tornará a definição ativa atual usada pelo aplicativo. Quando uma camada de solução Active não gerenciada estiver presente, sempre será a definição que o aplicativo usa. Se não houver nenhuma solução Ativa listada, a solução listada na parte superior da lista será a definição usada pelo aplicativo. Todas as soluções gerenciadas personalizadas que não forem publicadas pela Microsoft também terão precedência sobre as camadas de solução publicadas pela Microsoft.

    O contexto Entity indica o objeto em que a personalização da faixa de opções está, se "Todas as Entidades" estiver listada, a camada será das extensões de cliente da Application Ribbon e não da entidade específica, caso contrário, o nome lógico da entidade será listado.

    Quando houver duas ou mais camadas, você pode selecionar duas linhas e selecionar Comparar para exibir uma comparação das definições trazidas por cada solução.

    Selecionar Voltar retornará à janela anterior do Verificador de Comandos.

    Se houver apenas uma camada de solução, pule para a etapa 9, caso contrário, selecione as duas principais camadas de solução (Se você tiver uma camada na solução Active, mas ela não estiver listada na parte superior, selecione a camada de solução Ativa e, em seguida, a linha superior) e selecione Comparar.

    Captura de tela para selecionar as duas principais camadas de solução e selecionar a opção Comparar.

  6. A comparação da definição ativa atual e da definição inativa anterior será exibida mostrando as diferenças, se houver. O exemplo a seguir mostra que a definição ativa não gerenciada foi personalizada com a remoção de uma regra Mscrm.HideOnModern de exibição incluída na camada de solução publicada pela Microsoft inativa msdynce_ActivitiesPatch .

    A captura de tela mostra a comparação da definição ativa atual e da definição inativa anterior.

  7. A abordagem necessária para corrigir a visibilidade de um botão dependerá das várias personalizações em seu cenário específico. Se você determinou que uma regra está avaliando incorretamente como false, e se a definição de regra estiver definida incorretamente, você deverá modificar a definição da regra e fazer alterações que permitam que a regra seja avaliada como falsa sob as circunstâncias adequadas. Se a definição de regra estiver correta, é possível que os requisitos que fariam a regra retornar false não sejam atendidos, como um valor de campo ou privilégio de segurança não é atribuído corretamente. Dependendo da definição de regra, os requisitos podem variar muito, consulte Definir regras de habilitação de faixa de opções e Definir regras de exibição de faixa de opções. Considerando nosso exemplo, o comando foi personalizado com a remoção de uma Mscrm.HideOnModern regra de exibição. Essa regra de exibição destina-se a ocultar esse botão específico de ser exibido em aplicativos de Interface Unificada e ficar visível apenas na interface herdada do Cliente Web. Podemos modificar a versão personalizada do comando e adicionar a regra de exibição ausente Mscrm.HideOnModern à definição de comando. Como essa é uma substituição personalizada de uma definição publicada pela Microsoft e não há outras modificações intencionais, é recomendável que essa versão personalizada do comando seja excluída para restaurar a funcionalidade padrão.

Opções de reparo

Selecione uma opção de reparo em uma das guias abaixo. A primeira guia é selecionada por padrão.

Como excluir um comando

Se houver outra camada de solução que contenha uma definição de trabalho desse comando, você poderá excluir essa definição para restaurar a próxima definição de trabalho inativa.

Se essa for a única camada e você não precisar mais do comando, poderá removê-la de sua solução se nenhum outro botão estiver fazendo referência ao comando.

Selecione uma das seguintes opções que correspondem ao seu cenário específico:

O comando está na solução Active não gerenciada

Para excluir um comando na camada de solução não gerenciada do Active , exportaremos uma solução não gerenciada contendo a entidade ou o Application Ribbon e editaremos o <RibbonDiffXml> nó no arquivo customizations.xml e importaremos uma nova versão dessa solução em que esse comando foi removido para excluir o componente. Consulte Exportar, preparar para editar e importar a faixa de opções.

O comando é específico da entidade

Com base em nosso cenário de exemplo, identificamos que a entidade é activitypointer e o comando que precisa ser excluído é Mscrm.CreateAppointment e é declarado na camada de solução não gerenciada ativa de um editor chamado DefaultPublisherCITest.

  1. Abra Configurações Avançadas.

  2. Navegue até Configurações ->Soluções.

  3. Selecione Novo para criar uma nova solução, defina Publisher como o valor mostrado na lista de camadas de solução do Verificador de Comando para o comando e a camada de solução Ativa. (Em nosso exemplo, este é DefaultPublisherCITTest).

  4. Selecione Entidades>adicionar existentes.

  5. Selecione a entidade em que seu comando está definido (em nosso exemplo, este é o ponto de atividade) e selecione OK.

  6. Desmarque os metadados Incluir entidade e desmarque Adicionar todas as opções de ativos antes de selecionar Concluir.

  7. Selecione Salvar.

  8. Selecione Exportar solução e exportar a solução não gerenciada.

  9. Extraia o arquivo .zip.

  10. Abra o arquivo customizations.xml .

  11. Localize o <Entity> nó filho do nó da entidade que você deseja editar e localizar seu nó filho <RibbonDiffXml> .

  12. Localize o <CommandDefinition> nó (Em nosso exemplo, a ID do <CommandDefinition> nó é Mscrm.CreateAppointment, portanto, localizaríamos o nó a seguir).

    A captura de tela mostra o local do nó CommandDefinition.

  13. Edite o <RibbonDiffXml> nó e remova o nó específico <CommandDefinition> que tem a ID do comando que você deseja excluir. Certifique-se de não excluir involuntariamente outros <CommandDefinition> nós que possam estar presentes. (Com base em nosso exemplo, excluiríamos o nó no qual a <CommandDefinition> ID é Mscrm.CreateAppointment.)

    A captura de tela mostra um exemplo para excluir o nó CommandDefinition.

  14. Salve o arquivo customizations.xml .

  15. Adicione o arquivo decustomizations.xml modificado de volta ao arquivo .zip da solução.

  16. Importe o arquivo da solução.

  17. Selecione Publicar Todas as Personalizações.

O comando está na Faixa de Opções de Aplicativo (se aplica a "Todas as entidades")

Se o comando não for específico da entidade, em vez disso, ele será aplicável a "Todas as Entidades" declaradas na Faixa de Opções de Aplicativo, as etapas serão ligeiramente diferentes da seguinte maneira:

  1. Abra Configurações Avançadas.
  2. Navegar até Soluções de Configurações>
  3. Selecione Novo para criar uma nova solução, defina Publisher como o valor mostrado na lista de camadas de solução do Verificador de Comando para o comando e a camada de solução Ativa.
  4. Selecione Extensões de Cliente Adicionar Faixas>de Opções de Aplicativo Existentes>.
  5. Selecione Salvar.
  6. Selecione Exportar solução e exportar a solução não gerenciada.
  7. Extraia o arquivo .zip.
  8. Abra o arquivo customizations.xml .
  9. Localize o nó raiz <RibbonDiffXml> .
  10. Localize o <CommandDefinition>.
  11. Edite o <RibbonDiffXml> nó e remova o <CommandDefinition> nó que tem a ID do comando que você deseja excluir. Certifique-se de não excluir involuntariamente outros <CommandDefinition> nós que possam estar presentes.
  12. Salve o arquivo customizations.xml .
  13. Adicione o arquivo decustomizations.xml modificado de volta ao arquivo de .zip de solução compactada.
  14. Importe o arquivo da solução.
  15. Selecione Publicar Todas as Personalizações.
O comando é de uma solução gerenciada personalizada que minha empresa criou

Para excluir um comando instalado por uma solução gerenciada personalizada que você criou, siga estas etapas:

  1. Em sua organização de desenvolvimento separada que tem a versão de origem não gerenciada de sua solução personalizada, conclua as etapas listadas acima para o comando está na opção de solução Active não gerenciada .
  2. Incremente a versão da solução personalizada.
  3. Exportar solução como gerenciada.
  4. Em sua organização afetada separada, importe esta nova versão da sua solução gerenciada sob medida.
O comando é de uma solução gerenciada personalizada que minha empresa não criou (de terceiros/ISV)

Para excluir um comando instalado por uma solução gerenciada personalizada que foi criada por terceiros/ISV, você precisará entrar em contato com o autor da solução e solicitar uma nova versão da solução que removeu a definição de comando específica e instalar essa nova solução em sua organização afetada.