Delen via


JavaScript gebruiken met Microsoft Dynamics CRM 2015

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics CRM 2015

Microsoft Dynamics CRM 2015 en Microsoft Dynamics CRM Online 2015 Update biedt veel kansen om JavaScript te gebruiken. Alle JavaScript gebruikt in Microsoft Dynamics 365 wordt toegevoegd door JScript webresources te maken. Dit onderwerp bevat informatie voor ontwikkelaars die gebruikmaken van JavaScript en bevat koppelingen naar relevante onderwerpen in de Microsoft Dynamics CRM SDK en andere bronnen.

In dit onderwerp

Gebieden waar u JavaScript in Microsoft Dynamics CRM kunt gebruiken

jQuery gebruiken

Schrijf JavaScript voor meerdere browsers

Gegevenstoegang met JavaScript

Aanbevolen methoden voor JavaScript programmering

JavaScript-fouten opsporen in Microsoft Dynamics CRM

Gebieden waar u JavaScript in Microsoft Dynamics CRM kunt gebruiken

U kunt JavaScript gebruiken om bewerkingen uit te voeren in formulierscripts, opdrachten in de opdrachtbalk (lint), en webresources.

Formulierscripts

JavaScript in Microsoft Dynamics 365 wordt vaakst gebruikt om functies toe te voegen als gebeurtenishandlers voor gebeurtenissen voor formulier entiteit. Zie Code schrijven voor Microsoft Dynamics CRM 2015-formulieren voor meer informatie.

Opdrachtbalk (lint) opdrachten

Als u de Microsoft Dynamics 365 opdrachtbalk aanpast, kunt u opdrachten configureren voor besturingselementen die u toevoegt. Deze opdrachten bevatten regels die bepalen of het besturingselement wordt ingeschakeld en welke actie wordt uitgevoerd wanneer het besturingselement wordt gebruikt. Zie Opdrachten en het lint aanpassen voor meer informatie.

Webresources

Microsoft Dynamics 365 bevat een entiteit die eigendom is van een organisatie, en slaat een binaire weergave op van een bestand dat toegankelijk is met behulp van een URL. Dit bestand wordt een webresource genoemd. Er zijn een aantal verschillende typen webresources. Een webresource die een JavaScript bibliotheek voorstelt, wordt een JScript webresource genoemd. U kunt een webpagina (HTML) webresource gebruiken om een gebruikersinterface te bieden met JavaScript bibliotheken, net als voor bestanden op een webserver. Omdat deze bestanden deel uitmaken van Microsoft Dynamics 365, worden de gebruikers die er toegang tot hebben al geverifieerd. Daarom kunt u Microsoft Dynamics 365 webservices gebruiken zonder dat u code moet schrijven om de gebruiker te verifiëren. Zie Webresources voor Microsoft Dynamics CRM 2015 voor meer informatie.

jQuery gebruiken

  • Gebruik jQuery met HTML-webresources
    Het is raadzaam jQuery samen met HTML-webresources te gebruiken om gebruikersinterfaces te geven omdat de engine een uitstekende cross-browserbibliotheek is.

    Met HTML-webresources controleert u de bibliotheken die aanwezig zijn en is er geen beperking voor het bewerken van de DOM. U kunt jQuery gebruiken binnen uw HTML-Webresources.

  • Vermijd het gebruik van jQuery met formulierscripts of lintopdrachten
    We adviseren niet jQuery te gebruiken in formulierscripts en lintopdrachten.

    Het grootste voordeel van jQuery, is dat cross-browsermanipulatie van de DOM gemakkelijk wordt. Dit wordt uitdrukkelijk ondersteund in formulierscripts en lintopdrachten. Beperk uw scripts om de bibliotheken Xrm.Page en Xrm.Utility te gebruiken in formulierscripts en lintopdrachten. Als u beslist de resterende mogelijkheden van jQuery te gebruiken die nuttig zijn met Microsoft Dynamics 365 en de mogelijkheid wilt opnemen om $.ajax te gebruiken, kunt u het volgende overwegen:

    • Voor de beste prestaties wordt het aangeraden om jQuery niet in de pagina te laden als u het niet nodig hebt

    • Het gebruik van $.ajax om aanvragen voor de OData en het Modern Apps SOAP eindpunt uit te voeren, wordt ondersteund. Er zijn echter alternatieven. Het alternatief voor het gebruik van $.ajax is het rechtstreeks gebruik van het XMLHttpRequest-object van de browsers. De jQuery $.ajax is slechts een omslag voor dit object. Als u het native XMLHttpRequest-object rechtstreeks gebruikt, hoeft u jQuery niet te laden.

      Vergelijk de SDK.REST.js en SDK.JQuery.js voorbeeldbibliotheken in Voorbeeld: Maken, ophalen, bijwerken en verwijderen via het OData-eindpunt met JavaScript en Voorbeeld: Maken, ophalen, bijwerken en verwijderen via het OData-eindpunt met JavaScript en jQuery. Beide voeren dezelfde bewerkingen uit, maar SDK.REST.js vereist geen jQuery.

    • Elke versie van jQuery die in een pagina wordt geladen, kan een andere versie zijn. Verschillende versies van jQuery hebben verschillende gedragingen en deze kunnen problemen veroorzaken als meerdere versies van jQuery op dezelfde pagina worden geladen. Er is een methode om dit te beperken, maar hiervoor moet u de jQuery-bibliotheek bewerken, evenals overige bibliotheken die afhankelijk zijn van jQuery.Meer informatie:jQuery en jQuery UI met Dynamics CRM 2011 en 2013, jQuery.noConflict()

      Notitie

      Met Update 1 voor Microsoft Dynamics CRM Online 2015 worden formulierscripts uitgevoerd in een ander bereik dan het jQuery-exemplaar dat wordt gebruikt door de toepassing. Dit betekent dat er mogelijk geen exemplaar van jQuery beschikbaar is als uw code probeert gebruik te maken van jQuery.noConflict. Als u jQuery moet gebruiken, moet u eerst vaststellen of een exemplaar van jQuery bestaat voordat u probeert gebruik te maken van jQuery.noConflict.

Schrijf JavaScript voor meerdere browsers

Aangezien u niet weet welke browser zal worden gebruikt, moet u ervoor zorgen dat alle scripts die u gebruikt in alle ondersteunde browsers werken. De meeste belangrijke verschillen tussen Internet Explorer en andere browsers, hebben te maken met HTML- en XML DOM-manipulatie. Omdat de HTML DOM-manipulatie niet wordt ondersteund, kunnen de vereiste wijzigingen om een browser te ondersteunen klein zijn wanneer de scriptlogica alleen ondersteunde acties uitvoert en de Xrm.Page API gebruikt. Gebruik het Validatiehulpmiddel voor aangepaste code om codes te identificeren die alleen werken voor Internet Explorer.

Een cross-browserbibliotheek zoals jQuery is een goede oplossing voor het ontwikkelen van webresources, maar is dit niet noodzakelijk voor lintopdrachten of formulierscripts.Meer informatie:jQuery gebruiken

Ondersteuning voor andere browsers

Aangezien Microsoft Dynamics CRM 2015 en Microsoft Dynamics CRM Online 2015 UpdateW3C normen ondersteunt, is de toepassing toegankelijk met een willekeurige moderne browser en vanaf elk platform deze normen ondersteunt.Microsoft Dynamics 365 wordt echter alleen getest met behulp van een specifieke set browsers en platforms. Zie Technet: Ondersteunde webbrowsers voor de lijst met ondersteunde platforms en browsers.

Als u een browser of browserversie gebruikt die niet wordt ondersteund en u geeft alleen de servernaam of de servernaam bij de organisatie in als URL, wordt u teruggestuurd naar de Microsoft Dynamics CRM voor telefoons pagina. De CRM voor telefoons pagina's worden verondersteld correct te werken op de meeste browsers, zoals browsers gebruikt in mobiele apparaten, met beperkte functionaliteit.

Controleer de browserondersteuning voor uw organisatie of oplossing

Hoewel het maken van openbare de websites vereist dat u de meeste moderne browsers ondersteunt, ondersteunen weinig openbare websites alle browsers die ooit hebben bestaan. U moet bepalen welke browsers u wilt ondersteunen. Om ontwikkelings- en testkosten te besparen, vereisen veel bedrijfstoepassingen dat u specifieke browsers gebruikt.

Als u een ISV bent die oplossingen voor een organisatie voorbereidt met behulp van Microsoft Dynamics 365, kunt u verwachten dat elke organisatie een van de browsers kan gebruiken die Microsoft Dynamics CRM 2015 en Microsoft Dynamics CRM Online 2015 Update ondersteunt. Als u echter alleen aanpassingen voorbereidt voor een organisatie die vereist dat mensen een specifieke browser gebruiken, is er geen reden om uw aanpassingen te ontwikkelen en testen voor browsers die de organisatie niet ondersteunt.

Netwerkbeheerders kunnen een TechNet: Softwarerestrictiebeleid gebruiken en/of TechNet: AppLocker om op te leggen welke toepassingen op een domein mogen worden uitgevoerd of geïnstalleerd.

XML parseren

Er zijn vele mogelijkheden waar u de XML moet parseren met behulp van JavaScript. Houd er rekening mee dat er aanzienlijke verschillen zijn in de manier waarop u XML kunt parseren met behulp van Internet Explorer en andere browsers.Internet Explorer gebruikt Microsoft XML Core Services (MSXML) APIs om samen te werken met XML documentobjecten. Deze APIs bevatten een aantal uitbreidingen op W3C DOM die niet beschikbaar zijn voor andere browsers. Hierna volgen twee voorbeelden:

  • Twee veel toegepaste manieren die worden gebruikt om gegevens uit een XML-document te halen met Internet Explorer, zijn selectNodes en selectSingleNode. Beide methoden gebruiken een XPath expressie als de parameter en retourneren een knooppunt of een knooppuntlijst. Voor andere browsers, gebruikt u de methode evalueren wanneer u een XPath expressie wilt gebruiken. U kunt ook uw code herstructureren om door de documenthiërarchie te navigeren en de getElementsByTagNameNS methode te gebruiken.

  • Internet Explorer gebruikt de tekst eigenschap voor toegang tot de tekst van een element. Andere browsers gebruiken de textContent eigenschap.

Er zijn verschillende manieren waarop u kunt omgaan met deze verschillen. De methode die u gebruikt is afhankelijk van uw voorkeuren en de vereisten van uw code.

In de SDK.MetaData.js bibliotheek in gebruikt Voorbeeld: metagegevens van entiteit ophalen met JavaScript hulpfuncties. Deze bibliotheek gebruikt het SOAP eindpunt voor webresources om de entiteit en de kenmerkmetagegevens op te halen. Deze bibliotheek hangt af van het parseren van gegevens van het XML document, geretourneerd als XMLHttpRequest.responseXML. In deze bibliotheek werden de volgende helperfuncties toegevoegd en gebruikt door de andere functies in de bibliotheek heen.

Met deze helperfuncties werd de bestaande code die alleen is geschreven voor Internet Explorer bijgewerkt zoals weergegeven:

Oorspronkelijke code voor Internet Explorer alleen

Nieuwe functie om meerdere browsers te ondersteunen

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

Gegevenstoegang met JavaScript

Er zijn twee webservices die u in de toepassing kunt gebruiken voor toegang tot gegevens met JavaScript.

OData (REST)-eindpunt.

Vroeger gekend als het 'REST-eindpunt voor webresources'. U kunt de aanvragen OData eindpunt voor uitvoeren HTTP gebruiken door een webservice te gebruiken die is gebaseerd op een URI (Uniform Resource Identifier). "RESTful" webservices zijn populair omdat ze programmeren kunnen vereenvoudigen.

De huidige implementatie van het OData eindpunt is beperkt om bewerkingen te maken, op te halen, bij te werken en te verwijderen. De Voorbeeld: Maken, ophalen, bijwerken en verwijderen via het OData-eindpunt met JavaScript bevat een SDK.REST.js bibliotheek met een voorbeeld van een herbruikbare bibliotheek die verder kan worden vereenvoudigd met het OData eindpunt.

Een van de voordelen van het OData eindpunt is dat dit het Odata-protocol implementeert, dat een manier biedt om gegevens te zoeken en bij te werken. Als u JavaScript gebruikt, haalt u doorgaans objecten op in JavaScript Object Notation (JSON) indeling. Hiermee maakt u het eenvoudiger om met de resultaten te werken. De primaire beperking van het OData eindpunt is dat u niet de methode IOrganizationService.Execute kunt gebruiken om berichten uit te voeren (Request en Response klassen). U gebruikt het SOAP eindpunt voor webresources om berichten uit te voeren.

Zie Het OData-eindpunt gebruiken met webresources voor meer informatie.

SOAP-eindpunt

Met het SOAP eindpunt kunt u berichten uitvoeren voor omdat het REST eindpunt dit nog niet toestaat. U kunt ook de methodes Maken, Ophalen, Bijwerken, Verwijderen en RetrieveMultiple van deze webservice oproepen, maar het gebruik is niet zo eenvoudig als van het REST eindpunt.

Microsoft Dynamics 365 biedt geen JavaScript bibliotheek om het gebruik van het eindpunt SOAP te vergemakkelijken. Bij het gebruik van het SOAP eindpunt, moet u http aanvragen posten die de XML bevatten en de aanvraag definiëren en vervolgens de XML parseren die in de respons werd geretourneerd.

De voorbeeldbibliotheek Sdk.Soap.js en andere verwante voorbeelden bieden een voorbeeld van een bibliotheek waarmee u het SOAP-eindpunt kunt gebruiken.

De SDK biedt een Microsoft Visual C# oplossing, genaamd SoapLogger waarmee u de verzonden en ontvangen XML kunt bijhouden wanneer u bewerkingen uitvoert met de Microsoft Dynamics 365 webservices met behulp van Visual C#. Met deze informatie kunt u uw eigen JavaScript bibliotheken maken.

Zie Het SOAP-eindpunt voor moderne toepassingen gebruiken voor moderne toepassingen met webresources voor meer informatie.

Aanbevolen methoden voor JavaScript programmering

De volgende gedeelten beschrijven de aanbevolen methoden wanneer u JavaScript gebruikt met Microsoft Dynamics 365.

Vermijd het gebruik van niet-ondersteunde methoden

Op internet vindt u talloze voorbeelden of suggesties die het gebruik van niet-ondersteunde methoden beschrijven. Deze kunnen het gebruik omvatten van niet-gedocumenteerde interne functie voor paginabesturingselementen. Deze methodes kunnen werken, maar aangezien ze niet worden ondersteund, kunt u niet verwachten dat deze blijven werken in toekomstige versies van Microsoft Dynamics 365.

Gebruik het Validatiehulpmiddel voor aangepaste code om codes te identificeren die niet-ondersteunde methodes gebruikt.

Gebruik een cross-browserJavaScript-bibliotheek voor gebruikersinterfaces van HTML-webresources.

Een cross-browser JavaScript-bibliotheek zoals jQuery biedt vele voordelen wanneer u HTML-webresources ontwikkelt die meerdere browsers moeten ondersteunen.JavaScript-bibliotheken zoals jQuery bieden een eenvormige ontwikkelomgeving voor alle browsers die Microsoft Dynamics 365 ondersteunt. Deze capaciteiten zijn van zeer nuttig als u HTML-webresources gebruikt om gebruikersinterfaces aan te bieden.JavaScript-bibliotheken zoals jQuery bieden consistente manieren voor interactie met het Document Object Model (DOM).

Gebruik geen jQuery voor formulierscripts of opdrachten

We raden het gebruik van jQuery niet aan en ondersteunen dit niet voor pagina's in de toepassing. Dit omvat formulierscripts en lintopdrachten.Meer informatie:jQuery gebruiken.

Erken beperkingen voor Content Delivery Network (CDN) bibliotheken

Content Delivery Network (CDN) JavaScript bibliotheken bieden voor voordelen voor openbare websites. Omdat deze bibliotheken op internet worden gehost, moet u geen webresources maken met de inhoud van de bibliotheken. Voor Microsoft Dynamics 365 moet u rekening houden met de volgende aspecten voordat u een CDN JavaScript bibliotheek gebruikt.

  • Gebruikers van de Microsoft Dynamics CRM voor Microsoft Office Outlook met offlinetoegang client hebben de mogelijkheid om zonder internetverbinding te werken terwijl u offline werkt. Als u afhankelijk bent van een internetverbinding voor uw JavaScript bibliotheken, werkt uw code niet.

  • Sommige organisaties zullen internettoegang voor werknemers beperken. Tenzij ze het netwerk configureerden voor toegang tot de CDN-bibliotheeksites, werkt uw code mogelijk niet voor deze organisaties.

Het alternatief voor het gebruik van CDN-bibliotheken is het maken van een script (JavaScript) webresource met de inhoud van de bibliotheek. Omdat webresources entiteiten zijn van organisaties, worden deze gesynchroniseerd wanneer een Microsoft Dynamics CRM voor Outlook met offlinetoegang gebruiker offline gaat. Omdat deze webresources nu een onderdeel van de toepassing zijn, worden ze niet geblokkeerd als een organisatie toegang tot Internet beperkt.

Gebruik functiedetectie bij het schrijven van functies voor meerdere browsers

Zelfs als u een cross-browserbibliotheek als jQuery gebruikt, moet u erg op de hoogte zijn van verschillen tussen browsers. U kunt meestal de browser detecteren door de eigenschap navigator.useragent op te vragen. Dit wordt browserdetectie genoemd. De browserdetectie is geen goede strategie voor de meeste gevallen omdat dit geen rekening kan houden met welke functies nieuwere versies van een browser hebben. Sommige browsers bieden ook de mogelijkheid om de eigenschap navigation.useragent te wijzigen zodat ze een andere browser lijken te zijn.

De functiedetectie is de aanbevolen methode. Door te detecteren welke functies beschikbaar zijn, kunt u codepaden maken voor de browsers die u ondersteunt zonder precies te weten welke browser wordt gebruikt. Voor meer informatie over functiedetectie, raadpleegt u Hoe functies detecteren in plaats van browsers

Open de DOM niet

JavaScript ontwikkelaars worden gebruikt om te communiceren met Document Object Model (DOM) elementen in de code. U kunt de methode window.getElementById of de bibliotheek jQuery gebruiken. U kunt deze technieken in uw HTML webresources gebruiken, maar ze worden niet ondersteund voor toegangselementen in Microsoft Dynamics 365 toepassingspages of entiteitformulieren. In plaats daarvan wordt de toegang tot entiteitelementen beschikbaar door het objectmodel Xrm.Page. Het Microsoft Dynamics 365 ontwikkelingsteam reserveert het recht om te wijzigen hoe pagina's worden samengesteld, inclusief de waarden ID voor elementen, dus het gebruik van het objectmodel Xrm.Page beschermt uw code tegen wijzigingen in de manier waarop pagina's worden geïmplementeerd. Zie Het objectmodel Xrm.Page gebruiken voor meer informatie.

Bepaal unieke namen voor uw JavaScript-functies

Als u de enige ontwikkelaar bent voor een HTML pagina, kunt u gemakkelijk de namen beheren van de JavaScript functies die u gebruikt. In Microsoft Dynamics 365 kunnen andere oplossingen JavaScript functies toevoegen aan de pagina waar uw functie wordt gebruikt.

Als twee JavaScript functies op een pagina dezelfde naam hebben, wordt de eerste bepaalde functie overschreven door de tweede. Daarom moet u ervoor zorgen dat u unieke definieert voor uw JavaScript functies. Zie Scriptbibliotheken maken voor meer informatie.

Gebruik asynchrone gegevenstoegangsmethoden

Als u toegang hebt tot gegevens via de Microsoft Dynamics 365 webservices die het REST of SOAP eindpunt gebruikt voor webresources moet u altijd een XMLHttpRequest gebruiken dat is geconfigureerd om asynchroon te worden uitgevoerd. De reden is dat de browser op één thread werkt. Als deze wordt gebruikt om een langlopend proces synchroon uit te voeren, zal de browser niet meer reageren.

JavaScript-fouten opsporen in Microsoft Dynamics CRM

Elke browser bevat de een of andere extensie voor foutopsporing.Internet Explorer biedt ontwikkelaarhulpprogramma's voor foutopsporing in scripts in Microsoft Dynamics 365. De Internet Explorer ontwikkelaarhulpprogramma's kunnen worden geopend door op de knop F12 te drukken bij het raadplegen van een pagina met Internet Explorer. Voor meer informatie zie De F12 ontwikkelaarshulpprogramma's gebruiken.

Voor Google Chrome, druk op F12 om ontwikkelaarhulpprogramma's te openen.Firebug is een populaire browseruitbreiding voor webdevelopment dat Mozilla Firefox gebruikt. Voor Apple Safari, moet u eerste het Ontwikkelaarsmenu in de menubalk in Geavanceerde voorkeuren. Vervolgens kunt u Webinspecteur weergeven kiezen in het menu Ontwikkeling.

U kunt ook Microsoft Visual Studio gebruiken. Zie Foutopsporing in JScript in Microsoft Dynamics CRM 2011 voor meer informatie.

Als u JavaScript bibliotheken gebruikt in Microsoft Dynamics 365 worden uw bibliotheken toegevoegd aan een pagina met vele bibliotheken. Het kan soms moeilijk zijn om de specifieke bibliotheek te isoleren in de foutopsporingomgeving. Bij het gebruik van foutopsporinghulpprogramma's in Internet Explorer, vouwt u op het tabblad Script de beschikbare scripts uit en zoekt u het script met de naam die overeenstemt met de naam van uw JavaScript-webresource, zoals de new_debugging_example_script.js webresource hieronder aangegeven.

JavaScript-fouten opsporen

De foutopsporinghulpprogramma's voor verschillende browsers hebben gelijkaardige mogelijkheden. Zodra u uw bibliotheek hebt gevonden, kunt u een omslagpunt instellen en de gebeurtenis maken die uw code moet doen uitvoeren.

Schrijf berichten op de console

Gebruik van de window.alert methode bij foutopsporing in JavaScript is nog steeds een veelgebruikte methode voor foutopsporing in code in de toepassing. Maar nu alle moderne browsers gemakkelijk toegang bieden tot foutopsporingsprogramma's, wordt deze methode niet aanbevolen, vooral wanneer anderen de toepassing gebruiken waarvoor u foutopsporing wilt uitvoeren.

Overweeg in plaats daarvan om uw berichten naar de console te schrijven. Hier volgt een kleine functie die u aan uw bibliotheken kunt toevoegen om te gebruiken om eventuele berichten te verzenden die u wilt weergeven aan de console wanneer deze open is.

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

In tegenstelling tot het gebruik van de waarschuwingsmethode, zullen mensen die de toepassing gebruiken geen berichten zien als u code vergeet te verwijderen die deze functie gebruikt.

Zie ook

Uitbreidingen van clienttoepassingen schrijven
Gebruik webservicegegevens in webresources (OData en het SOAP-eindpunt voor moderne toepassingen)
Toepassingen en serveruitbreidingen schrijven
Code schrijven voor Microsoft Dynamics CRM 2015-formulieren
Opdrachten en het lint aanpassen
Webresources voor Microsoft Dynamics CRM 2015
Het OData-eindpunt gebruiken met webresources
Het SOAP-eindpunt voor moderne toepassingen gebruiken voor moderne toepassingen met webresources
Het objectmodel Xrm.Page gebruiken

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht