Aracılığıyla paylaş


Power Apps'teki App nesnesi

Şunlar için geçerlidir: Tuval uygulamaları Model temelli uygulamalar

Şu anda çalışan uygulamaya ilişkin bilgileri sunar ve uygulamanın davranışları üzerinde denetim sağlar.

Açıklama

Denetim gibi, Uygulama nesnesi hangi ekranın gösterildiğini belirleyen ve kullanıcıdan kaybolmayacakları şekilde değişiklikleri kaydetmesini isteyen özellikler sağlar. Her uygulamanın Uygulama nesnesi vardır.

Uygulama nesnesinin bazı özellikleri için formül yazabilirsiniz. Ağaç görünümü bölmesinin üst kısmında diğer denetimler veya ekranlar için yapacağınız gibi Uygulama nesnesini seçin. Nesnenin özelliklerinden birini formül çubuğunun solundaki açılan listede seçerek görüntüleyin ve düzenleyin.

Ağaç görünümü bölmesindeki Uygulama nesnesi.

ActiveScreen özelliği

ActiveScreen özelliği, gösterilen ekranı belirler.

Bu özellik bir ekran nesnesi döndürür. Bunu o anda görüntülenen ekranın örneğin App.ActiveScreen.Name formülünü içeren ad gibi özelliklerine başvurmak için kullanın. Ayrıca bu özelliği başka bir ekran nesnesiyle de karşılaştırabilirsiniz. Örneğin o anda görüntülenen ekranın Screen2 olduğunu test etmek için özelliği App.ActiveScreen = Screen2 formülüyle karşılaştırabilirsiniz.

Gösterilen ekranı değiştirmek için Back veya Navigate işlevini kullanın.

BackEnabled özelliği

BackEnabled özelliği, Power Apps mobilde çalışırken uygulamanın cihaz geri hareketine nasıl tepki vereceğini değiştirir (Android cihazlarda kaydırın veya donanım geri düğmesini kullanın, iOS cihazlarda soldan kaydırın). Etkinleştirildiğinde, cihaz geri hareketi en son görüntülenen ekrana geri döner, bu Geri formülüne benzer. Devre dışı bırakıldığında cihazın geri hareketi kullanıcıyı uygulama listesine döndürür.

ConfirmExit özellikleri

Kaydedilmemiş değişiklikleri kaybetmeyi kimse istemez. Uygulamanızı kapatmalarından önce kullanıcıları uyarmak için ConfirmExit ve ConfirmExitMessage özelliklerini kullanın.

Not

  • ConfirmExit işlevi, katıştırılan uygulamalarda, örneğin Power BI ve SharePoint'te çalışmaz.
  • Şu an için bu özellikler için yalnızca (yeni uygulamalar için varsayılan olan) Gecikmeli yükleme önizleme özelliği etkinleştirilirse ilk ekrandaki denetimlere başvurulabilir. Başvurular yapılırsa Power Apps Studio hata göstermez ancak sonuçta yayımlanan uygulama, Power Apps Mobile'da veya bir tarayıcıda açılmaz. Bu sınırlamayı kaldırmak için yoğun şekilde çalışıyoruz. Bu sırada, Gecikmeli yük'ü etkinleştirmek için Ayarlar>Yaklaşan özellikler'e (Önizleme altında) gidebilirsiniz.

ConfirmExit

ConfirmExit, doğru olduğunda uygulama kapatılmadan önce onay iletişim kutusu açan bir Boole özelliğidir. Varsayılan olarak bu özellik yanlış'tır ve iletişim kutusu görüntülenmez.

Uygulamada kaydedilmemiş değişikliklerin olduğu durumlarda, uygulamadan çıkmadan önce bir onay kutusu göstermek için bu özelliği kullanabilirsiniz. Değişkenleri ve denetim özelliklerini kontrol edebilecek bir formül kullanın (örneğin, Edit form denetiminin Unsaved özelliği).

Aşağıdaki örneklerde olduğu gibi verilerin kaybolabileceği durumlarda onay iletişim kutusu görüntülenir:

  • Exit işlevini çalıştırmak.
  • Uygulama bir tarayıcıda çalışıyorsa:
    • Uygulamanın çalıştığı tarayıcıyı veya tarayıcı sekmesini kapatmak.
    • Tarayıcının geri düğmesini seçmek.
    • Self özellikli LaunchTarget ile Launch işlevini çalıştırmak.
  • Uygulama Power Apps Mobile'da (iOS veya Android) çalışıyorsa:
    • Power Apps Mobile'da başka uygulamaya geçmek için kaydırmak.
    • Android cihazda geri düğmesini seçmek.
    • Başka bir tuval uygulamasını başlatmak için Launch işlevini çalıştırmak.

Onay iletişim kutusunun tam görünümü, cihazlar ve Power Apps sürümleri arasında değişiklik gösterebilir.

Onay iletişim kutusu, Power Apps Studio'da görüntülenmez.

ConfirmExitMessage

Varsayılan olarak onay iletişim kutusunda kullanıcının dilinde, "Kaydedilmemiş değişiklikleriniz olabilir." gibi

Onay iletişim kutusunda özel bir ileti sağlamak için ConfirmExitMessage işlevini kullanın. Bu özellik boş ise varsayılan değer kullanılır. Özel iletiler, onay iletişim kutusu içine sığması gerektiğinden kesilir, bu nedenle iletiyi en fazla birkaç satır olarak tutun.

Tarayıcıda, onay iletişim kutusu, tarayıcıdaki genel bir iletiyle görüntülenebilir.

Not

Uygulama nesnesinde deneysel olan iki özellik vardır: OnMessage ve BackEnabled. Bu özellikler uygulama nesnesinden kaldırılacaktır. Bu özellikleri üretim ortamınızda kullanmamanızı öneririz.

Örnek

  1. İki form denetimini (AccountForm ve ContactForm) içeren bir uygulama oluşturun.

  2. Uygulama nesnesinin ConfirmExit özelliğini bu ifade olarak ayarlayın:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    Bu iletişim kutusu, kullanıcı iki formdaki verileri değiştirirse ve ardından değişiklikleri kaydetmeden uygulamayı kapatmaya çalışırsa görüntülenir.

    Genel onay iletişim kutusu.

  3. Uygulama nesnesinin ConfirmExitMessage özelliğini şu formül olarak ayarlayın:

    If( AccountsForm.Unsaved,
        "Accounts form has unsaved changes.",
        "Contacts form has unsaved changes."
    )
    

    Bu iletişim kutusu, kullanıcı Firma formundaki verileri değiştirirse ve ardından değişiklikleri kaydetmeden uygulamayı kapatmaya çalışırsa görünür.

    Forma özel onay iletişim kutusu.

Application Insights için Enstrümantasyon Anahtarını Ayarla

Sistem tarafından oluşturulan uygulama günlüklerini Application Insights uygulamasına vermek için tuval uygulamanız için izleme anahtarını ayarlamanız gerekir.

  1. Uygulamanızı Power Apps Studio'da düzenleme için açın.
  2. Sol gezinti ağaç görünümünde Uygulama nesnesini seçin.
  3. Özellikler bölmesine izleme anahtarını girin.

Veriler Uygulama Öngörülerine gönderilmezse Power Platform yöneticisine ulaşın ve kiracı düzeyinde Uygulama Öngörülerinin devre dışı bırakılıp bırakılmadığını doğrulayın.

Formüller özelliği

Uygulamanızda yeniden kullanılabilecek bir formül tanımlamak için Formüller özelliğindeki adlandırılmış formülleri kullanın.

Power Apps içinde formüller kontrol özelliklerinin değerini belirler. Örneğin, bir uygulamada arka plan rengini tutarlı bir şekilde ayarlamak için her birinin Doldur özelliğini ortak bir formüle ayarlayabilirsiniz:

Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )

Bu formül pek çok yerde karşınıza çıkacağından, bir değişiklik gerektiğinde tümünü güncelleştirmek zahmetli ve hata olasılığını artıran bir işlemdir. Bunun yerine, rengi bir kez ayarlamak için OnStart'taki bir genel değişken oluşturup bütün uygulamada bu değeri yeniden kullanabilirsiniz:

App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

Bu yöntem daha iyi olsa da OnStart'ın BGColor değeri kurulmadan önce çalışmasına bağlıdır. BGColor kullanıcı farkında olmadan, uygulamanın bir bölümünde başkası tarafından değiştirilebilir ve bu değişikliği takip etmek zor olabilir.

Adlandırılmış formüller bir alternatif sunar. Genellikle yazdığımız control-property = expression yerine, name = expression yazıp uygulama içinde name öğesini expression olan alanlarda tekrar kullanabiliriz. Bu formüllerin tanımları, Formüller özelliğinde yapılır:

App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

Adlandırılmış formülleri kullanmanın yararları şunlardır:

  • Formülün değeri her zaman kullanılabilir. Zamanlamaya bağımlılık, değer ayarlanmadan önce çalıştırılması gereken bir OnStart ya da formül değerinin yanlış olduğu bir zaman yoktur. Adlandırılmış formüller, bir döngüsel başvuru oluşturmadıkları sürece herhangi bir sırayla birbirine başvurabilirler. Adlandırılmış formüller paralel olarak hesaplanabilir.
  • Formülün değeri her zaman günceldir. Formül, denetim özelliklerine veya veritabanı kayıtlarına bağımlı bir hesaplama yapabilir. Bu özellikler ya da kayıtlar değiştiğinde, formülün değeri otomatik olarak güncelleştirilir. Değeri, değişkende olduğu gibi el ile güncelleştirmeniz gerekmez. Ayrıca, formüller yalnızca gerektiğinde yeniden hesaplama yapar.
  • Formülün tanımı sabittir. Formüller altındaki tanım tek doğru kaynağıdır ve değer uygulama içinde başka bir yerden değiştirilemez. Değişkenlerle, bazı kodların beklenmedik şekilde bir değeri değiştirmesi mümkündür, ancak bu hata ayıklaması zor durum, adlandırılmış formüllerle mümkün değildir.
  • Formülün hesaplaması ertelenebilir. Değeri sabit olduğundan, gerektiğinde her zaman hesaplanabilir ve bu da gerektiğinde hesaplanmaması gerektiği anlamına gelir. Bir uygulamanın screen2 ekranı görünene kadar kullanılmayan formül değerlerinin screen2 görüntülenene kadar hesaplanmasına gerek olmaz. Bu işin ertelenmesi, uygulamanın yükleme süresini iyileştirebilir. Adlandırılmış formüller bildirim temellidir ve sistemin hesaplama zamanı ve yöntemini en iyi duruma getirmesi için fırsatlar sunar.
  • Adlandırılmış formüller bir Excel kavramıdır. Pek çok kişi Excel kullandığından, Power Fx uygun olduğunda Excel kavramlarını kullanır. Adlandırılmış formüller Excel'deki adlandırılmış hücrelerin ve Ad Yöneticisi ile yönetilen adlandırılmış formüllerin eşdeğeridir. Bir elektronik tablonun hücreleri gibi otomatik olarak yeniden hesaplama yaparlar ve özellikleri kontrol ederler.

Adlandırılmış formüller Formüller özelliğinde art arda ve her biri noktalı virgülle bitecek şekilde tanımlanır. Formülün türü, formül içindeki öğelerin türlerinden ve bunların birlikte nasıl kullanıldığından çıkarılır. Örneğin, aşağıdaki adlandırılmış formüller Dataverse'teki geçerli kullanıcı hakkında yararlı bilgiler alır:

UserEmail = User().Email;
UserInfo = LookUp( Users, 'Primary Email' = User().Email );
UserTitle = UserInfo.Title;
UserPhone = Switch( UserInfo.'Preferred Phone', 
                    'Preferred Phone (Users)'.'Mobile Phone', UserInfo.'Mobile Phone',
                    UserInfo.'Main Phone' );

UserTitle formülünün güncelleştirilmesi gerekiyorsa, bu işlem tek bir konumda kolayca yapılabilir. Uygulamada UserPhone ayrıntısı gerekli değilse, Dataverse'teki Kullanıcılar tablosuna bu çağrı yapılmaz. Kullanılmayan bir formül için tanım eklemenin herhangi bir sakıncası yoktur.

Adlandırılmış formüller için geçerli olan bazı sınırlamalar şunlardır:

  • Davranış işlevlerini kullanamazlar. Aksi halde, uygulama içinde yan etkilere neden olurlar.
  • Döngüsel başvuru oluşturamazlar. Aynı uygulamada a = b ve b = a kullanılmasına izin verilmez.

Kullanıcı tarafından tanımlanan işlevler

Önemli

Power Fx, If, Text ve Set gibi yerleşik işlevlerin uzun bir listesini içerir. Kullanıcı tanımlı işlevler, yerleşik işlevlerin yaptığı gibi, parametreleri alan ve bir değer döndüren kendi işlevlerinizi yazmanıza olanak tanır. Kullanıcı tanımlı işlevleri, parametreler ekleyen ve davranış formüllerini destekleyen, adlandırılmış formüllerin bir uzantısı olarak düşünebilirsiniz.

Örneğin, bir kitaplıktan kurgu kitapları döndüren adlandırılmış bir formül tanımlayabilirsiniz:

Library = [ { Title: "The Hobbit", Author: "J. R. R. Tolkien", Genre: "Fiction" },
            { Title: "Oxford English Dictionary", Author: "Oxford University", Genre: "Reference" } ];

LibraryFiction = Filter( Library, Genre = "Fiction" );

Parametreler olmadan, her tür için ayrı adlandırılmış formüller tanımlamamız gerekir. Ancak bunun yerine, adlandırılmış formülümüzü parametreleştirelim:

LibraryType := Type( [ { Title: Text, Author: Text, Genre: Text } ] );

LibraryGenre( SelectedGenre: Text ): LibraryType = Filter( Library, Genre = SelectedGenre );

Artık tek bir kullanıcı tanımlı fonksiyonla LibraryGenre( "Fiction" ), LibraryGenre( "Reference" ) diyebilir veya diğer türlere göre filtreleme yapabiliriz.

Sözdizimi şöyledir:

FunctionName( [ ParameterName1: ParameterType1 [ , ParameterName2: ParameterType2 ... ] ] ) : ReturnType = Formula;

  • FunctionName – Zorunlu. Kullanıcı tarafından tanımlanan fonksiyonun adı.
  • ParametreAdları: İsteğe bağlı. İşlev parametresinin adı.
  • ParameterType(s) – İsteğe bağlı. Bir türün adı, yerleşik veri türü adı, bir veri kaynağı adı veya Tür işleviyle tanımlanan bir tür.
  • ReturnType – Gerekli. İşlevden döndürülen değerin türü.
  • Formül: Gerekli. Parametrelere göre işlevin değerini hesaplayan formül.

Her parametre ve kullanıcı tanımlı fonksiyondan gelen çıktı mutlaka yazılmalıdır. Bu örnekte, SelectedGenre: Text fonksiyonumuzun ilk parametresinin Metin türünde olduğunu tanımlar ve SelectedGenreFiltre işlemi için gövdede kullanılan parametrenin adıdır. Desteklenen tür adları için Veri türleri'ne bakın. Tür fonksiyonu, kütüphanemiz için bir toplu tür oluşturmak için kullanılır, böylece fonksiyonumuzdan bir kitap tablosu döndürebiliriz.

LibraryType'i kayıt tipinin çoğul tablosu olarak tanımladık. Tek bir kitabı bir fonksiyona geçirmek istiyorsak, bu tablonun kaydının türünü RecordOf fonksiyonuyla çıkarabiliriz:

BookType := Type( RecordOf( LibraryType ) );

IsGenre( Book: BookType, SelectedGenre: Text ): Boolean = (Book.Genre = SelectedGenre);

Fonksiyon parametreleri için kayıt eşleşmesi Power Fx'in diğer kısımlarına göre daha sıkıdır. Kayıt değerinin alanları, tür tanımının uygun bir alt kümesi olmalıdır ve ek alanlar içeremez. Örneğin IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" ), bir hataya yol açacaktır.

Özyinelemenin henüz kullanıcı tanımlı işlevler tarafından desteklenmediğini unutmayın.

Davranış kullanıcı tanımlı işlevler

Adlandırılmış formüller ve çoğu kullanıcı tanımlı fonksiyon, Ayarla veya Bildir gibi yan etkileri olan davranış fonksiyonlarını desteklemez. Genel olarak, mümkünse durum güncellemesinden kaçınmak, bunun yerine fonksiyonel programlama kalıplarına güvenmek ve Power Fx'in formülleri gerektiği gibi otomatik olarak yeniden hesaplamasına izin vermek en iyisidir. Ancak, bunun kaçınılmaz olduğu durumlar vardır. Davranış mantığını kullanıcı tanımlı bir işleve dahil etmek için gövdeyi küme parantezleriyle sarın:

Spend( Amount: Number ) : Void = {
    If( Amount > Savings, 
        Error( $"{Amount} is more than available savings" ),
        Set( Savings, Savings - Amount );
        Set( Spent, Spent + Amount) 
    );
}

Şimdi Tasarruflarımızda 12 olup olmadığını kontrol etmek için Spend( 12 )'i çağırabiliriz ve eğer varsa 12'yi borçlandırabilir ve Harcanan değişkenine 12 ekleyebiliriz. Bu fonksiyonun dönüş türü Geçersiz'dir çünkü bir değer döndürmez.

Davranış kullanıcı tanımlı bir işlevin sözdizimi şöyledir:

FunctionName( [ ParameterName1: ParameterType1 [ , ParameterName2: ParameterType2 ... ] ] ) : ReturnType = { Formula1 [ ; Formula2 ... ] };

  • FunctionName – Zorunlu. Kullanıcı tarafından tanımlanan fonksiyonun adı.
  • ParametreAdları: İsteğe bağlı. İşlev parametresinin adı.
  • ParameterType(s) – İsteğe bağlı. Bir türün adı, yerleşik veri türü adı, bir veri kaynağı adı veya Tür işleviyle tanımlanan bir tür olabilir.
  • ReturnType – Gerekli. İşlevden döndürülen değerin türü. Fonksiyon bir değer döndürmüyorsa Geçersiz kullanın.
  • Formül(ler) – Gerekli. Parametrelere göre işlevin değerini hesaplayan formül.

Tüm Power Fx formüllerinde olduğu gibi, bir hatayla karşılaşıldığında yürütme sona ermez. Error fonksiyonu çağrıldıktan sonra, If fonksiyonuSavements ve Spent'te değişikliklerin gerçekleşmesini engeller. IfError fonksiyonu ayrıca bir hatadan sonra daha fazla yürütmeyi önlemek için de kullanılabilir. Geçersiz döndürse bile, bir sorun varsa formül yine de hata döndürebilir.

Kullanıcı tanımlı türler

Önemli

Adlandırılmış formüller, kullanıcı tanımlı türler oluşturmak için Tür işleviyle birlikte kullanılabilir. Kullanıcı tanımlı bir türü tanımlamak için = yerine := kullanın, örneğin Book := Type( { Title: Text, Author: Text } ). Daha fazla bilgi ve örnek için Tür fonksiyonuna bakın.

OnError özelliği

Uygulamanın herhangi bir yerinde bir hata oluştuğunda işlem yapmak için OnError'ı kullanın. Son kullanıcıya görüntülenmeden önce hata başlıklarına müdahale etmek için genel bir fırsat sunar. Hataların Trace işlevi ile günlüğe kaydedilmesi veya veritabanına ya da web hizmetine yazılması için de kullanılabilir.

Tuval uygulamalarında her formül değerlendirmesinin sonucunda hata olup olmadığı kontrol edilir. Bir hatayla karşılaşıldığında, OnError, formülün tamamı bir IfError işlevine sarılmış olsaydı kullanılacak olan aynı FirstError ve AllErrors kapsam değişkenleriyle değerlendirilir.

OnError boş ise hatanın FirstError.Message değeri ile varsayılan bir hata başlığı gösterilir. OnError formülünün tanımlanması, geliştiricinin hata raporlamasını uygun görülen şekilde yönetmesine olanak tanıyarak bu davranışı geçersiz kılar. Varsayılan davranış, hatanın Error işlevi ile yeniden oluşturulması ile OnError'da istenebilir. Bazı hataların filtrelenmesi veya farklı bir şekilde işlenmesi, bazılarının ise geçirilmesi gerekiyorsa yeniden atma yaklaşımını kullanın.

OnError, hesaplamalardaki hataları IfError gibi değiştiremez. OnError çağrılırsa, hata zaten oluşmuştur ve IfError gibi formül hesaplamaları yoluyla zaten işlenmiştir; OnError yalnızca hata raporlamasını kontrol eder.

OnError formülleri, eş zamanlı olarak değerlendirildiğinden bu değerlendirmenin diğer hataların işlenmesiyle çakışması mümkündür. Örneğin, genel bir değişkeni OnError'ın üst düzeyinde ayarlarsanız ve sonrasında aynı formül üzerinde okursanız değer değişmiş olabilir. Formülde yerel bir adlandırılmış değer oluşturmak için With işlevini kullanın.

OnError ile her hata tek başına işlense de varsayılan hata başlığı, her bir hatada görünmeyebilir. Aynı anda çok fazla hata başlığının görüntülenmesini önlemek için, yakın zamanda gösterilmiş olan aynı hata başlığı tekrar görüntülenmeyecektir.

Örnek

Label denetimi ve Slider denetiminin formül ile birleştirildiğini varsayalım.

Label1.Text = 1/Slider1.Value

Label1.Text = 1/Slider1.Value formülüyle birleştirilmiş label ve slider denetimleri.

Slider denetimi için varsayılan olarak 50 değeri kullanılır. Slider denetimi 0'a kaydırılırsa Label1, bir değer göstermez ve bir hata başlığı gösterilir:

Slider denetiminin 0'a getirilmesiyle sıfıra bölme hatası oluşuyor ve hata başlığı gösteriliyor.

Neler olduğunu ayrıntılı olarak görelim:

  1. Kullanıcı, kaydırıcıyı sola kaydırdı ve Slide1.Value özelliği 0 olarak değişti.
  2. Label1.Text, otomatik olarak yeniden değerlendirildi. Sıfıra bölme sonucunda hata oluştu.
  3. Bu formülde IfError yoktur. Sıfıra bölme hatası, formül değerlendirmesi tarafından döndürülür.
  4. Label1.Text, bu hata için herhangi bir şey gösteremediğinden boş olarak görünür.
  5. OnError çağrılır. İşleyici olmadığı için standart hata başlığı, hata bilgileriyle birlikte görüntülenir.

Gerekirse, formülü Label1.Text = IfError( 1/Slider1.Value, 0 ) olarak da değiştirebiliriz. IfError komutunun kullanılması hiçbir hataya veya hata başlığına neden olmaz. Bu noktada hata çoktan oluştuğu için hata değerini OnError dışında bir değere değiştiremeyiz. Yalnızca hatanın nasıl raporlanacağına bakabiliriz.

OnError işleyicisi eklersek, 5. adımdan önce bir etkisi olmaz, ancak hatanın nasıl bildirildiğini etkileyebilir:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" )

İzleme oluşturmak için ayarlanmış App.OnError formülü.

Bu OnError işleyicisi yerinde olduğunda, uygulama kullanıcısı açısından herhangi bir hata olmayacaktır. Ancak hata, FirstError'dan gelen hata bilgisinin kaynağıyla birlikte Monitörün izine eklenecektir:

Slider denetimi 0'a getirildiğinde sıfıra bölme hatası oluşuyor ancak hata başlığı görünmüyor.

İzlemeye ek olarak aynı varsayılan hata başlığının da görüntülenmesini isteseydik hatayı, İzleme çağrısı yokmuş gibi İzleme çağrısından sonra Error işlevi ile tekrar oluşturabilirdik.

Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )

OnStart özelliği

Not

OnStart özelliğinin kullanılması, uygulama yüklenirken performans sorunlarına neden olabilir. Özelliği önbelleğe alma verilerini kullanmanın ve genel değişkenleri ayarlamanın en önemli iki nedeni için alternatifler oluşturma sürecindeyiz. Navigate işleviyle gösterilecek ilk ekranı tanımlamak için zaten bir alternatif oluşturduk. Bağlamınıza bağlı olarak, bu özellik varsayılan olarak devre dışı bırakılmış olabilir. Bunu görmüyorsanız ve kullanmanız gerekiyorsa etkinleştirmek için uygulamanın Gelişmiş ayarlarını kontrol edin. Ekranın OnVisible özelliği de kullanılabilir. Varsayılan olarak, engelleyici olmayan OnStart kuralı etkinleştirildiğinde, OnStart işlevinin diğer uygulama kurallarıyla aynı anda çalışmasına izin verir. Bu nedenle, diğer uygulama kurallarında başvurulan değişkenler OnStart işlevi içinde başlatılırsa, henüz tam olarak başlatılmamış olabilirler. Buna ek olarak, özellikle de tamamlanması uzun sürerse, Screen.OnVisible veya App.OnStart işlevlerinin yürütülmesi tamamlanmadan önce bir ekranın işlenmesi ve etkileşimli hale gelmesi olasılığı vardır.

OnStart özelliği, kullanıcı uygulamayı başlattığında çalışır. Bu özellik genellikle aşağıdaki görevleri gerçekleştirmek için kullanılır:

  • Collect işlevini kullanarak verileri koleksiyonlara almak ve önbelleğe almak.
  • Set işlevini kullanarak genel değişkenler ayarlamak.

Bu formül, ilk ekran görüntülenmeden önce değerlendirilir. Hiçbir ekran yüklenmez, bu nedenle bağlam değişkenlerini UpdateContext işleviyle ayarlayamazsınız. Ancak Navigate işleviyle bağlam değişkenlerini geçirebilirsiniz.

OnStart özelliğini değiştirdikten sonra, Ağaç görünümü bölmesindeki Ekle nesnesinin üzerine gelip üç nokta (...) ve ardından OnStart'ı çalıştır seçeneğini belirleyerek test edin. Uygulamanın ilk kez yüklenmesinden farklı olarak mevcut koleksiyonlar ve değişkenler zaten ayarlanacaktır. Boş koleksiyonlarla başlamak için Collect işlevi yerine ClearCollect işlevini kullanın.

OnStart'ı Çalıştır için uygulama-öğe kısayol menüsü

Not

  • OnStart özelliğinde kullanılan Navigate işlevi kullanımdan kaldırıldı. Mevcut uygulamalar çalışmaya devam eder. Sınırlı bir süre için yine de Kullanım Dışı Bırakıldı altında bulunan uygulama ayarlarından etkinleştirebilirsiniz. Ancak Git işlevinin bu şekilde kullanılması, sistemi ilk ekranı görüntülemeden önce OnStart değerlendirmesini tamamlamaya zorladığı için uygulama yükleme gecikmelerine neden olabilir. Görüntülenen ilk ekranı hesaplamak yerine StartScreen özelliğini kullanın.
  • Mart 2021'den bu yana Navigate'i OnStart'a eklediğiniz ve Mart 2021'den önce oluşturulan uygulamalar için kullanımdan kaldırılan anahtar kapalı olacaktır. Bu tür uygulamaları Power Apps Studio'da düzenlediğinizde bir hata görebilirsiniz. Bu hatayı gidermek için emekliye ayrılmış anahtarı tekrar açın.

StartScreen özelliği

StartScreen özelliği önce hangi ekranın görüntüleneceğini belirler. Uygulama yüklendiğinde bir kez değerlendirilir ve görüntülenecek ekran nesnesini döndürür. Varsayılan olarak bu özellik boştur ve Studio Ağaç görünümündeki ilk ekran önce gösterilir.

StartScreen, davranış işlevlerini içeremeyen bir veri akışı özelliğidir. Tüm veri akışı işlevleri kullanılabilir. Özellikle ilk önce hangi ekranın gösterileceğini belirlemek için bu işlevleri ve sinyalleri kullanın:

  • Uygulamayı başlatmak üzere kullanılan parametreleri okumak için Param işlevi.
  • Geçerli kullanıcı hakkındaki bilgileri okumak için User işlevi.
  • LookUp, Filter, CountRows, Max ve bir veri kaynağından okuyan diğer işlevler.
  • Bağlayıcı aracılığıyla herhangi bir API çağrısı, ancak hızlı bir şekilde dönmesine dikkat edin.
  • Bağlantı, Pusula ve Uygulama gibi sinyaller.

Not

OnStart işlevinde oluşturulanlar da dahil olmak üzere genel değişkenler ve koleksiyonlar StartScreen özelliğinde kullanılamaz. Adlandırılmış formüller mevcuttur ve genellikle uygulama genelinde formüllerin yeniden kullanımı için daha iyi bir alternatiftir.

StartScreen bir hata döndürürse, Stüdyo Ağacı görünümündeki ilk ekran, StartScreen ayarlanmamış gibi gösterilecektir. Hataları yakalamak ve uygun bir hata ekranına yönlendirmek için IfError işlevini kullanın.

Studio'da StartScreen seçeneğini değiştirdikten sonra, Ağaç görünümü bölmesinde Uygulama nesnesinin üzerine gelindiğinde üç noktayı (...) ve ardından StartScreen'e git'i seçerek test edin. Ekran, uygulama yeni yüklenmiş gibi değişecektir.

StartScreen'e git

Örnekler

Screen9

Uygulama başlatıldığında ilk olarak Screen9 gösterilmesi gerektiğini belirtir.

If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )

Kullanıcı tarafından "admin-mode" parametresinin ayarlanıp ayarlanmadığını kontrol eder ve önce HomeScreen veya AdminScreen ile görüntülenmesi gerektiğine karar vermek için bunu kullanır.

If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )

Konferansa katılanın personel üyesi olup olmadığını kontrol eder ve başlangıçta onları uygun ekrana yönlendirir.

IfError( If( CustomConnector.APICall() = "Forest", 
             ForestScreen, 
             OceanScreen 
         ), 
         ErrorScreen 
)

Uygulamayı API çağrısına göre ForestScreen veya OceanScreen'e yönlendirir. API herhangi nedenle başarısız olursa bunun yerine ErrorScreen kullanılır.

StudioVersion özelliği

Bir uygulamayı yayımlamak için kullanılan Power Apps Studio sürümünü görüntülemek veya günlüğe kaydetmek için StudioVersion özelliğini kullanın. Bu, hata ayıklama sırasında ve yeni bir Power Apps Studio sürümüyle yeniden yayımlandığından emin olmak için yararlı olabilir.

StudioVersion metin olarak döndürülür. Metnin biçimi zaman içinde değişebilir ve bir bütün olarak ele alınmalıdır. Bölümleri ayrı ayrı ayıklamaktan kaçının.