Condividi tramite


Utilizzare JavaScript con Microsoft Dynamics 365

 

Data di pubblicazione: gennaio 2017

Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

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

In questo argomento

Aree in cui puoi utilizzare JavaScript in Microsoft Dynamics 365

Utilizzare jQuery

Scrivere JavaScript per più browser

Procedure consigliate di programmazione JavaScript

Eseguire il debug di JavaScript in Microsoft Dynamics 365

Aree in cui puoi utilizzare JavaScript in Microsoft Dynamics 365

È 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 365.

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 JavaScript. È 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 365 e Lavorare con i dati Dynamics 365 utilizzando le risorse Web.

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

    • Puoi usare $.ajax per eseguire le richieste ai servizi Web Microsoft Dynamics 365, 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.

    • 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

      In seguito all'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é Microsoft Dynamics 365 (online e locale)supporta 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 365 per telefoni. Le pagine di Dynamics 365 per smartphone dovrebbero funzionare correttamente nella maggior parte dei browser, come i browser utilizzati nei dispositivi mobili, con funzionalità limitate.

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 365 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 365 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 accedi ai dati usando i servizi Web Microsoft Dynamics 365, usa sempre un XMLHttpRequest configurata per l'esecuzione 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.

Nota

Le XMLHttpRequests sincrone sono deprecate nel thread principale del browser a causa degli effetti nocivi sull'esperienza dell'utente finale. Alcuni browser forniscono un avviso quando questo viene rilevato. Se i browser implementano la specifica in un determinato momento nel futuro verrà generata un'eccezione InvalidAccessError.Ulteriori informazioni:http://www.w3.org/TR/XMLHttpRequest/#synchronous-flag e https://xhr.spec.whatwg.org/#the-open()-method

Eseguire il debug di JavaScript in Microsoft Dynamics 365

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, devi innanzitutto selezionare il Visualizza menu Sviluppa nella barra dei menu in Preferenze avanzate. Quindi puoi selezionare 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 utilizzi librerie JavaScript in Microsoft Dynamics 365, le tue librerie vengono caricate con la pagina Web. Può talvolta essere difficile isolare la propria specifica libreria all'ambiente di debug. Quando si utilizzano gli strumenti di debug in Microsoft Edge, nella scheda Debugger, fai clic sulla cartella nell'angolo in alto a sinistra, espandi lo script disponibile e cerca lo script che ha il nome corrispondente al nome della risorsa Web di JavaScript, come la risorsa Web new_myCustomJavaScript.js indicata di seguito. Puoi inoltre trovare la libreria JavaScript digitando il nome di file nella casella di ricerca.

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.

Nel nuovo client hub di servizio interattivo (introdotto in Dynamics 365), Dynamics 365 dinamicamente inserisce il contenuto della tua libreria JavaScript anziché caricarla con la pagina. In questo modo non puoi impostare punti di interruzione nel codice personalizzato perché ogni volta che viene caricata una pagina, il codice viene inserito in una delle librerie dinamiche che impediscono di selezionare l'interruzione specificata. In questo caso, è necessario ricorrere ad altre tecniche per eseguire il debug del codice.Ulteriori informazioni:Blog: Debug del codice JavaScript personalizzato in CRM utilizzando gli strumenti dello sviluppatore del browser

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

Estendere Microsoft Dynamics 365 nel client
Lavorare con i dati Dynamics 365 utilizzando le risorse Web
Estendere Microsoft Dynamics 365 nel server
Creare il codice per moduli di Microsoft Dynamics 365
Personalizzare i comandi e la barra multifunzione
Risorse Web per Microsoft Dynamics 365
Operazioni preliminari dell'API Web di Microsoft Dynamics 365 (JavaScript lato client)
Utilizzare il modello a oggetti Xrm.Page
Blog: Debug del codice JavaScript personalizzato in CRM utilizzando gli strumenti dello sviluppatore del browser

Microsoft Dynamics 365

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright