Exercício: usar script de cliente para ocultar uma seção de formulário
Neste exercício, você usa o script de cliente para implementar o requisito corporativo de ocultar a seção Status quando uma data de início do projeto não for fornecida ou estiver no futuro.
Importante
Use um ambiente de teste com o Microsoft Dataverse provisionado e os aplicativos de exemplo habilitados. Se não tiver um, você poderá criar uma conta no plano da comunidade.
Tarefa 1 – Preparar solução com o formulário
Nesta tarefa, você criará uma solução, adicionará uma tabela existente à solução e preparará o formulário principal de uma das tabelas que você adicionou à solução.
Navegue até o Power Apps Maker Portal e verifique se você está no ambiente correto, com os aplicativos de exemplo habilitados.
Selecione Soluções e + Nova solução.
Digite Innovation Challenge Enhancements como Nome de exibição, selecione CDS default publisher como Editor e selecione Criar.
As Melhorias do Desafio de Inovação que você criou devem ser abertas.
Selecione + Adicionar existente e Tabela.
Insira a equipe na caixa de texto de pesquisa, selecione Projeto da equipe e selecione Avançar.
Observação
Se não conseguir localizar a tabela Projeto da equipe talvez você não tenha os aplicativos de exemplo no seu ambiente. Selecione outro ambiente ou crie um com os aplicativos de exemplo instalados.
Selecione o botão Editar objetos.
Selecione a guia Formulários selecione o formulário Informações do tipo de formulário principal e selecione Adicionar.
Selecione Adicionar novamente.
Abra a tabela Team Project que você acabou de adicionar à solução.
Selecione Formulários no cartão Experiências de dados.
Abra o formulário Informações que é do Tipo de formulário Principal.
Selecione a seção Status.
No painel Propriedades, altere o Nome para section_status. Por padrão, um GUID é atribuído como o nome da seção. Altere-o para um nome mais significativo para referência em seus scripts. Em seguida, marque a caixa de seleção Ocultar. Isso ocultará a seção, por padrão, para reduzir o efeito desagradável de mostrar e ocultar no carregamento do formulário.
Vá para o modo de exibição de árvore e selecione a guia Geral.
No painel Propriedades, altere o Nome para tab_general.
Selecione a coluna Início do projeto.
Vá para o painel Propriedades e selecione o botão (i) ao lado do nome da coluna da tabela.
Copie o Nome lógico (sample_projectstart) e cole-o em um bloco de notas. Você usará esse nome no script para fazer referência a essa coluna.
Selecione Salvar e publicar para salvar suas alterações. Aguarde a conclusão da publicação.
Selecione o botão Voltar.
Selecione Tudo.
Selecione Publicar todas as personalizações e aguarde o término da publicação.
Tarefa 2 – Construir script de cliente
Nesta tarefa, você criará um script que mostrará/ocultará a seção de status com base na data de início do projeto.
Você ocultará a seção de status se a data de início do projeto estiver vazia ou no futuro. Caso contrário, a seção de status será exibida.
Inicie uma nova instância do Visual Studio Code ou use o editor de código de sua preferência. Você pode baixar e instalar o Visual Studio Code.
Selecione Abrir Pasta.
Crie uma pasta na sua pasta de documentos e nomeie-a ClientScriptLab.
Selecione a pasta ClientScriptLab que você criou e Selecionar pasta.
Passe o cursor do mouse sobre a pasta CLIENTSCRIPTLAB e selecione Novo arquivo.
Nomeie o arquivo como FormTeamProject.js.
Adicione as funções a seguir ao FormTeamProject.js. Suas funções devem ter nomes exclusivos ou usar um namespace para garantir a exclusividade.
function LearnLab_handleTeamProjectOnLoad(executionContext) { } function LearnLab_handleProjectStatusOnChange(executionContext) { } function LearnLab_hideOrShowStatusSection(formContext) { }Adicione esse script à função OnLoad do código. Observe o nome da coluna de início do projeto aqui: sample_projectstart. Esse é o nome lógico que você salvou anteriormente. Esse código registra um manipulador de eventos OnChange e chama uma função comum para mostrar/ocultar a seção. Você precisa manipular na alteração caso uma entrada de data de início do projeto altere o requisito de ocultar/mostrar.
var formContext = executionContext.getFormContext(); formContext.getAttribute('sample_projectstart').addOnChange(LearnLab_handleProjectStatusOnChange); LearnLab_hideOrShowStatusSection(formContext);Adicione esse script à função OnChange. Esse código simplesmente obtém o formContext e chama a função comum para ocultar/mostrar.
var formContext = executionContext.getFormContext(); LearnLab_hideOrShowStatusSection(formContext);Adicione esse script à função hideOrShowStatusSection. Observe a guia nome da tab_general, o nome da seção section_status e o nome de coluna sample_projectstart.
var tabGeneral = formContext.ui.tabs.get('tab_general'); var sectionStatus = tabGeneral.sections.get('section_status'); var startDate = formContext.getAttribute('sample_projectstart').getValue(); var CurrentDate = new Date(); if (startDate == null || startDate > CurrentDate) { sectionStatus.setVisible(false); } else { sectionStatus.setVisible(true); }Seu script agora deve ser semelhante a esta imagem.
Selecione Arquivo e Salvar.
Tarefa 3: Carregar o script
Nesta tarefa, você carrega o script criado em seu ambiente.
Navegue até o Power Apps maker portal e verifique se você está no ambiente correto.
Selecione Soluções e abra a solução Melhorias de desafio de inovação.
Selecione +Novo e Mais | Recurso da Web.
Digite FormTeamProject.js para Nome, FormTeamProject.js para Nome para exibição, selecione Java script (JS) para Tipo e selecione Escolher arquivo.
Selecione o arquivo FormTeamProject.js que você criou e selecione Abrir.
Selecione Salvar.
A sua solução deve agora ter a tabela Projeto da equipe e o recurso da Web FormTeamsProject.js.
Não saia desta página.
Tarefa 4 – Editar formulário
Nesta tarefa, você adicionará a biblioteca JavaScript ao formulário principal de Team Project e adicionará um manipulador de eventos ao evento On Load.
Verifique se você ainda está na solução de Melhorias de desafio de inovação.
Expanda Tabelas e expanda a tabela Projeto de Equipe.
Selecione Formulários e abra o formulário Informações.
Vá para o painel Propriedades e selecione a guia Eventos. Expanda OnLoad, se ele estiver recolhido, e selecione + Manipulador de Eventos. Em Configurar Evento, selecione + Adicionar biblioteca.
Insira a equipe na caixa de texto de pesquisa e pressione Enter. Selecione FormTeamProject.jse selecione Adicionar.
Digite LearnLab_handleTeamProjectOnLoad em Função, marque a caixa de seleção Passar contexto de execução como primeiro parâmetro e selecione Concluído.
Selecione Salvar e publicar e aguarde as alterações serem salvas.
Depois que as alterações forem salvas e publicadas, selecione o botão Voltar.
Selecione Tudo.
Selecione Publicar todas as personalizações e aguarde o término da publicação.
Tarefa 5 – Testar
Nesta tarefa, você testará seu script.
Navegue até o Power Apps Maker Portal e verifique se você está no ambiente correto.
Selecione Aplicativos e abra o aplicativo Innovation Challenge.
Selecione Team Projects e abra o projeto da equipe de Computação em Nuvem.
A seção Status deve ser ocultada porque a coluna Início do projeto está vazia.
Pressione o ícone de calendário próximo ao início do projeto e selecione a data de hoje.
A seção Status deve se tornar visível.
Altere o início do projeto para uma data futura.
A seção Status deve se tornar oculta.
Altere o início do projeto para uma data passada.
A seção Status deve se tornar visível novamente.
Você já usou a API de cliente e JavaScript para implementar requisitos comerciais que não são possíveis de implementar usando opções declarativas como regras de negócios.