Uso de JavaScript con Customer Engagement (on-premises)

Dynamics 365 for Customer Engagement brinda muchas oportunidades para usar JavaScript. Todo el JavaScript usado en Dynamics 365 Customer Engagement (on-premises) se agrega creando recursos web de JavaScript. Este tema tiene información para desarrolladores que usan JavaScript e incluye vínculos a los temas correspondientes en servicios web de Dynamics 365 Customer Engagement y otros orígenes.

Áreas en las que puede usar JavaScript en Dynamics 365 Customer Engagement (on-premises)

Puede usar JavaScript para 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 Dynamics 365 Customer Engagement (on-premises) es agregar funciones como controladores de eventos para eventos de formulario de entidad. Para obtener más información, consulte Scripting del cliente en Customer Engagement mediante JavaScript.

Comandos de la barra de comandos (cinta de opciones)

Al personalizar la barra de comandos para Dynamics 365 Customer Engagement (on-premises) , 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, consulte Personalización de comandos y la cinta de opciones.

Recursos web

Dynamics 365 Customer Engagement (on-premises) 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 JavaScript. 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 Dynamics 365 Customer Engagement (on-premises), los usuarios que acceden a estos ya están autenticados. Por tanto, puede usar los servicios web de Dynamics 365 Customer Engagement (on-premises) sin necesidad de escribir código para autenticar el usuario. Para obtener más información, consulte Recursos web para Dynamics 365 Customer Engagement y Trabar con datos de Dynamics 365 Customer Engagement mediante recursos web.

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.

Nota

Si la referencia del script a ClientGlobalContext.js.aspx se coloca después de su propia referencia jQuery, los scripts ClientGlobalContext.js.aspx sobrescribirán su versión previamente cargada de jQuery. Para evitarlo, coloque la referencia del script ClientGlobalContext.js.aspx antes de cualquier otra referencia de script en el recurso web.

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 cliente, los cambios necesarios para admitir otros exploradores podrían ser pequeños.

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: Evite utilizar jQuery para scripts de formularios

Prácticas recomendadas de programación JavaScript

En las siguientes secciones se describen las prácticas recomendadas cuando se usa JavaScript con Dynamics 365 Customer Engagement (on-premises).

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 Dynamics 365 Customer Engagement (on-premises).

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 ser compatibles con varios exploradores. La bibliotecas de JavaScript como jQuery proporcionan una experiencia de desarrollo unificada para todos los navegadores compatibles con Dynamics 365 Customer Engagement (on-premises). Estas capacidades son adecuados al usar recursos web HTML para proporcionar interfaces de usuario. Bibliotecas de JavaScript como jQuery proporcionan formas coherentes de 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 Dynamics 365 Customer Engagement (on-premises), deben tenerse en cuenta los siguientes problemas antes de usar una biblioteca JavaScript de CDN.

  • Los usuarios del cliente de Dynamics 365 for Microsoft Office Outlook con cliente de 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 de 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 (JavaScript) con el contenido de la biblioteca. Debido a que los recursos web son entidades propiedad de la organización, se sincronizarán cuando un Dynamics 365 for Outlook con usuario de 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 de JavaScript 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 Dynamics 365 Customer Engagement (on-premises) o formularios de entidad. En lugar de eso, los elementos de acceso al formulario de entidad se exponen mediante el modelo de objetos de API de cliente. El equipo de desarrollo de Dynamics 365 Customer Engagement (on-premises) 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 de API de cliente protege su código de cambios en la manera en que se implementan las páginas.

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 Dynamics 365 Customer Engagement (on-premises), 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, consulte Scripting del cliente en Customer Engagement mediante JavaScript.

Usar métodos de acceso a datos asincrónicos

Si obtiene acceso a los datos mediante los servicios web de Dynamics 365 Customer Engagement (on-premises), 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.

Nota

XMLHttpRequests sincrónico está obsoleto en el hilo principal del explorador debido a los efectos perjudiciales para la experiencia del usuario final. Algunos exploradores ahora proporcionan una advertencia cuando detectan esto. Si los exploradores implementan la especificación en algún momento en el futuro, se lanzará una excepción InvalidAccessError. Más información: https://www.w3.org/TR/XMLHttpRequest/#synchronous-flag and https://xhr.spec.whatwg.org/#the-open()-method

Consulte también

Escribir extensiones de la aplicación cliente
Trabajar con datos Customer Engagement utilizando recursos web
Scripting del cliente en Customer Engagement (on-premises) con JavaScript
Personalizar la cinta de opciones para Dynamics 365 Customer Engagement (on-premises)
Recursos web para Dynamics 365 Customer Engagement (on-premises)

Comprender el modelo de objeto de la API cliente