Criar códigos para os formulários do Microsoft Dynamics CRM 2015 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

A programação de formulário fornece maneiras de interagir com formulários de entidade usando o JavaScript que é executado para eventos que ocorrem no formulário.

Neste tópico

Quando usar a programação de formulário

Fatores que devem ser considerados ao usar a programação de formulário

Gerenciar dependências da biblioteca

Scripts de formulário de gravação em funcionam corretamente

Apresentações de formulário diferentes

Ferramentas de desenvolvimento

Quando usar a programação de formulário

O Microsoft Dynamics 365 fornece várias opções para controlar os processos empresariais. A programação de formulário é uma opção. Mas lembre-se de que você tem outra opção: regras comerciais. As regras de negócios oferecem um método para quem não conhece o JavaScript e não é um desenvolvedor para aplicar a lógica de negócios em um formulário. Consulte o tópico do guia de personalização: TechNet: criar e editar regras de negócios para obter mais informações.

A principal vantagem da programação de formulário e regras de negócios é que é imediata. Não exigem que os dados sejam enviados para o servidor e, portanto, não fornecerem o melhor desempenho para vários cenários. Como eles permitem a interação humana, eles também são a opção mais flexível.

Enquanto as regras de negócios têm uma vantagens porque podem ser criadas e mantidas por um usuário que não é um desenvolvedor, com determinadas limitações e não é destinada a substituir scripts de formulário. A programação de formulário permite obter coisas que ainda não podem ser executadas com regras de negócios.

As tarefas geralmente executadas com a programação de formulário incluem:

  • Validação de dados

  • Automação

  • Melhoria e aplicação do processo

Validação de dados

Sempre que possível, você deve executar a validação de dados enquanto os dados estão sendo editados. A definição do campo Formulário executará a validação dos dados mais comuns para você. Por exemplo, um campo Single Line of Text formatado para um endereço de email não permitirá que um valor inválido seja inserido.

Use a programação de formulário para validação adicional de dados que são exclusivas para sua organização. Por exemplo, sua organização pode ter regras específicas sobre como os números de telefone devem ser formatados ou o tamanho mínimo do campo Subject em uma atividade de serviço.

Automação

Você pode fazer melhorias significativas de rendimento ao usar o script de formulário para automatizar tarefas comuns. Você pode definir os valores de campos que dependem dos dados inseridos em um formulário, que ajudarão a economizar tempo considerável dos usuários ao inserir dados. Usar a programação de formulário para automação é valioso porque permite ao usuário verificar que um processo padrão é válido em uma ocorrência específica. Os usuários podem realizar ajustes necessários antes de salvar um registro.

Melhoria e aplicação do processo

Você pode personalizar quais dados exibir no formulário ou o layout no formulário para otimizar para tarefas específicas realizadas por pessoas na sua organização. Você pode usar a programação de formulário para mostrar ou ocultar elementos de formulário específicos ou abrir formulários diferentes que foram definidos para uma entidade. É possível controlar quais campos são obrigatórios com base nos dados presentes no formulário ou em registros relacionados.

Com o Atualização do Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015 você pode escrever código para controlar os fluxos de processo empresarial que aparecem na parte superior dos formulários.Para obter mais informações:Criar scripts para fluxos de processos de negócios.

Fatores que devem ser considerados ao usar a programação de formulário

A lógica aplicada na programação de formulário pode ser executada apenas no navegador de um usuário interagindo dentro do formulário de entidade do aplicativo Microsoft Dynamics 365. Dessa forma, você não precisa confiar apenas na programação de formulário para iniciar ou impor processos relacionados aos seus dados. Os registros podem ser criados ou atualizado diretamente com os APIs do serviço Web ou com fluxos de trabalho fora do contexto do formulário. A programação do formulário deve complementar a lógica de negócios aplicada usando plug-ins e processos de forma que todos os registros criados ou atualizados de alguma forma sigam as mesmas com processos.

Com o Atualização do Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015, as regras comerciais podem ser definidas para executar no escopo da entidade para que a mesma lógica seja aplicada no mesmo servidor independente da origem da ação.Para obter mais informações:Criar ou editar regras de negócios

Enquanto a programação de formulário fornece recursos fornecer ocultar campos de formulário para que os usuários possam exibir ou atualizar alguns dados da entidade, não representa uma solução completa dos requisitos de aplicação da segurança. Um usuário pode ver os dados de entidade que não estão visíveis no formulário com uma variedade de métodos, como Localização Avançada.Para obter mais informações:O modelo de segurança do Microsoft Dynamics CRM 2015

Gerenciar dependências da biblioteca

Como otimização de desempenho, os formulários Microsoft Dynamics 365 carregam recursos da Web JavaScript de maneira assíncrona e em paralelo. Isso significava que a ordem em que as bibliotecas são configuradas para um formulário não garante que uma biblioteca será totalmente baixada e inicializada antes de outra biblioteca tentar usar um dos objetos definidos nela.

Se você tiver um código que dependa de outra biblioteca para ser totalmente baixado e inicializado, a abordagem mais simples será combinar as bibliotecas em um único recurso da Web JavaScript com o código abaixo do código da biblioteca. Uma abordagem mais sofisticada é usar bibliotecas como head.js ou require.js para controlar o modo como as bibliotecas separadas serão carregadas.

Scripts de formulário de gravação em funcionam corretamente

Quando você grava scripts para formulários, use as seguintes práticas para ajudá-lo a obter o melhor desempenho:

  • Evite incluir bibliotecas de recursos da Web de Javascript desnecessárias
    Quanto mais scripts você adiciona ao formulário, mais tempo levará para baixá-los. Os scripts geralmente são armazenados em cache no navegador depois de serem carregados pela primeira vez, mas o desempenho na primeira vez que um formulário é exibido geralmente cria uma boa impressão.

    Para um exemplo em particular, não inclua o jQuery em seus scripts de formulários apenas porque você deseja usar o XMLHttpRequests. Enquanto o jQuery tenha a função $.ajax que muitas pessoas estão familiarizadas para executar essas solicitações, é preferência do desenvolvedor, não necessidade. É possível executar estas solicitações usando o objeto XMLHttpRequest nativo encontrado em todos os navegadores com suporte do Microsoft Dynamics 365.Para obter mais informações:Uso do jQuery

  • Evite carregar todos os scripts no evento Onload
    Se você tiver um código que oferece suporte apenas para eventos do OnChange para campos ou o evento OnSave, certifique-se de definir a biblioteca de scripts com o manipulador de eventos para esses eventos ao invés do evento OnLoad. Dessa forma, carregar essas bibliotecas pode atrasar e aumentar o desempenho ao carregar formulários.

    Não é recomendável usar o método addOnChange no manipulador de eventos OnLoad apenas como uma questão de conveniência. Embora isso possa reduzir o número de etapas necessárias para adicionar manipuladores de eventos, faz com que o formulário carregue mais lentamente.

  • Use para guias ocultas para atrasar o carregamento de recursos da Web
    Quando os recursos da Web ou IFRAMES são incluídos nas seções em uma guia recolhida, eles não serão carregados se a guia for recolhida. Serão carregados quando a guia for expandida. Quando o estado da guia muda, o evento TabStateChange ocorre. Um código necessário para oferecer suporte aos recursos da Web ou IFRAMEs nas guias recolhidas pode usar manipuladores de eventos para o evento TabStateChange e reduzir o código que pode ocorrer no evento OnLoad.

  • Definir opções de visibilidade padrão
    Evite usar scripts de formulário no evento OnLoad que ocultam elementos do formulário. Em vez disso, defina as opções de visibilidade padrão para elementos do formulário que possam estar ocultos e não estar visíveis por padrão ao carregar formulários. Em seguida, use scripts no evento OnLoad para mostrar os elementos de formulário que deseja exibir.

Apresentações de formulário diferentes

Há várias maneiras diferentes dos formulários serem apresentados. Eles afetam o tipo de código ou eventos disponíveis que você pode usar para cada um.

Renderização de formulário herdado

O Atualização 1 do Microsoft Dynamics CRM Online 2015 apresenta uma nova configuração de sistema: Usar renderização de formulário herdado. Essa versão permitiu o aperfeiçoamento da renderização de formulário e a estrutura interna da página foi alterada. Como resultado, os scripts de formulários que usavam métodos sem suporte não poderão acessar elementos do DOM que foram disponibilizados em versões anteriores. Em caso de novos erros após a atualização para esta versão, tente aplicar essa configuração para ver se os erros desaparecem. Em caso positivo, verifique se os scripts que causam esses erros estão usando métodos sem suporte.

Você pode definir Usar renderização de formulário herdado para dar tempo para resolver esses problemas; contudo, não terá os aperfeiçoamentos de desempenho oferecidos pela nova infraestrutura de renderização de formulário.

Observação

A configuração Usar renderização de formulário herdado será removida da próxima versão principal. Quando isso ocorrer, todos os scripts de formulários deverão funcionar com a nova renderização de formulário.

Entidades atualizadas

Todas as entidades personalizadas e determinadas entidades do sistema têm uma interface do usuário que inclui usando a barra de comandos e APIs de novo formulário. As entidades do sistema atualizadas são listadas na tabela a seguir:

Conta

Compromisso

Campanha

Atividade da Campanha

Resposta de Campanha

Ocorrência

Concorrente

Contato

Contrato

Linha de Contrato

Email

Qualificação

Modelo de Qualificação

Fax

Fatura

Cliente Potencial

Carta

Lista de Marketing

Oportunidade

Produto da Oportunidade

Pedido

Telefonema

Posição

Item da Lista de Preços

Produto

Associação do Produto

Relacionamento de Produto

Fila

Campanha Rápida

Cotação

Compromisso Recorrente

Especificações

SLA

Instância do KPI de SLA

Atividade Social

Perfil Social

Tarefa

Equipe

Usuário

Observação

Algumas entidades atualizadas inclui atributos compostos. Exigem considerações especiais.Para obter mais informações:Scripts de gravação para atributos compostos.

Formulários de entidade atualizados também podem incluir um controle colaboração que forneçam acesso às atividades, anotações e postagens se estiverem habilitadas para a entidade. O objeto Xrm.Page não fornece acesso ao controle de colaboração. Você pode acessar o elemento de seção que contém o controle de colaboração se deseja mostrar ou ocultar usando scripts.

Os métodos de programação de formulário e evento PreSearch para entidades atualizadas

A tabela a seguir lista os métodos de programação de formulário disponíveis somente para entidades atualizadas.

Método

Descrição

Xrm.Page.context.cliente.getClient

Retorna um valor para indicar qual cliente o script está executando.

Xrm.Page.context.cliente.getClientState

Retorna um valor para indicar o estado do cliente.

Xrm.Page.context.getUserName

Retorna o nome do usuário atual.

Xrm.Page.data.entity.getPrimaryAttributeValue

Obtém uma cadeia de caracteres para o valor do atributo principal da entidade.

Xrm.Page.data.refresh

Atualiza de maneira assíncrona os dados do formulário sem recarregar a página.

Xrm.Page.data.Salvar

Salva o registro de maneira assíncrona com a opção para definir funções de retorno de chamadas a serem realizadas depois da operação de salvar ser concluída.

Xrm.Page.data.entity attribute.getIsPartyList

Determina se um atributo de pesquisa representa uma pesquisa de partylist.

Xrm.Page.ui control.clearNotification

Remove uma mensagem já exibida para um controle.

Xrm.Page.ui control.setNotification

Exibe uma mensagem próxima ao controle para indicar que os dados não são válidos.

Xrm.Page.ui.clearFormNotification

Use este método para remover as notificações de nível do formulário.

Xrm.Page.ui.setFormNotification

Use este método para exibir as notificações de nível do formulário.

Xrm.Page.ui control.addCustomFilter

Use o fetchXml para adicionar mais filtros aos resultados exibidos na pesquisa. Cada filtro será combinados com os filtros adicionados anteriormente como uma condição “E.

Xrm.Page.ui control.setShowTime

Especifica se um controle de data deve mostrar a parte de hora da data.

Xrm.Utility.alertDialog

Exibe um diálogo de alerta de não bloqueio com uma função de retorno de chamada.

Xrm.Utility.confirmDialog

Exibe um diálogo de confirmação de não bloqueio com retornos de chamada diferentes dependendo do botão que o usuário clicar.

Evento PreSearch

O novo Evento de pré-pesquisa ocorre logo antes da caixa de diálogo de pesquisa abrir ao definir um valor de pesquisa. Este evento não tem uma interface de usuário para definir um manipulador de eventos no aplicativo; só pode ser definido usando o método Xrm.Page.ui control.addPreSearch. Use este evento com os métodos addCustomFilter, addCustomView e setDefaultView para controlar as exibições abertas quando as pessoas pesquisam um registro para definir como o valor do campo de pesquisa.

Entidades que usam formulários clássicos

Entidades do sistema que não foram atualizadas usam a apresentação de formulário clássica. Os formulários para essas entidades continuam a usar a faixa de opções se fizeram isso no CRM 2011 e não têm acesso aos APIs do formulário adicionados nesta versão. Essas entidades são listadas na tabela a seguir:

Endereço

Artigo

Comentário sobre o Artigo

Operação de Exclusão em Massa

Unidade de Negócios

Conexão

Desconto

Lista de Descontos

Local do Documento

Anexo de Email

Seguir

Meta

Métrica de Meta

Arquivo de Origem da Importação

Produto da Fatura

Produto do Pedido

Lista de Preços

Item da Fila

Produto da Cotação

Campo de Acúmulo

Consulta Acumulada

Exibição Salva

Serviço

Atividade de Serviço

Site do SharePoint

Local

Região

Unidade

Grupo de Unidades

Entidades habilitadas para o CRM para tablets

Somente entidades do sistema selecionadas e entidades personalizadas estão disponível para serem exibidas usando o Microsoft Dynamics CRM para Tablets. As seguintes entidades do sistema podem ter formulários editáveis no CRM para tablets.

Conta

Atividade

Compromisso

Ocorrência

Concorrente

Conexão

Contato

Cliente Potencial

Anotação

Oportunidade

Produto da Oportunidade

Telefonema

Item da Fila

Atividade Social

Perfil Social

Tarefa

Como o CRM para tablets não tem os mesmos comportamentos que formulários no aplicativo web, alguns APIs não estão disponíveis. Por exemplo, as guias CRM para tablets não podem ser expandidas ou recolhidas, portanto, o Evento TabStateChange da guia não ocorre e o Xrm.Page.ui tab.setDisplayState não pode ser usado para expandir ou recolher guias.Para obter mais informações:Escrever e depurar scripts no CRM para tablets.

Ferramentas de desenvolvimento

Use boas ferramentas para melhorar sua experiência ao escrever o JavaScript para formulários CRM.

Usar boas ferramentas de criação

Como o JavaScript é uma linguagem interpretada, não há necessidade de ferramentas de desenvolvimento especiais. O JavaScript é apenas texto, portanto, pode ser editado no aplicativo em um editor de texto, como o Notepad. Entretanto, você pode obter resultados de produtividade significativos ao usar ferramentas de criação que oferecem recursos para dar suporte especificamente à edição de arquivos JavaScript, assim como Microsoft Visual Studio e Microsoft Visual Studio Express. É possível obter o Visual Studio Community 2013 gratuitamente.

Usar as ferramentas do desenvolvedor do navegador

Todos os navegadores modernos oferecem ferramentas internas para habilitar scripts de depuração. Essas ferramentas também podem ser muito úteis ao escrever scripts para formulários do Dynamics 365. Essas ferramentas do desenvolvedor costumam ser chamadas de ferramentas F12 pois esta é a chave usada para abri-las. Consulte Depuração de Javascript W3Schools para obter informações sobre como usar essas ferramentas.

Use as ferramentas do desenvolvedor para verificar a sintaxe dos scripts a serem carregados como recursos da Web do script. Com essas ferramentas, você também pode compreender melhor o modelo de objeto para programação. Por exemplo, quando você escreve um código para acessar objetos específicos em um formulário, em geral precisa acessá-los pelo nome. Em vez de procurar o nome do objeto no editor de formulários, use o console das ferramentas do desenvolvedor para interrogar o modelo de objeto Xrm.Page para obter os nomes dos atributos ou controles acessados. Por exemplo, para acessar um controle de subgrade específico pelo nome, você pode usar o console de ferramentas do desenvolvedor do navegador para escrever o seguinte código.

Xrm.Page.ui.controls.get(
function(ctrl,i){
 if(ctrl.getControlType() == "subgrid")
  console.log(ctrl.getName()
  );
});

Os nomes de todos os controles de subgrade serão escritos no painel de saída do console. Este script aproveita o recurso para passar uma função de representante anônimo para o método get localizado em coleções, bem como outros métodos encontrados em objetos para filtrar por tipo e retornar o nome de objeto, como Xrm.Page.ui control.getControlType e Xrm.Page.ui control.getName usado neste exemplo.

<<<<<<< HEAD

Importante

Os formulários do Dynamics 365 são compostos de vários quadros. Para que o código funcione no console, você deve selecionar o quadro certo. Para formulários CRM Online 2015 Atualização 1, selecione o quadro chamado ClientApiWrapper.aspx. Em versões anteriores, use o quadro chamado main.aspx.

=======

Importante

Os formulários do Dynamics 365 são compostos de vários quadros. Para que o código funcione no console, você deve selecionar o quadro certo. Para formulários CRM Online 2015 Atualização 1, selecione o quadro chamado ClientApiWrapper.aspx. Em versões anteriores, use o quadro chamado main.aspx.

>>>>>> fe691d894f0f328d7ef70a2b278a480999857a62

Veja mais alguns exemplos.

  • Mostrar os nomes de todos os atributos em um formulário com seus tipos

    Xrm.Page.getAttribute(
    function (att, i) {
     console.log(att.getName() + " : " + att.getAttributeType())
    });
    
  • Mostrar os valores de opção válidos para atributos optionset

    Xrm.Page.getAttribute(
    function (att, i) {
     if (att.getAttributeType() == "optionset") {
      console.log(att.getName())
      var options = att.getOptions();
      var optionsLength = options.length;
      for (var i = 0; i < optionsLength; i++) {
       var option = options[i];
       console.log("   value: " + option.value + " Label: " + option.text)
      }
     }
    });
    

Confira Também

Escrever as extensões do aplicativo do cliente
Abrir formulários, exibições, caixas de diálogo e relatórios com uma URL
Referência rápida do script de formulário
Usar o Javascript com o Microsoft Dynamics CRM 2015
Bibliotecas JavaScript para Microsoft Dynamics CRM 2015
Guia de desenvolvedores para personalização do Microsoft Dynamics CRM 2015
Usar eventos de formulário e de campo
Use o modelo de objeto Xrm.Page
Escrever e depurar scripts no CRM para tablets
Scripts de gravação para atributos compostos
Criar scripts para fluxos de processos de negócios
Escrever scripts para subgrades
Usar o contexto de execução e o pipeline de evento de formulário
Usar um IFRAME e controles de recursos da Web em um formulário
Usar o ponto de extremidade do OData com os recursos da Web JScript e Ajax

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais