Partilhar via


Usar o Javascript com o Microsoft Dynamics 365

 

Publicado: janeiro de 2017

Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Microsoft Dynamics 365 (online e local) oferece muitas oportunidades para usar JavaScript. Qualquer JavaScript usado em Microsoft Dynamics 365 é adicionado criando recursos da web JavaScript. Este artigo apresenta informações para desenvolvedores que usam JavaScript e inclui links para os tópicos relevantes em SDK do Microsoft Dynamics 365 e de outras fontes.

Neste tópico

Áreas onde você pode usar o JavaScript no Microsoft Dynamics 365

Uso do jQuery

JavaScript de gravação em vários navegadores

Práticas recomendadas de agendamento de JavaScript

Depurando o Javascript no Microsoft Dynamics 365

Áreas onde você pode usar o JavaScript no Microsoft Dynamics 365

Você pode usar JavaScript para executar ações em scripts de formulário, nos comandos da barra de comandos (faixa de opções) e recursos da Web.

Scripts de formulário

A maioria de uso comum de JavaScript em Microsoft Dynamics 365 é adicionar funções como manipuladores de eventos para eventos de formulário de entidade. Para obter mais informações, consulte Crie códigos para os formulários do Microsoft Dynamics 365.

Comandos da barra de comandos (faixa de opções)

Quando você personaliza a barra de comandos Microsoft Dynamics 365, você pode configurar os comandos para os controles que você adicionar. Estes comandos contêm regras que controlam se o controle está habilitado e qual ação é executada quando o controle é usado. Para obter mais informações, consulte Personalizar os comandos e a faixa de opções.

Recursos da Web

Microsoft Dynamics 365 fornece uma entidade de propriedade da organização que armazena uma representação binária de um arquivo que pode ser acessado usando um URL. Este arquivo é chamado de um recurso da Web. Há vários tipos de recursos da Web. Um recurso da Web que representa uma biblioteca de JavaScript é chamado de um recurso da Web JavaScript. Você pode usar um recurso da Web da página Web (HTML) para fornecer uma interface de usuário com as bibliotecas de JavaScript incluídas como você faria com arquivos em um servidor web. Como esses arquivos são parte de Microsoft Dynamics 365, os usuários que os acessam já estão autenticados. Portanto, você pode usar os serviços da Web Microsoft Dynamics 365 sem ter que escrever um código para autenticar o usuário. Para obter mais informações, consulte Recursos da Web do Microsoft Dynamics 365 e Trabalhar com dados de Dynamics 365 usando recursos da Web.

Uso do jQuery

  • Use o jQuery com recursos da Web HTML
    Recomendamos que você use o jQuery juntamente com recursos HTML da Web para fornecer interfaces de usuário, pois é uma excelente biblioteca através do navegador.

    Com os recursos da web em HTML, você controla as bibliotecas que estão presentes e não há nenhuma restrição contra a manipulação do DOM. Sinta-se livre para usar o jQuery dentro de seus recursos da Web em HTML.

  • Evite usar o jQuery com scripts de formulários ou comandos de faixa de opções
    Nós não recomendamos o uso do jQuery em scripts de formulários e comandos da faixa de opções.

    A maioria dos benefícios fornecidos pelo jQuery é que ele permite a fácil manipulação através do navegador do DOM. Isto é explicitamente incompatível dentro de scripts de formulários e comandos da faixa de opções. Restrinja os scripts para usar as bibliotecas de Xrm.Page e de Xrm.Utility disponíveis em scripts de formulário e comandos da faixa de opções. Se você decidir usar os recursos remanescentes do jQuery que são úteis com Microsoft Dynamics 365 e incluir a capacidade de usar $.ajax, considere o seguinte:

    • Para obter melhor desempenho, não carregue o jQuery na página se você não precisar

    • Há suporte para o uso de $.ajax na execução de solicitações nos serviços Web do Microsoft Dynamics 365, mas há alternativas. A alternativa ao uso de $.ajax é usar o objeto XMLHttpRequest dos navegadores diretamente. O método de $.ajax do jQuery é apenas um envoltório para desse objeto. Se você usar o objeto XMLHttpRequest nativo diretamente, você não precisa carregar o jQuery.

    • Cada versão do jQuery que é carregado em uma página pode ser uma versão diferente. As versões diferentes do jQuery têm comportamentos diferentes e podem causar problemas quando várias versões do jQuery são carregadas na mesma página. Há uma técnica para evitar isso, mas depende da edição na biblioteca jQuery e outras bibliotecas que dependem do jQuery.Para obter mais informações:Interface de usuário do jQuery e do jQuery com Dynamics CRM 2011 & 2013, jQuery.noConflict()

      Observação

      Após o Atualização 1 do Microsoft Dynamics CRM Online 2015, os scripts de formulário são executados em um escopo diferente da instância jQuery usada pelo aplicativo. Isso significa que não pode haver uma instância do jQuery disponível quando seu código tenta usar jQuery.noConflict. Se você precisa usar o jQuery, primeiro detecte se uma instância do jQuery existe antes de tentar usar jQuery.noConflict.

JavaScript de gravação em vários navegadores

Como você não sabe qual navegador estará em uso, é necessário garantir que os scripts que você usar funcionarão com todos os navegadores com suporte. A maioria das diferenças significativas entre Internet Explorer e o outro navegador tem a ver com manipulação de HTML e XML DOM. Como a manipulação HTML DOM não é suportada, se a lógica de script só estiver executando ações suportadas e usando o API Xrm.Page, as alterações necessárias para oferecer suporte a outros navegadores podem ser pequenas. Use a Ferramenta de validação de código personalizado para identificar o código que funciona somente para Internet Explorer.

Uma biblioteca entre navegador como jQuery, é uma boa solução para desenvolver recursos da Web, mas não deve ser necessária para scripts de formulários ou comandos da faixa de opções.Para obter mais informações:Uso do jQuery

Suporte para outros navegadores

Como W3Csuporta normas Microsoft Dynamics 365 (online e local), o aplicativo poderá ser acessado através de qualquer navegador moderno e de qualquer plataforma que suporte estas normas. No entanto, Microsoft Dynamics 365 só será testado usando um conjunto específico de navegadores e plataformas. Para obter a lista de plataformas e navegadores com suporte, consulte TechNet: navegadores da Web com suporte.

Se você usar um navegador ou versão do navegador que não é suportado e você digitar apenas o nome do servidor ou o nome do servidor com a organização como a URL, você será redirecionado à página Microsoft Dynamics 365 para telefones. As páginas Dynamics 365 para telefones podem ser esperadas que funcionem corretamente na maioria dos navegadores, como os navegadores usados em dispositivos móveis, com funcionalidade limitada.

Práticas recomendadas de agendamento de JavaScript

As seções a seguir descrevem as práticas recomendadas quando você usa JavaScript com Microsoft Dynamics 365.

Evite o uso de métodos não suportados

Na Internet, você encontrará vários exemplos ou sugestões que descrevem como usar os métodos sem suporte. Eles podem incluir a função interna indocumentada para controles de página. Esses métodos podem funcionar, mas como eles não são suportados, você não pode esperar que continuarão funcionando em versões futuras de Microsoft Dynamics 365.

Use a Ferramenta de validação de código personalizado para identificar o código que está usando métodos não suportados.

Use uma biblioteca JavaScript entre navegador para as interfaces do usuário do recurso da Web HTML

Uma biblioteca JavaScript entre navegadores, como jQuery, oferecem várias vantagens ao desenvolver recursos da web HTML que devem suportar vários navegadores. As bibliotecas JavaScript como jQuery oferecem uma experiência de desenvolvimento unificado para todos os navegadores pelo Microsoft Dynamics 365. Esses recursos são apropriados ao usar os recursos da web do HTML para fornecer interfaces do usuário. Bibliotecas JavaScript como jQuery oferecem formas consistentes de interagir com o Modelo do objeto do documento.

Não use o jQuery para comandos ou script de formulário

Não recomendamos nem suportamos o uso do jQuery em páginas no aplicativo. Isso inclui scripts de formulários e comandos da faixa de opções.Para obter mais informações:Uso do jQuery.

Reconheça as limitações de bibliotecas da rede de entrega de conteúdo (CDN)

As bibliotecas da rede de entrega de conteúdo (CDN) JavaScript fornecem diversas vantagens de sites públicos. Como essas bibliotecas são hospedadas na Internet, você não precisa criar os recursos da Web que contêm o conteúdo das bibliotecas. Para Microsoft Dynamics 365, considere os seguintes problemas antes de usar uma biblioteca de CDN JavaScript.

  • Os usuários do cliente Microsoft Dynamics 365 para Microsoft Office Outlook com Acesso Offline tem a capacidade de trabalhar sem conexão à Internet enquanto estiverem trabalhando off-line. Se você está dependendo de uma conexão à Internet para as bibliotecas JavaScript, seu código falhará.

  • Algumas organizações restringirão o acesso à internet para os funcionários. A menos que configurem a rede para permitir o acesso aos sites da biblioteca de CDN, seu pode falhar para essas organizações.

A alternativa ao uso de bibliotecas de CDN é criar um recurso da Web (JavaScript) de script com o conteúdo da biblioteca. Como os recursos da Web são entidades de propriedade da organização, eles serão sincronizados quando um usuário de Microsoft Dynamics 365 para Outlook com Acesso Offline ficar off-line. Como esses recursos da Web agora se tornam parte do aplicativo, eles não serão bloqueados se uma organização restringir o acesso à Internet.

Use a detecção de recurso ao gravar funções para vários navegadores

Mesmo quando você usa uma biblioteca entre o navegador como jQuery, você precisa estar muito consciente das diferenças entre os navegadores. Geralmente você pode detectar qual navegador está sendo usado consultando a propriedade navigator.useragent. Isso é chamado de detecção do navegador. A detecção do navegador não é uma boa estratégia para a maioria dos casos, pois ela não pode levar em conta quais recursos possuem as versões mais recentes do navegador. Além disso, alguns navegadores fornecem a capacidade de modificar a propriedade de navigation.useragent para que eles pareçam ser um navegador diferente.

A detecção de recursos é a opção recomendada. Ao detectar quais recursos estão disponíveis, você pode criar caminhos de código para os navegadores que você suporta, sem saber exatamente qual navegador está sendo usado. Para obter mais informações sobre a detecção de recursos, consulte Como detectar recursos em vez de navegadores.

Não acessar os DOM

Os desenvolvedores JavaScript são usados para interagir com os elementos do Modelo de Objeto de Documentos (DOM) no código. Você pode usar o método window.getElementById ou a biblioteca jQuery. Você é livre para usar essas técnicas em seus recursos da Web HTML, mas eles não são suportados para acessarem elementos em páginas do aplicativo ou em formulários de entidade Microsoft Dynamics 365. Em vez disso, o acesso aos elementos de formulário da entidade é exposto no modelo de objeto Xrm.Page. A equipe de desenvolvimento Microsoft Dynamics 365 se reserva o direito de alterar o modo como as páginas são compostas, incluindo os valores de elementos ID, portanto, usar o modelo de objeto Xrm.Page protege o código de alterações em como as páginas são implementadas. Para obter mais informações, consulte Use o modelo de objeto Xrm.Page.

Definir nomes exclusivos para as funções de JavaScript

Quando você é o único desenvolvedor de uma página HTML, você pode facilmente gerenciar os nomes das funções JavaScript que você usa. Em Microsoft Dynamics 365, outras soluções podem adicionar funções JavaScript à página onde sua função é usada.

Se duas funções JavaScript em uma página têm o mesmo nome, a primeira função definida será substituída pelo segunda. Por esse motivo, verifique se você definiu nomes exclusivos para as funções JavaScript. Para obter mais informações, consulte Criando bibliotecas de script.

Use métodos assíncronos de acesso a dados

Ao acessar os dados usando os serviços Web Microsoft Dynamics 365, use sempre uma XMLHttpRequestconfigurada para execução de maneira assíncrona. A razão é que o navegador opera em um único thread. Se esse segmento está sendo usado para executar um processo de longa duração sincronicamente, o navegador parará de responder.

Observação

As XMLHttpRequests síncronas são substituídas no thread principal do navegador por prejudicarem a experiência do usuário final. Agora, os navegadores fornecem um aviso quando isso é detectado. Se os navegadores implementam a especificação em algum momento no futuro, uma exceção do InvalidAccessError será retornada.Para obter mais informações:http://www.w3.org/TR/XMLHttpRequest/#synchronous-flag e https://xhr.spec.whatwg.org/#the-open()-method

Depurando o Javascript no Microsoft Dynamics 365

cada navegador fornece algum tipo de extensão de depuração. O Internet Explorer oferece as ferramentas do desenvolvedor que podem ser usadas para depurar scripts no Microsoft Dynamics 365. As ferramentas do desenvolvedor Internet Explorer podem ser abertas pressionando F12 ao exibir uma página usando Internet Explorer. Para obter mais informações, consulte Usando ferramentas do desenvolvedor F12.

Para Google Chrome, pressione F12 para abrir as ferramentas do desenvolvedor.Firebug é uma extensão popular do navegador para o desenvolvimento da Web usando Mozilla Firefox. Para Apple Safari, primeiro você deve selecionar Mostrar o menu Desenvolver na barra de menus em Preferências Avançadas. Depois, você pode selecionar Mostrar Inspetor da Web no menu Desenvolver.

Você também pode usar Microsoft Visual Studio. Para obter mais informações, consulte Como depurar o JScript no Microsoft Dynamics CRM 2011.

Quando você usa bibliotecas JavaScript no Microsoft Dynamics 365, suas bibliotecas são carregadas com a página da Web. Às vezes pode ser difícil isolar a biblioteca específica no ambiente de depuração. Ao usar as ferramentas de depuração no Microsoft Edge, na guia Depurador, clique no ícone da pasta no canto superior esquerdo, e expanda os scripts disponíveis e localize aquele com o nome que corresponde ao nome do recurso da Web do JavaScript, como recurso da Web new_myCustomJavaScript.js mostrado abaixo. Você também pode procurar sua biblioteca JavaScript ao digitar o nome do arquivo na caixa de pesquisa.

Depurar JavaScript

Ferramentas de depuração para diferentes navegadores têm recursos semelhantes. Depois que você identificou sua biblioteca, você pode definir um ponto de quebra e recriar o evento que deve fazer com que o código seja executado.

No novo cliente do hub do serviço interativo (introduzido no Dynamics 365), o Dynamics 365 injeta o conteúdo de sua biblioteca JavaScript de maneira dinâmica em vez de carregar com a página. Isso faz com que não seja possível definir pontos de quebra em seu código personalizado pois toda vez que a página é recarregada, seu código é injetado em uma das bibliotecas dinâmicas que impedirão a quebra do ponto. Neste caso, você deverá usar outras técnicas para depurar seu código.Para obter mais informações:Blog: Depurar código JavaScript no CRM usando as ferramentas do desenvolvedor do navegador

Gravar mensagens no console

Ao usar o método de window.alert ao depurar o JavaScript, ainda é uma maneira comum de solucionar problemas do código do aplicativo. Mas agora que os navegadores modernos fornecem fácil acesso às ferramentas de depuração, não é uma prática recomendada, especialmente quando outros podem usar o aplicativo que você está depurando.

Considere gravar suas mensagens no console em vez disso. O seguinte é uma pequena função que você pode adicionar às bibliotecas que você pode usar para enviar qualquer mensagem que você deseja exibir no console quando ele é aberto.

function writeToConsole(message)
{
 if (typeof console != 'undefined') {
  console.log(message);
 }
}

Ao contrário de usar o método de alerta, se você esquecer de remover qualquer código que utiliza essa função, as pessoas que utilizam o aplicativo não verão suas mensagens.

Confira Também

Estender o Microsoft Dynamics 365 no cliente
Trabalhar com dados de Dynamics 365 usando recursos da Web
Estender o Microsoft Dynamics 365 no servidor
Crie códigos para os formulários do Microsoft Dynamics 365
Personalizar os comandos e a faixa de opções
Recursos da Web do Microsoft Dynamics 365
Introdução à API Web do Microsoft Dynamics 365 (Javascript no cliente)
Use o modelo de objeto Xrm.Page
Blog: Depurar o código JavaScript no CRM usando as ferramentas do desenvolvedor do navegador

Microsoft Dynamics 365

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais