Bruge JavaScript med Microsoft Dynamics CRM 2015
Udgivet: november 2016
Gælder for: Dynamics CRM 2015
Microsoft Dynamics CRM 2015 og opdatering til Microsoft Dynamics CRM Online 2015 giver mange muligheder for at bruge JavaScript. Al JavaScript i Microsoft Dynamics 365 tilføjes ved at oprette JScript-ressourcer på internettet. Dette emne indeholder oplysninger til udviklere, som bruger JavaScript, og indeholder links til relevante emner i Microsoft Dynamics CRM SDK og andre kilder.
Dette emne indeholder
Områder, hvor du kan bruge JavaScript i Microsoft Dynamics CRM
Brug af jQuery
Skrive JavaScript til flere browsere
Adgang til data ved hjælp af JavaScript
JavaScript-programmingens bedste fremgangsmåder
Fejlfinding af JavaScript i Microsoft Dynamics CRM
Områder, hvor du kan bruge JavaScript i Microsoft Dynamics CRM
Du kan bruge JavaScript til at udføre handlinger i formularscripts, kommandolinjen (båndet) og ressourcer på internettet.
Formularscripts
Den mest almindelige brug af JavaScript i Microsoft Dynamics 365 er at tilføje funktioner som hændelseshandlere for objektformularhændelser. Du kan finde flere oplysninger under Skrive kode til Microsoft Dynamics CRM 2015-formularer.
Kommandoer på kommandolinjen (båndet)
Hvis du tilpasser Microsoft Dynamics 365-kommandolinjen, kan du konfigurere kommandoer til kontrolelementer, du tilføjer. Disse kommandoer indeholder regler, der styrer, om kontrolelementet er aktiveret, og hvad der skal udføres, når kontrolelementet anvendes. Du kan finde flere oplysninger under Tilpasse kommandoer og båndet.
Webressourcer
Microsoft Dynamics 365 indeholder et organisationsejet objekt, der indeholder en binær repræsentation af en fil, der kan opnås adgang til ved hjælp af en URL. Denne fil kaldes en webressource. Der er flere forskellige typer af webressourcer. En webressource, der repræsenterer et JavaScript-bibliotek, kaldes en JScript-webressource. Du kan bruge en webside (HTML) som webressource til at levere en brugergrænseflade med JavaScript-biblioteker, der er inkluderet, ligesom du ville gøre for filer på en webserver. Fordi filerne er en del af Microsoft Dynamics 365, er brugere, der har adgang til dem, allerede godkendt. Du kan derfor bruge Microsoft Dynamics 365-webtjenester uden at skrive kode for at kunne godkende brugeren. Du kan finde flere oplysninger under Webressourcer til Microsoft Dynamics CRM 2015.
Brug af jQuery
Bruge jQuery med HTML-webressourcer
Vi anbefaler, at du bruger jQuery sammen med HTML-webressourcer for at levere brugergrænseflader, fordi det er et fremragende bibliotek på tværs af browsere.Med HTML-webressourcer styrer du de biblioteker, de findes, og der er ingen begrænsning af manipulation med dokumentobjektmodellen. Du kan frit bruge jQuery i dine HTML-webressourcer.
Undgå at bruge jQuery med formularscripts eller kommandoer på båndet
Vi fraråder brug af jQuery i formularscripts og kommandoer på båndet.Det meste af den ydelse, der leveres af jQuery, gør det muligt for nem manipulation af dokumentobjektmodellen på tværs af browsere. Dette understøttes ikke direkte i formularscripts og kommandoer på båndet. Begræns dine scripts til at bruge de Xrm.Page- og Xrm.Utility-biblioteker, der er tilgængelige i formularscripts og kommandoer på båndet. Hvis du beslutter at bruge de resterende funktioner i jQuery, der kan bruges sammen med Microsoft Dynamics 365 og omfatter muligheden for at bruge $.ajax, skal du overveje følgende:
Få den bedste ydeevne ved ikke at indlæse jQuery på siden, hvis du ikke skal bruge det
Brug af $.ajax til at udføre anmodninger i OData og moderne Apps SOAP-slutpunkt er understøttet, men der er alternativer. I stedet for at bruge $.ajax kan du bruge browsernes XMLHttpRequest-objekt direkte. JQuery-metoden $.ajax er bare en ombryder for dette objekt. Hvis du bruger det indbyggede XMLHttpRequest-objekt direkte, behøver du ikke at indlæse jQuery.
Sammenlign de SDK.REST.js- og SDK.JQuery.js-eksempelbiblioteker, der findes i Eksempel: Oprette, hente, opdatere og slette vha. OData-slutpunktet med JavaScript og Eksempel: Oprette, hente, opdatere og slette ved hjælp af OData-slutpunktet med JavaScript og jQuery. Begge udfører samme handlinger, men SDK.REST.js kræver ikke jQuery.
Hver version af jQuery, der er indlæst i en side, kan være en anden version. Forskellige versioner af jQuery har forskellige funktionsmåder, og det kan medføre problemer, når flere versioner af jQuery er indlæst på samme side. Der er en teknik til at afhjælpe dette, men den afhænger af jQuery-biblioteket og andre biblioteker, der afhænger af jQuery.Flere oplysninger:jQuery og jQuery UI med Dynamics CRM 2011 & 2013, jQuery.noConflict()
Bemærk
Fra og med Opdatering 1 til Microsoft Dynamics CRM Online 2015 køres formularscripts i et andet omfang end den jQuery-forekomst, der bruges af programmet. Det betyder, at der muligvis ikke er en forekomst af jQuery tilgængelig, når koden forsøger at bruge jQuery.noConflict. Hvis du skal bruge jQuery, skal du først finde frem til, om der findes en forekomst af jQuery, før du forsøger at bruge jQuery.noConflict.
Skrive JavaScript til flere browsere
Da du ikke ved, hvilken browser der vil være i brug, skal du sørge for, at alle de scripts, som du bruger, fungerer sammen med alle understøttede browsere. De fleste af de væsentlige forskelle mellem Internet Explorer og andre browsere har at gøre med HTML- og XML DOM-manipulation. Da HTML DOM-manipulation ikke understøttes, hvis scriptlogikken kun udfører understøttede handlinger og ved hjælp af Xrm.Page-API, kan de ændringer, der er nødvendige for at understøtte andre browsere, være små. Brug valideringsværktøjet til brugerdefineret kode til at identificere kode, der kun fungerer for Internet Explorer.
Et bibliotek på tværs af browsere som jQuery er en god løsning til udvikling af webressourcer, men bør ikke være nødvendigt for formularscripts eller kommandoer på båndet.Flere oplysninger:Brug af jQuery
Understøttelse af andre browsere
Da Microsoft Dynamics CRM 2015 og opdatering til Microsoft Dynamics CRM Online 2015 understøtter W3C-standarder, vil programmet være tilgængeligt via enhver moderne browser og fra en hvilken som helst platform, der understøtter disse standarder. Men Microsoft Dynamics 365 vil kun blive testet med et bestemt sæt af browsere og platforme. Du kan se en liste over de understøttede platforme og browsere i TechNet: Understøttede webbrowsere.
Hvis du bruger en browser eller browserversion, der ikke understøttes, og du kun skriver servernavnet eller servernavnet med organisation som URL, vil du blive omdirigeret til siden Microsoft Dynamics CRM til telefoner. Siderne CRM til telefoner kan forventes at fungere korrekt på de fleste browsere såsom browsere, der bruges i mobilenheder, med begrænset funktionalitet.
Kontrol af browserunderstøttelse for din organisation eller løsning
Selvom oprettelse af offentlige websteder kræver, at du understøtter de fleste moderne browsere, understøtter få offentlige websteder alle browsere, der nogensinde har eksisteret. Du skal angive de browsere, du vil understøtte. For at spare udviklings- og testomkostninger kræver mange forretningsprogrammer, at brugere benytter bestemte browsere.
Hvis du er ISV, der forbereder løsninger til enhver organisation ved hjælp af Microsoft Dynamics 365, skal du forvente, at enhver organisation kan bruge en af de browsere, som Microsoft Dynamics CRM 2015 og opdatering til Microsoft Dynamics CRM Online 2015 understøtter. Hvis du forbereder tilpasninger kun for en organisation, der kræver, at personer bruger en bestemt browser, er der ingen grund til at udvikle og teste dine tilpasninger til browsere, der ikke understøttes af organisationen.
Netværksadministratorer kan bruge TechNet: Politikker for softwarebegrænsning og/eller TechNet: AppLocker til at gennemtvinge, hvilke programmer der må køres eller installeres på et domæne.
Analysere XML
Der er mange situationer, hvor du skal analysere XML med JavaScript. Vær opmærksom på, at der er betydelige forskelle i den måde, du kan fortolke XML med Internet Explorer og andre browsere.Internet Explorer bruger Microsoft XML Core Services (MSXML) APIs til at kommunikere med XML-dokumentobjekter. Disse APIs omfatter en række udvidelser til W3C DOM , der ikke er tilgængelige for andre browsere. Som eksempel kan nævnes:
To almindelige metoder til at udtrække data fra et XML-dokument ved hjælp af Internet Explorer er selectNodes og selectSingleNode. Begge disse metoder skal bruge et XPath-udtryk som parameter og returnerer enten en node eller en nodeliste. Andre browsere bruger metoden evaluate, når du vil bruge et XPath-udtryk. Alternativt kan du omstrukturere din kode for at navigere i dokumenthierarkiet og bruge getElementsByTagNameNS-metoden.
Internet Explorer bruger egenskaben text til at få adgang til teksten i et element. Andre browsere bruger egenskaben textContent.
Der er en række forskellige måder, kan du håndtere disse forskelle på. Den metode, du skal bruge, afhænger af dine præferencer og krav i din kode.
SDK.MetaData.js-biblioteket, der findes i Eksempel: Hent objektmetadata ved hjælp af JavaScript, bruger hjælpefunktioner. Dette bibliotek bruger SOAP som slutpunkt for webressourcer til at hente objektet og attributmetadata. Dette bibliotek, afhænger af fortolkning af data fra XML-dokumentet, der returneres som XMLHttpRequest.responseXML. Følgende hjælpefunktioner blev tilføjet i dette bibliotek og bruges i de andre funktioner i biblioteket.
Med disse hjælpefunktioner er den eksisterende kode, der kun er skrevet til Internet Explorer, opdateret som vist:
Oprindelig kode kun til Internet Explorer |
Ny funktion til at understøtte flere browsere |
---|---|
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); |
Adgang til data ved hjælp af JavaScript
Der er to webtjenester, som du kan bruge i programmet for at få adgang til data ved hjælp af JavaScript.
OData-slutpunkt (REST)
Tidligere kendt som 'REST-slutpunktet til webressourcer'. Du kan bruge OData-slutpunktet til at udføre HTTP-anmodninger ved hjælp af en webtjeneste, der er baseret på et URI (Uniform Resource Identifier). "RESTful"-webtjenester er populære, fordi de kan gøre programmering nemmere.
Den aktuelle implementering af OData-slutpunktet er begrænset til at oprette, hente, opdatere og slette handlinger.Eksempel: Oprette, hente, opdatere og slette vha. OData-slutpunktet med JavaScript omfatter et SDK.REST.js-bibliotek, der giver et eksempel på et bibliotek, der kan genbruges, og som yderligere kan forenkles via brugen af OData-slutpunktet.
En af fordelene ved OData-slutpunktet er, at det implementerer OData-protokollen, som er en måde at forespørge og opdatere data på. Når du bruger JavaScript, henter du normalt objekter i formatet JavaScript Object Notation (JSON). Dette gør resultaterne nemmere at arbejde med. Den primære begrænsning ved OData-slutpunktet er, at du ikke kan bruge metoden IOrganizationService.Execute til afvikling af meddelelser (Request- og Response-klasser). Du kan bruge SOAP-slutpunktet for webressourcer til at afvikle meddelelser.
Du kan finde flere oplysninger under Brug OData-slutpunktet med webressourcer.
SOAP-slutpunkt
Med SOAP-slutpunktet kan du afvikle meddelelser, da REST-slutpunktet endnu ikke tillader dette. Du kan også kalde metoderne Create, Retrieve, Update, Delete og RetrieveMultiple til denne webtjeneste, men det er ikke så nemt som at bruge REST-slutpunktet.
Microsoft Dynamics 365 indeholder ikke et JavaScript-bibliotek, der kan lette brugen af SOAP-slutpunktet. Når du bruger SOAP-slutpunktet, skal du slå http-anmodninger op, som indeholder XML-definitionen af anmodningen, og derefter analysere den XML, der er returneret i svaret.
Eksempelbiblioteket Sdk.Soap.js og andre relaterede eksempler giver et eksempel på et bibliotek, som du kan bruge med SOAP-slutpunktet.
SDK indeholder en Microsoft Visual C# løsning, der kaldes SoapLogger , som du kan bruge til at hente den XML, der sendes og modtages, når du udfører handlinger med Microsoft Dynamics 365-webtjenester ved hjælp af Visual C#. Med disse oplysninger kan du oprette dine egne JavaScript-biblioteker.
Du kan finde flere oplysninger under Bruge det moderne apps SOAP-slutpunkt til moderne programmer med webressourcer.
JavaScript-programmingens bedste fremgangsmåder
I følgende afsnit beskrives de bedste fremgangsmåder, når du bruger JavaScript med Microsoft Dynamics 365.
Undgå at bruge ikke-understøttede metoder
Du kan finde mange eksempler eller forslag, der beskriver metoder, der ikke understøttes, på internettet. Disse kan omfatte udnyttelse af udokumenteret intern funktion for sidekontrolelementer. Disse metoder fungerer måske, men fordi de ikke understøttes, kan du ikke forvente, at de vil vil fortsætte med at virke i fremtidige versioner af Microsoft Dynamics 365.
Brug valideringsværktøjet til brugerdefineret kode til at identificere kode, der bruger ikke-understøttede metoder.
Brug et JavaScript-bibliotek på tværs af browsere til brugergrænseflader med HTML-webressourcer
Et JavaScript-bibliotek på tværs af browsere, såsom jQuery, giver mange fordele ved udvikling af HTML-webressourcer, der skal understøtte flere browsere.JavaScript-biblioteker såsom jQuery leverer en samlet udviklingsoplevelse for alle browsere, der understøttes af Microsoft Dynamics 365. Disse funktioner er egnede, når du bruger HTML-webressourcer for at levere brugergrænseflader.JavaScript-biblioteker såsom jQuery leverer ensartede måder at kommunikere med Document Object Model (DOM).
Brug ikke jQuery til formularscript eller kommandoer
Vi fraråder og understøtter ikke brug af jQuery til nogen sider i programmet. Dette omfatter formularscripts og båndkommandoer.Flere oplysninger:Brug af jQuery.
Kend begrænsninger for levering af CDN-biblioteker (Content Delivery Network)
CDN-JavaScript-biblioteker (Content Delivery Network) giver mange fordele til offentlige websteder. Da disse biblioteker har internettet som vært, skal du ikke oprette webressourcer, der indeholder indholdet af bibliotekerne. For Microsoft Dynamics 365 bør du overveje følgende problemer, før du bruger et CDN-JavaScript-bibliotek.
Brugere af Microsoft Dynamics CRM til Microsoft Office Outlook med offlineadgang-klienten har mulighed for at arbejde uden nogen internetforbindelse, mens de arbejder offline. Hvis du er afhængig af en internetforbindelse til dine JavaScript-biblioteker, vil din programkode mislykkes.
Nogle organisationer vil begrænse internetadgang for medarbejdere. Medmindre de konfigurerer netværket for at få adgang til CDN-bibliotekers websteder, kan din kode mislykkes for disse organisationer.
I stedet for at bruge CDN-biblioteker kan du oprette et script (JavaScript) som webressource med indholdet af biblioteket. Da webressourcer er organisationsejede objekter, synkroniseres de, når en Microsoft Dynamics CRM til Outlook med offlineadgang-bruger går offline. Da disse webressourcer nu bliver en del af programmet, vil de ikke blive blokeret, hvis en organisation begrænser adgangen til internettet.
Brug funktionsregistrering, når du skriver funktioner til flere browsere
Selvom du bruger et bibliotek på tværs af browsere såsom jQuery, skal du være meget opmærksom på forskelle mellem browsere. Du kan normalt registrere, hvilken browser der bruges, ved at forespørge på navigator.useragent-egenskaben. Dette kaldes registrering af browseren. Registrering af browser er ikke en god strategi i de fleste tilfælde, fordi den ikke kan tage hensyn til, hvilke funktioner nyere versioner af en browser har. Nogle browsere tilbyder desuden mulighed for at redigere navigation.useragent-egenskaben, så de ser ud til at være en anden browser.
Funktionsregistrering af er den anbefalede fremgangsmåde. Ved at registrere, hvilke funktioner der er tilgængelige, kan du oprette kodestier til de browsere, du understøtter, uden at vide nøjagtigt, hvilken browser der bruges. Find flere oplysninger om funktionsregistrering under Sådan registreres funktioner i stedet for browsere.
Du skal ikke skaffe adgang til DOM
JavaScript-udviklere er vant til at arbejde med DOM-elementer (Document Object Model) i kode. Du kan bruge window.getElementById-metoden eller jQuery-biblioteket. Du kan frit bruge disse teknikker i dine HTML-webressourcer, men de understøtter ikke adgang til elementer i Microsoft Dynamics 365-programsider eller -objektformularer. I stedet gives adgang til objektformularelementer via Xrm.Page-objektmodellen.Microsoft Dynamics 365-udviklingsteamet forbeholder sig ret til at ændre, hvordan siderne er sammensat, herunder ID-værdier for elementer, så brug af Xrm.Page-objektmodellen beskytter din kode mod ændringer af, hvordan siderne er implementeres. Du kan finde flere oplysninger under Bruge Xrm.Page-objektmodel.
Definer entydige navne for JavaScript-funktioner
Når du er den eneste udvikler af en HTML-side, kan du nemt administrere navnene på de JavaScript-funktioner, du bruger. I Microsoft Dynamics 365 kan andre løsninger føje JavaScript-funktioner til siden, hvor din funktion bruges.
Hvis to JavaScript-funktioner på en side har samme navn, overskrives den første funktion, der er defineret, af den anden. Derfor skal du kontrollere, at du definerer entydige navne på dine JavaScript-funktioner. Du kan finde flere oplysninger under Oprettelse af scriptbiblioteker.
Brug asynkrone dataadgangsmetoder
Når du får adgang til data ved hjælp af Microsoft Dynamics 365-webtjenester, der bruger REST- eller SOAP-slutpunkt til webressourcer, skal du altid bruge en XMLHttpRequest , der er konfigureret til at køre asynkront. Årsagen er, at browseren fungerer på en enkelt tråd. Hvis denne tråd bruges til at udføre en langvarig proces synkront, holder browseren op med at svare.
Fejlfinding af JavaScript i Microsoft Dynamics CRM
Alle browsere har en slags fejlfindingsudvidelse.Internet Explorer indeholder udviklingsværktøjer, du kan bruge til at foretage fejlfinding af scripts i Microsoft Dynamics 365.Internet Explorer-udviklingsværktøjerne kan åbnes ved at trykke på F12, når du får vist en side ved hjælp af Internet Explorer. Du kan finde flere oplysninger i Brug af F12-udviklingsværktøjer.
For Google Chrome skal du trykke på F12 for at åbne udviklingsværktøjer.Firebug er en populær browserudvidelse til webudvikling ved hjælp Mozilla Firefox. For Apple Safari skal du først vælge Show Develop menu in menu bar i Advanced Preferences. Derefter kan du vælge Show Web Inspector i menuen Develop.
Du kan også bruge Microsoft Visual Studio. Du kan finde flere oplysninger undre Sådan foretager du fejlfinding af JScript i Microsoft Dynamics CRM 2011.
Når du bruger JavaScript-biblioteker i Microsoft Dynamics 365 føjes dine biblioteker til en side, der indeholder mange biblioteker. Det kan undertiden være vanskeligt at isolere dit specifikke bibliotek i fejlfindingsmiljøet. Når du bruger fejlfindingsværktøjer i Internet Explorer, skal du under fanen Script udvide de tilgængelig scripts og finde det, hvis navn svarer til navnet på din JavaScript-webressource, f.eks. new_debugging_example_script.js-webressourcen, der vises nedenfor.
Fejlfindingsværktøjer til forskellige browsere har lignende funktioner. Når du har fundet dit bibliotek, kan du angive et pausepunkt og genskabe den hændelse, der bør medføre, at din kode kører.
Skriv meddelelser til konsollen
Brug af metoden window.alert, når du foretager fejlfinding af JavaScript, er stadig en almindelig måde at foretage fejlfinding af kode på i programmet. Men nu, hvor alle moderne browsere giver nem adgang til fejlfindingsværktøjer, er det ikke den bedste fremgangsmåde, især når andre måske bruger det program, du foretager fejlfinding af.
Overvej at skrive meddelelser til konsollen i stedet. Følgende er en lille funktion, som du kan føje til dine biblioteker, som du kan bruge til at sende meddelelser, du vil have vist i konsollen, når den er åben.
function writeToConsole(message)
{
if (typeof console != 'undefined') {
console.log(message);
}
}
I modsætning til window.alert-metoden, hvis du har glemt at slette kode, der bruger denne funktion, kan personer, der bruger programmet, ikke se dine meddelelser.
Se også
Skrive klientprogramudvidelser
Bruge webtjenestedata i webressourcer (OData og moderne App SOAP-slutpunkt)
Skriv program- og serverudvidelser
Skrive kode til Microsoft Dynamics CRM 2015-formularer
Tilpasse kommandoer og båndet
Webressourcer til Microsoft Dynamics CRM 2015
Brug OData-slutpunktet med webressourcer
Bruge det moderne apps SOAP-slutpunkt til moderne programmer med webressourcer
Bruge Xrm.Page-objektmodel
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret