Ejemplos de la API web (JavaScript del lado del cliente)
Publicado: enero de 2017
Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
En este tema se proporciona un entendimiento común sobre los ejemplos de la API web mediante JavaScript del lado del cliente. Si bien cada ejemplo se centra en un aspecto distinto de la API web de Microsoft Dynamics 365, todos ellos siguen un proceso y una estructura similares descritos en este tema.
En este tema
Ejemplos de la API web mediante JavaScript del lado del cliente
Cómo descargar el código de origen del ejemplo.
Cómo importar la solución de Dynamics 365 que contiene el ejemplo.
Cómo ejecutar el ejemplo para ver el script en acción
Elementos comunes que se encuentran en cada ejemplo
Ejemplos de la API web mediante JavaScript del lado del cliente
Los siguientes ejemplos utilizan los patrones descritos aquí:
Muestra |
Grupo de ejemplo |
Descripción |
---|---|---|
Ejemplo de operaciones básicas de la API web (JavaScript del lado del cliente) |
Demuestra cómo crear, recuperar, actualizar, eliminar, asocie y anular la asociación de registros de entidad de Dynamics 365. |
|
Ejemplo de datos de consulta de la API web (JavaScript del lado del cliente) |
Demuestra cómo usar sintaxis y funciones de consulta de OData v4 así como funciones de consulta de Microsoft Dynamics 365. Incluye demostración de trabajo con consultas predefinidas y uso de FetchXML para realizar consultas. |
|
Ejemplo de operaciones condicionales de la API web (JavaScript del lado del cliente) |
Demuestra cómo realizar operaciones condicionales. El comportamiento de estas operaciones depende de los criterios que especifique. |
|
Ejemplo de funciones y acciones de la API web (JavaScript del lado del cliente) |
Demuestra cómo usar funciones y acciones enlazadas y sin enlazar, incluidas acciones personalizadas. |
Cómo descargar el código de origen del ejemplo.
El código de origen para cada ejemplo está disponible en Galería de código de MSDN. El vínculo para descargar cada ejemplo se incluye en la página individual de ese ejemplo.
Después de descargar el ejemplo, extraiga el archivo comprimido. Busque la solución Visual Studio 2015 para cada ejemplo dentro de la carpeta C# porque el proyecto es un proyecto de aplicación web ASP.NET vacío. Una solución Dynamics 365 también se proporciona en la descarga que puede importar y ejecutar.
Nota
No se requiere Microsoft Visual Studio ni ASP.NET para desarrollar JavaScript del lado del cliente para Dynamics 365, aunque el sitio de la Galería de códigos de MSDN requiere que se incluyan archivos en Microsoft Visual Studio como contenedor. Sin embargo, Microsoft Visual Studio proporciona una buena experiencia para escribir JavaScript.
Cómo importar la solución de Dynamics 365 que contiene el ejemplo.
Dentro de cada proyecto encontrará un archivo de solución administrada de Microsoft Dynamics 365. El nombre de este archivo dependerá del nombre del proyecto de ejemplo, pero el nombre de archivo terminará con _managed.zip.
Para importar la solución de Dynamics 365 en el servidor de Dynamics 365, siga estos pasos:
Extraiga el contenido del archivo zip descargado y busque el archivo de la solución de Dynamics 365, que también será un archivo zip. Por ejemplo, si ha descargado el ejemplo Basic Operations, busque el archivo zip de la solución de Dynamics 365 con el nombre WebAPIBasicOperations\WebAPIBasicOperations_1_0_0_0_managed.zip.
En la UI de Dynamics 365, vaya a Configuración > Soluciones. Esta página enumera todas las soluciones del servidor de Dynamics 365. Después de acabar de importar esta solución, el nombre de la solución para ese ejemplo aparecerá en esta lista (por ejemplo, Web API Basics Operations).
Haga clic en Importar y siga las instrucciones del diálogo de importación para terminar esta acción.
Cómo ejecutar el ejemplo para ver el script en acción
El programa de ejemplo se ejecuta como recurso web en Dynamics 365. La solución importada proporciona una página de configuración que le da una opción de mantener o de eliminar datos de ejemplo y un botón para iniciar el programa de ejemplo. Para el ejemplo de Basic Operations, esta interfaz es similar a la siguiente.
Para ejecutar el ejemplo, lleva a cabo lo siguiente:
En la página Todas las soluciones en Dynamics 365, haga clic en el nombre de la solución (por ejemplo, vínculo Web API Basics Operations). Se abrirán las propiedades de la solución en una nueva ventana.
En el menú de navegación izquierdo, haga clic en Configuración.
Haga clic en el botón Iniciar ejemplo para ejecutar el código de ejemplo.
Elementos comunes que se encuentran en cada ejemplo
En la siguiente lista se resaltan algunos elementos comunes que se encuentran en cada uno de estos ejemplos.
Se llama a la función Sdk.startSample cuando un usuario hace clic en el botón Iniciar ejemplo desde la página HTML. La función Sdk.startSample inicializa variables globales y pone en marcha la primera operación de la cadena.
La salida del programa y mensajes de error se envían a la consola de depurador del explorador. Para ver esta salida, abra la ventana de la consola primero antes de ejecutar el ejemplo. Pulse F12 para tener acceso a las herramientas de desarrollo, incluida la ventana de la consola, en exploradores Windows Internet Explorer y Microsoft Edge.
Estos ejemplos usan la implementación nativa ES6-Promise del explorador para exploradores modernos que la admiten. Para Internet Explorer 11, este ejemplo usar ES6-Promise polyfill porque Internet Explorer 11 es el único explorador admitido por Microsoft Dynamics 365 que no tiene compatibilidad nativa para esta característica.
No se requieren promesas. Pueden realizarse interacciones similares con funciones de devolución de llamada. Para obtener más información, vea Crear una función reutilizable utilizando promesas.
La función Sdk.request controla la solicitud en función de la información pasada en como parámetros. En función de la necesidad de cada ejemplo, los parámetros pasados pueden ser diferentes. Consulte el código de origen del ejemplo para obtener más detalles.
/** * @function request * @description Generic helper function to handle basic XMLHttpRequest calls. * @param {string} action - The request action. String is case-sensitive. * @param {string} uri - An absolute or relative URI. Relative URI starts with a "/". * @param {object} data - An object representing an entity. Required for create and update actions. * @returns {Promise} - A Promise that returns either the request object or an error object. */ Sdk.request = function (action, uri, data) { if (!RegExp(action, "g").test("POST PATCH PUT GET DELETE")) { // Expected action verbs. throw new Error("Sdk.request: action parameter must be one of the following: " + "POST, PATCH, PUT, GET, or DELETE."); } if (!typeof uri === "string") { throw new Error("Sdk.request: uri parameter must be a string."); } if ((RegExp(action, "g").test("POST PATCH PUT")) && (data === null || data === undefined)) { throw new Error("Sdk.request: data parameter must not be null for operations that create or modify data."); } // Construct a fully qualified URI if a relative URI is passed in. if (uri.charAt(0) === "/") { uri = clientUrl + webAPIPath + uri; } return new Promise(function (resolve, reject) { var request = new XMLHttpRequest(); request.open(action, encodeURI(uri), true); request.setRequestHeader("OData-MaxVersion", "4.0"); request.setRequestHeader("OData-Version", "4.0"); request.setRequestHeader("Accept", "application/json"); request.setRequestHeader("Content-Type", "application/json; charset=utf-8"); request.onreadystatechange = function () { if (this.readyState === 4) { request.onreadystatechange = null; switch (this.status) { case 200: // Success with content returned in response body. case 204: // Success with no content returned in response body. resolve(this); break; default: // All other statuses are unexpected so are treated like errors. var error; try { error = JSON.parse(request.response).error; } catch (e) { error = new Error("Unexpected Error"); } reject(error); break; } } }; request.send(JSON.stringify(data)); }); };
La función Sdk.request devuelve una promesa. Cuando la solicitud envuelta por la promesa está completa, se resuelve o se rechaza la promesa. Si se resuelve, se llamará a la función en el método then siguiente. Si se rechaza, se llamará a la función en el método catch siguiente. Si la función en el método then propiamente dicho devuelve una promesa, la cadena de operaciones en los métodos then consecutivos puede continuar. Devolver una promesa nos permite encadenar estas operaciones de ejemplo juntas de forma que sea preferida por muchos programadores a las funciones de devolución de llamada tradicionales. Para obtener más información sobre promesa, consulte Promesa de JavaScript.
Ver también
Use la API web de Microsoft Dynamics 365
Ejemplos de la API web
Ejemplos de la API web (C#)
Ejemplo de operaciones básicas de la API web (JavaScript del lado del cliente)
Ejemplo de datos de consulta de la API web (JavaScript del lado del cliente)
Ejemplo de operaciones condicionales de la API web
Ejemplo de funciones y acciones de la API web (JavaScript del lado del cliente)
Microsoft Dynamics 365
© 2017 Microsoft. Todos los derechos reservados. Copyright