Condividi tramite


Usare JavaScript con Microsoft Dynamics CRM 2015

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics CRM 2015

Aggiornamento di Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015 offrono molte opportunità di utilizzo di JavaScript. Il codice JavaScript utilizzato in Microsoft Dynamics 365 viene aggiunto creando risorse Web JScript. Questo argomento include informazioni per gli sviluppatori che utilizzano JavaScript nonché collegamenti ad argomenti pertinenti in Microsoft Dynamics CRM SDK e di altra origine.

In questo argomento

Aree in cui puoi utilizzare JavaScript in Microsoft Dynamics CRM

Utilizzare jQuery

Scrivere JavaScript per più browser

Accesso ai dati tramite JavaScript

Procedure consigliate di programmazione JavaScript

Eseguire il debug di JavaScript in Microsoft Dynamics CRM

Aree in cui puoi utilizzare JavaScript in Microsoft Dynamics CRM

È possibile utilizzare JavaScript per eseguire le azioni negli script dei moduli, nei comandi della barra dei comandi (barra multifunzione) e in risorse Web.

Script dei moduli

Nella maggior parte dei casi, JavaScript viene utilizzato in Microsoft Dynamics 365 per aggiungere funzioni come gestori eventi per eventi del modulo dell' entità. Per ulteriori informazioni, vedere Creare il codice per moduli di Microsoft Dynamics CRM 2015.

Comandi della barra dei comandi (barra multifunzione)

Quando si personalizza la barra dei comandi di Microsoft Dynamics 365, è possibile configurare comandi per i controlli che si aggiungono. Questi comandi contengono le regole tramite cui si controlla se il controllo è abilitato e quali azioni vengono eseguite quando il controllo viene utilizzato. Per ulteriori informazioni, vedere Personalizzare i comandi e la barra multifunzione.

Risorse Web

Microsoft Dynamics 365 fornisce un'entità di proprietà dell'organizzazione che archivia una rappresentazione binaria di un file al quale è possibile accedere utilizzando URL. Questo file è denominato una risorsa Web. Esistono diversi tipi di risorse Web. Una risorsa Web che rappresenta una libreria JavaScript è denominata una risorsa Web JScript. È possibile utilizzare una risorsa Web pagina Web (HTML) per fornire un'interfaccia utente con le librerie JavaScript incluse come si farebbe per i file in un server Web. Poiché tali file fanno parte di Microsoft Dynamics 365, gli utenti che vi accedono sono già autenticati. Pertanto, è possibile utilizzare i servizi Web di Microsoft Dynamics 365 senza dover scrivere del codice per l'autenticazione utente. Per ulteriori informazioni, vedere Risorse Web per Microsoft Dynamics CRM 2015.

Utilizzare jQuery

  • Utilizzare JQuery con le risorse Web HTML
    È consigliabile utilizzare jQuery insieme alle risorse Web HTML per offrire interfacce utente perché rappresenta un'eccellente libreria compatibile con più browser.

    Con le risorse Web HTML, è possibile controllare le librerie presenti e non esiste alcuna restrizione per le modifiche del DOM. È possibile utilizzare jQuery nell'ambito delle risorse Web HTML.

  • Evitare di utilizzare jQuery con gli script dei moduli o i comandi della barra multifunzione
    Si sconsiglia di utilizzare jQuery nei comandi della barra multifunzione e negli script dei moduli.

    La maggior parte dei vantaggi offerti da jQuery riguardano la possibilità di effettuare semplicemente modifiche del DOM compatibili con più browser. Questo non è supportato in modo esplicito negli script dei moduli e nei controlli della barra multifunzione. Limitare gli script all'utilizzo delle librerie Xrm.Utility e Xrm.Page disponibili negli script dei moduli e nei controlli della barra multifunzione. Se si decide di utilizzare le funzionalità rimanenti di jQuery che sono utili con Microsoft Dynamics 365 e includere la possibilità di utilizzare $.ajax, tenere presente quanto segue:

    • Per ottimizzare le prestazioni, si consiglia di non caricare jQuery nella pagina se non è necessario

    • Utilizzando $.ajax per eseguire richieste su Odata, l'endpoint SOAP di applicazioni moderne è supportato, ma esistono alternative. L'alternativa all'utilizzo di $.ajax consiste nell'utilizzare l'oggetto XMLHttpRequest dei browser direttamente. Il metodo $.ajax di jQuery è solo un wrapper per tale oggetto. Se si utilizza direttamente l'oggetto nativo XMLHttpRequest, non è necessario caricare jQuery.

      Confrontare le librerie di esempio SDK.REST.js e SDK.JQuery.js che si trovano in Esempio: creare, recuperare, aggiornare e eliminare utilizzando l'endpoint OData con JavaScript e Esempio: creare, recuperare, aggiornare e eliminare utilizzando l'endpoint OData con JavaScript e jQuery. Entrambe eseguono le stesse operazioni, ma SDK.REST.js non necessita di jQuery.

    • Ogni versione di jQuery che viene caricata in una pagina può essere una versione diversa. Versioni diverse di jQuery hanno comportamenti diversi, che possono causare problemi quando più versioni di jQuery vengono caricate nella stessa pagina. Esiste una tecnica per limitare i problemi, ma si basa sulla modifica della libreria jQuery e di ogni altra libreria dipendente da jQuery.Ulteriori informazioni:jQuery e l'interfaccia utente di jQuery con Microsoft Dynamics CRM 2011 e 2013, jQuery.noConflict()

      Nota

      Con Aggiornamento 1 di Microsoft Dynamics CRM Online 2015, gli script dei moduli vengono eseguiti in un ambito diverso dall'istanza di jQuery utilizzata dall'applicazione. Ciò significa che potrebbe non essere disponibile un'istanza di jQuery quando il codice tenta di utilizzare jQuery.noConflict. Se devi utilizzare jQuery, è necessario che rilevi se un'istanza di jQuery è presente prima di tentare di utilizzare jQuery.noConflict.

Scrivere JavaScript per più browser

Poiché non si sa quale browser verrà utilizzato, è necessario assicurarsi che tutti gli script utilizzati funzionino con tutti i browser supportati. La maggior parte delle differenze più importanti tra Internet Explorer e altri browser riguarda le modifiche HTML e XML DOM. Poiché la modifica di DOM HTML non è supportata, se una logica script esegue solo le azioni supportate e utilizza API Xrm.Page le modifiche necessarie per supportare altri browser potrebbero essere poche. Utilizzare lo Strumento di convalida del codice personalizzato per identificare il codice che funziona solo per Internet Explorer.

Una libreria compatibile con più browser come jQuery è una buona soluzione per sviluppare risorse Web ma non dovrebbe essere necessaria per gli script dei moduli o i controlli della barra multifunzione.Ulteriori informazioni:Utilizzare jQuery

Supporto per altri browser

Poiché Aggiornamento di Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015supporta gli standard W3C, l'applicazione sarà accessibile utilizzando qualunque browser moderno e da qualunque piattaforma che supporta gli stessi standard. Tuttavia Microsoft Dynamics 365 verrà testato solo utilizzando un set specifico di browser e piattaforme. Per ottenere l'elenco dei browser e delle piattaforme supportate, vedi TechNet: Web browser supportati.

Se si utilizza un browser non supportato o versione di browser non supportata, quando si digita solo il nome del server o il nome del server con l'organizzazione come l'URL, l'utente sarà reindirizzato alla pagina di Microsoft Dynamics CRM per telefoni. Le pagine di CRM per telefoni dovrebbero funzionare correttamente nella maggior parte dei browser, come i browser utilizzati nei dispositivi mobili, con funzionalità limitate.

Controllare i browser supportati per l'organizzazione o soluzione

Sebbene la creazione di siti Web pubblici richieda il supporto della maggior parte dei browser moderni, sono pochi i siti Web pubblici che supportano tutti i browser esistenti. È necessario stabilire quali browser supportare. Per ridurre i costi legati a sviluppo e testing, molte applicazioni aziendali richiedono che gli utenti utilizzino browser specifici.

Un ISV che prepara soluzioni per un'organizzazione utilizzando Microsoft Dynamics 365, si aspetta che ogni organizzazione possa utilizzare uno dei browser supportati da Aggiornamento di Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015. Tuttavia, se si preparano personalizzazioni solo per un'organizzazione che richiede che gli utenti utilizzino un browser specifico, non è necessario sviluppare e testare le personalizzazioni con browser che l'organizzazione non supporta.

Gli amministratori di rete possono utilizzare TechNet: Criteri di restrizioni software e/o TechNet: AppLocker per imporre a quali applicazioni è consentito essere eseguite o installate in un dominio.

Analisi XML

Ci sono molte opportunità in cui è necessario analizzare XML utilizzando JavaScript. Tenere presente che esistono alcune differenze significative nei modi in cui è possibile analizzare XML utilizzando Internet Explorer e altri browser.Internet Explorer utilizza Microsoft XML Core Services (MSXML) APIs per interagire con gli oggetti di documenti di XML. Queste APIs includono varie estensioni di W3C DOM che non sono disponibili per altri browser. Di seguito, due esempi:

  • Due metodi comuni utilizzati per estrarre i dati da un documento XML utilizzando Internet Explorer sono selectNodes e selectSingleNode. Entrambi questi metodi utilizzano un'espressione XPath come parametro e restituiscono un nodo o un elenco del nodo. Per gli altri browser, utilizzare il metodo valuta quando si desidera utilizzare un'espressione XPath . In alternativa, è possibile eseguire il refactoring del proprio codice per passare alla gerarchia dei documenti e utilizzare il metodo getElementsByTagNameNS.

  • Internet Explorer utilizza la proprietà testo per accedere al testo di un elemento. Altri browser utilizzano la proprietà textContent.

Esistono vari modi diversi che permettono di risolvere queste differenze. Il metodo da utilizzare dipende dalle preferenze e dai requisiti del codice.

La libreria SDK.MetaData.js che si trova in Esempio: recuperare i metadati dell'entità utilizzando JavaScript utilizza le funzioni helper. Questa libreria utilizza l'endpoint SOAP per consentire alle risorse Web di recuperare entità e metadati di attributo. La libreria dipende dall'analisi dei dati dal documento XML restituito come XMLHttpRequestresponseXML. In questa libreria le seguenti funzionalità helper sono state aggiunte e utilizzate all'interno delle altre funzioni nella libreria.

Con queste funzionalità helper il codice esistente scritto solo per Internet Explorer è stato aggiornato come illustrato di seguito:

Codice originale pensato solo per Internet Explorer

Nuova funzione per supportare più browser

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

Accesso ai dati tramite JavaScript

Esistono due servizi Web che è possibile utilizzare all'interno dell'applicazione per accedere ai dati tramite JavaScript.

Endpoint OData (REST)

Già noto come "l'endpoint di REST per risorse Web". È possibile utilizzare l'endpoint OData per eseguire richieste HTTP tramite un servizio Web che è basato su un URI (Uniform Resource Identifier). I servizi Web "RESTful" sono apprezzati perché rendono la programmazione più semplice.

L'implementazione corrente dell'endpoint OData si limita a operazioni di creazione, recupero, aggiornamento e eliminazione.Esempio: creare, recuperare, aggiornare e eliminare utilizzando l'endpoint OData con JavaScript include una libreria SDK.REST.js in cui viene fornito un esempio di una libreria riutilizzabile che può semplificare ulteriormente l'utilizzo dell'endpoint OData.

Uno dei vantaggi dell'endpoint OData è che implementa il Protocollo OData, che offre un modo per eseguire query e aggiornare i dati. Quando si utilizza JavaScript, in genere si recuperano oggetti nel formato JavaScript Object Notation (JSON). Questo rende i risultati più semplici da utilizzare. Il primo limite dell'endpoint OData è che non è possibile utilizzare il metodo IOrganizationService.Execute per eseguire i messaggi (classiRequest e Response ). Si utilizza l'endpoint SOAP perché le risorse Web eseguano i messaggi.

Per ulteriori informazioni, vedere Utilizzare l'endpoint OData con risorse Web.

Endpoint SOAP

L'endpoint SOAP consente di eseguire i messaggi perché l'endpoint REST non lo consente ancora. È inoltre possibile chiamare i metodi Crea, Recupera, Aggiorna, Elimina e RetrieveMultiple del servizio Web, ma l'utilizzo non è facile come l'utilizzo dell'endpoint REST.

Microsoft Dynamics 365 non include una libreria JavaScript per semplificare l'utilizzo dell'endpoint SOAP. Quando si utilizza l'endpoint SOAP, è necessario inserire le richieste http che contengono XML a definizione delle richieste e analizzare l'XML restituito nella risposta.

La libreria di esempio Sdk.Soap.js e altri esempi correlati offrono un esempio di una libreria che è possibile utilizzare con l'endpoint SOAP.

SDK offre una soluzione Microsoft Visual C# denominata SoapLogger che consente di acquisire l'XML inviato e ricevuto quando si eseguono operazioni con i servizi Web di Microsoft Dynamics 365 utilizzando Visual C#. Con queste informazioni, è possibile creare le proprie librerie di JavaScript.

Per ulteriori informazioni, vedere Utilizzare l'endpoint SOAP applicazioni moderne per applicazioni moderne con risorse Web.

Procedure consigliate di programmazione JavaScript

Nelle sezioni seguenti vengono descritte le procedure consigliate quando si utilizza JavaScript con Microsoft Dynamics 365.

Si consiglia di non utilizzare i metodi non supportati

In internet, è possibile trovare numerosi esempi o suggerimenti che descrivono l'utilizzo di metodi non supportati. Questi possono includere l'utilizzo della funzione interna non documentata per i controlli della pagina. Questi metodi potrebbero funzionare ma, dato che non sono supportati, non è detto che continuino a funzionare nelle versioni future di Microsoft Dynamics 365.

Utilizzare Strumento di convalida del codice personalizzato per identificare il codice che utilizza metodi non supportati.

Utilizzare una libreria JavaScript compatibile con più browser per le interfacce utente delle risorse Web HTML

Una libreria JavaScript compatibile con più browser, come jQuery, offre molti benefici quando si sviluppano risorse Web HTML che devono supportare più browser. Le librerie JavaScript come jQuery offrono un'esperienza unificata di sviluppo per tutti i browser supportati da Microsoft Dynamics 365. Queste funzionalità sono appropriate quando si utilizzano le risorse Web HTML per fornire interfacce utente. Le librerie JavaScript come jQuery forniscono modalità coerenti per interagire con Document Object Model (DOM).

Non utilizzare jQuery per lo script dei moduli o per i comandi

Non è raccomandato né supportato l'utilizzo di jQuery per le pagine all'interno dell'applicazione. Sono inclusi gli script dei moduli e i controlli della barra multifunzione.Ulteriori informazioni:Utilizzare jQuery.

Riconoscere le limitazioni per le librerie della rete per la distribuzione di contenuti (CDN)

Le librerie per la rete per la distribuzione di contenuti (CDN) JavaScript offrono molti vantaggi per i siti Web pubblici. Poiché tali librerie sono ospitate su Internet, non è necessario creare risorse Web che contengono il contenuto delle librerie. Per Microsoft Dynamics 365 è necessario tenere conto delle problematiche seguenti prima di utilizzare una libreria di CDN JavaScript.

  • Gli utenti del client Microsoft Dynamics CRM per Microsoft Office Outlook con accesso offline sono in grado di lavorare in assenza di connessione Internet quando sono offline. Se si dipende da una connessione Internet per le librerie di JavaScript, il codice avrà esito negativo.

  • Alcune organizzazioni limiteranno l'accesso Internet per i dipendenti. A meno che non configurino la rete per consentire l'accesso a siti della libreria di CDN, il codice potrebbe avere esito negativo per tali organizzazioni.

L'alternativa all'utilizzo delle librerie di CDN consiste nel creare una risorsa Web di script (JavaScript) con i contenuti della libreria. Poiché le risorse Web sono entità di proprietà dell'organizzazione, vengono sincronizzate quando un utente di Microsoft Dynamics CRM per Outlook con accesso offline è offline. Poiché tali risorse Web diventano parte dell'applicazione, non saranno bloccate se un'organizzazione limita l'accesso a Internet.

Utilizzare il rilevamento di funzionalità durante la scrittura delle funzioni per più browser

Anche se si utilizza una libreria compatibile tra più browser come jQuery, è necessario essere a conoscenza delle differenze tra i browser. In genere è possibile rilevare il browser utilizzato eseguendo una query sulla proprietà navigator.useragent. Questa operazione è denominata rilevamento del browser. Il rilevamento del browser non è una buona strategia per la maggior parte dei casi, perché non può considerare quali funzionalità hanno i browser più recenti. Inoltre, alcuni browser offrono la funzionalità per modificare la proprietà navigation.useragent in modo da sembrare un browser diverso.

Il rilevamento di funzionalità rappresenta il metodo consigliato. Rilevando le funzionalità disponibili, è possibile creare i percorsi di codice per browser supportati senza conoscere esattamente il browser utilizzato. Per ulteriori informazioni sul rilevamento di funzionalità, vedere Come rilevare le funzionalità invece dei browser.

Non accedere a DOM

Gli sviluppatori diJavaScript sono abituati a interagire con elementi di Document Object Model (DOM) nel codice. È possibile utilizzare il metodo window.getElementById o jQuery nella libreria. È possibile utilizzare questi metodi nelle proprie risorse Web HTML, ma le stesse non sono supportate per l'accesso agli elementi nelle pagine di applicazione di Microsoft Dynamics 365 o nei moduli di entità. Al contrario, l'accesso agli elementi del modulo entità è esposto tramite il modello a oggetti Xrm.Page. Il team di sviluppo di Microsoft Dynamics 365 si riserva il diritto di modificare le modalità con cui sono composte le pagine, inclusi i valori ID per gli elementi, per questo motivo, utilizzando il modello a oggetti Xrm.Page proteggere il codice delle modifiche nelle modalità in cui sono implementate le pagine. Per ulteriori informazioni, vedere Utilizzare il modello a oggetti Xrm.Page.

Definire nomi univoci per le proprie funzioni JavaScript

Se si è il solo sviluppatore di una pagina HTML, è possibile gestire con facilità i nomi delle funzionalità di JavaScript utilizzate. In Microsoft Dynamics 365, altre soluzioni possono aggiungere funzioni JavaScript alla pagina in cui la funzione è utilizzata.

Se due funzionalità di JavaScript in una pagina hanno lo stesso nome, la prima funzione definita viene sovrascritta dalla secondo. Per questo motivo, è consigliato assicurarsi di denominare in maniera univoca le proprie funzionalità di JavaScript. Per ulteriori informazioni, vedere Creare librerie di script.

Utilizzare i metodi di accesso ai dati asincroni

Quando si accede ai dati tramite servizi Web di Microsoft Dynamics 365 che utilizzano endpoint REST o SOAP per risorse Web, utilizzare sempre XMLHttpRequest che è configurato per essere eseguito in modalità asincrona. Il motivo è che il browser lavora su un singolo thread. Se tale thread è utilizzato per l'esecuzione di un processo di lunga durata in modo sincrono, il browser smetterà di rispondere.

Eseguire il debug di JavaScript in Microsoft Dynamics CRM

Ciascun browser offre un certo tipo di estensione per il debug.Internet Explorer include strumenti di sviluppo che è possibile utilizzare per eseguire il debug degli script in Microsoft Dynamics 365. È possibile aprire gli strumenti per gli sviluppatori di Internet Explorer premendo F12 quando si visualizza una pagina utilizzando Internet Explorer. Per ulteriori informazioni, vedere Utilizzo degli strumenti per sviluppatori F12.

Per Google Chrome, premere F12 per aprire gli strumenti di sviluppo.Firebug è un'apprezzata estensione del browser per lo sviluppo Web con Mozilla Firefox. Per Apple Safari, è necessario scegliere innanzitutto Visualizza menu Sviluppa nella barra dei menu in Preferenze avanzate. Quindi è possibile scegliere Visualizza Controllo Web dal menu Sviluppa.

È possibile utilizzare anche Microsoft Visual Studio. Per ulteriori informazioni, vedi Come eseguire il debug di JScript in Microsoft Dynamics CRM 2011.

Quando si utilizzano le librerie di JavaScript in Microsoft Dynamics 365, le proprie librerie vengono aggiunte a una pagina che include molte librerie. Può talvolta essere difficile isolare la propria specifica libreria all'ambiente di debug. Quando si utilizzano gli strumenti di debug in Internet Explorer, nella scheda Script, espandere lo script disponibile e cercare lo script che ha il nome corrispondente al nome della propria risorsa Web di JavaScript Web, come la risorsa Web new_debugging_example_script.js indicata di seguito.

Eseguire il debug di JavaScript

Gli strumenti di debug per browser diversi hanno simili funzionalità. Dopo aver trovato la propria libreria, è possibile impostare un punto di interruzione e ricreare l'evento che dovrebbe fare in modo che il proprio codice venga eseguito.

Scrivere i messaggi nella console

Utilizzando il metodo window.alert quando si esegue il debug di JavaScript è ancora un metodo comune di risolvere i problemi relativi al codice nell'applicazione. Ma ora che tutti i browser moderni offrono accesso semplificato agli strumenti di debug, non è consigliabile, soprattutto quando altri possono utilizzare l'applicazione per la quale si esegue il debug.

È invece consigliabile scrivere i propri messaggi alla console. Di seguito è riportata una piccola funzione che è possibile aggiungere alle librerie utilizzabili per inviare i messaggi che si desidera visualizzare nella console quando viene aperta.

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

A differenza dell'utilizzo del metodo di avviso, se si dimentica di rimuovere il codice che utilizza questa funzione, le persone che utilizzano l'applicazione non visualizzeranno i messaggi.

Vedere anche

Scrivere estensioni di applicazioni client
Utilizzare i dati del servizio Web nelle risorse Web (OData ed endpoint SOAP moderno dell'app)
Scrivere applicazioni ed estensioni del server
Creare il codice per moduli di Microsoft Dynamics CRM 2015
Personalizzare i comandi e la barra multifunzione
Risorse Web per Microsoft Dynamics CRM 2015
Utilizzare l'endpoint OData con risorse Web
Utilizzare l'endpoint SOAP applicazioni moderne per applicazioni moderne con risorse Web
Utilizzare il modello a oggetti Xrm.Page

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright