Um botão na barra de comandos fica visível quando deveria estar oculto
Artigo
Aplica-se a: Power Apps Número original do KB: 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 verdadeiras. Se isso for inesperado, é possível que a definição de comando tenha sido substituída e não tenha regras de habilitação ou regras de exibição, ou que as próprias definições de regra sejam substituídas e façam com que o botão fique visível quando você espera que ele esteja oculto.
Não remova a Mscrm.HideOnModern regra de exibição de um comando para forçar a exibição de um botão na Interface Unificada. Os comandos que têm a Mscrm.HideOnModern regra de exibição destinam-se à interface herdada do Web Client e não têm suporte na Interface Unificada e podem não funcionar corretamente.
O exemplo a seguir mostra dois botões Compromisso na página da grade de atividades e espera-se que um esteja oculto.
Selecione a guia Propriedades do Comando para exibir os detalhes do comando para este botão. Isso exibirá as ações, as regras de ativação e as regras de exibição, juntamente com o resultado (Verdadeiro, Falso, Ignorado) 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 seja avaliada como falsa, é possível que a regra esteja personalizada incorretamente ou que as circunstâncias necessárias para retornar um resultado falso não sejam atendidas. Nesse caso, pule para a etapa 9, caso contrário, é possível que o comando não tenha uma regra ou regras e visualizaremos as camadas de solução de comando para análise posterior.
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.
O painel Camadas de Solução exibirá as camadas de cada definição de componente da faixa de opções que uma solução específica instalou. A camada no topo da lista é a definição atual usada pelo aplicativo, as outras camadas estão inativas e não são usadas pelo aplicativo no momento. Se a solução superior for 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 ativa não gerenciada estiver presente, ela 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 são publicadas pela Microsoft também terão precedência sobre as camadas de solução publicadas pela Microsoft.
O contexto Entidade indica o objeto em que a personalização da faixa de opções está, se "Todas as Entidades" estiver listado, a camada será das extensões de cliente da Faixa de Opções do Aplicativo e não específica da entidade, caso contrário, o nome lógico da entidade será listado.
Quando há 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 camadas de solução superiores (se você tiver uma camada na solução Ativa, 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.
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 inativa msdynce_ActivitiesPatch publicada pela Microsoft.
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á sendo avaliada incorretamente como falsa e se a definição da regra estiver definida incorretamente, modifique a definição da regra e faça alterações que permitam que a regra seja avaliada como falsa nas circunstâncias adequadas. Se a definição da 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 da regra, os requisitos podem variar muito, consulte Definir regras de habilitação da faixa de opções e Definir regras de exibição da faixa de opções. Considerando nosso exemplo, o comando foi customizado 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 da Interface Unificada e só ser visível na interface do Cliente Web herdada. Poderíamos modificar a versão personalizada do comando e adicionar a regra de Mscrm.HideOnModern exibição ausente à definição do 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.
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 esta for a única camada e você não precisar mais do comando, poderá removê-la da sua solução se nenhum outro botão estiver fazendo referência ao comando.
Selecione uma das seguintes opções que corresponda ao seu cenário específico:
O comando está na solução ativa não gerenciada
Para excluir um comando na camada de solução não gerenciada ativa, exportaremos uma solução não gerenciada que contém a entidade ou a Faixa de Opções do Aplicativo e editaremos o <RibbonDiffXml> nó no arquivo customizations.xml e, em seguida, 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 DefaultPublisherCITTest.
Abra Configurações avançadas.
Navegue até Configurações ->Soluções.
Selecione Novo para criar uma nova solução, defina o Publicador como o valor mostrado na listagem de camadas de solução do Verificador de Comandos para o comando e a camada de solução Ativa. (Em nosso exemplo, isso é DefaultPublisherCITTest).
Selecione Entidades>Adicionar existente.
Selecione a entidade em que seu comando está definido (em nosso exemplo, isso é activitypointer) e selecione OK.
Desmarque as opções Incluir metadados da entidade e desmarque Adicionar todos os ativos antes de selecionar Concluir.
Selecione Salvar.
Selecione Exportar Solução e exporte a solução não gerenciada.
Extraia o arquivo zip.
Abra o arquivo customizations.xml .
Localize o <Entity> nó filho do nó da entidade que você deseja editar e localize seu nó filho <RibbonDiffXml> .
Localize o <CommandDefinition> nó (em nosso exemplo, o <CommandDefinition> ID do nó é Mscrm.CreateAppointment, então localizaríamos o nó a seguir).
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 acidentalmente outros <CommandDefinition> nós que possam estar presentes. (Com base em nosso exemplo, excluiríamos o nó no qual o <CommandDefinition> ID é Mscrm.CreateAppointment.)
Salve o arquivo customizations.xml .
Adicione o arquivo customizations.xml modificado de volta ao arquivo de .zip solução.
Importe o arquivo de solução.
Selecione Publicar Todas as Personalizações.
O comando está na Faixa de Opções do Aplicativo (aplica-se a "Todas as entidades")
Se o comando não for específico da entidade, em vez disso, for aplicável a "Todas as Entidades" declaradas na Faixa de Opções do Aplicativo, as etapas serão ligeiramente diferentes da seguinte maneira:
Abra Configurações avançadas.
Navegue para Configurações>Soluções.
Selecione Novo para criar uma nova solução, defina o Publicador como o valor mostrado na listagem de camadas de solução do Verificador de Comandos para o comando e a camada de solução Ativa.
Selecione Extensões>de cliente Adicionar faixas de opções de aplicativos existentes.>
Selecione Salvar.
Selecione Exportar Solução e exporte a solução não gerenciada.
Extraia o arquivo zip.
Abra o arquivo customizations.xml .
Localize o nó raiz <RibbonDiffXml> .
Localize o <CommandDefinition>arquivo .
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 acidentalmente outros <CommandDefinition> nós que possam estar presentes.
Salve o arquivo customizations.xml .
Adicione o arquivo customizations.xml modificado de volta à solução compactada .zip arquivo.
Importe o arquivo de solução.
Selecione Publicar Todas as Personalizações.
O comando é de uma solução gerenciada personalizada criada pela minha empresa
Para excluir um comando que foi instalado por uma solução gerenciada personalizada que você criou, siga estas etapas:
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 a opção O comando está na solução ativa não gerenciada.
Incremente a versão da sua solução personalizada.
Exporte a solução como gerenciada.
Em sua organização afetada separada, importe essa nova versão de sua solução gerenciada personalizada.
O comando é de uma solução gerenciada personalizada que minha empresa não criou (de terceiros/ISV)
Para excluir um comando que foi instalado por uma solução gerenciada personalizada criada por um ISV de terceiros, 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, em seguida, instalar essa nova solução em sua organização afetada.
Como adicionar regras de ativação/exibição ausentes ao comando
Se houver modificações no comando que você precisa manter, mas você ainda quiser que o botão fique oculto nas circunstâncias apropriadas, poderá adicionar as regras de ativação/exibição ausentes ao comando em vez de excluir a definição personalizada.
Selecione uma das seguintes opções que corresponda ao seu cenário específico:
O comando está na solução ativa não gerenciada
Se você determinou que as regras de ativação/exibição estão ausentes na definição de comando, poderá modificar o <CommandDefinition> nó e adicionar as regras para obter o comportamento desejado. Para corrigir um comando na camada de solução não gerenciada ativa, exportaremos uma solução não gerenciada que contém a entidade ou a Faixa de Opções do Aplicativo e editaremos o <RibbonDiffXml> nó no arquivo customizations.xml e, em seguida, importaremos uma nova versão dessa solução que contém a definição de comando fixa. 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 corrigido é Mscrm.CreateAppointment e é declarado na camada de solução não gerenciada ativa de um editor chamado DefaultPublisherCITTest.
Abra Configurações avançadas.
Navegue até Configurações>Soluções.
Selecione Novo para criar uma nova solução, defina o Publicador como o valor mostrado na listagem de camadas de solução do Verificador de Comandos para o comando e a camada de solução Ativa. (Em nosso exemplo, isso é DefaultPublisherCITTest)
Selecione Entidades>Adicionar existente.
Selecione a entidade em que seu comando está definido (em nosso exemplo, isso é activitypointer) e selecione OK.
Desmarque as opções Incluir metadados da entidade e Adicionar todos os ativos antes de selecionar Concluir.
Selecione Salvar.
Selecione Exportar Solução e exporte a solução não gerenciada.
Extraia o arquivo zip.
Abra o arquivo customizations.xml .
Localize o <Entity> nó filho do nó da entidade que você deseja editar e localize seu nó filho <RibbonDiffXml> .
Localize o <CommandDefinition> nó. No exemplo, o <CommandDefinition> ID do nó é Mscrm.CreateAppointment. Portanto, você localizaria o seguinte nó:
Edite o <RibbonDiffXml> nó e faça as alterações necessárias no <CommandDefinition> nó que permitirão que o comando funcione corretamente nas circunstâncias corretas para corrigir o comando. Para obter mais informações sobre como declarar comandos, consulte Definir comandos da faixa de opções. (Com base em nosso exemplo, modificaríamos o <CommandDefinition> nó adicionando a Mscrm.HideOnModern regra de exibição que ocultará corretamente esse botão.)
Restaure o arquivo customizations.xml modificado para o arquivo .zip solução.
Importe o arquivo de solução.
Selecione Publicar Todas as Personalizações.
O comando está na Faixa de Opções do Aplicativo (aplica-se a "Todas as entidades")
Se o comando não for específico da entidade, em vez disso, for aplicável a "Todas as entidades" declaradas na Faixa de Opções do Aplicativo, as etapas serão ligeiramente diferentes da seguinte maneira:
Abra Configurações avançadas.
Navegue até Configurações>Soluções.
Selecione Novo para criar uma nova solução, defina o Publicador como o valor mostrado na listagem de camadas de solução do Verificador de Comandos para o comando e a camada de solução Ativa.
Selecione Extensões>de cliente Adicionar faixas de opções de aplicativos existentes.>
Selecione Salvar.
Selecione Exportar Solução e exporte a solução não gerenciada.
Extraia o arquivo zip.
Abra o arquivo customizations.xml .
Localize o nó raiz <RibbonDiffXml> .
Localize o <CommandDefinition>arquivo .
Edite <RibbonDiffXml> e faça as alterações necessárias no <CommandDefinition> nó que permitirão que o comando funcione corretamente nas circunstâncias corretas para corrigir o comando. Para obter mais informações sobre como declarar comandos, consulte Definir comandos da faixa de opções.
Adicione o arquivo customizations.xml modificado de volta ao arquivo de .zip solução.
Importe o arquivo de solução.
Selecione Publicar Todas as Personalizações.
O comando é de uma solução gerenciada personalizada que eu criei
Para corrigir um comando que foi instalado por uma solução gerenciada personalizada que você criou, siga estas etapas:
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 a opção O comando está na solução ativa não gerenciada.
Incremente a versão da sua solução personalizada.
Exporte a solução como gerenciada.
Em sua organização afetada separada, importe essa nova versão de sua solução gerenciada personalizada.
O comando é de uma solução gerenciada personalizada que eu não criei ou que minha organização não possui (ou seja, de um ISV / terceiros)
Para corrigir um comando que foi instalado por uma solução gerenciada personalizada criada por um ISV de terceiros, você precisará entrar em contato com o autor da solução e solicitar uma nova versão da solução que contenha a definição de comando fixa e instalar essa nova solução em sua organização afetada.
O comando está em uma solução gerenciada publicada pela Microsoft
Para corrigir um comando que foi instalado por uma solução gerenciada publicada pela Microsoft, talvez você precise instalar uma versão mais recente da solução, o que normalmente seria feito durante uma atualização de versão. É possível que você tenha identificado um bug que ainda precisa ser corrigido. Entre em contato com o suporte ao cliente para obter assistência.
Como corrigir uma regra de ativação/exibição
Selecione o link Exibir camadas de solução de definição de regra abaixo do nome da regra para exibir as soluções que instalaram uma definição da regra.
O painel Camadas de Solução exibirá as camadas de cada definição de componente da faixa de opções que uma solução específica instalou. A camada no topo da lista é a definição atual usada pelo aplicativo, as outras camadas estão inativas e não são usadas pelo aplicativo no momento. Se a solução superior for 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 ativa não gerenciada estiver presente, ela 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 são publicadas pela Microsoft também terão precedência sobre as camadas de solução publicadas pela Microsoft.
O contexto Entidade indica o objeto em que a personalização da faixa de opções está, se "Todas as Entidades" estiver listado, a camada será das extensões de cliente da Faixa de Opções do Aplicativo e não específica da entidade, caso contrário, o nome lógico da entidade será listado.
Quando há 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.
A imagem a seguir mostra as camadas de solução para a regra de habilitação em nosso exemplo e indica que há uma camada de solução nesse caso e que é uma personalização não gerenciada, conforme indicado pela solução intitulada Ativa. Seu cenário real pode ser diferente, você pode não ter uma camada de solução ativa, você pode ter uma solução gerenciada e o nome dessa solução será listado aqui.
Agora que examinamos as camadas da solução e identificamos a solução que instalou a personalização, devemos corrigir a definição na solução apropriada.
Selecione uma das seguintes opções que corresponda ao seu cenário específico:
A regra de habilitação/exibição está na solução Active não gerenciada
Para corrigir uma regra de habilitação/exibição na camada de solução não gerenciada ativa, exportaremos uma solução não gerenciada que contém a entidade ou a Faixa de Opções do Aplicativo e editaremos o <RibbonDiffXml> nó no arquivo customizations.xml e, em seguida, importaremos a nova versão dessa solução que contém a definição de regra de habilitação/exibição fixa. Consulte Exportar, preparar para editar e importar a faixa de opções.
A regra de habilitação/exibição é específica da entidade
Com base em nosso cenário de exemplo, identificamos que a entidade é o contato e a regra de habilitação que precisa ser corrigida é new.contact.EnableRule.EntityRule e é declarada na camada de solução não gerenciada ativa de um editor chamado DefaultPublisherCITTest.
Abra Configurações avançadas.
Navegue até Configurações>Soluções.
Selecione Novo para criar uma nova solução, defina o Publicador como o valor mostrado na lista de camadas de solução do Verificador de Comandos para a regra de habilitação e a camada de solução Ativa. (Em nosso exemplo, isso é DefaultPublisherCITTest)
Selecione Entidades>Adicionar existente.
Selecione a entidade em que sua regra de ativação/exibição está definida (em nosso exemplo, isso é contato) e selecione OK.
Desmarque as opções Incluir metadados da entidade e Adicionar todos os ativos antes de selecionar Concluir.
Selecione Salvar.
Selecione Exportar Solução e exporte a solução não gerenciada.
Extraia o arquivo zip.
Abra o arquivo customizations.xml .
Localize o <Entity> nó filho do nó da entidade que você deseja editar e localize seu nó filho <RibbonDiffXml> .
Localize a regra de ativação/exibição. No exemplo, a ID da regra de habilitação é new.contact.EnableRule.EntityRule. Portanto, você localizaria o seguinte nó:
Edite o <RibbonDiffXml> nó e faça as alterações necessárias na regra de ativação/exibição que permitirão que a regra seja avaliada como True nas circunstâncias corretas para corrigir a regra. Para obter mais informações sobre como declarar regras, consulte Definir regras de habilitação da faixa de opções e Definir regras de exibição da faixa de opções. (Com base em nosso exemplo, mudaríamos a definição da regra para a seguinte)
Adicione o arquivo customizations.xml modificado de volta ao arquivo de .zip solução.
Importe o arquivo de solução.
Selecione Publicar Todas as Personalizações.
A regra de habilitação/exibição está na Faixa de Opções do Aplicativo (aplica-se a "Todas as entidades")
Se a regra de habilitação/exibição não for específica da entidade, em vez disso, for aplicável a "Todas as Entidades" declaradas na Faixa de Opções do Aplicativo, as etapas serão ligeiramente diferentes da seguinte maneira:
Abra Configurações avançadas.
Navegue até Configurações>Soluções.
Selecione Novo para criar uma nova solução, defina Publisher como o valor mostrado na listagem de camadas de solução do Verificador de Comandos para a regra de habilitação/exibição e a camada de solução Ativa.
Selecione Extensões>de cliente Adicionar faixas de opções de aplicativos existentes.>
Selecione Salvar.
Selecione Exportar Solução e exporte a solução não gerenciada.
Extraia o arquivo zip.
Abra o arquivo customizations.xml .
Localize o nó raiz <RibbonDiffXml> .
Localize a regra de ativação/exibição.
Edite o <RibbonDiffXml> nó e faça as alterações necessárias na regra de ativação/exibição que permitirão que a regra seja avaliada como True nas circunstâncias corretas para corrigir a regra. Para obter mais informações sobre como declarar regras, consulte Definir regras de habilitação da faixa de opções e Definir regras de exibição da faixa de opções.
Adicione o arquivo customizations.xml modificado de volta ao arquivo de .zip solução.
Importe o arquivo de solução.
Selecione Publicar Todas as Personalizações.
A regra de habilitação/exibição é de uma solução gerenciada personalizada que eu criei
Para corrigir uma regra de habilitação/exibição que foi instalada por uma solução gerenciada personalizada que você criou, siga estas etapas:
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 a opção A regra de habilitação/exibição está na solução ativa não gerenciada.
Incremente a versão da sua solução personalizada.
Exporte a solução como gerenciada.
Em sua organização afetada separada, importe essa nova versão de sua solução gerenciada personalizada.
A regra de habilitação/exibição é de uma solução gerenciada personalizada que eu não criei ou minha organização não possui (de um ISV de terceiros)
Para corrigir uma regra de habilitação/exibição que foi instalada por uma solução gerenciada personalizada que foi criada por um ISV de terceiros, você precisará entrar em contato com o autor da solução e solicitar uma nova versão da solução que contém a definição de regra de habilitação/exibição fixa e instalar essa nova solução em sua organização afetada.
A regra de habilitação/exibição está em uma solução gerenciada publicada pela Microsoft
Para corrigir uma regra de habilitação/exibição que foi instalada por uma solução gerenciada publicada pela Microsoft, talvez seja necessário instalar uma versão mais recente da solução, o que normalmente seria feito durante uma atualização de versão. É possível que você tenha identificado um bug que ainda precisa ser corrigido. Entre em contato com o suporte ao cliente para obter assistência.