Delen via


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

Voorbeeld basisbewerkingen web-API (JavaScript op client)

Voorbeeld van eenvoudige Web API-bewerkingen

Laat zien hoe u in Dynamics 365 entiteitsrecords kunt maken, ophalen, bijwerken, verwijderen, koppelen en ontkoppelen.

Voorbeeld web-API querygegevens (JavaScript op client)

Voorbeeld gegevens Web API-query

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)

Voorbeeld van voorwaardelijke Web API-bewerkingen

Laat zien hoe voorwaardelijke bewerkingen worden uitgevoerd. Het gedrag van deze bewerkingen hangt van de criteria die u opgeeft.

Voorbeeld web-API-functies en acties (JavaScript op client)

Web API-functies en actievoorbeeld

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:

  1. 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.

  2. 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).

  3. 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.

Dynamics 365 Web API Sample Configuration page

Als u het voorbeeld wilt uitvoeren, doet u het volgende:

  1. 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.

  2. Klik in het linkernavigatiemenu op Configuratie.

  3. 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