Aracılığıyla paylaş


Power Apps'teki App nesnesi

Şunun için geçerlidir: Tuval uygulamaları

Şu anda çalışan uygulama hakkında bilgi alın ve uygulamanın davranışını denetleyin.

Açıklama

Bir denetim gibi , Uygulama nesnesi de hangi ekranın gösterildiğini tanımlayan özelliklere sahiptir ve kaybolmamaları için değişiklikleri kaydetmenizi ister. Her uygulamanın Uygulama nesnesi vardır.

Uygulama nesnesinin bazı özellikleri için formüller yazın. 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 görüntülemek veya düzenlemek için, formül çubuğunun sol kısmındaki açılan listeden seçin.

Ağaç görünümü bölmesinde seçilen Uygulama nesnesinin ekran görüntüsü. Özellikler bölmesi görünür.

ActiveScreen özelliği

ActiveScreen özelliği, şu anda görüntülenen ekranı tanımlar.

Bu özellik bir ekran nesnesi döndürür. Formül App.ActiveScreen.Name olan ad gibi geçerli ekranın özelliklerine başvurmak için bunu kullanın. Ayrıca bu özelliği app.ActiveScreen = Screen2 karşılaştırma formülüyle olduğu gibi başka bir ekran nesnesiyle karşılaştırarak Ekran2'nin geçerli ekran olup olmadığını de kontrol edebilirsiniz.

Görüntülenen ekranı değiştirmek için Geri veya Navigate işlevini kullanın.

BackEnabled özelliği

BackEnabled özelliği, Power Apps mobile'da çalışırken uygulamanın cihaz geri hareketine yanıt verme şeklini değiştirir (Android cihazlarda donanım geri düğmesini çekin veya kullanın ya da iOS cihazlarında soldan çekin). Etkinleştirildiğinde, cihaz geri hareketi en son gösterilen ve Geri formülüne benzeyen ekrana geri döner. Devre dışı bırakıldığında cihaz geri hareketi kullanıcıyı uygulama listesine götürür.

ConfirmExit özellikleri

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

Not

  • ConfirmExit , Power BI ve SharePoint gibi eklenmiş uygulamalarda çalışmaz.
  • ConfirmExit özel sayfalarda desteklenmez.
  • Artık bu özellikler yalnızca Gecikmeli yük önizleme özelliği etkinse (yeni uygulamalar için varsayılan olarak budur) ilk ekranda denetimlere başvurabilir. Diğer ekranlara başvurursanız Power Apps Studio bir hata göstermez, ancak yayımlanan uygulama Power Apps Mobile'da veya tarayıcıda açılmaz. Bu sınırlamayı kaldırmak için çalışıyoruz. Bu arada, Ayarlar> bölümünde (Önizleme altında) Gecikmeli yüklemeyi kapatın.

ConfirmExit

ConfirmExit , true olduğunda uygulama kapanmadan önce bir 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.

Kullanıcı uygulamada kaydedilmemiş değişikliklere sahip olabileceğinde, uygulamadan çıkmadan önce onay iletişim kutusunu göstermek için bu özelliği kullanın. Değişkenleri ve denetim özelliklerini denetleyen bir formül kullanın (örneğin, Düzenleme formu denetiminin Kaydedilmemiş özelliği).

Onay iletişim kutusu, verilerin kaybolabileceği herhangi bir durumda görüntülenir, örneğin:

  • Exit işlevini çalıştırın.
  • Uygulama bir tarayıcıda çalışıyorsa:
    • Uygulamanın çalıştığı tarayıcıyı veya tarayıcı sekmesini kapatın.
    • Tarayıcının geri düğmesini seçin.
    • Launch işlevini LaunchTarget of Self ile çalıştırın.
  • Uygulama Power Apps Mobile'da (iOS veya Android) çalışıyorsa:
    • Power Apps Mobile'da farklı bir uygulamaya geçmek için çekin.
    • Android cihazında geri düğmesini seçin.
    • Başka bir tuval uygulaması başlatmak için Launch işlevini çalıştırın.

Onay iletişim kutusunun tam görünümü, cihazlar ve Power Apps sürümleri arasında farklılık gösterebilir.

Onay iletişim kutusu Power Apps Studio'da gösterilmez.

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 kutusuna sığması için gerektiğinde kesilir, bu nedenle iletiyi en fazla birkaç satırda tutun.

Tarayıcıda, onay iletişim kutusu tarayıcıdan genel bir ileti gösterebilir.

Not

App nesnesinin deneysel olan ve OnMessageiki özelliği BackEnabled daha vardır. Bu özellikler sonunda uygulama nesnesinden kaldırılır. Bu özellikleri üretim ortamınızda kullanmayın.

Örnek

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

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    İletişim kutusu, kullanıcının verileri herhangi bir biçimde değiştirip değiştirmediğini gösterir ve sonra bu değişiklikleri kaydetmeden uygulamayı kapatmayı dener.e kullanıcı verileri her iki biçimde de değiştirir ve sonra bu değişiklikleri kaydetmeden uygulamayı kapatmaya çalışır.

    [!div clas1. Uygulama nesnesinin ConfirmExitMessage özelliğini şu formül olarak ayarlayın:

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

    İletişim kutusu, kullanıcının Hesap formundaki verileri değiştirip değiştirmediğini gösterir ve ardından bu değişiklikleri kaydetmeden uygulamayı kapatmaya çalışır.

    Forma özel onay iletişim kutusu.

Application Insights için bağlantı dizesi ayarlama

Sistem tarafından oluşturulan uygulama günlüklerini Application Insights'a aktarmak için tuval uygulamanızın Bağlantı dizesini ayarlayın.

  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 Bağlantı dizesini girin.

Veriler Application Insights'a gönderilmediyse Power Platform yöneticinize başvurun ve App Insights'ın kiracı düzeyinde devre dışı bırakılıp bırakılmadığından denetleyin.

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

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 = Formülü;

  • 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 [ ; Formül2 ... ] };

  • 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şsa, varsayılan bir hata başlığı hatanın FirstError.Message değerini gösterir. Bir OnError formülü tanımlamak bu davranışı geçersiz kılar, böylece oluşturucu hata bildirimini gerektiği gibi işleyebilir. Hata işleviyle hatayı yeniden seçerek OnError'da varsayılan davranışı isteyebilirsiniz. Bazı hataları farklı şekilde filtrelemek veya işlemek, ancak başkalarının geçmesine izin vermek istiyorsanız yeniden oluşturma 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ğerlendirilir ve değerlendirmeleri diğer hataların işlenmesiyle çakışabilir. Örneğin, bir OnError öğesinin en üstünde bir genel değişken ayarlar ve daha sonra aynı formülde 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.

Her hata OnError tarafından ayrı ayrı işlense de, varsayılan hata başlığı her hata için ayrı ayrı 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ştirebilirsiniz. IfError kullanmak hata veya hata başlığı olmadığı anlamına gelir. Hata zaten oluştuğundan OnError hatasının değerini değiştiremezsiniz; OnError yalnızca nasıl bildireceğini denetler.

Bir OnError işleyicisi eklerseniz, 5. adımdan önceki adımları etkilemez, ancak hatanın bildirildiği şekli değiştirir:

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

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

Bu OnError işleyicisi ile uygulama kullanıcısı herhangi bir hata görmez. Ancak hata, FirstError'daki hata bilgilerinin kaynağı da dahil olmak üzere İzleyici'nin izlemesine eklenir:

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

İzlemeyle birlikte varsayılan hata başlığını da göstermek istiyorsanız, İzleme çağrısından sonra Hata işleviyle hatayı, İzleme orada değilmiş gibi yeniden yazın:

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. Bu özelliği kullanmak için ilk iki nedenden dolayı alternatifler oluşturuyoruz: verileri önbelleğe alma ve genel değişkenleri ayarlama. Navigate ile gösterilecek ilk ekranı tanımlamak için zaten bir alternatif vardır. Bağlamınıza bağlı olarak, bu özellik varsayılan olarak devre dışı bırakılabilir. Bunu görmüyorsanız ve kullanmanız gerekiyorsa, etkinleştirmek için uygulamanın Gelişmiş ayarlarına bakın. Ekranın OnVisible özelliğini de kullanabilirsiniz. Varsayılan olarak, engellenmeyen 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şvuruda bulunılan değişkenler OnStart işlevi içinde başlatılırsa, bunlar henüz tam olarak başlatılmamış olabilir. Ayrıca, screen.OnVisible veya App.OnStart işlevlerinin çalışması tamamlanmadan önce, özellikle de tamamlanması uzun sürüyorsa bir ekran işlenebilir ve etkileşimli hale gelebilir.

OnStart özelliği, kullanıcı uygulamayı başlattığında çalışır. Bu özellik genellikle şunu yapmak için kullanılır:

  • Collect işlevini kullanarak koleksiyonlardaki verileri alın ve önbelleğe alın .
  • Set işlevini kullanarak genel değişkenler ayarlamak.

Bu formül ilk ekran görüntülenmeden önce çalışır. 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 Uygulama nesnesinin üzerine gelip üç noktayı (...) ve ardından OnStart'ı Çalıştır'ı seçerek test edin. Uygulama ilk kez yüklendiğinden farklı olarak, mevcut koleksiyonlar ve değişkenler zaten ayarlanmıştı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 Navigate işlevinin kullanılması kullanımdan kaldırılır. Mevcut uygulamalar çalışmaya devam ediyor. Sınırlı bir süre için uygulama ayarlarında ( Kullanımdan kaldırıldı altında) etkinleştirebilirsiniz. Ancak Navigate komutunun bu şekilde kullanılması, ilk ekranı göstermeden önce sistemi OnStart'ı çalıştırmayı bitirmeye zorladığı için uygulama yükleme gecikmelerine neden olabilir. Görüntülenen ilk ekranı ayarlamak için bunun yerine StartScreen özelliğini kullanın.
  • Kullanımdan kaldırılan anahtar, Mart 2021 ile şimdi arasında OnStart'agit'i eklediğiniz Mart 2021'dan önce oluşturulan uygulamalar için kapalıdır. Power Apps Studio'da bu uygulamaları düzenlerken bir hata görebilirsiniz. Bu hatayı gidermek için emekliye ayrılmış anahtarı tekrar açın.

StartScreen özelliği

StartScreen özelliği, ilk olarak hangi ekranın gösterildiğine göre ayarlar. Uygulama yüklenip gösterilecek ekran nesnesini döndürdüğünde bir kez değerlendirilir. Varsayılan olarak, bu özellik boş olur ve önce Stüdyo Ağacı görünümündeki ilk ekran gösterilir.

StartScreen, davranış işlevlerini içeremeyen bir veri akışı özelliğidir. Tüm veri akışı işlevleri kullanılabilir. İlk olarak hangi ekranın göstereceğine karar vermek için şu 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 API çağrıları. Çağrının hızlı bir şekilde döndürdüğünden emin olun.
  • Bağlantı, Pusula ve Uygulama gibi sinyaller.

Not

OnStart'ta oluşturulanlar da dahil olmak üzere genel değişkenler ve koleksiyonlar StartScreen'de 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, Studio Tree görünümündeki ilk ekran StartScreen ayarlanmadı gibi görünür. Hataları yakalamak ve bir hata ekranına yeniden yönlendirmek için IfError işlevini kullanın.

Studio'da StartScreen'i değiştirdikten sonra, Ağaç görünümübölmesindeki Uygulama nesnesinin üzerine gelip üç noktayı (...) ve ardından Başlat Ekranı'na Git'i seçerek test edin. Ekran, uygulama yeni yüklenmiş gibi değişir.

StartScreen'e git

Örnekler

Screen9

Screen9 uygulama her başlatıldığında ilk olarak gösterilir.

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

Param "admin-mode" değerinin ayarlanıp ayarlanmadığını denetler ve bunu kullanarak önce HomeScreen veya AdminScreen görüntülenip gösterilmediğini belirler.

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

Katılımcının personel üyesi olup olmadığını denetler ve başlangıçta doğru 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 başarısız olursa, uygulama bunun yerine kullanır ErrorScreen .

StudioVersion özelliği

Bir uygulamayı yayımlamak için kullanılan Power Apps Studio sürümünü göstermek veya günlüğe kaydetmek için StudioVersion özelliğini kullanın. Bu özellik, hata ayıklarken ve uygulamanızın Power Apps Studio'nun son sürümüyle yeniden yayımlanıp yayımlanmadığını denetlerken yardımcı olur.

StudioVersion metin döndürür. Bu metnin biçimi zaman içinde değişebilir, bu nedenle bir bütün olarak kabul edin ve tek tek bölümleri ayıklamayın.