Aracılığıyla paylaş


Çözüm performansını, kararlılığını ve güvenilirliğini artırın

Uygulamalar, tablolar, akışlar, web kaynakları ve eklentiler gibi Power Platform nesnelerini dağıtmak için çözümler kullanılır. Bu makalede, çözüm nesnelerinizin en iyi uygulama kuralları kümesine göre kapsamlı bir statik analizini gerçekleştiren güçlü bir araç olan çözüm denetleyicisi özelliği tanıtılmaktadır. Çözüm denetleyicisini kullanarak, bileşenlerinizdeki sorunlu desenleri hızlı bir şekilde tanımlayabilir ve sorunları, etkilenen bileşenleri vurgulayan ve her sorunun nasıl çözüleceğine ilişkin belgelere bağlantılar sağlayan ayrıntılı raporlar alabilirsiniz. Bu, çözümlerinizin performans, kararlılık ve güvenilirlik için optimize edilmesini sağlar.

Çözüm denetleyicisi örneği: sonuçlar ve ayrıntılar

Çözüm denetçisi, bir ortamdan dışa aktarılabilen yönetilmeyen çözümler ile çalışır.

Çözüm denetleyicisini Power Apps'den (make.powerapps.com) veya PowerShell'i kullanarak çalıştırabilirsiniz.

Çözüm denetleyicisi size nasıl yardımcı olur?

Karmaşık iş gereksinimlerini karşılamak için üreticiler genellikle Power Platform'i özelleştiren ve genişleten son derece gelişmiş çözümlerle sonuçlanabilirler. Gelişmiş uygulamalar performans, stabilite ve güvenilirlik sorunlarının oluşmasına neden olabilecek riskleri artırır. Bu durum kullanıcı deneyimini olumsuz etkileyebilir. Tanımlama ve bu sorunların nasıl giderileceğini anlama karmaşık ve zaman alıcı olabilir. Çözüm denetleyicisi özelliğiyle, sorunlu kalıpları hızla belirlemek için en iyi uygulama kurallarını kullanan çözümünüz üzerinde saniyeler içinde bir denetim gerçekleştirebilirsiniz. Kontrol tamamlandıktan sonra, Power Apps'de ayrıntılı bir rapor ve ayrıca tespit edilen sorunları, etkilenen bileşenleri ve kodları listeleyen ve her sorunun nasıl çözüleceğini açıklayan belgelere bağlantılar içeren bir e-posta mesajı alırsınız.

Çözüm denetleyicisi, bu çözüm bileşenlerini denetler:

  • Dataverse özel iş akışı aktiviteleri
  • Dataverse web kaynakları (HTML ve JavaScript)
  • Dataverse yapılandırmaları, SDK ileti adımı gibi.
  • Power Automate akışları (akış denetleyicisi aracılığıyla)
  • Power Fx ifadeleri (akış denetleyicisi aracılığıyla)

Not

  • Çözüm denetleyici ECMAScript 2015 (ES6) ile ECMAScript 2018 (ES9) arasındaki söz dizimleri için genel değişkenleri destekler. ES6'den daha sonraki genel değişkenler veya ES9 sonrası söz dizimi kullanılarak JavaScript algılandığında, web kaynağı için web tarafından desteklenmeyen bir söz dizimi sorunu bildirilir.
  • Çözüm denetleyicisinin kullanımı, çözüm içeri aktarmanın başarılı olacağını garanti etmez. Çözüme karşı gerçekleştirilen statik çözümleme denetimleri, hedef ortamın yapılandırılmış durumunu bilmez ve içeri aktarma işleminin başarısı ortamdaki diğer çözümlere veya yapılandırmalara bağlı olabilir.

Çözüm denetçisini çalıştırın

  1. Power Apps'a oturum açın.

  2. Sol bölmede Çözümler'i seçin. Öğe yan panel bölmesinde yoksa ...Diğer'i ve ardından istediğiniz öğeyi seçin.

  3. Analiz etmek istediğiniz yönetilmeyen çözünün yanında ... seçerek Çözüm denetçisi'ne işaret edin ve sonra Çalıştır'ı seçin.

    Çözüm denetçisi komutunu çalıştırma.

  4. Çözüm denetleyicisi komut düğmesinde bir yükleme göstergesi bulunur ve Çözüm listesinin Çözüm denetimi sütununda bir Çalışıyor... durumu fark edeceksiniz.

Çözüm denetçisi durumu

Not

  • Çözüm denetleyicisi analizinin tamamlanması birkaç dakika sürebilir.
  • Denetleme işlemi tamamlandığında Power Apps sitesinin Bildirimler alanında bir bildirimin yanı sıra bir e-posta bildirimi de alırsınız.
  1. Denetleme sona erdiğinde Raporu görüntüleyin.

Bir denetlemeyi iptal etmek

Ortamınızda çözümler onay gönderdikten sonra denetimi sağ üst alanındaki durum bölmesi aracılığıyla iptal edilebilir Çözümler sayfasında.

Denetlemeyi iptal ettiğinizde çözüm denetimi çalışmadığında ve çözüm onay durumunu önceki bir duruma geri döndürür.

Çözüm denetçisi durumları

Ortamınızda çözüm denetleyicisi yüklediğinizde, Çözüm denetlemesi sütun kullanılabilir duruma gelir, Çözümler listesinde. Bu sütun, bir çözüm için çözüm çözümleme durumları gösterir.

Durum Açıklama
Çalıştırılmadı Çözüm daha önce hiç çözümlenmemiş.
Çalışıyor Çözüm analiz ediliyor.
Tamamlanamadı Çözüm analizi istendi ancak analiz başarıyla tamamlanmadı.
Tarih ve saat itibarıyla sonuçlar Çözüm analizi tamamlandı ve sonuçlar indirilebilir.
Tamamlanamadı. Tarih ve saat itibarıyla sonuç Son analiz isteği başarıyla tamamlanmadı. Son başarılı sonuçlar indirilebilir.
Microsoft tarafından denetlendi Bu, Microsoft tarafından yönetilen bir çözümdür. Çözüm analizine, bu çözümlerde izin verilmez.
Yayıncı tarafından denetlendi Bu, Microsoft dışı tarafından yönetilen bir çözümdür. Şu anda, çözüm analizi bu çözümler için kullanılamaz.

Çözüm denetleyicisi raporunu gözden geçirin

Çözüm denetimi tamamlandığında analiz raporunu portalda görüntüleyebilir veya raporu web tarayıcınızdan indirebilirsiniz. Portalda, sonuçları Sorun, Konum veya Önem Derecesi'ne göre sıralama ve çözümünüzde algılanan sorunlar için ayrıntılı bilgileri görüntüleme seçenekleri bulunur.

  1. Sol bölmede Çözümler'i seçin. Öğe yan panel bölmesinde yoksa ...Diğer'i ve ardından istediğiniz öğeyi seçin.

  2. Çözüm denetçisi raporunu görüntülemek istediğiniz yönetilmeyen çözümün yanında ... seçin, Çözüm denetçisi'ne işaret edin ve sonra Sonuçları görüntüle'yi seçin.

  3. Ayrıntıları ve çözüm kılavuzunu görüntülemek için bir sorun seçin.

    Çözüm denetleyicisi örneği: sonuçlar ve ayrıntılar detay inceleme

Çözüm denetimi sonuçları ayrıca indirilebilir. Çözüm denetleyicisi zip dosyası, web tarayıcınız tarafından belirtilen klasöre yüklenir. Rapor indirme Excel biçimindedir ve çözümünüzde bulunan her bir sorunun etkisini, türünü ve konusunu tespit etmenize yarayan çeşitli görselleştirmeler ve sütunlar içerir. Bir sorunu gidermeye yönelik ayrıntılı yönergeler içeren bağlantı de sağlanır.

  1. Sol bölmede Çözümler'i seçin. Öğe yan panel bölmesinde yoksa ...Diğer'i ve ardından istediğiniz öğeyi seçin.
  2. Çözüm denetçisi raporunu indirmek istediğiniz yönetilmeyen çözümün yanında ... seçin, Çözüm denetçisi'ne işaret edin ve sonra Sonuçları indir'i seçin.
  3. Çözüm denetleyicisi zip dosyası, web tarayıcınız tarafından belirtilen klasöre yüklenir.

Burada, rapordaki her bir sütunun özetini sunulmuştur.

Rapor sütunu Açıklama Bileşene uygulanır
Öğe Çözümde tanımlanan sorunun başlığı. Tümü
Kategori Belirlenen sorunun kategorileri, örneğin, Performans, Devamlılık, Kullanım, Desteklenebilirlik, Tasarım, Güvenlik, Erişilebilirlik veya Yükseltme hazırlığı. Tümünü
Önem derecesi Tanımlanan sorununun olası etkisini gösterir. Kullanılabilir etki türleri: Kritik, Yüksek, Orta, Düşük ve Bilgilendirici. Tümünü
Rehber Sorunun etkisini ayrıntılı olarak bildiren ve önerilen işlem makalesine bağlantı. Tümü
Bileşen Sorunun tespit edildiği çözüm bileşeni. Tümü
Location Tanımlanan sorununun, derleme ya da JavaScript dosya adı gibi gerçekleştiği konum ve/veya kaynak dosyası bileşeni. Tümü
Satır Numarası Etkilenen web kaynağı bileşenindeki sorunu satır numarası başvurusu. Web kaynakları
Modül Derlemede tanımlanan sorunun tespit edildiği modül adı. Özel iş akışı etkinliği
Tür Derleme içinde tespit edilen sorunun türü. Özel iş akışı etkinliği
Üye Derleme içinde tespit edilen sorunun üyesi. Özel iş akışı etkinliği
Deyim Sorun ile sonuçlanan kod deyimi veya yapılandırma. Tümü
Yorumlar Yüksek düzey çözüm adımlarını içeren sorun hakkındaki ayrıntılar. Tümünü

Çözüm denetleyici kurallarını yerel olarak çalıştırma

Çözüm kaynaklarını oluştururken çok daha erken sorunları saptamak için, geliştirme ortamınızda çözüm denetleyicisi kurallarını çalıştırabilirsiniz. Bu, şu anda Web kaynakları (JavaScript ve TypeScript) için desteklenmektedir. Daha fazla ayrıntı için, NPM paketi @microsoft/eslint-plugin-power-apps öğesine gidin.

PowerShell kullanarak çözüm denetleyicisini çalıştırma

Ayrıca, hizmetle doğrudan etkileşim kurmak için kullanabileceğiniz bir PowerShell modülü kullanılabilir. Microsoft.PowerApps.Checker.PowerShell modülü, şirket içi ve çevrimiçi ortamların desteklenen sürümleri için Power Apps ortamlarının yönetilmeyen çözümlerin analizi veya hizmeti otomatikleştirip derleme ve sürüm işlem hatlarınızla tümleştirmek için kullanılabilir. Daha fazla bilgi: Microsoft.PowerApps.Checker.PowerShell'e Genel Bakış

Çözüm denetleyicisi tarafından kullanılan en iyi yöntem kuralları

Aşağıdaki tabloda bileşen türü, kural açıklaması, önem derecesi ve kategori listelenmektedir. Yönetilen ortamlarla kritik ihlaller çözüm denetleyicisi zorlaması için yapılandırıldığında engellenir veya uyarılır. Daha fazla bilgi: Yönetilen Ortamlarda çözüm denetleyiciyi kullanma

Çözüm bileşeni Kural adı Kural açıklaması Önem derecesi Kategori
Eklenti veya iş akışı etkinliği meta-remove-dup-reg Yinelenen Dataverse eklenti kayıtlarını kullanmaktan kaçının. Kritik Performans
Eklenti veya iş akışı etkinliği meta-avoid-reg-no-attribute Dataverse eklenti kayıtlarıyla birlikte filtreleme özniteliklerini ekleyin. Medium Performans
Eklenti veya iş akışı etkinliği meta-avoid-reg-retrieve Al ve BirdenFazlaAl iletileri için kaydedilen Dataverse eklentilerini kullanırken dikkatli olun. Medium Performans
Eklenti veya iş akışı etkinliği meta-remove-inactive Dataverse'teki etkin olmayan yapılandırmaları kaldırın. Düşük Devamlılık
Eklenti veya iş akışı etkinliği meta-avoid-crm4-event Microsoft Dynamics CRM 4.0 eklenti kaydı aşamasını kullanmayın. Medium Yükseltme hazırlığı
Eklenti veya iş akışı etkinliği meta-avoid-retrievemultiple-annotation Ek açıklama RetrieveMultiple öğesine bir eklenti kaydetmekten kaçının. Yüksek Kullanım
Model temelli uygulama meta-license-sales-entity-operations Çözüm, geçerli bir Dynamics 365 lisansı gerektiren kısıtlı SDK iletileri ve işlemleri olan varlıkları içeriyor. Düşük Lisanslama
Model temelli uygulama meta-license-fieldservice-customcontrols Çözüm, geçerli bir Dynamics 365 Field Service lisansı gerektiren özel denetimler içerir. Düşük Lisanslama
Model temelli uygulama meta-license-fieldservice-entity-operations Çözüm, geçerli bir Dynamics 365 Field Service lisansı gerektiren kısıtlı SDK iletilerine ve işlemlerine sahip varlıklar içerir. Düşük Lisanslama
Web Kaynakları use-async HTTP ve HTTPS kaynakları ile eş zamanlı olmayan şekilde etkileşime girin. Kritik Performans
Web Kaynakları avoid-modals Kalıcı iletişim kutularını kullanmaktan kaçının. Yüksek Desteklenebilirlik
Web Kaynakları avoid-dom-form Yüksek Desteklenebilirlik
Web Kaynakları avoid-dom-form-event Yüksek Desteklenebilirlik
Web Kaynakları avoid-crm2011-service-odata Microsoft Dynamics CRM 2011 OData 2.0 uç noktasını hedeflemeyin. Kritik Yükseltme hazırlığı
Web Kaynakları avoid-crm2011-service-soap Microsoft Dynamics CRM 2011 SOAP hizmetlerini hedeflemeyin. Kritik Yükseltme hazırlığı
Web Kaynakları avoid-loadtheme loadTheme Fluent v8 API'sini kullanmayın. Düşük Desteklenebilirlik
Web Kaynakları avoid-browser-specific-api Internet Explorer eski API'lerini veya tarayıcı eklentilerini kullanmayın. Kritik Yükseltme hazırlığı
Web Kaynakları avoid-unpub-api Yüksek Desteklenebilirlik
Web Kaynakları avoid-window-top Yüksek Desteklenebilirlik
Web Kaynakları avoid-2011-api Kullanı dışı Microsoft Dynamics CRM 2011 nesne modelini kullanmayın. Bunun yerine, Dataverse Web API'si belgelerindeki yönergeleri uygulayın. Yüksek Yükseltme hazırlığı
Web Kaynakları use-relative-uri Mutlak Dataverse uç noktası URL'lerini kullanmayın. Medium Devamlılık
Web Kaynakları use-cached-webresource Medium Performans
Web Kaynakları use-client-context İstemci bağlamları kullanın. Medium Yükseltme hazırlığı
Web Kaynakları use-navigation-api Gezinme API'si parametrelerini kullanın. Medium Yükseltme hazırlığı
Web Kaynakları use-offline Medium Yükseltme hazırlığı
Web Kaynakları do-not-make-parent-assumption Yüksek Tasarla
Web Kaynakları use-org-setting Organizasyon ayarlarını kullanın. Medium Yükseltme hazırlığı
Web Kaynakları use-global-context Medium Yükseltme hazırlığı
Web Kaynakları use-grid-api Izgara API'lerini kullanın. Medium Yükseltme hazırlığı
Web Kaynakları use-utility-dialogs Medium Kullanım
Web Kaynakları avoid-isActivityType Xrm.Utility.isActivityType yöntemini yeni Xrm.Utility.gettableMetadata ile değiştirin ve şerit kurallarında kullanmayın. Medium Yükseltme hazırlığı
Web Kaynakları meta-avoid-silverlight Silverlight web kaynağı kullanımı kaldırıldı. Medium Yükseltme hazırlığı
Web Kaynakları remove-debug-script Geliştirme olmayan ortamlarda hata ayıklama komut dosyasını eklemeyin. Medium Kullanım
Web Kaynakları use-strict-mode Mümkünse katı modu kullanın. Medium Kullanım
Web Kaynakları use-strict-equality-operators Kesin eşitlik işleçleri kullanın. Medium Kullanım
Web Kaynakları avoid-eval eval işlevini veya işlev eşdeğerlerini kullanmayın. Kritik Güvenlik
Web Kaynakları ile kullanmaktan kaçının "ile" işlecini kullanmayın. Yüksek Performans
Web Kaynakları remove-alert "Alert" işlevini veya işlevsel eşdeğerlerini kullanmayın. Medium Kullanım
Web Kaynakları remove-console Konsolda yöntemleri kullanmaktan kaçının. Medium Kullanım
Web Kaynakları avoid-ui-refreshribbon Form onload ve EnableRule'da refreshRibbon kullanmaktan kaçının. Kritik Performans
Web Kaynakları use-getsecurityroleprivilegesinfo userSettings.securityRolePrivileges öğesini kullanmaktan kaçının. Bunun yerine userSettings.getSecurityRolePrivilegesInfo kullanın. Yüksek Performans
Web Kaynakları use-appsidepane-api Xrm.App.sidePanes.createPane instead of Xrm.Panels.loadPanel kullanın. Medium Yükseltme hazırlığı
Web Kaynakları web-sdl-no-cookies HTTP tanımlama bilgileri, devralınan riskler ve sınırlamalar içeren eski bir istemci tarafı depolama mekanizmasıdır. Bunun yerine Web Depolama, IndexedDB veya diğer modern yöntemler kullanın. Medium Güvenlik
Web Kaynakları web-sdl-no-document-domain same.origin denetimlerinin atlanmaması için document.domain özelliğine yazmaların gözden geçirilmesi gerekir. azurewebsites.net gibi üst düzey etki alanlarının kullanımı kesinlikle yasaktır. Medium Güvenlik
Web Kaynakları web-sdl-no-document-write document.write veya document.writeln çağrıları herhangi bir temizleme olmadan doğrudan DOM'u değiştirir ve bundan kaçınılmalıdır. Bunun yerine document.createElement() veya benzeri yöntemler kullanın. Medium Güvenlik
Web Kaynakları web-sdl-no-html-method html() metoduna yapılan doğrudan çağrılar (örneğin jQuery framework'ünde) genellikle herhangi bir temizleme işlemi yapılmadan DOM'u manipüle eder ve bundan kaçınılmalıdır. Bunun yerine document.createElement() veya benzeri yöntemler kullanın. Medium Güvenlik
Web Kaynakları web-sdl-no-inner-html innerHTML veya outerHTML özelliğine yapılan atamalar herhangi bir temizleme olmadan doğrudan DOM'u değiştirir ve bundan kaçınılmalıdır. Bunun yerine document.createElement() veya benzeri yöntemler kullanın. Medium Güvenlik
Web Kaynakları web-sdl-no-insecure-url Güvenilmeyen ağlar üzerinden potansiyel olarak hassas verilerin düz metin olarak gönderilmesini önlemek için, HTTP veya FTP gibi güvenli olmayan protokoller şifrelenmiş karşılıklarıyla (HTTPS, FTPS) değiştirilmelidir. Medium Güvenlik
Web Kaynakları web-sdl-no-msapp-exec-unsafe MSApp.execUnsafeLocalFunction() çağrıları betik ekleme doğrulamasını atlar ve bundan kaçınılmalıdır. Medium Güvenlik
Web Kaynakları web-sdl-no-postmessage-star-origin Güven sınırının dışında veri sızıntısı oluşmasını önlemek için postMessage kullanarak diğer pencerelere veri gönderirken her zaman belirli bir hedef kaynak sağlayın, * kullanmayın. Medium Güvenlik
Web Kaynakları web-sdl-no-winjs-html-unsafe WinJS.Utilities.setInnerHTMLUnsafe() ve benzeri yöntemlere yapılan çağrılar herhangi bir girdi doğrulaması gerçekleştirmez ve bundan kaçınılmalıdır. Bunun yerine WinJS.Utilities.setInnerHTML() kullanın. Medium Güvenlik
Tuval Uygulaması app-formula-issues-high Daha fazla ayrıntı için Power Apps formül referansına gidin. Kritik Tasarlama
Tuval Uygulaması app-formula-issues-medium Ek ayrıntılar için Power Apps formül başvurularına bakın. Medium Tasarla
Tuval Uygulaması app-formula-issues-low Ek ayrıntılar için Power Apps formül başvurularına bakın. Düşük Tasarla
Tuval Uygulaması app-use-delayoutput-text-input Performansı artırmak için bazı senaryolarda gecikmiş yükü kullanın. Medium Performans
Tuval Uygulaması app-reduce-screen-controls Gelişmiş performans için uygulama denetimlerinin sayısını sınırlayın. Medium Performans
Tuval Uygulaması app-include-accessible-label Uygulama erişilebilirliğini artırmak için açık etiketler kullanın. Medium Erişilebilirlik
Tuval Uygulaması app-include-alternative-input Tüm etkileşimli öğelerin alternatif girdiler için erişilebilir olduğundan emin olun. Medium Erişilebilirlik
Tuval Uygulaması app-avoid-autostart Uygulama içindeki oynatıcılarda otomatik başlatmayı kullanmaktan kaçının. Medium Erişilebilirlik
Masaüstü akışı desktopflow-avoid-unsafe-password Parolalar akışta güvenli olmayan bir şekilde yönetiliyor. Yüksek Güvenlik
Masaüstü akışı desktopflow-avoid-subflow-recursion İkincil akışlar arasında sonsuz döngüye neden olabilecek tekrarlanan çağrılar algılandı. Medium Tasarlama
Masaüstü akışı desktopflow-avoid-infinite-loop Akışta sonsuz döngü algılandı. Bu durum, akışın süresiz olarak çalışmasına neden olabilir. Medium Tasarlama
Masaüstü akışı desktopflow-avoid-incomplete-if-branch Tamamlanmamış "If" eylemi algılandı, içerik eksik veya yalnızca "Else" dalındaki eylemleri içeriyor. Düşük Tasarlama
Masaüstü akışı desktopflow-avoid-excessive-nested-ifs İç içe geçmiş If ifadeleri beş seviyeyi aşar. Düşük Devamlılık
Masaüstü akışı desktopflow-avoid-empty-on-error-block "Blokta hatası" eylemi boş ve hataları işlemiyor. Düşük Tasarlama
Masaüstü akışı desktopflow-limit-argument-count Toplam giriş/çıkış değişkenleri 25 değişken sınırını aşıyor. Düşük Devamlılık
Masaüstü akışı desktopflow-input-argument-default-value Giriş/çıkış değişkenleri, varsayılan değerleri kullanmıyor. Düşük Devamlılık
Masaüstü akışı desktopflow-limit-variable-name-length Değişken adı, 25 karakter sınırını aşıyor. Düşük Devamlılık
Masaüstü akışı desktopflow-avoid-excessive-wait-actions Bekleme eylemlerinin kötüye kullanıldığı tespit edildi; 10'dan fazla bekleme eylemi potansiyel darboğazlara neden oluyor. Düşük Performans
Masaüstü akışı desktopflow-avoid-immense-wait-duration Sabit kodlu bekleme eylemleri için 600 saniye sınırını aşan büyük bir bekleme süresi algılandı. Düşük Performans

Ayrıca bkz.

Dataverse için en iyi uygulamalar ve kılavuz
model temelli uygulamalar için en iyi uygulamalar ve kılavuz
Çözüm Denetleyicisi için yaygın sorunlar ve çözümleri