Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le soluzioni vengono usate per distribuire oggetti Power Platform, ad esempio app, tabelle, flussi, risorse Web e plug-in. Questo articolo presenta la funzionalità di verifica della soluzione, un potente strumento che esegue un'analisi statica completa degli oggetti della soluzione rispetto a un set di regole di procedure consigliate. Utilizzando Verifica soluzione, è possibile identificare rapidamente i modelli problematici nei componenti e ricevere report dettagliati che evidenziano i problemi, i componenti interessati e forniscono collegamenti alla documentazione su come risolvere ogni problema. Ciò garantisce che le tue soluzioni siano ottimizzate per prestazioni, stabilità e affidabilità.
Solution checker funziona con soluzioni non gestite esportabili da un ambiente.
Puoi eseguire il controllo della soluzione sia da Power Apps (make.powerapps.com) sia tramite PowerShell.
In che modo il controllo soluzioni ti aiuta
Per soddisfare requisiti aziendali complessi, i creatori possono spesso ritrovarsi con soluzioni altamente avanzate che personalizzano ed estendono Power Platform. L'utilizzo di implementazioni avanzate implica un rischio accresciuto di problemi relativi a prestazioni, stabilità e affidabilità, che possono influire negativamente sull'esperienza dell'utente. L'identificazione e la comprensione della risoluzione di questi problemi possono risultare complesse e richiedere molto tempo. Grazie alla funzionalità verifica della soluzione, puoi eseguire un controllo sulla tua soluzione in pochi secondi, utilizzando una serie di regole di procedure consigliate per identificare rapidamente schemi problematici. Dopo il completamento della verifica, riceverai un report dettagliato Power Apps e per messaggio e-mail che elenca i problemi identificati, i componenti e il codice interessati nonché collegamenti alla documentazione che descrive il modo in cui risolvere ogni problema.
La verifica soluzione analizza questi componenti di soluzione:
- Attività flusso di lavoro personalizzate di Dataverse
- Risorse Web di Dataverse (HTML e JavaScript)
- Configurazioni di Dataverse, come i passaggi dei messaggi SDK
- Flussi di Power Automate (tramite Verifica flusso)
- Espressioni Power Fx (tramite Verifica app)
Nota
- Il controllo della soluzione supporta le variabili globali per la sintassi ECMAScript 2015 (ES6) e fino a ECMAScript 2018 (ES9). Quando JavaScript viene rilevato utilizzando variabili globali successive a ES6 o una sintassi successiva a ES9, viene segnalato un problema di sintassi Web non supportata per la risorsa Web.
- L'utilizzo della verifica soluzione non garantisce che l'importazione di una soluzione avrà esito positivo. I controlli di analisi statica eseguiti sulla soluzione non conoscono lo stato configurato dell'ambiente di destinazione e il successo dell'importazione può dipendere da altre soluzioni o configurazioni nell'ambiente.
Eseguire la verifica della soluzione
Accedere a Power Apps.
Nel riquadro sinistro seleziona Soluzioni. Se l'elemento non si trova nel riquadro del pannello laterale, seleziona …Altro, quindi l'elemento desiderato.
Accanto alla soluzione non gestita che intendi analizzare, seleziona ..., punta a Verifica soluzione e quindi seleziona Esegui.
Il pulsante di comando Verifica soluzione ha un indicatore di caricamento e noterai che è nello stato In esecuzione... nella colonna Verifica soluzione dell'elenco Soluzioni.
Nota
- Il controllo della soluzione può richiedere alcuni minuti per completare l'analisi.
- Al termine della verifica, riceverai una notifica tramite posta elettronica e una notifica nell'area Notifiche del sito di Power Apps.
- Visualizza il report al termine della verifica.
Annullare un assegno
Dopo l'avvio di una verifica delle soluzioni nell'ambiente in uso, puoi annullare la verifica nel riquadro dello stato nella parte superiore destra della pagina Soluzioni.
Quando annulli un controllo, il controllo della soluzione si interrompe e lo stato del controllo della soluzione torna allo stato precedente.
Stati di Verifica soluzione
Quando installi la verifica soluzione nell'ambiente in uso, la colonna Verifica soluzione diventa disponibile nell'elenco Soluzioni. Questa colonna visualizza gli stati di analisi per una soluzione.
| Stato | Descrizione |
|---|---|
| Non è stata eseguita | La soluzione non è mai stata analizzata. |
| In esecuzione | La soluzione è in fase di analisi. |
| Non è stato possibile completare l'operazione | L'analisi della soluzione è stata richiesta ma non è stata completata correttamente. |
| Risultati aggiornati al data e ora | L'analisi della soluzione è stata completata e i risultati sono disponibili per il download. |
| Impossibile completare l'operazione. Risultati a data e ora | L'ultima richiesta di analisi non è stata completata correttamente. È possibile scaricare gli ultimi risultati andati a buon fine. |
| Verificata da Microsoft | Una soluzione gestita da Microsoft. L'analisi della soluzione non è autorizzata per queste soluzioni. |
| Verificata dall'autore | Una soluzione non gestita da Microsoft. L'analisi della soluzione non è attualmente disponibile per queste soluzioni. |
Esaminare il report di Verifica soluzione
Al termine di una verifica, puoi visualizzare il report di analisi nel portale o puoi scaricare il report dal Web browser. Nel portale, sono disponibili opzioni per ordinare i risultati per Problema, Posizione o Gravità e per visualizzare informazioni dettagliate sui problemi rilevati nella soluzione.
Nel riquadro sinistro seleziona Soluzioni. Se l'elemento non si trova nel riquadro del pannello laterale, seleziona …Altro, quindi l'elemento desiderato.
Accanto alla soluzione non gestita in cui si intende visualizzare il report della verifica soluzione, seleziona ..., punta a Verifica soluzione e quindi seleziona Visualizza risultati.
Seleziona un problema per visualizzare i dettagli sullo stesso e le linee guida su come risolverlo.
I risultati di verifica soluzione possono anche essere scaricati. Il file zip della verifica soluzione viene scaricati nella cartella specificata dal Web browser. Il report di download è in formato Excel e contiene varie visualizzazioni e colonne che ti consentono di identificare l'impatto, il tipo e il percorso di ogni problema rilevato nella soluzione. È inoltre fornito un collegamento a istruzioni dettagliate su come risolvere il problema.
- Nel riquadro sinistro seleziona Soluzioni. Se l'elemento non si trova nel riquadro del pannello laterale, seleziona …Altro, quindi l'elemento desiderato.
- Accanto alla soluzione non gestita in cui si intende scaricare il report della verifica soluzione, seleziona ..., punta a Verifica soluzione e quindi seleziona Scarica risultati.
- Il file zip della verifica soluzione viene scaricati nella cartella specificata dal Web browser.
Di seguito è riportato un riepilogo di ogni colonna del report.
| Colonna di report | Descrizione | Componente a cui si applica |
|---|---|---|
| Problema | Il titolo del problema identificato nella soluzione. | Tutti |
| Categoria | La categorizzazione del problema identificato, ad esempio Prestazioni, Manutenibilità, Utilizzo, Supporto, Progettazione, Sicurezza, Accessibilità o Preparazione aggiornamenti. | Tutti |
| Gravità | Rappresenta l'impatto potenziale del problema identificato. I tipi di impatto disponibili sono Critico, Elevato, Medio, Basso e Informativo. | Tutti |
| Linee guida | Collegamento all'articolo che descrive in modo dettagliato il problema, l'impatto e le azioni risolutive. | Tutti |
| Componente | Il componente di soluzione in cui il problema è stato identificato. | Tutti |
| Località | Il percorso e/o il file di origine del componente in cui si è verificato il problema identificato, ad esempio l'assembly o il nome di file JavaScript. | Tutti |
| Riga n. | Il riferimento al numero di riga del problema nel componente della risorsa Web interessata. | Risorse Web |
| Modulo | Il nome del modulo in cui è stato rilevato il problema identificato nell'assembly. | Attività personalizzata dei flussi di lavoro |
| Tipo | Tipo di problema identificato nell'assieme. | Attività personalizzata dei flussi di lavoro |
| Membro | Componente del problema identificato nell'assemblaggio. | Attività personalizzata dei flussi di lavoro |
| Dichiarazione | L'istruzione o la configurazione del codice che ha causato il problema. | Tutti |
| Commenti | Dettagli sul problema che includono passaggi generali per la risoluzione. | Tutti |
Eseguire le regole di verifica della soluzione in locale
È possibile eseguire le regole di verifica della soluzione nell'ambiente di sviluppo per rilevare i problemi molto prima durante la creazione delle risorse della soluzione. Questo è attualmente supportato per le risorse Web (JavaScript e TypeScript). Per maggiori dettagli, vai al pacchetto NPM @microsoft/eslint-plugin-power-apps.
Esegui il controllo della soluzione con PowerShell
Un modulo di PowerShell è disponibile e utilizzabile per interagire direttamente con il servizio. Il modulo Microsoft.PowerApps.Checker.PowerShell può essere utilizzato per l'analisi delle soluzioni non gestite per gli ambienti Power Apps o per automatizzare e integrare il servizio nelle pipeline di creazione e rilascio. Altre informazioni: Panoramica di Microsoft.PowerApps.Checker.PowerShell
Regole di procedure consigliate utilizzate dalla verifica soluzione
La tabella seguente elenca il tipo di componente, la descrizione della regola, la gravità e la categoria. Le violazioni critiche vengono bloccate o segnalate con un avviso quando è configurata l'applicazione forzata del controllo delle soluzioni negli ambienti gestiti. Ulteriori informazioni: Utilizzare la verifica della soluzione negli ambienti gestiti
| Componente di soluzione | Nome della regola | Descrizione regola | Gravità | Categoria |
|---|---|---|---|---|
| Plug-in o attività del flusso di lavoro | meta-remove-dup-reg | Evitare le registrazioni duplicate del plug-in Dataverse. | Critico | Prestazioni |
| Plug-in o attività del flusso di lavoro | meta-avoid-reg-no-attribute | Includere gli attributi di filtro con le registrazioni del plug-in Dataverse. | Medio | Prestazioni |
| Plug-in o attività del flusso di lavoro | meta-avoid-reg-retrieve | Prestare attenzione con i plug-in Dataverse registrati per i messaggi Retrieve e RetrieveMultiple. | Medio | Prestazioni |
| Plug-in o attività del flusso di lavoro | meta-remove-inactive | Rimuovere le configurazioni inattive in Dataverse. | Basso | Manutenibilità |
| Plug-in o attività del flusso di lavoro | meta-avoid-crm4-event | Non utilizzare la fase di registrazione del plug-in Microsoft Dynamics CRM 4.0. | Medio | Idoneità all'aggiornamento |
| Plug-in o attività del flusso di lavoro | meta-avoid-retrievemultiple-annotation | Evita la registrazione di un plug-in su RetrieveMultiple di annotazione. | Alto | Utilizzo |
| App basata su modello | meta-license-sales-entity-operations | La soluzione contiene entità con messaggi SDK limitati che richiedono una licenza Dynamics 365 valida. | Basso | Licenze |
| App basata su modello | meta-license-fieldservice-customcontrols | La soluzione contiene controlli personalizzati che richiedono una licenza Dynamics 365 Customer Voice valida. | Basso | Licenze |
| App basata su modello | meta-license-fieldservice-entity-operations | La soluzione contiene entità con operazioni e messaggi SDK limitati che richiedono una licenza Dynamics 365 Customer Voice valida. | Basso | Licenze |
| Risorse Web | use-async | Interagisci con le risorse HTTPS e HTTP in modo asincrono. | Critico | Prestazioni |
| Risorse Web | avoid-modals | Evita di utilizzare finestre di dialogo modali. | Alto | Supportabilità |
| Risorse Web | avoid-dom-form | Alto | Supportabilità | |
| Risorse Web | avoid-dom-form-event | Alto | Supportabilità | |
| Risorse Web | avoid-crm2011-service-odata | Non usare come destinazione l'endpoint OData 2.0 di Microsoft Dynamics CRM 2011. | Critico | Idoneità all'aggiornamento |
| Risorse Web | avoid-crm2011-service-soap | Non utilizzare i servizi SOAP di Microsoft Dynamics CRM 2011 come destinazione. | Critico | Idoneità all'aggiornamento |
| Risorse Web | avoid-loadtheme | Non utilizzare l'API loadTheme Fluent v8. |
Basso | Supportabilità |
| Risorse Web | avoid-browser-specific-api | Non utilizzare le API legacy di Internet Explorer o i plug-in del browser. | Critico | Idoneità all'aggiornamento |
| Risorse Web | avoid-unpub-api | Alto | Supportabilità | |
| Risorse Web | avoid-window-top | Alto | Supportabilità | |
| Risorse Web | avoid-2011-api | Non utilizzare il modello a oggetti deprecato di Microsoft Dynamics CRM 2011. Segui invece la documentazione sull'API Web Dataverse. | Alto | Idoneità all'aggiornamento |
| Risorse Web | use-relative-uri | Non utilizzare URL assoluti degli endpoint di Dataverse. | Medio | Manutenibilità |
| Risorse Web | use-cached-webresource | Medio | Prestazioni | |
| Risorse Web | use-client-context | Utilizza contesti cliente. | Medio | Idoneità all'aggiornamento |
| Risorse Web | use-navigation-api | Usa i parametri dell API per l'esplorazione. | Medio | Idoneità all'aggiornamento |
| Risorse Web | use-offline | Medio | Idoneità all'aggiornamento | |
| Risorse Web | do-not-make-parent-assumption | Alto | Progettazione | |
| Risorse Web | use-org-setting | Utilizza le impostazioni dell'organizzazione. | Medio | Idoneità all'aggiornamento |
| Risorse Web | use-global-context | Medio | Idoneità all'aggiornamento | |
| Risorse Web | use-grid-api | Utilizza le API della griglia. | Medio | Idoneità all'aggiornamento |
| Risorse Web | use-utility-dialogs | Medio | Utilizzo | |
| Risorse Web | avoid-isActivityType | Sostituisci il metodo Xrm.Utility.isActivityType con il nuovo Xrm.Utility.gettableMetadata e non utilizzarlo nelle regole della barra multifunzione. | Medio | Idoneità all'aggiornamento |
| Risorse Web | meta-avoid-silverlight | L'utilizzo della risorsa Web Silverlight è deprecato. | Medio | Idoneità all'aggiornamento |
| Risorse Web | remove-debug-script | Evita di includere gli script di debug in ambienti non di sviluppo. | Medio | Utilizzo |
| Risorse Web | use-strict-mode | Utilizza la modalità rigida se possibile. | Medio | Utilizzo |
| Risorse Web | use-strict-equality-operators | Utilizza operatori di uguaglianza rigidi | Medio | Utilizzo |
| Risorse Web | avoid-eval | Non utilizzare la funzione eval o i relativi equivalenti funzionali. |
Critico | Sicurezza |
| Risorse Web | avoid-with | Non utilizzare l'operatore "with". | Alto | Prestazioni |
| Risorse Web | remove-alert | Non usare la funzione "alert" o i relativi equivalenti funzionali. | Medio | Utilizzo |
| Risorse Web | remove-console | Si consiglia di non utilizzare metodi sulla console. | Medio | Utilizzo |
| Risorse Web | avoid-ui-refreshribbon | Evita di utilizzare refreshRibbon nel modulo onload e EnableRule. | Critico | Prestazioni |
| Risorse Web | use-getsecurityroleprivilegesinfo | Non utilizzare userSettings.securityRolePrivileges. Utilizza invece userSettings.getSecurityRolePrivilegesInfo. | Alto | Prestazioni |
| Risorse Web | use-appsidepane-api | Utilizza Xrm.App.sidePanes.createPane invece di Xrm.Panels.loadPanel. | Medio | Idoneità all'aggiornamento |
| Risorse Web | web-sdl-no-cookies | I cookie HTTP sono un vecchio meccanismo di archiviazione lato client con rischi e limitazioni intrinseche. Usa invece Web Storage, IndexedDB o altri metodi moderni. | Medio | Sicurezza |
| Risorse Web | web-sdl-no-document-domain | La scrittura sulla proprietà document.domain deve essere rivista per non ignorare i controlli della stessa origine. L'utilizzo di domini di primo livello come azurewebsites.net è severamente vietato. | Medio | Sicurezza |
| Risorse Web | web-sdl-no-document-write | Le chiamate a document.write o document.writeln gestiscono il DOM direttamente senza alcuna bonifica e dovrebbero essere evitate. Utilizzare invece document.createElement() o metodi simili. | Medio | Sicurezza |
| Risorse Web | web-sdl-no-metodo-html | Le chiamate dirette al metodo html() spesso (ad esempio nel framework jQuery) modificano il DOM senza alcuna bonifica e devono essere evitate. Utilizzare invece document.createElement() o metodi simili. | Medio | Sicurezza |
| Risorse Web | web-sdl-no-inner-html | Le assegnazioni a proprietà innerHTML o outerHTML gestiscono il DOM direttamente senza alcuna bonifica e dovrebbero essere evitate. Utilizzare invece document.createElement() o metodi simili. | Medio | Sicurezza |
| Risorse Web | web-sdl-no-insecure-url | I protocolli non sicuri come HTTP o FTP dovrebbero essere sostituiti dalle loro controparti crittografate (HTTPS, FTPS) per evitare l'invio di dati potenzialmente sensibili su reti non attendibili in chiaro. | Medio | Sicurezza |
| Risorse Web | web-sdl-no-msapp-exec-unsafe | Le chiamate a MSApp.execUnsafeLocalFunction() ignorano la convalida dell'inserimento di script e devono essere evitate. | Medio | Sicurezza |
| Risorse Web | web-sdl-no-postmessage-star-origin | Fornisci sempre un'origine di destinazione specifica, non * quando invii dati ad altre finestre utilizzando postMessage per evitare perdite di dati al di fuori del limite di attendibilità. | Medio | Sicurezza |
| Risorse Web | web-sdl-no-winjs-html-unsafe | Le chiamate a WinJS.Utilities.setInnerHTMLUnsafe() e metodi simili non eseguono alcuna convalida dell'input e devono essere evitate. Utilizza WinJS.Utilities.setInnerHTML() invece. | Medio | Sicurezza |
| Canvas App | app-formula-issues-high | Vai a Informazioni di riferimento sulle formule di Power Apps per ulteriori dettagli. | Critico | Progettazione |
| App canvas | app-formula-issues-medium | Consulta le informazioni di riferimento sulle formule di Power Apps per ulteriori dettagli. | Medio | Progettazione |
| Canvas App | app-formula-issues-low | Consulta le informazioni di riferimento sulle formule di Power Apps per ulteriori dettagli. | Basso | Progettazione |
| Canvas App | app-use-delayoutput-text-input | Utilizza il caricamento ritardato in alcuni scenari per migliorare le prestazioni. | Medio | Prestazioni |
| Canvas App | app-reduce-screen-controls | Limita il numero di controlli delle app per migliorare le prestazioni. | Medio | Prestazioni |
| Canvas App | app-include-accessible-label | Usa etichette esplicite per migliorare l'accessibilità delle app. | Medio | Accessibilità |
| App canvas | app-include-alternative-input | Assicurati che tutti gli elementi interattivi siano accessibili agli input alternativi. | Medio | Accessibilità |
| App canvas | app-avoid-autostart | Evita di utilizzare l'avvio automatico sui lettori all'interno di un'app. | Medio | Accessibilità |
| Flusso desktop | desktopflow-avoid-unsafe-password | Le password vengono gestite in modo non sicuro nel flusso. | Alto | Sicurezza |
| Flusso desktop | desktopflow-avoid-subflow-recursion | Sono state rilevate chiamate ricorsive tra flussi secondari che possono causare un ciclo infinito. | Medio | Progettazione |
| Flusso desktop | desktopflow-avoid-infinite-loop | È stato rilevato un ciclo infinito nel flusso che potrebbe causarne l'esecuzione a tempo indefinito. | Medio | Progettazione |
| Flusso desktop | desktopflow-avoid-incomplete-if-branch | È stata rilevata un'azione If incompleta, priva di contenuto o contenente solo azioni nel ramo Else. | Basso | Progettazione |
| Flusso desktop | desktopflow-avoid-excessive-nested-ifs | Le clausole If annidate superano cinque livelli. | Basso | Manutenibilità |
| Flusso desktop | desktopflow-avoid-empty-on-error-block | L'azione "In caso di errore del blocco" è vuota e non gestisce gli errori. | Basso | Progettazione |
| Flusso desktop | desktopflow-limit-argument-count | Le variabili di input/output totali superano il limite di 25 variabili. | Basso | Manutenibilità |
| Flusso desktop | desktopflow-input-argument-default-value | Le variabili di input/output non usano i valori predefiniti. | Basso | Manutenibilità |
| Flusso desktop | desktopflow-limit-variable-name-length | Il nome della variabile supera il limite di 25 caratteri. | Basso | Manutenibilità |
| Flusso desktop | desktopflow-avoid-excessive-wait-actions | È stato rilevato un uso improprio delle azioni di attesa, con più di 10 azioni di attesa che causano potenziali colli di bottiglia. | Basso | Prestazioni |
| Flusso desktop | desktopflow-avoid-immense-wait-duration | È stato rilevato un tempo di attesa eccessivo, che supera il limite di 600 secondi per le azioni di attesa codificate. | Basso | Prestazioni |
Vedi anche
Procedure consigliate e indicazioni per Dataverse
Procedure consigliate e indicazioni per le app basate sul modello
Problemi comuni e soluzioni per il Solution Checker