Compartir a través de


Uso de JavaScript con Microsoft Dynamics CRM 2015

 

Publicado: noviembre de 2016

Se aplica a: Dynamics CRM 2015

Microsoft Dynamics CRM 2015 y actualización de Microsoft Dynamics CRM Online 2015 proporciona muchas oportunidades para usar JavaScript. Todo el JavaScript usado en Microsoft Dynamics 365 se agrega al crear recursos web de JScript . Este tema tiene información para desarrolladores que usan JavaScript e incluye vínculos a los temas correspondientes en Microsoft Dynamics CRM SDK y otros orígenes.

En este tema

Áreas en las que puede usar JavaScript en Microsoft Dynamics CRM

Uso de jQuery

Escribir JavaScript para varios exploradores

Acceso a los datos mediante JavaScript

Prácticas recomendadas de programación JavaScript

Depurar JavaScript en Microsoft Dynamics CRM

Áreas en las que puede usar JavaScript en Microsoft Dynamics CRM

Puede usar JavaScript para realizar acciones en scripts de formularios, comandos de la barra de comandos (cinta de opciones) y recursos web.

Scripts de formularios

El uso más común de JavaScript en Microsoft Dynamics 365 es agregar funciones como controladores de eventos para eventos de formulario de entidad. Para obtener más información, vea Escriba código para formularios de Microsoft Dynamics CRM 2015.

Comandos de la barra de comandos (cinta de opciones)

Al personalizar la barra de comandos para Microsoft Dynamics 365 , puede configurar los comandos de los controles que desea agregar. Estos comandos contienen las reglas que controlan si el control se activará y qué acción se realizará cuando se use el control. Para obtener más información, vea Personalizar los comandos y la cinta de opciones.

Recursos web

Microsoft Dynamics 365 proporciona una entidad perteneciente a organizaciones que almacena una representación binaria de un archivo al que se puede tener acceso mediante una dirección URL Este archivo se denomina un recurso web. Hay varios tipos de recursos web. Un recurso web que representa una biblioteca de JavaScript se denomina un recurso web de JScript. Puede usar un recurso web de página web (HTML) para proporcionar una interfaz de usuario a bibliotecas de JavaScript incluidas del mismo modo que haría con archivos en un servidor web. Dado que estos archivos forman parte de Microsoft Dynamics 365, los usuarios que acceden a estos ya están autenticados. Por tanto, puede usar los servicios web de Microsoft Dynamics 365 sin necesidad de escribir código para autenticar el usuario. Para obtener más información, vea Recursos web para Microsoft Dynamics CRM 2015.

Uso de jQuery

  • Usar jQuery con recursos web HTML
    Se recomienda usar jQuery junto con recursos web HTML para proporcionar interfaces de usuario porque es una biblioteca excelente entre exploradores.

    Con recursos web HTML, controla las bibliotecas que están presentes y no hay ninguna restricción frente a la manipulación del DOM. No dude en usar jQuery en los recursos web HTML.

  • Evitar el uso de jQuery con scripts de formularios o comandos de la cinta de opciones
    No se recomienda el uso de jQuery en scripts de formularios y comandos de cinta.

    La mayoría de las ventajas que proporciona jQuery es que permite la manipulación sencilla entre exploradores del DOM. Esto no se admite de manera explícita dentro de los scripts de formularios y comandos de la cinta de opciones. Limite los scripts para usar las bibliotecas Xrm.Page y Xrm.Utility disponibles en scripts de formularios y comandos de la cinta de opciones. Si decide usar las funcionalidades restantes de jQuery que son útiles con Microsoft Dynamics 365 e incluir la capacidad de usar $.ajax, tenga en cuenta lo siguiente:

    • Para el máximo rendimiento, no cargue jQuery en la página si no lo necesita

    • Se admite el uso de $.ajax para realizar solicitudes con el extremo OData y de SOAP de aplicaciones modernas, aunque hay alternativas. La alternativa al uso de $.ajax es usar el objeto XMLHttpRequest de los exploradores directamente. El método $.ajax de jQuery sólo es un contenedor para este objeto. Si usa el objeto XMLHttpRequest nativo directamente, no necesita cargar jQuery.

      Compare las bibliotecas de ejemplo SDK.REST.js y SDK.JQuery.js que se incluyen en Ejemplo: crear, recuperar, actualizar y eliminar el uso del extremo de OData con JavaScript y Ejemplo: crear, recuperan, actualizar y eliminar el uso del extremo de OData con JavaScript y jQuery. Ambas realizan las mismas operaciones pero SDK.REST.js no requiere jQuery.

    • Cada versión de jQuery que se carga en una página puede ser una versión diferente. Diferentes versiones de jQuery tienen distintos comportamientos y estos pueden causar problemas cuando se cargue varias versiones de jQuery en la misma página. Hay una técnica para mitigar esto, pero depende de editar la biblioteca jQuery y cualquier otra biblioteca que dependa de jQuery.Más información:UI de jQuery y jQuery UI con Dynamics CRM 2011 y 2013, jQuery.noConflict()

      Nota

      Con Actualización 1 de Microsoft Dynamics CRM Online 2015, los scripts de formularios se ejecutan en un ámbito distinto de la instancia de jQuery usada por la aplicación. Esto significa que puede que no haya una instancia de jQuery disponible cuando el código trate de usar jQuery.noConflict. Si debe usar jQuery, primero debe detectar si existe una instancia de jQuery antes de intentar usar jQuery.noConflict.

Escribir JavaScript para varios exploradores

Dado que no sabe qué explorador se usará, debe asegurarse de que los scripts que use funcionarán con todos los exploradores admitidos. La mayoría de las diferencias importantes entre Internet Explorer y otro explorador tienen que ver con la manipulación de DOM XML y HTML. Debido a que no se admite la manipulación de DOM HTML, si la lógica de script solo realiza acciones compatibles y usa la API de Xrm.Page, los cambios necesarios para admitir otros exploradores podrían ser pequeños. Use la herramienta de validación de código personalizado para identificar código que funcione únicamente para Internet Explorer.

Una biblioteca entre exploradores como jQuery es una buena solución para desarrollar recursos web pero no debería ser necesaria para scripts de formularios o comandos de la cinta de opciones.Más información:Uso de jQuery

Compatibilidad con otros exploradores

Dado que Microsoft Dynamics CRM 2015 y actualización de Microsoft Dynamics CRM Online 2015admite estándares W3C, la aplicación podrá ser accesible mediante cualquier explorador moderno y desde cualquier plataforma que admita dichos estándares. Sin embargo, Microsoft Dynamics 365 solo se probará con un conjunto específico de exploradores y plataformas. Para obtener la lista de exploradores y plataformas admitidas, vea TechNet: Exploradores web admitidos.

Si usa un explorador, o una versión de explorador, que no se admite y escribe únicamente el nombre del servidor o el nombre del servidor con la organización como URL, se le redirigirá a la página de Microsoft Dynamics CRM para teléfonos. Se puede esperar que las páginas de CRM para teléfonos funcionen correctamente en la mayoría de los exploradores, como los exploradores usados en dispositivos móviles, con funcionalidad limitada.

Controlar la compatibilidad del explorador para su organización o solución

Aunque la creación de sitios web públicos requiere que admita la mayoría de los exploradores modernos, pocos sitios web públicos admiten todos los exploradores que han existido alguna vez. Tiene que establecer qué exploradores admitirá. Para guardar costos de desarrollo y de pruebas, muchas aplicaciones empresariales requieren que los usuarios usen exploradores específicos.

Si es un ISV que prepara soluciones para cualquier organización mediante Microsoft Dynamics 365, debe esperar que cualquier organización podría usar uno de los exploradores que admitirá Microsoft Dynamics CRM 2015 y actualización de Microsoft Dynamics CRM Online 2015. Sin embargo, si está preparando personalizaciones solo para una organización que requiere que las personas usen un explorador específico, no hay razón para desarrollar y probar sus personalizaciones para exploradores que la organización no admite.

Los administradores de red pueden usar las TechNet: Directivas de restricción de software y TechNet: AppLocker para forzar qué aplicaciones se permiten ejecutar o instalarse en un dominio.

Análisis de XML

Hay muchas oportunidades en las que será necesario analizar XML mediante JavaScript. Tenga en cuenta que existen diferencias significativas en la manera en que puede analizar XML con Internet Explorer y otros exploradores.Internet Explorer usa Microsoft XML Core Services (MSXML) APIs para interactuar con los objetos de documento XML. Estas APIs incluyen varias extensiones para el W3C DOM que no están disponibles para otros exploradores. A continuación encontrará dos ejemplos:

  • Dos métodos comunes usados para extraer datos de un documento XML con Internet Explorer son selectNodes y selectSingleNode. Ambos métodos usan una expresión XPath como el parámetro y devuelven un nodo o una lista de nodos. Para otros exploradores, use el método de evaluación cuando desee usar una expresión XPath. Como alternativa, puede refactorizar el código para navegar por la jerarquía del documento y usar el método getElementsByTagNameNS.

  • Internet Explorer usa la propiedad texto para acceder al texto de un elemento. Otros exploradores usan la propiedad textContent.

Hay varias maneras diferentes de tratar estas diferencias. El método que use dependerá de las preferencias y de los requisitos de su código.

La biblioteca SDK.MetaData.js que se encuentra en Ejemplo: recuperar metadatos de entidad mediante JavaScript usa las funciones auxiliares. Esta biblioteca usa el extremo SOAP para que los recursos web recuperen los metadatos de entidad y atributo. Esta biblioteca depende del análisis de datos desde el documento XML devuelto como XMLHttpRequestresponseXML. En esta biblioteca se agregaron las siguientes funciones auxiliares y se usaron a través de las demás funciones de la biblioteca.

Con estas funciones auxiliares, el código existente que se escribió solo para Internet Explorer se actualizó como se muestra:

Solo código de Internet Explorer original

Nueva función para admitir varios exploradores

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);

Acceso a los datos mediante JavaScript

Hay dos servicios web que puede usar desde la aplicación para tener acceso a los datos mediante JavaScript.

Extremo de OData (REST)

Anteriormente conocido como el "extremo de REST para recursos web". Puede usar el extremo de OData para ejecutar las solicitudes de HTTP mediante un servicio web que se basa en un identificador uniforme de recursos (URI). Los servicios web "RESTful" son populares porque pueden facilitar la programación.

La implementación actual del extremo OData está limitada para crear, recuperar, actualizar y eliminar operaciones. El Ejemplo: crear, recuperar, actualizar y eliminar el uso del extremo de OData con JavaScript incluye una biblioteca SDK.REST.js que proporciona un ejemplo de una biblioteca reutilizable que puede simplificar aún más mediante el extremo OData.

Una de las ventajas del extremo OData es que implementa el protocolo OData, que proporciona la forma de consultar y actualizar datos. Cuando usa JavaScript, normalmente recupera objetos en el formato Notación de objetos JavaScript (JSON). Esto hace que sea más sencillo trabajar con los resultados. La limitación principal del extremo OData es que no puede usar el método IOrganizationService.Execute para ejecutar mensajes (Request y Response ). Use el extremo de SOAP que los recursos web ejecuten mensajes.

Para obtener más información, vea Usar el extremo de OData con recursos web.

Extremo de SOAP

El extremo SOAP le permite ejecutar mensajes porque el extremo REST no permite esto todavía. También puede llamar a los métodos Create, Retrieve, Update, Delete y RetrieveMultiple de este servicio web pero usarlo no es tan sencillo como usar el extremo REST.

Microsoft Dynamics 365 no proporciona una biblioteca de JavaScript para facilitar el uso del extremo de SOAP. Cuando se usa el extremo de SOAP, debe registrar solicitudes http que contienen el XML que define la solicitud y a continuación analizar el XML devuelto en la respuesta.

La biblioteca de ejemplo Sdk.Soap.js y otros ejemplos relacionados proporcionan un ejemplo de una biblioteca que puede usar con el extremo SOAP.

El SDK proporciona una solución de Microsoft Visual C# denominada SoapLogger que le permite capturar XML haber enviados y recibidos cuando se realizan operaciones con los servicios web de Microsoft Dynamics 365 mediante Visual C#. Con esta información, puede crear sus propias bibliotecas de JavaScript.

Para obtener más información, vea Usar el extremo de SOAP de aplicaciones modernas para aplicaciones modernas con recursos web.

Prácticas recomendadas de programación JavaScript

En las siguientes secciones se describen las prácticas recomendadas cuando se usa JavaScript con Microsoft Dynamics 365.

Evitar usar métodos incompatibles

En Internet, puede encontrar muchos ejemplos o sugerencias que describen el uso de métodos incompatibles. Pueden incluir el aprovechamiento de función interna no documentada para controles de página. Estos métodos pueden funcionar pero, al no estar admitidos, no puede esperar que continuarán funcionando en versiones futuras de Microsoft Dynamics 365.

Use la herramienta de validación de código personalizado para identificar código que use códigos incompatibles.

Usar una biblioteca de JavaScript entre exploradores para las interfaces de usuario de recursos web HTML

Una biblioteca JavaScript de distintos exploradores, como jQuery, ofrece muchas ventajas al desarrollar recursos web de HTML que deben que deben ser compatibles con varios exploradores. Las bibliotecas de JavaScript como jQuery proporcionan una experiencia de desarrollo unificada para todos los exploradores compatibles con Microsoft Dynamics 365. Estas capacidades son adecuados al usar recursos web HTML para proporcionar interfaces de usuario. Las bibliotecas JavaScript como jQuery ofrecen formas coherentes para interactuar con el Document Object Model (DOM).

No use jQuery para comandos o script de formularios

No se recomienda ni es compatible el uso de jQuery para ninguna página dentro de la aplicación. Esto incluye scripts de formularios y comandos de la cinta de opciones.Más información:Uso de jQuery.

Reconocer las limitaciones de las bibliotecas de la red de entrega de contenido (CDN)

Las bibliotecas de la red de entrega de contenido (CDN) de JavaScript proporcionan muchas ventajas para sitios web públicos. Debido a que estas bibliotecas se hospedan en Internet, no es necesario crear recursos web que contengan el contenido de las bibliotecas. Para Microsoft Dynamics 365, deben tenerse en cuenta los siguientes problemas antes de usar una biblioteca JavaScript de CDN.

  • Los usuarios del cliente de Microsoft Dynamics CRM para Microsoft Office Outlook con acceso sin conexión tienen la capacidad de trabajar sin conexión a Internet mientras trabajan sin conexión. Si depende de una conexión a Internet para las bibliotecas JavaScript, su código generará un error.

  • Algunas organizaciones restringirán el acceso a Internet para empleados. A menos que configuren la red para permitir el acceso a los sitios de biblioteca CDN, se puede producir un error en su código para esas organizaciones.

La alternativa al uso de las bibliotecas CDN es crear un recurso web de script (JavaScriptcon el contenido de la biblioteca. Dado que los recursos web son entidades propiedad de la organización, se sincronizarán cuando un usuario de Microsoft Dynamics CRM para Outlook con acceso sin conexión se desconecte. Puesto que estos recursos web forman parte ahora de la aplicación, no se bloquearán si una organización restringe el acceso a Internet.

Usar la detección de características al escribir funciones para varios exploradores

Incluso cuando usa una biblioteca entre exploradores como jQuery, debe ser muy consciente de las diferencias entre exploradores. Generalmente puede detectar qué explorador se están usando consultando la propiedad navigator.useragent. Esto se denomina detección del explorador. La detección del explorador no es una buena estrategia en la mayoría de los casos porque no puede tener en cuenta qué características tienen las versiones más recientes de un explorador. Además, algunos exploradores ofrecen la capacidad de modificar la propiedad navigation.useragent para que parezcan ser un explorador diferente.

La detección de características es el enfoque recomendado. Al detectar qué características están disponibles, puede crear rutas de código para los exploradores que admite sin saber exactamente qué explorador se está usando. Para obtener más información acerca de la detección de características, vea Cómo detectar características en lugar de exploradores.

No acceda al DOM

Los desarrolladores deJavaScript se usan para interactuar con los elementos del Document Object Model (DOM) en el código. Puede usar el método window.getElementById o la biblioteca jQuery. Puede usar estas técnicas en sus recursos web HTML, pero no se admiten para acceder a elementos de páginas de aplicación de Microsoft Dynamics 365 o formularios de entidad. En su lugar, el acceso a elementos de formulario de entidad se expone a través del modelo de objetos Xrm.Page. El equipo de desarrollo de Microsoft Dynamics 365 se reserva el derecho a cambiar la manera en que se crean las páginas, incluidos los valores de ID para elementos, por lo que el uso del modelo de objetos Xrm.Page protege su código de cambios en la manera en que se implementan las páginas. Para obtener más información, vea Use el modelo de objeto Xrm.Page.

Definir los nombres únicos para las funciones de JavaScript

Cuando es el único desarrollador para una página HTML, puede administrar fácilmente los nombres de las funciones de JavaScript que use. En Microsoft Dynamics 365, otras soluciones pueden agregar funciones de JavaScript a la página donde se usa la función.

Si dos funciones de JavaScript de una página tienen el mismo nombre, la primera función definida se sobrescribe por la segunda. Por este motivo, asegúrese de definir los nombres únicos para las funciones de JavaScript. Para obtener más información, vea Creación de bibliotecas de script.

Usar métodos de acceso a datos asincrónicos

Si obtiene acceso a los datos mediante los servicios web de Microsoft Dynamics 365 que usan el extremo de REST o SOAP para recursos web, use siempre una XMLHttpRequest que esté configurada para ejecutarse de manera asincrónica. El motivo es que el explorador opera en un solo hilo. Si el hilo se usa para ejecutar un proceso de larga ejecución de forma sincrónica, el explorador dejará de responder.

Depurar JavaScript en Microsoft Dynamics CRM

Cada explorador proporciona algún tipo de extensión de depuración.Internet Explorer proporciona herramientas del desarrollador que puede usar para depurar scripts en Microsoft Dynamics 365. Las herramientas para desarrolladores de Internet Explorer se pueden abrir presionando F12 al ver una página con Internet Explorer. Para obtener más información, consulte Uso de las herramientas del desarrollador F12.

Para Google Chrome, presione F12 para abrir las herramientas para desarrolladores.Firebug es una popular extensión de explorador para desarrollo web con Mozilla Firefox. Para Apple Safari, primero debe elegir la opción Mostrar el menú de Desarrollo en la barra de menú en Preferencias avanzadas. A continuación puede elegir Mostrar inspector web en el menú Desarrollo.

También puede usar Microsoft Visual Studio. Para obtener más información, consulte Cómo depurar JScript en Microsoft Dynamics CRM 2011.

Cuando usa bibliotecas de JavaScript en Microsoft Dynamics 365, las bibliotecas se agregan a una página que incluye muchas bibliotecas. En ocasiones puede resultar difícil aislar la biblioteca específica en el entorno de depuración. Al usar las herramientas de depuración en Internet Explorer, en la pestaña Script , expanda los scripts disponibles y busque el que tiene el nombre que corresponde al nombre del recurso web de JavaScript, como el recurso web new_debugging_example_script.js que se muestra a continuación.

Depurar JavaScript

Herramientas de depuración para distintos exploradores con capacidades similares. Una vez que ha encontrado la biblioteca, puede establecer un punto de interrupción y volver a crear el evento que debe hacer que el código se ejecute.

Escribir mensajes en la consola

El uso del método window.alert al depurar JavaScript sigue siendo una forma común de solucionar problemas de código en la aplicación. Sin embargo, ahora que todos los exploradores modernos proporcionan acceso sencillo a las herramientas de depuración, no se recomienda, especialmente cuando otras personas pueden estar usando la aplicación que está depurando.

Piense en escribir sus mensaje en la consola en su lugar. Lo siguiente es una pequeña función que puede agregar a sus bibliotecas y que puede usar para enviar los mensajes que desea ver en la consola cuando se abre.

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

A diferencia del uso del método de alerta, si se olvida de quitar código que use esta función, las personas que usen la aplicación no verán los mensajes.

Ver también

Extensiones de la aplicación cliente
Usar los datos del servicio web en los recursos web (extremo de SOAP para OData y aplicaciones modernas)
Escriba aplicaciones y extensiones de servidor
Escriba código para formularios de Microsoft Dynamics CRM 2015
Personalizar los comandos y la cinta de opciones
Recursos web para Microsoft Dynamics CRM 2015
Usar el extremo de OData con recursos web
Usar el extremo de SOAP de aplicaciones modernas para aplicaciones modernas con recursos web
Use el modelo de objeto Xrm.Page

© 2017 Microsoft. Todos los derechos reservados. Copyright