Usar o Javascript com o Microsoft Dynamics CRM 2015

 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

Atualização do Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015 oferece muitas oportunidades para usar JavaScript. Qualquer JavaScript usado em Microsoft Dynamics 365 é adicionado criando recursos da web JScript. Este artigo apresenta informações para desenvolvedores que usam JavaScript e inclui links para os tópicos relevantes em SDK do Microsoft Dynamics CRM e de outras fontes.

Neste tópico

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

Uso do jQuery

JavaScript de gravação em vários navegadores

Acesso a dados usando o JavaScript

Práticas recomendadas de agendamento de JavaScript

Depurando o Javascript no Microsoft Dynamics CRM

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

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 Criar códigos para os formulários do Microsoft Dynamics CRM 2015.

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 JScript. 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 CRM 2015.

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

    • Usar $.ajax para executar solicitações entre o ponto de extremidade OData e Modern Apps SOAP é aceita, 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.

      Compare as bibliotecas de exemplo SDK.REST.js e SDK.JQuery.js encontradas em Exemplo: Criar, recuperar, atualizar e excluir usando o ponto de extremidade OData com JavaScript e em Exemplo: Criar, recuperar, atualizar e excluir usando o ponto de extremidade OData com o JavaScript e jQuery. Ambos executa as mesmas operações, mas SDK.REST.js não requer 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

      Com o Atualização 1 do Microsoft Dynamics CRM Online 2015, scripts de formulário são executados em um escopo diferente da instância do 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 Atualização do Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015, 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 CRM para telefones. As páginas CRM para telefones podem ser esperadas que funcionem corretamente na maioria dos navegadores, como os navegadores usados em dispositivos móveis, com funcionalidade limitada.

Suporte ao navegador de controle para sua organização ou solução

Embora a criação de sites públicos exige que você suporte navegadores mais modernos, alguns sites públicos suportam todos os navegadores que já existiram. É necessário estabelecer quais navegadores você suportará. Para economizar custos de desenvolvimento e testes, muitos aplicativos de negócios exigem que os usuários usem navegadores específicos.

Se você é um ISV preparando soluções para qualquer organização usando Microsoft Dynamics 365, você deve esperar que todas as organizações possam usar um dos navegadores que Atualização do Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015 suportará. No entanto, se você estiver preparando personalizações somente para uma organização que exige que as pessoas usam um navegador específico, não há motivo para desenvolver e testar suas personalizações para navegadores que a organização não oferece suporte.

Os administradores de rede podem usar TechNet: políticas de restrição de software e/ou TechNet: AppLocker para impor quais aplicativos podem ser executados ou instalados em um domínio.

Análise de XML

Há muitas oportunidades em que você precisará analisar XML usando JavaScript. Esteja ciente de que existem diferenças significativas na forma como você pode analisar XML usando o Internet Explorer e outros navegadores. O Internet Explorer usa Microsoft XML Core Services (MSXML) APIs para interagir com objetos de documento XML. Estes APIs incluem uma série de extensões para W3C DOM que não estão disponíveis para outros navegadores. A seguir estão dois exemplos:

  • Dois métodos comuns usados para extrair os dados de um documento XML usando Internet Explorer são selectNodes e selectSingleNode. Os dois métodos usam uma expressão XPath como o programa e retornam um nó ou uma lista de nós. Para outros navegadores, use o método de avaliação quando você quiser usar uma expressão XPath. Como alternativa, refatorar seu código para navegar na hierarquia do documento e usar o método getElementsByTagNameNS.

  • Internet Explorer usa a propriedade de texto para acessar o texto de um elemento. Outros navegadores usam a propriedade textContent.

Existem várias maneiras diferentes que você pode incluir essas diferenças. A abordagem que você usa depende de suas preferências e dos requisitos do código.

A biblioteca SDK.MetaData.js localizada em Exemplo: Recuperar metadados da entidade usando o JavaScript usa as funções auxiliares. Essa biblioteca usa o ponto de extremidade SOAP dos recursos da Web para recuperar os metadados do atributo e da entidade. Essa biblioteca depende da análise de dados a partir do documento XML retornado como responseXMLXMLHttpRequest. Nessa biblioteca, as seguintes funções auxiliares foram adicionadas e usadas durante as outras funções na biblioteca.

Com essas funções auxiliares, o código existente que foi escrito somente para Internet Explorer foi atualizado como mostrado:

Código Internet Explorer original somente

Nova função para suportar vários navegadores

node.selectNodes(XPathExpr);

SDK.MetaData._selectNodes(node,XpathExpr);

node.selectSingleNode(XPathExpr);

SDK.MetaData._selectSingleNode(node, XPathExpr);

node.selectSingleNode(ElementName).text;

SDK.MetaData._selectSingleNodeText(node, ElementName);

node.text

SDK.MetaData._getNodeText(node);

Acesso a dados usando o JavaScript

Há dois serviços da Web que você pode usar no aplicativo para acessar dados usando JavaScript.

Ponto de extremidade OData (REST)

Já conhecido como o 'Ponto de extremidade REST para recursos da Web'. Você pode usar o ponto de extremidade OData para executar as solicitações HTTP usando um serviço da Web baseado em um Identificador de Recurso Uniforme (URI). Os serviços da Web "RESTful" são populares porque eles podem tornar a programação mais fácil.

A implantação atual do ponto de extremidade OData é limitada para criar, recuperar, atualizar e excluir operações. A Exemplo: Criar, recuperar, atualizar e excluir usando o ponto de extremidade OData com JavaScript inclui uma biblioteca SDK.REST.js que fornece um exemplo de uma biblioteca reutilizável que pode simplificar mais usando o ponto de extremidade OData.

Uma das vantagens do ponto de extremidade OData é que ele implementa o Protocolo OData, que fornece uma maneira de consultar e atualizar dados. Ao usar JavaScript, você geralmente recupera objetos no formato de Notação de objeto de JavaScript (JSON). Isso facilita os resultados para trabalhar. A limitação primária do ponto de extremidade OData é que não é possível usar o método IOrganizationService.Execute para executar mensagens (classes Request e Response). Você utiliza o ponto de extremidade SOAP dos recursos da Web para executar mensagens.

Para obter mais informações, consulte Usar o ponto de extremidade do OData com os recursos da Web.

Ponto de Extremidade do SOAP

O ponto de extremidade SOAP permite que você execute mensagens, pois o ponto de extremidade REST ainda não permite isso. Você também pode chamar os métodos RetrieveMultiple, criar, recuperar, atualizar e excluir deste serviço Web, mas usá-los não é tão simples quanto usar o ponto de extremidade REST.

Microsoft Dynamics 365 não oferece uma biblioteca de JavaScript para facilitar usar o ponto de extremidade SOAP. Ao usar o ponto de extremidade SOAP, você deve publicar solicitações http que contenham o XML definindo a solicitação e depois analisar o XML retornado na resposta.

A biblioteca de amostra Sdk.Soap.js e outras amostras relacionadas fornecem um exemplo de uma biblioteca que pode ser usada com o ponto de extremidade SOAP.

O SDK fornece uma solução de Microsoft Visual C# chamada SoapLogger que permite capturar o XML enviado e recebido quando você executa operações com os serviços Web de Microsoft Dynamics 365 usando Visual C#. Com essas informações, é possível criar suas próprias bibliotecas de JavaScript.

Para obter mais informações, consulte Usar o ponto de extremidade Modern App do SOAP para aplicativos modernos com os recursos da Web.

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 CRM 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 CRM 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

Quando você acessa dados usando os serviços da Web Microsoft Dynamics 365 que usam o ponto de extremidade REST ou SOAP de recursos da Web, use sempre um XMLHttpRequest que está configurado 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.

Depurando o Javascript no Microsoft Dynamics CRM

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 em Microsoft Dynamics 365, suas bibliotecas são adicionadas a uma página que inclui várias bibliotecas. Às vezes pode ser difícil isolar a biblioteca específica no ambiente de depuração. Ao usar as ferramentas de depuração em Internet Explorer, na guia Script, 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_debugging_example_script.js mostrado abaixo.

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.

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

Escrever as extensões do aplicativo do cliente
Use dados do serviço Web nos recursos da Web (OData e ponto de extremidade SOAP do aplicativo ENSABOAM)
Crie aplicativos e extensões do servidor
Criar códigos para os formulários do Microsoft Dynamics CRM 2015
Personalizar os comandos e a faixa de opções
Recursos da Web do Microsoft Dynamics CRM 2015
Usar o ponto de extremidade do OData com os recursos da Web
Usar o ponto de extremidade Modern App do SOAP para aplicativos modernos com os recursos da Web
Use o modelo de objeto Xrm.Page

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais