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 |
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 |
---|---|
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.
>>>>>> fe691d894f0f328d7ef70a2b278a480999857a62Veja 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