Web-API-voorbeelden (JavaScript op de client)
Gepubliceerd: januari 2017
Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Dit onderwerp geeft algemene uitleg over de web-API-voorbeelden waarin JavaScript op de client wordt gebruikt. Elk voorbeeld licht een ander aspect van de web-API van Microsoft Dynamics 365 toe, maar ze delen soortgelijke processen en structuren die in dit onderwerp worden beschreven.
In dit onderwerp
Web-API-voorbeelden met gebruik van JavaScript op de client
De broncode voor de voorbeelden downloaden
De Dynamics 365-oplossing met het voorbeeld imporeren
Het voorbeeld uitvoeren om het script in actie te zien
Gemeenschappelijke elementen voor alle voorbeelden
Web-API-voorbeelden met gebruik van JavaScript op de client
De volgende voorbeelden maken gebruik van de hier beschreven patronen:
Voorbeeld |
Voorbeeldgroep |
Beschrijving |
---|---|---|
Laat zien hoe u in Dynamics 365 entiteitsrecords kunt maken, ophalen, bijwerken, verwijderen, koppelen en ontkoppelen. |
||
Laat zien hoe u de querysyntaxis en -functies van OData v4 toepast, evenals de queryfuncties van Microsoft Dynamics 365. Bevat voorbeelden voor werken met vooraf gedefinieerde query's en het gebruik van FetchXML om query's uit te voeren. |
||
Voorbeeld voorwaardelijke bewerkingen web-API (JavaScript op client) |
Laat zien hoe voorwaardelijke bewerkingen worden uitgevoerd. Het gedrag van deze bewerkingen hangt van de criteria die u opgeeft. |
|
Laat zien hoe u gebonden en ongebonden functies en acties gebruikt, inclusief aangepaste acties. |
De broncode voor de voorbeelden downloaden
De broncode voor elk voorbeeld vindt u in de MSDN Code Gallery. De koppeling voor het downloaden van een voorbeeld vindt u op de pagina waarop het voorbeeld wordt besproken.
Download het gecomprimeerde bestand met het voorbeeld en pak het uit. De Visual Studio 2015-oplossing voor het voorbeeld vindt u in de map met C#, omdat het project een leeg webtoepassingproject voor ASP.NET is. De download bevat ook een Dynamics 365-oplossing, die u kunt importeren en uitvoeren.
Notitie
Om JavaScript op de client voor Dynamics 365 te ontwikkelen, zijn Microsoft Visual Studio noch ASP.NET vereist. De MSDN Code Gallery-site verplicht echter dat bestanden zijn opgenomen in een Microsoft Visual Studio als container.Microsoft Visual Studio biedt echter een goede ervaring om JavaScript te schrijven.
De Dynamics 365-oplossing met het voorbeeld imporeren
Binnen alle project vindt u een bestand met een beheerde Microsoft Dynamics 365-oplossing. De naam van dit bestand wordt bepaald door de naam van het voorbeeldproject, maar elke bestandsnaam eindigt op _managed.zip.
U importeert de Dynamics 365-oplossing als volgt in uw Dynamics 365-server:
Extraheer de inhoud van het gedownloade zip-bestand en zoek het oplossingsbestand Dynamics 365, dat ook een zip-bestand is. Als u bijvoorbeeld het voorbeeld Basic Operations hebt gedownload, zoekt u het zip-bestand Dynamics 365 met de oplossing, dat de naam WebAPIBasicOperations\WebAPIBasicOperations_1_0_0_0_managed.zip draagt.
Ga in de gebruikersinterface van Dynamics 365 naar Instellingen > Oplossingen. Op deze pagina worden alle oplossingen getoond die op uw Dynamics 365-server aanwezig zijn. Nadat u deze oplossing hebt geïmporteerd, verschijnt de oplossingsnaam voor dit voorbeeld in deze lijst (bijvoorbeeld: Web API Basic Operations).
Klik op Importeren en volg de instructies in het dialoogvenster Importeren om deze actie te voltooien.
Het voorbeeld uitvoeren om het script in actie te zien
Het voorbeeldprogram wordt uitgevoerd als een webresource in Dynamics 365. De geïmporteerde oplossing biedt een configuratiepagina met een optie om de voorbeeldgegevens te behouden of te verwijderen, en een knop om het voorbeeldprogramma te starten. Voor het voorbeeld Basic Operations ziet deze interface er uit als hieronder.
Als u het voorbeeld wilt uitvoeren, doet u het volgende:
Klik op de pagina Alle oplossingen in Dynamics 365 op de oplossingnaam (bijvoorbeeld: de koppeling Web API Basics Operations). Een venster wordt geopend waarin de eigenschappen van de oplossing worden opgesomd.
Klik in het linkernavigatiemenu op Configuratie.
Klik op de knop Start Sample (Voorbeeld starten) om de voorbeeldcode uit te voeren.
Gemeenschappelijke elementen voor alle voorbeelden
In de onderstaande lijst worden enkele gemeenschappelijke elementen van alle voorbeelden vermeld.
De functie Sdk.startSample wordt aangeroepen wanneer een gebruiker op de HTML-pagina op de knop Start Sample klikt. De functie Sdk.startSample initialiseert de algemene variabelen en zet de eerste bewerking in de keten in werking.
Programmauitvoer en foutberichten worden verzonden naar de debuggerconsole van de browser. Als u de uitvoer wilt bekijken, opent u het consolevenster voordat u het voorbeeld start. Druk F12 in om de ontwikkelaarhulpprogramma's, inclusief het consolevenster, te openen in de browsers Windows Internet Explorer en Microsoft Edge.
Deze voorbeelden maken gebruik van de systeemeigen implementatie van de ES6-Promise voor moderne browsers die deze ondersteunen. In Internet Explorer 11 maakt dit voorbeeld gebruik van de ES6-Promise polyfill, omdat Internet Explorer 11 de enige browser is die wordt ondersteund door Microsoft Dynamics 365 en die geen systeemeigen ondersteuning voor deze functie biedt.
Promises zijn niet verplicht. Soortgelijke interactie kunnen worden uitgevoerd met callbackfuncties. Zie Een herbruikbare functie maken met promises voor meer informatie.
De functie Sdk.request handelt de aanvraag af, afhankelijk van de gegevens die door middel van parameters worden doorgegeven. Afhankelijk van de behoeften van elk voorbeeld kunnen verschillende parameters worden doorgegeven. Zie voor meer informatie de broncode voor de afzonderlijke voorbeelden.
/** * @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)); }); };
De functie Sdk.request retourneert een promise. Wanneer de aanvraag die in de promise is verpakt is voltooid, wordt de promise afgesloten of afgewezen. Als hij wordt afgesloten, wordt de functie in de volgende then-methode aangeroepen. Als hij wordt afgewezen, wordt de functie in de volgende catch-methode aangeroepen. Als de functie binnen de then methode zelf een promise retourneert, kan de keten van bewerkingen in opeenvolgende then methoden worden voortgezet. Door een promise te retourneren kunnen deze voorbeeldbewerkingen aan elkaar worden gekoppeld op een manier die vele ontwikkelaars verkiezen boven traditionele callback-functies. Voor meer informatie over promises raadpleegt u JavaScript Promise.
Zie ook
De web-API van Microsoft Dynamics 365 gebruiken
Web-API-voorbeelden
Web-API-voorbeelden (C#)
Voorbeeld basisbewerkingen web-API (JavaScript op client)
Voorbeeld web-API querygegevens (JavaScript op client)
Voorbeeld van voorwaardelijke Web API-bewerkingen
Voorbeeld web-API-functies en acties (JavaScript op client)
Microsoft Dynamics 365
© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht