Visão geral de comandos modernos
Os comandos orientam o comportamento do aplicativo principal para aplicativos baseados em modelo. Eles são os botões com os quais os usuários interagem ao reproduzir aplicativos e as ações resultantes executadas quando um botão é selecionado. Cada comando é posicionado em relação a outros comandos e vinculado a um local da barra de comandos no aplicativo.
Em termos gerais, a personalização de comandos se encaixa nas categorias a seguir. Existem vários recursos em cada categoria, que são abordados com mais profundidade em toda a documentação de comando moderna:
- Display. Como o botão aparece e onde está localizado em um aplicativo. Por exemplo, o rótulo, o ícone e os rótulos de acessibilidade do botão, bem como o local e a posição da barra de comandos em uma barra de comandos.
- Action. A lógica que é executada quando um botão é selecionado. Por exemplo, criar e atualizar dados ou interagir com vários controles e páginas dentro do aplicativo.
- Visibilidade. Condições lógicas que especificam quando um botão está visível ou oculto para um usuário. Por exemplo, você pode querer que o botão fique visível para alguns usuários e oculto para outros. Ou talvez o botão deva ficar visível apenas quando determinados critérios dos registros de dados forem atendidos.
Locais da barra de comandos
Grade principal. Esta barra de comandos é exibida ao usar a navegação à esquerda de um aplicativo para exibir uma lista completa de páginas de registros nesta tabela.
Formulário principal. Esta barra de comandos é exibida nos formulários principais desta tabela. Isso aparece na parte superior do formulário e difere da visualização associada ou da visualização de subgrade que aparecerá em diferentes áreas do formulário.
Exibição de subgrade. Esta barra de comandos é exibida em formulários de outras tabelas que renderizam dados desta tabela em uma subgrade. Por exemplo, o formulário principal da conta tem um controle de subgrade que lista registros de contato relacionados ao registro da conta. Para editar a barra de comandos abaixo, edite a barra de comandos para a tabela de contatos e, depois, a exibição de subgrade.
Exibição associada. Esta barra de comandos é exibida no formulário de uma tabela pai ao exibir os dados relacionados nesta tabela. Por exemplo, no formulário principal de um registro de conta, selecione a guia Relacionado e, depois, selecione uma tabela relacionada como contatos.
Ações rápidas. As ações rápidas estão associadas à localização da grade principal. Para adicionar ou editar comandos para ações rápidas e locais da grade principal, selecione a tabela desejada no designer de aplicativo moderno, edite a barra de comandos e escolha o local da grade principal. Os primeiros cinco comandos, determinados por ordem, também serão mostrados como ações rápidas ao reproduzir o aplicativo.
Observação
As localizações da barra de comandos personalizadas com menos frequência não são compatíveis com o designer de comandos. Consulte as seções Barra de comandos global e outras faixas para obter mais informações sobre como personalizar comandos para esses locais.
Tipos de comandos
- Comando. Botão padrão. Executa uma ação quando selecionado. Também pode ser aninhado em grupos dentro de menus suspensos e botões de divisão. Observe que eles eram chamados de flyouts nos comandos clássicos.
- Menu Suspenso. Cria um menu no qual você pode organizar comandos dentro de um grupo.
- Agrupar. Adicione títulos a grupos de comandos anihados em menus suspensos e botões de divisão.
- Botão de Divisão. Semelhante a uma lista suspensa, mas tem um comando primário. Quando o botão de divisão é selecionado, a ação do comando primário é executada. Se a divisa de expansão for selecionada, o comando primário não será executado. Em vez disso, uma lista será expandida para mostrar grupos, submenus e comandos adicionais.
Principais diferenças entre comandos clássicos e modernos
Os comandos clássicos (antes conhecidos como faixa) não eram personalizáveis com pouco código. Com o código, as personalizações de comando eram difíceis, entediantes e sujeitas a erros. Para escalar o comando para pouco código, bem como usar páginas personalizadas para convergir telas e aplicativos baseados em modelo, era vital reinventar e recriar a infraestrutura de comando.
Os comando modernos oferecem muitos recursos novos e são muito mais simples de usar.
Recurso | Clássico | Moderno |
---|---|---|
Compatível no runtime do aplicativo baseado em modelo | Sim | Sim. Além disso, há suporte ao runtime do Power Fx. |
Personalizado usando | Edição manual de XML em arquivos de solução ou usando ferramentas de terceiros. Operações de exportação e importação de solução demoradas necessárias. | Suporte ao designer de comandos, bem como a APIs do Dataverse. |
Dá suporte ao Power Fx. | No | Sim. Para ações e visibilidade. |
Tempo necessário para personalizar | Lento, sujeito a erros. | Rápido |
Desempenho e confiabilidade | Fácil de cometer erros. A personalização ruim e a falta de escopo geralmente afetam o desempenho do aplicativo | O tratamento de erros em linha evita erros. Otimizado para o Power Fx para melhor desempenho em tempo de execução. |
Compartilhamento | Segurança baseada em função do Dataverse. | Os comandos não Power Fx usam a segurança baseada em função do Dataverse padrão. Os comandos do Power Fx atualmente exigem que a biblioteca de componentes de comando seja compartilhada, além de ter um direito de acesso apropriado. |
Comportamentos de solução e ALM | Camadas de solução inconsistentes e problemáticas, sem presença na interface da solução. Muitos comportamentos de solução padrão não são compatíveis, como patches, segmentação, upgrade de solução, propriedades gerenciadas e muito mais. | Camadas de solução padrão gerenciadas centralmente para vários tipos de objetos de solução dentro do Dataverse. Presente na interface da solução. Todos os comportamentos de solução padrão são compatíveis. |
Localização | Não padrão | Padronizado usando traduções de exportação e importação para toda a solução. |
Modelo de dados | Complexo. Otimizado para faixas de opções clássicas e contém muitas propriedades que não são mais necessárias. | Simples, otimizado para as barras de comando de aplicativos baseadas em modelos atuais. |
Usar JavaScript | Sim | Sim. Agora mais simples. Observação: o mesmo JavaScript pode ser usado para comandos clássicos e modernos. |
Personalizar comandos prontos para uso | Sim | Os comandos tornam-se editáveis no designer de comandos uma vez migrados para a estrutura moderna. |
Comandos específicos do aplicativo | Não | Sim. O uso do designer de comandos moderno garante que os comandos sejam visíveis apenas no aplicativo selecionado. |
Comandos específicos da tabela que serão exibidos em todos os aplicativos que contêm a tabela | Sim | Sim. Requer a modificação da definição appaction dentro do arquivo de solução. |
Comandos globais que serão exibidos para todas as tabelas e aplicativos para o local da barra de comandos especificado | Sim | Sim. Requer a modificação da definição appaction dentro do arquivo de solução. |
Criar botões de divisão, submenus e grupos | Sim | Sim |
Preencher dinamicamente um submenu com código | Sim | Não. Recomendamos criar comandos declarativamente. |
Personalizar comandos de cabeçalho de aplicativo global | Sim | Não |
Personalizar comandos para outros locais da barra de comando/incomuns ou obsoletos | Sim | Não |
Executar um fluxo ou fluxo de trabalho moderno | Usando JavaScript | Usando JavaScript. Também compatível usando uma página personalizada. |
Comparação entre regras de visibilidade clássicas e modernas
As regras de visibilidade clássicas geralmente tinham uma regra específica para cada cenário. Com o Power Fx, uma função declarativa substitui muitas regras clássicas. E é muito mais simples de usar.
Observe que as regras de visibilidade clássicas também terão suporte em breve nos comandos modernos. No entanto, o suporte para regras clássicas era necessário para migrar de forma confiável comandos clássicos para comandos modernos, e não há suporte para a personalização de regras clássicas no designer de comandos. Recomendamos que você use o Power Fx daqui para frente.
Caso de uso | Regra clássica | Opções clássicas | Propriedade visível do Power Fx |
---|---|---|---|
Mostrar/ocultar com base em valores de dados | CustomRule | Usar JavaScript | !IsBlank(Auto.Selected.Item.Email) |
Mostrar/ocultar com base na permissão da tabela | EntityPrivilegeRule | Várias | DataSourceInfo() |
Mostrar/ocultar com base na permissão do registro | RecordPrivilegeRule | Várias | RecordInfo() |
Referenciar o contexto de controle para tabelas primárias e relacionadas | EntityRule | PrimaryEntity. SelectedEntity | Self.Selected |
Referenciar o contexto de controle | EntityRule | Formulário. HomePageGrid. SubGridStandard. SubGridAssociated | Self.Selected |
Propriedades de metadados da tabela | EntityPropertyRule | DataSourceInfo() | |
Mostrar/ocultar com base no estado do formulário. Por exemplo, mostrar para o formulário de criação | FormStateRule | Criar. Existente. ReadOnly. Desabilitado. BulkEdit | Self.Selected.State = FormMode.New |
Mostrar quando > 1 registros são selecionados em uma grade | SelectionCountRule | CountRows(Auto.Selected.Items) > 1 | |
Mostrar/ocultar uma tabela relacionada em uma pesquisa polimórfica. Por exemplo, verifique se a pesquisa é um usuário OU uma equipe | CustomRule | PrimaryEntityTypeCode | IsType(), AsType |
Propriedades do ambiente de referência (Org) | CustomRule | OrgName. OrgLcid. UserLcid | Não disponível no momento |
Perguntas frequentes
- Por que vejo mais comandos no designer do que no meu aplicativo?
- Há vários motivos. Às vezes, há uma lógica de visibilidade que ocultará o comando ao executar o aplicativo. Outras vezes, esses comandos são injetados dinamicamente por meio de JavaScript personalizado durante o tempo de execução e não são configuráveis.
- Por que vejo comandos duplicados no designer?
- Este era um padrão comum usado com comandos clássicos. Ambos os comandos não apareceriam em tempo de execução, pois eram controlados por regras de visibilidade. O designer de comando mostrará todos os comandos, independentemente das regras de visibilidade.
Consulte também
Personalizar a barra de comandos usando o designer de comando
Gerenciar comandos em soluções
Limitações conhecidas de comando moderno