Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Solusi digunakan untuk mendistribusikan Power Platform objek, seperti aplikasi, tabel, alur, sumber daya web, dan plugin. Artikel ini memperkenalkan fitur pemeriksa solusi, alat canggih yang melakukan analisis statis komprehensif dari objek solusi Anda terhadap serangkaian aturan praktik terbaik. Dengan menggunakan pemeriksa solusi, Anda dapat dengan cepat mengidentifikasi pola bermasalah dalam komponen Anda dan menerima laporan terperinci yang menyoroti masalah, komponen yang terpengaruh, dan menyediakan tautan ke dokumentasi tentang cara menyelesaikan setiap masalah. Ini memastikan solusi Anda dioptimalkan untuk kinerja, stabilitas, dan keandalan.
Pemeriksa solusi berfungsi dengan solusi tidak terkelola yang dapat diekspor dari lingkungan.
Anda dapat menjalankan pemeriksa solusi baik dari( Power Apps make.powerapps.com) atau dengan menggunakan PowerShell.
Bagaimana pemeriksa solusi membantu Anda
Untuk memenuhi persyaratan bisnis yang kompleks, pembuat seringkali dapat berakhir dengan solusi yang sangat canggih yang menyesuaikan dan memperluas Power Platform. Bersama implementasi lanjutan ada peningkatan risiko di mana ada masalah performa, stabilitas, dan keandalan, yang dapat mempengaruhi negatif pengalaman pengguna. Mengidentifikasi dan memahami bagaimana untuk menangani masalah ini dapat menjadi rumit dan memakan waktu. Dengan fitur pemeriksa solusi, Anda dapat melakukan pemeriksaan dalam hitungan detik pada solusi Anda, yang menggunakan seperangkat aturan praktik terbaik untuk mengidentifikasi pola yang bermasalah dengan cepat. Setelah pemeriksaan selesai, Anda menerima laporan terperinci serta Power Apps dalam pesan email yang mencantumkan masalah yang diidentifikasi, komponen dan kode yang terpengaruh, dan tautan ke dokumentasi yang menjelaskan cara menyelesaikan setiap masalah.
Pemeriksa solusi menganalisis komponen solusi ini:
- Info Aktivitas Alur Kerja Kustom Dataverse
- Sumber daya web (HTML dan JavaScript) Dataverse
- Konfigurasi Dataverse, seperti langkah pesan SDK
- Power Automate Aliran (melalui pemeriksa aliran)
- Power Fx Ekspresi (melalui Pemeriksa Aplikasi)
Catatan
- Solution Checker mendukung variabel global untuk sintaks ECMAScript 2015 (ES6) dan hingga ECMAScript 2018 (ES9). Bila JavaScript terdeteksi menggunakan variabel global setelah ES6, atau sintaksis lebih dari ES9, masalah sintaks web yang tidak didukung untuk sumber daya web dilaporkan.
- Penggunaan pemeriksa solusi tidak menjamin bahwa impor solusi akan berhasil. Pemeriksaan analisis statis yang dilakukan terhadap solusi tidak mengetahui status lingkungan tujuan yang dikonfigurasi dan keberhasilan impor mungkin bergantung pada solusi atau konfigurasi lain di lingkungan.
Jalankan pemeriksa solusi
Masuk Power Apps.
Di panel kiri, pilih Solusi. Jika item tidak ada di panel panel samping, pilih ... Lebih banyak dan kemudian pilih item yang Anda inginkan.
Di samping solusi tidak terkelola yang ingin Anda analisis, pilih ..., arahkan ke Pemeriksa solusi, lalu pilih Jalankan.
Tombol perintah Pemeriksa solusi memiliki indikator pemuatan, dan Anda akan melihat Running ... status di kolom Pemeriksaan solusi dari daftar Solusi .
Catatan
- Pemeriksa solusi memerlukan waktu beberapa menit untuk menyelesaikan analisis.
- Anda akan menerima pemberitahuan email dan pemberitahuan di area Pemberitahuan Power Apps situs saat pemeriksaan selesai.
- Lihat laporan saat pemeriksaan selesai.
Membatalkan pemeriksaan
Setelah Anda mengirimkan pemeriksaan solusi di lingkungan Anda, pemeriksaan dapat dibatalkan melalui panel status di area kanan atas halaman Solusi .
Bila Anda membatalkan pemeriksaan, pemeriksaan solusi berhenti dijalankan dan status memeriksa solusi kembali ke kondisi sebelumnya.
Status pemeriksa solusi
Saat Anda menginstal pemeriksa solusi di lingkungan Anda, kolom Pemeriksaan solusi menjadi tersedia di daftar Solusi . Kolom ini menampilkan status analisis solusi untuk solusi.
Status | Keterangan |
---|---|
Belum dijalankan | Solusi belum pernah dianalisis. |
Berjalan | Solusi sedang dianalisis. |
Tidak dapat diselesaikan | Analisis solusi diminta, namun analisis tidak berhasil diselesaikan. |
Hasil pada tanggal dan waktu | Analisis solusi selesai dan hasil tersedia untuk diunduh. |
Tidak dapat diselesaikan. Hasil pada tanggal dan waktu | Permintaan analisis terbaru tidak berhasil diselesaikan. Hasil berhasil terakhir dapat diunduh. |
Diperiksa oleh Microsoft | Ini adalah solusi terkelola Microsoft. Analisis solusi tidak diizinkan di solusi ini. |
Diperiksa oleh Penerbit | Ini adalah solusi terkelola non-Microsoft. Saat ini, analisis solusi tidak tersedia untuk solusi ini. |
Tinjau laporan pemeriksa solusi
Bila pemeriksaan solusi selesai, Anda dapat melihat laporan analisis di portal atau Anda dapat mengunduh laporan dari browser web Anda. Di portal, Anda memiliki opsi untuk mengurutkan hasil berdasarkan Masalah, Lokasi , atau berdasarkan Tingkat Keparahan dan melihat informasi terperinci untuk masalah yang terdeteksi dalam solusi Anda.
Di panel kiri, pilih Solusi. Jika item tidak ada di panel panel samping, pilih ... Lebih banyak dan kemudian pilih item yang Anda inginkan.
Di samping solusi yang tidak dikelola tempat Anda ingin melihat laporan pemeriksa solusi, pilih ..., arahkan ke Pemeriksa solusi, lalu pilih Tampilkan hasil.
Pilih masalah untuk melihat detail dan panduan tentang cara menyelesaikannya.
Hasil pemeriksaan solusi juga tersedia untuk diunduh. File zip pemeriksa solusi akan diunduh ke folder yang ditentukan oleh web browser. Laporan unduhan dalam format Excel dan berisi beberapa visualisasi dan kolom yang membantu Anda mengidentifikasi dampak, jenis, dan lokasi setiap masalah yang terdeteksi dalam solusi Anda. Tautan ke panduan rinci tentang cara untuk menangani masalah juga tersedia.
- Di panel kiri, pilih Solusi. Jika item tidak ada di panel panel samping, pilih ... Lebih banyak dan kemudian pilih item yang Anda inginkan.
- Di samping solusi yang tidak dikelola tempat Anda ingin mengunduh laporan pemeriksa solusi, pilih ..., arahkan kursor ke Pemeriksa solusi, lalu pilih Unduh hasil.
- File zip pemeriksa solusi akan diunduh ke folder yang ditentukan oleh web browser.
Berikut adalah ringkasan setiap kolom dalam laporan.
Kolom laporan | KETERANGAN | Berlaku untuk komponen |
---|---|---|
Masalah | Judul masalah yang diidentifikasi dalam solusi. | Semua |
Kategori | Kategorisasi masalah yang diidentifikasi, seperti Kinerja, Pemeliharaan, Penggunaan, Dukungan, Desain , Keamanan, Aksesibilitas, atau Kesiapan Peningkatan. | Semua |
Keparahan | Mewakili kemungkinan dampak masalah yang diidentifikasi. Jenis dampak yang tersedia adalah Kritis, Tinggi, Sedang, Rendah, dan Informasi. | Semua |
Panduan | Link ke artikel yang merinci masalah, dampak, dan tindakan yang disarankan. | Semua |
Komponen | Komponen solusi tempat masalah ini diidentifikasi. | Semua |
Location | Lokasi dan/atau file sumber komponen tempat masalah diidentifikasi terjadi, seperti rakitan atau nama file JavaScript. | Semua |
Baris # | Referensi nomor baris dari masalah dalam komponen sumber daya web terdampak. | Sumber daya web |
Modul | Nama modul tempat masalah yang diidentifikasi dalam rakitan terdeteksi. | Aktivitas Alur Kerja Kustom |
Tipe | Jenis masalah yang teridentifikasi dalam rakitan. | Aktivitas Alur Kerja Kustom |
Anggota | Anggota masalah yang teridentifikasi dalam rakitan. | Aktivitas Alur Kerja Kustom |
Pernyataan | Konfigurasi atau pernyataan kode yang mengakibatkan masalah. | Semua |
Komentar | Rincian tentang masalah yang mencakup langkah-langkah resolusi tingkat tinggi. | Semua |
Menjalankan aturan pemeriksa solusi secara lokal
Anda dapat menjalankan aturan pemeriksa solusi di lingkungan pengembangan untuk mendeteksi masalah lebih cepat setelah membuat sumber daya solusi. Ini saat ini didukung untuk sumber daya web (JavaScript dan TypeScript). Untuk detail selengkapnya, buka paket NPM@microsoft/eslint-plugin-power-apps.
Jalankan pemeriksa solusi menggunakan PowerShell
Modul PowerShell tersedia yang dapat Anda gunakan untuk berinteraksi langsung dengan layanan. Modul Microsoft.PowerApps.checker.PowerShell dapat digunakan untuk analisis solusi tidak terkelola untuk lingkungan Power Apps, atau untuk mengotomatiskan dan mengintegrasikan layanan ke alur model dan rilis Anda. Informasi lebih lanjut: Microsoft.PowerApps. Gambaran Umum Checker.PowerShell
Aturan praktik terbaik yang digunakan oleh pemeriksa solusi
Tabel berikut mencantumkan jenis komponen, deskripsi aturan, tingkat keparahan, dan kategori. Pelanggaran kritis diblokir atau diperingatkan saat dikonfigurasi untuk penegakan pemeriksa solusi dengan lingkungan terkelola. Informasi selengkapnya: Menggunakan pemeriksa solusi di Lingkungan Terkelola
Komponen Solusi | Nama aturan | Keterangan aturan | Keparahan | Kategori |
---|---|---|---|---|
Plugin atau Aktivitas Alur Kerja | meta-menghapus-dup-reg | Hindari duplikasi pendaftaran plug-in Dataverse. | Penting | Kinerja |
Plugin atau Aktivitas Alur Kerja | meta-avoid-reg-no-attribute | Sertakan atribut pemfilteran dengan pendaftaran plug-in Dataverse. | Sedang | Kinerja |
Plugin atau Aktivitas Alur Kerja | meta-menghindari-reg-mengambil | Hati-hati dengan plug-in Dataverse yang terdaftar untuk pesan Retrieve dan RetrieveMultiple. | Sedang | Kinerja |
Plugin atau Aktivitas Alur Kerja | meta-hapus-tidak aktif | Hapus Konfigurasi Tidak Aktif di Dataverse. | Kurang Penting | Pemeliharaan |
Plugin atau Aktivitas Alur Kerja | meta-menghindari-crm4-peristiwa | Jangan gunakan tahapan pendaftaran plugin Microsoft Dynamics CRM 4.0. | Sedang | Kesiapan pemutakhiran |
Plugin atau Aktivitas Alur Kerja | meta-avoid-retrievemultiple-annotation | Jangan mendaftar plugin di RetrieveMultiple anotasi. | Sangat Penting | Penggunaan |
Aplikasi yang diarahkan model | meta-lisensi-penjualan-entitas-operasi | Solusi berisi entitas dengan pesan dan operasi SDK terbatas yang memerlukan lisensi Dynamics 365 yang valid. | Kurang Penting | Lisensi |
Aplikasi yang diarahkan model | meta-license-fieldservice-customcontrols | Solusi berisi kontrol kustom yang memerlukan lisensi yang valid Dynamics 365 Field Service . | Kurang Penting | Lisensi |
Aplikasi yang diarahkan model | meta-lisensi-layanan-lapangan-operasi-entitas | Solusi berisi entitas dengan pesan dan operasi SDK terbatas yang memerlukan lisensi yang valid Dynamics 365 Field Service . | Kurang Penting | Lisensi |
Sumber Daya Web | use-async | Berinteraksi dengan sumber daya HTTP dan HTTPS secara asinkron. | Penting | Kinerja |
Sumber Daya Web | menghindari modal | Hindari penggunaan dialog modal. | Sangat Penting | Dukungan |
Sumber Daya Web | hindari-dom-bentuk | Sangat Penting | Dukungan | |
Sumber Daya Web | hindari-dom-bentuk-peristiwa | Sangat Penting | Dukungan | |
Sumber Daya Web | hindari-crm2011-layanan-odata | Jangan menargetkan titik akhir Microsoft Dynamics CRM 2011 OData 2.0. | Penting | Kesiapan pemutakhiran |
Sumber Daya Web | hindari-crm2011-layanan-sabun | Tidak menargetkan layanan Microsoft Dynamics CRM 2011 SOAP. | Penting | Kesiapan pemutakhiran |
Sumber Daya Web | avoid-loadtema | Jangan gunakan loadTheme API Fluent v8. |
Kurang Penting | Dukungan |
Sumber Daya Web | hindari-browser-spesifik-api | Jangan gunakan API lama atau browser plug-in Internet Explorer. | Penting | Kesiapan pemutakhiran |
Sumber Daya Web | hindari-unpub-api | Sangat Penting | Dukungan | |
Sumber Daya Web | hindari-jendela-atas | Sangat Penting | Dukungan | |
Sumber Daya Web | Hindari-2011-API | Jangan gunakan model objek Microsoft Dynamics CRM 2011 yang ditolak. Sebagai gantinya, ikuti Dataverse dokumentasi Web API . | Sangat Penting | Kesiapan pemutakhiran |
Sumber Daya Web | use-relative-uri | Jangan gunakan URL titik akhir Dataverse absolut. | Sedang | Pemeliharaan |
Sumber Daya Web | use-cached-webresource | Sedang | Kinerja | |
Sumber Daya Web | penggunaan-konteks klien | Gunakan konteks klien. | Sedang | Kesiapan pemutakhiran |
Sumber Daya Web | use-navigation-api | Gunakan parameter API navigasi. | Sedang | Kesiapan pemutakhiran |
Sumber Daya Web | use-offline | Sedang | Kesiapan pemutakhiran | |
Sumber Daya Web | jangan-buat-asumsi orang tua | Sangat Penting | Desain | |
Sumber Daya Web | menggunakan-pengaturan organisasi | Gunakan Pengaturan Organisasi. | Sedang | Kesiapan pemutakhiran |
Sumber Daya Web | use-global-context | Sedang | Kesiapan pemutakhiran | |
Sumber Daya Web | use-grid-api | Gunakan API kisi. | Sedang | Kesiapan pemutakhiran |
Sumber Daya Web | dialog utilitas-penggunaan | Sedang | Penggunaan | |
Sumber Daya Web | avoid-isActivityType | Ganti metode Xrm.Utility.isActivityType dengan Xrm.Utility.gettableMetadata baru dan jangan digunakan dalam aturan ribbon. | Sedang | Kesiapan pemutakhiran |
Sumber Daya Web | meta-hindari-silverlight | Penggunaan Sumber daya web Silverlight ditolak. | Sedang | Kesiapan pemutakhiran |
Sumber Daya Web | hapus-debug-script | Hindari menyertakan skrip debug di lingkungan non-pengembangan. | Sedang | Penggunaan |
Sumber Daya Web | mode penggunaan-ketat | Gunakan mode ketat bila memungkinkan. | Sedang | Penggunaan |
Sumber Daya Web | penggunaan-ketat-kesetaraan-operator | Gunakan operator kesetaraan yang ketat. | Sedang | Penggunaan |
Sumber Daya Web | menghindari-eval | Jangan gunakan eval fungsi atau fungsionalnya yang setara. |
Penting | Keamanan |
Sumber Daya Web | hindari-dengan | Jangan gunakan operator 'dengan'. | Sangat Penting | Kinerja |
Sumber Daya Web | Hapus-peringatan | Jangan gunakan fungsi 'peringatan' atau fungsi lain yang setara. | Sedang | Penggunaan |
Sumber Daya Web | menghapus-konsol | Hindari penggunaan metode pada konsol. | Sedang | Penggunaan |
Sumber Daya Web | avoid-ui-refreshribbon | Hindari penggunaan refreshRibbon dalam form onload dan EnableRule. | Penting | Kinerja |
Sumber Daya Web | use-getsecurityroleprivilegesinfo | Hindari userSettings.securityRolePrivileges. Tetapi gunakan userSettings.getSecurityRolePrivilegesInfo. | Sangat Penting | Kinerja |
Sumber Daya Web | use-appsidepane-api | Gunakan Xrm.App.sidePanes.createPane, bukan Xrm.Panels.loadPanel. | Sedang | Kesiapan pemutakhiran |
Sumber Daya Web | web-sdl-no-cookie | Cookie HTTP adalah mekanisme penyimpanan sisi klien lama dengan risiko dan keterbatasan yang melekat. Gunakan Web Storage, IndexedDB, atau metode modern lainnya sebagai gantinya. | Sedang | Keamanan |
Sumber Daya Web | web-sdl-no-document-domain | Penulisan ke properti document.domain harus ditinjau untuk menghindari bypass pemeriksaan asal yang sama. Penggunaan domain tingkat atas seperti azurewebsites.net sangat dilarang. | Sedang | Keamanan |
Sumber Daya Web | web-sdl-tidak-dokumen-tulis | Panggilan ke document.write atau document.writeln memanipulasi DOM secara langsung tanpa sanitasi apa pun dan harus dihindari. Gunakan document.createElement() atau metode serupa sebagai gantinya. | Sedang | Keamanan |
Sumber Daya Web | web-sdl-no-html-method | Panggilan langsung ke metode html() sering (misalnya, dalam kerangka kerja jQuery) memanipulasi DOM tanpa sanitasi apa pun dan harus dihindari. Gunakan document.createElement() atau metode serupa sebagai gantinya. | Sedang | Keamanan |
Sumber Daya Web | web-sdl-no-inner-html | Penugasan ke properti innerHTML atau outerHTML memanipulasi DOM secara langsung tanpa sanitasi apa pun dan harus dihindari. Gunakan document.createElement() atau metode serupa sebagai gantinya. | Sedang | Keamanan |
Sumber Daya Web | web-sdl-no-insecure-url | Protokol tidak aman seperti HTTP atau FTP harus diganti dengan bagian terenkripsi (HTTPS, FTPS) untuk menghindari pengiriman data yang berpotensi sensitif melalui jaringan yang tidak tepercaya dalam teks biasa. | Sedang | Keamanan |
Sumber Daya Web | web-sdl-no-msapp-exec-unsafe | Panggilan ke MSApp.execUnsafeLocalFunction() melewati validasi injeksi skrip dan harus dihindari. | Sedang | Keamanan |
Sumber Daya Web | web-sdl-no-postmessage-star-origin | Selalu berikan asal target yang spesifik, bukan * saat mengirimkan data ke jendela lain menggunakan postMessage untuk menghindari kebocoran data di luar batas kepercayaan. | Sedang | Keamanan |
Sumber Daya Web | web-sdl-no-winjs-html-unsafe | Panggilan ke WinJS.Utilities.setInnerHTMLUnsafe() dan metode serupa tidak melakukan validasi input apa pun dan harus dihindari. Gunakan WinJS.Utilities.setInnerHTML() sebagai gantinya. | Sedang | Keamanan |
Aplikasi Kanvas | aplikasi-rumus-masalah-tinggi-tinggi | Buka Power Apps referensi rumus untuk detail tambahan. | Penting | Desain |
Aplikasi Kanvas | aplikasi-rumus-masalah-media- | Lihat referensi rumus Power Apps untuk rincian tambahan. | Sedang | Desain |
Aplikasi Kanvas | aplikasi-formula-masalah-rendah- | Lihat referensi rumus Power Apps untuk rincian tambahan. | Kurang Penting | Desain |
Aplikasi Kanvas | aplikasi-penggunaan-penundaanoutput-teks-input | Gunakan beban tertunda dalam beberapa skenario untuk meningkatkan kinerja. | Sedang | Kinerja |
Aplikasi Kanvas | app-reduce-screen-controls | Batasi jumlah kontrol aplikasi untuk peningkatan performa. | Sedang | Kinerja |
Aplikasi Kanvas | app-include-accessible-label | Gunakan label eksplisit untuk meningkatkan aksesibilitas aplikasi. | Sedang | Aksesibilitas |
Aplikasi Kanvas | aplikasi-sertakan-input-alternatif- | Pastikan semua elemen interaktif dapat diakses dengan input alternatif. | Sedang | Aksesibilitas |
Aplikasi Kanvas | aplikasi-hindari-mulai otomatis | Jangan gunakan autostart pada pemain dalam aplikasi. | Sedang | Aksesibilitas |
Alur Desktop | desktopflow-hindari-sandi yang tidak aman | Kata sandi dikelola dengan tidak aman di alur. | Sangat Penting | Keamanan |
Alur Desktop | desktopflow-avoid-subflow-rekursi | Panggilan berulang terdeteksi di antara sub-alur, berpotensi menyebabkan perulangan tak terbatas. | Sedang | Desain |
Alur Desktop | desktopflow-avoid-infinite-loop | Perulangan tak terhingga terdeteksi di dalam alur, berpotensi berjalan tanpa batas. | Sedang | Desain |
Alur Desktop | desktopflow-hindari-tidak lengkap-jika-cabang | Tindakan If tidak selesai terdeteksi, kurang konten atau hanya berisi tindakan di cabang Else. | Kurang Penting | Desain |
Alur Desktop | desktopflow-avoid-excessive-nested-ifs | Klausa Nested If melebihi lima level. | Kurang Penting | Pemeliharaan |
Alur Desktop | desktopflow-avoid-empty-on-error-block | Tindakan "Kesalahan pada blok" kosong dan kesalahan tidak tertangani. | Kurang Penting | Desain |
Alur Desktop | desktopflow-limit-argumen-count | Total variabel input/output melebihi batas 25 variabel. | Kurang Penting | Pemeliharaan |
Alur Desktop | desktopflow-input-argument-default-value | Variabel input/output tidak menggunakan nilai default. | Kurang Penting | Pemeliharaan |
Alur Desktop | desktopflow-limit-variabel-nama-panjang | Nama variabel melebihi batas 25 karakter. | Kurang Penting | Pemeliharaan |
Alur Desktop | desktopflow-avoid-excessive-wait-actions | Penyalahgunaan tindakan tunggu terdeteksi, lebih dari 10 di antaranya berpotensi menyebabkan hambatan. | Kurang Penting | Kinerja |
Alur Desktop | desktopflow-hindari-durasi tunggu yang luar biasa | Waktu tunggu yang sangat lama terdeteksi, melebihi batas 600 detik untuk tindakan menunggu hardcode. | Kurang Penting | Kinerja |
Baca juga
Praktik dan panduan terbaik untuk Dataverse
Praktik terbaik dan panduan untuk aplikasi berbasis model
Masalah umum dan resolusi untuk Pemeriksa Solusi