Objek aplikasi di Power Apps

Berlaku untuk: Aplikasi kanvas

Dapatkan informasi tentang aplikasi yang sedang berjalan dan kontrol perilaku aplikasi.

Description

Seperti kontrol, objek Aplikasi memiliki properti yang mengidentifikasi layar mana yang ditampilkan dan meminta Anda untuk menyimpan perubahan sehingga Anda tidak kehilangannya. Setiap aplikasi memiliki objek Aplikasi.

Tulis rumus untuk beberapa properti objek Aplikasi . Di bagian atas panel Tampilan hierarki, pilih objek Aplikasi layaknya kontrol atau layar lainnya. Untuk menampilkan atau mengedit salah satu properti objek, pilih properti tersebut di daftar drop-down di sebelah kiri bilah rumus.

Cuplikan layar objek Aplikasi dipilih di panel Tampilan pohon. Panel properti terlihat.

Artikel ini membahas properti objek Aplikasi berikut ini:

  • ActiveScreen – layar yang saat ini ditampilkan.
  • BackEnabled – bagaimana aplikasi merespons gerakan kembali perangkat.
  • ConfirmExit dan ConfirmExitMessage – peringatkan pengguna sebelum menutup aplikasi.
  • String koneksi – siapkan pengelogan Application Insights.
  • Rumus – menentukan rumus bernama, fungsi yang ditentukan pengguna, dan jenis yang ditentukan pengguna.
  • OnError – menangani kesalahan secara global.
  • OnStart – jalankan logika saat aplikasi dimulai.
  • StartScreen – atur layar yang ditampilkan terlebih dahulu saat aplikasi dimuat.
  • StudioVersion – mengembalikan versi Power Apps Studio yang menerbitkan aplikasi.

Properti ActiveScreen

Properti ActiveScreen mengidentifikasi layar yang saat ini ditampilkan.

Properti ini mengembalikan objek layar. Gunakan untuk mereferensikan properti layar saat ini, seperti nama dengan rumus App.ActiveScreen.Name. Anda juga dapat membandingkan properti ini dengan objek layar lain, seperti dengan rumus perbandingan App.ActiveScreen = Screen2 untuk memeriksa apakah Screen2 adalah layar saat ini.

Gunakan fungsi Kembali atau Navigasi untuk mengalihkan layar yang ditampilkan.

Properti BackEnabled

Properti BackEnabled mengubah cara aplikasi merespons gerakan kembali perangkat (gesek atau gunakan tombol kembali perangkat keras di perangkat Android, atau geser dari kiri di perangkat iOS) saat berjalan di Power Apps seluler. Saat diaktifkan, gerakan kembali perangkat kembali ke layar yang terakhir ditampilkan, yang mirip dengan rumus Kembali . Saat dinonaktifkan, gerakan kembali perangkat membawa pengguna ke daftar aplikasi.

Properti ConfirmExit

Tidak ada yang ingin kehilangan perubahan yang belum disimpan. Gunakan properti ConfirmExit dan ConfirmExitMessage untuk memperingatkan pengguna sebelum menutup aplikasi Anda.

Note

  • ConfirmExit tidak berfungsi di aplikasi yang disematkan di, misalnya, Power BI dan SharePoint.
  • ConfirmExit tidak didukung di halaman kustom.
  • Sekarang, properti ini hanya dapat mereferensikan kontrol pada layar pertama jika fitur Pratinjau beban tertunda diaktifkan (yang secara default untuk aplikasi baru). Jika Anda mereferensikan layar lain, Power Apps Studio tidak menampilkan kesalahan, tetapi aplikasi yang diterbitkan tidak terbuka di Power Apps Mobile atau browser. Microsoft berupaya untuk mengangkat batasan ini. Sementara itu, nonaktifkan Beban tertunda di Pengaturan>Fitur mendatang (di bawah Pratinjau).

ConfirmExit

ConfirmExit adalah properti Boolean yang, jika benar, membuka kotak dialog konfirmasi sebelum aplikasi ditutup. Secara default, properti ini palsu, dan tidak ada kotak dialog ditampilkan.

Saat pengguna mungkin memiliki perubahan yang belum disimpan di aplikasi, gunakan properti ini untuk menampilkan kotak dialog konfirmasi sebelum keluar dari aplikasi. Gunakan rumus yang memeriksa variabel dan properti kontrol (misalnya, properti Tidak Disimpan dari kontrol Edit formulir ).

Kotak dialog konfirmasi muncul dalam situasi apa pun di mana data dapat hilang, seperti:

  • Jalankan fungsi Keluar .
  • Jika aplikasi berjalan di browser:
    • Tutup browser atau tab browser tempat aplikasi berjalan.
    • Pilih tombol kembali browser.
    • Jalankan fungsi Luncurkan dengan LaunchTarget of Self.
  • Jika aplikasi berjalan di Power Apps Mobile (iOS atau Android):
    • Geser untuk beralih ke aplikasi lain di Power Apps Mobile.
    • Pilih tombol kembali pada perangkat Android.
    • Jalankan fungsi Luncurkan untuk meluncurkan aplikasi kanvas lain.

Tampilan yang tepat dari kotak dialog konfirmasi dapat bervariasi di seluruh perangkat dan versi Power Apps.

Kotak dialog konfirmasi tidak ditampilkan di Power Apps Studio.

ConfirmExitMessage

Secara default, kotak dialog konfirmasi akan menampilkan pesan umum, seperti "Anda mungkin memiliki perubahan yang belum disimpan". dalam bahasa pengguna.

Gunakan ConfirmExitMessage untuk menyediakan pesan kustom di kotak dialog konfirmasi. Jika properti ini kosong, nilai default akan digunakan. Pesan kustom dipotong sesuai kebutuhan agar pas dalam kotak dialog konfirmasi, jadi simpan pesan ke beberapa baris paling banyak.

Di browser, kotak dialog konfirmasi dapat menampilkan pesan generik dari browser.

Example

  1. Atur properti ConfirmExit objek Aplikasi ke ekspresi ini:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    Kotak dialog muncul jika pengguna mengubah data dalam salah satu formulir lalu mencoba menutup aplikasi tanpa menyimpan perubahan tersebut.

    Kotak dialog konfirmasi generik.

  2. Atur properti ConfirmExitMessage objek Aplikasi ke rumus ini:

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

    Kotak dialog memperlihatkan pesan khusus formulir saat pengguna mengubah data dalam salah satu formulir lalu mencoba menutup aplikasi tanpa menyimpan perubahan tersebut.

    Kotak dialog konfirmasi khusus formulir.

Properti string koneksi

Gunakan properti String koneksi untuk mengekspor log aplikasi yang dihasilkan sistem ke Application Insights.

Untuk mengatur string koneksi:

  1. Buka aplikasi Anda untuk diedit . Power Apps Studio
  2. Pilih objek Aplikasi di tampilan pohon navigasi kiri.
  3. Masukkan string Koneksi di panel properti.

Jika data tidak dikirim ke Application Insights, hubungi admin Power Platform Anda dan periksa apakah Application Insights dinonaktifkan di tingkat penyewa.

Properti rumus

Gunakan properti Rumus untuk menentukan logika yang dapat digunakan kembali di seluruh aplikasi Anda. Properti Rumus mendukung tiga konstruksi:

Rumus bernama

Gunakan rumus bernama di properti Rumus untuk menentukan rumus yang bisa Anda gunakan kembali di seluruh aplikasi Anda.

Dalam rumus Power Apps menentukan nilai properti kontrol. Misalnya, untuk mengatur warna latar belakang secara konsisten di seluruh aplikasi, atur properti Isian untuk setiap kontrol ke rumus umum:

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

Dengan begitu banyak tempat di mana rumus ini muncul, rumus menjadi melelahkan dan rentan terhadap kesalahan untuk memperbarui semuanya jika perubahan diperlukan. Sebagai gantinya, buat variabel global di OnStart untuk mengatur warna sekali, lalu gunakan kembali nilai di seluruh aplikasi:

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

Meskipun metode ini lebih baik, namun juga tergantung pada OnStart yang berjalan sebelum nilai untuk BGColor ditetapkan. BGColor mungkin juga dimanipulasi di beberapa sudut aplikasi yang tidak disadari pembuatnya, perubahan yang dibuat oleh orang lain, dan itu mungkin sulit dilacak.

Rumus bernama memberikan alternatif. Sama seperti anda biasanya menulis control-property = expression, Anda dapat menulis nama = ekspresi dan kemudian menggunakan kembali nama di seluruh aplikasi Anda untuk mengganti ekspresi. Tentukan rumus ini dalam properti Rumus :

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

Keunggulan menggunakan rumus bernama mencakup:

  • Nilai rumus selalu tersedia. Tidak ada dependensi waktu, tidak ada OnStart yang harus dijalankan terlebih dahulu sebelum nilai diatur, tidak ada waktu di mana nilai rumus salah. Rumus bernama dapat merujuk satu sama lain dalam urutan apa pun, selama tidak membuat referensi melingkar. Penghitungan dapat dihitung secara paralel.
  • Nilai rumus selalu terbaru. Rumus dapat melakukan penghitungan yang tergantung pada properti kontrol atau rekaman database, dan saat berubah, nilai rumus secara otomatis diperbarui. Anda tidak perlu memperbarui nilai secara manual seperti yang dilakukan dengan variabel. Dan rumus hanya menghitung ulang bila diperlukan.
  • Definisi rumus itu kekal. Definisi dalam Rumus adalah satu sumber kebenaran dan nilai tidak dapat diubah di tempat lain dalam aplikasi. Dengan variabel, beberapa kode mungkin secara tak terduga mengubah nilai, tetapi situasi hard-to-debug ini tidak dimungkinkan dengan rumus bernama.
  • Penghitungan rumus dapat ditunda. Karena nilainya tidak dapat diubah, selalu dapat dihitung saat dibutuhkan, yang berarti tidak perlu dihitung sampai dibutuhkan. Nilai rumus yang tidak digunakan hingga layar2 aplikasi ditampilkan tidak perlu dihitung hingga layar2 terlihat. Menunda pekerjaan ini dapat meningkatkan waktu pemuatan aplikasi. Rumus bernama itu deklaratif dan memberikan peluang bagi sistem untuk mengoptimalkan cara dan waktu perhitungannya.
  • Rumus bernama adalah konsep Excel. Power Fx menggunakan konsep Excel bila mungkin karena begitu banyak orang yang mengenal Excel dengan baik. Rumus bernama setara dengan sel nama dan rumus bernama di Excel, dikelola dengan Manajer Nama. Mereka menghitung ulang secara otomatis seperti sel spreadsheet dan properti kontrol.

Tentukan rumus bernama satu demi satu dalam properti Rumus , masing-masing berakhir dengan titik koma. Jenis rumus disimpulkan dari jenis elemen dalam rumus dan bagaimana mereka digunakan bersama. Misalnya, rumus bernama ini akan mengambil informasi yang berguna tentang pengguna saat ini dari Dataverse:

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' );

Jika rumus untuk UserTitle perlu diperbarui, Anda dapat dengan mudah memperbaruinya di lokasi yang satu ini. Jika UserPhone tidak diperlukan dalam aplikasi, maka panggilan ini ke tabel Pengguna di Dataverse tidak dibuat. Tidak ada alasan untuk memasukkan definisi rumus yang tidak digunakan.

Beberapa batasan rumus bernama:

  • Mereka tidak dapat menggunakan fungsi perilaku atau menyebabkan efek samping dalam aplikasi.
  • Mereka tidak dapat membuat referensi melingkar. Memiliki a= b; dan b = a; dalam aplikasi yang sama tidak dibolehkan.

Fungsi yang ditentukan pengguna

Power Fx menyertakan daftar panjang fungsi bawaan, seperti If, Text, dan Set. Dengan menggunakan fungsi yang ditentukan pengguna, Anda dapat menulis fungsi Anda sendiri yang mengambil parameter dan mengembalikan nilai, sama seperti fungsi bawaan. Anggap fungsi yang ditentukan pengguna sebagai ekstensi untuk rumus bernama yang menambahkan parameter dan mendukung rumus perilaku.

Misalnya, Anda dapat menentukan rumus bernama yang mengembalikan buku fiksi dari perpustakaan:

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" );

Tanpa parameter, Anda perlu menentukan rumus bernama terpisah untuk setiap genre. Tetapi sebaliknya, parameterisasi rumus bernama Anda:

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

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

Sekarang Anda dapat memanggil LibraryGenre( "Fiction" ), LibraryGenre( "Reference" ), atau memfilter pada genre lain dengan menggunakan satu fungsi yang ditentukan pengguna.

Sintaksnya adalah:

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

  • FunctionName – Wajib. Nama fungsi yang ditentukan pengguna.
  • ParameterNames – Opsional. Nama parameter fungsi.
  • ParameterTypes – Opsional. Nama jenis, baik nama jenis data bawaan, nama sumber data, atau jenis yang ditentukan dengan menggunakan fungsi Jenis .
  • ReturnType – Wajib. Jenis nilai yang dikembalikan dari fungsi.
  • Rumus – Wajib. Rumus yang menghitung nilai fungsi berdasarkan parameter.

Anda harus mengetik setiap parameter dan output dari fungsi yang ditentukan pengguna. Dalam contoh ini, SelectedGenre: Text mendefinisikan parameter pertama ke fungsi yang akan berjenis Teks dan SelectedGenre merupakan nama parameter yang digunakan dalam isi untuk operasi Filter. Lihat Jenis data untuk nama jenis yang didukung. Fungsi Jenis digunakan untuk membuat jenis agregat untuk pustaka, sehingga Anda dapat mengembalikan tabel buku dari fungsi.

Anda mendefinisikan LibraryType sebagai tabel jamak dari jenis rekaman. Jika Anda ingin meneruskan satu buku ke fungsi, Anda dapat mengekstrak jenis rekaman untuk tabel ini dengan menggunakan fungsi RecordOf:

BookType := Type( RecordOf( LibraryType ) );

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

Pencocokan rekaman untuk parameter fungsi lebih ketat daripada di bagian Power Fx lain. Bidang nilai rekaman harus merupakan subset yang tepat dari definisi jenis dan tidak dapat menyertakan bidang tambahan. Misalnya, IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" ) menghasilkan kesalahan.

Rekursi belum didukung oleh fungsi yang ditentukan pengguna.

Fungsi yang ditentukan pengguna perilaku

Rumus bernama dan sebagian besar fungsi yang ditentukan pengguna tidak mendukung fungsi perilaku dengan efek samping, seperti Set atau Notify. Secara umum, hindari memperbarui status jika Anda bisa. Sebagai gantinya, andalkan pola pemrograman fungsional dan izinkan Power Fx menghitung ulang rumus sesuai kebutuhan secara otomatis. Tapi, ada kasus di mana itu tidak dapat dihindari. Untuk menyertakan logika perilaku dalam fungsi yang ditentukan pengguna, bungkus isi dalam tanda kurung kurawal:

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

Sekarang Anda dapat memanggil Spend( 12 ) untuk memeriksa apakah Anda memiliki 12 di Tabungan Anda, dan jika demikian, debit dengan 12 dan menambahkan 12 ke variabel Dibelanjakan. Jenis pengembalian fungsi ini adalah Void karena tidak mengembalikan nilai.

Sintaks fungsi perilaku yang ditentukan pengguna adalah:

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

  • FunctionName – Wajib. Nama fungsi yang ditentukan pengguna.
  • ParameterNames – Opsional. Nama parameter fungsi.
  • ParameterTypes – Opsional. Nama jenis, baik nama tipe data bawaan , nama sumber data, atau jenis yang ditentukan denganfungsi Type .
  • ReturnType – Wajib. Jenis nilai yang dikembalikan dari fungsi. Gunakan Void jika fungsi tidak mengembalikan nilai.
  • Rumus– Wajib. Rumus yang menghitung nilai fungsi berdasarkan parameter.

Seperti semua Power Fx rumus, eksekusi tidak berakhir ketika terjadi kesalahan. Setelah fungsi Kesalahan dipanggil, fungsi If mencegah perubahan pada Penghematan dan Pengeluaran terjadi. Fungsi IfError juga dapat digunakan untuk mencegah eksekusi lebih lanjut setelah kesalahan. Meskipun mengembalikan Void, rumus masih dapat mengembalikan kesalahan jika ada masalah.

Jenis yang ditentukan pengguna

Gunakan rumus bernama dengan fungsi Tipe untuk membuat jenis yang ditentukan pengguna. Gunakan := alih-alih untuk = menentukan jenis yang ditentukan pengguna, misalnya Book := Type( { Title: Text, Author: Text } ). Lihat fungsi Jenis untuk informasi dan contoh selengkapnya.

Properti OnError

Gunakan OnError untuk mengambil tindakan saat terjadi kesalahan di mana saja di aplikasi. Ini memberikan kesempatan global untuk mencegat banner kesalahan sebelum ditampilkan kepada pengguna akhir. Anda juga dapat menggunakannya untuk mencatat kesalahan dengan menggunakan fungsi Lacak atau menulis ke database atau layanan web.

Di aplikasi Kanvas, hasil dari setiap evaluasi rumus diperiksa untuk kesalahan. Jika terjadi kesalahan, OnError dievaluasi dengan variabel cakupan FirstError dan AllError yang sama dengan yang digunakan aplikasi jika seluruh rumus dibungkus dalam fungsi IfError.

Jika OnError kosong, banner kesalahan default menunjukkan FirstError.Message kesalahan. Menentukan rumus OnError akan mengambil alih perilaku ini, sehingga pembuat dapat menangani pelaporan kesalahan sesuai kebutuhan. Anda dapat meminta perilaku default di OnError dengan menumbuhkan kembali kesalahan dengan menggunakan fungsi Kesalahan. Gunakan pendekatan penukaran ulang jika Anda ingin memfilter atau menangani beberapa kesalahan secara berbeda, tetapi biarkan orang lain melewatinya.

OnError tidak dapat mengganti kesalahan dalam perhitungan seperti yang dapat dilakukan oleh IfError . Jika OnError dipanggil, kesalahan sudah terjadi dan sudah diproses melalui perhitungan rumus seperti IfError; OnError hanya mengontrol pelaporan kesalahan.

Rumus OnError dievaluasi secara bersamaan dan ada kemungkinan evaluasinya mungkin tumpang tindih dengan pemrosesan kesalahan lain. Misalnya, jika Anda mengatur variabel global di bagian atas OnError dan membacanya nanti dalam rumus yang sama, nilainya mungkin telah berubah. Gunakan fungsi With untuk membuat nilai bernama yang lokal ke rumus.

Meskipun OnError memproses setiap kesalahan satu per satu, banner kesalahan default mungkin tidak muncul untuk setiap kesalahan satu per satu. Untuk menghindari terlalu banyak banner kesalahan yang ditampilkan pada saat yang sama, banner kesalahan yang sama tidak ditampilkan lagi jika baru-baru ini ditampilkan.

Example

Pertimbangkan kontrol Label dan kontrol Slider yang terikat bersama melalui rumus:

Label1.Text = 1/Slider1.Value

Kontrol label dan penggeser terikat melalui rumus Label1.Text = 1/Slider1.Value.

Default Slider adalah 50. Jika Anda memindahkan slider ke 0, Label1 tidak memperlihatkan nilai, dan banner kesalahan muncul:

Kontrol penggeser dipindahkan ke 0, menghasilkan pembagian dengan nol kesalahan, dan spanduk kesalahan.

Mari kita lihat apa yang terjadi secara rinci:

  1. Anda memindahkan slider ke kiri dan properti Slider1.Value berubah menjadi 0.
  2. Label1.Text secara otomatis direvalidasi. Pembagian dengan nol terjadi, menghasilkan kesalahan.
  3. Tidak ada IfError dalam rumus ini. Pembagian dengan nol dihasilkan oleh evaluasi rumus.
  4. Label1.Text tidak dapat menampilkan apa pun untuk kesalahan ini, sehingga menampilkan status kosong .
  5. OnError dipanggil. Karena tidak ada penanganan, banner kesalahan standar ditampilkan dengan informasi kesalahan.

Jika diperlukan, Anda juga dapat mengubah rumus menjadi Label1.Text = IfError( 1/Slider1.Value, 0 ). Menggunakan IfError berarti tidak ada banner kesalahan atau kesalahan. Anda tidak dapat mengubah nilai kesalahan dari OnError karena kesalahan sudah terjadi - OnError hanya mengontrol cara melaporkannya.

Jika Anda menambahkan handler OnError , itu tidak memengaruhi langkah-langkah sebelum langkah 5, tetapi mengubah bagaimana kesalahan dilaporkan:

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

Rumus App.OnError diatur untuk menghasilkan Trace.

Dengan handler OnError ini, pengguna aplikasi tidak melihat kesalahan apa pun. Tetapi kesalahan ditambahkan ke jejak Monitor, termasuk sumber informasi kesalahan dari FirstError:

Kontrol slider dipindahkan ke 0, menghasilkan pembagian dengan kesalahan nol, tetapi tidak ada spanduk kesalahan.

Jika Anda juga ingin menampilkan banner kesalahan default bersama dengan jejak, kirim ulang kesalahan dengan menggunakan fungsi Kesalahan setelah panggilan Lacak , seolah-olah Jejak tidak ada:

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

Properti OnStart

Note

Menggunakan properti OnStart dapat menyebabkan masalah performa saat memuat aplikasi. Pertimbangkan alternatif ini sebelum menambahkan logika ke OnStart:

  • Untuk menyimpan data atau menyiapkan variabel global, gunakan rumus bernama di properti Rumus jika memungkinkan.
  • Untuk mengatur layar pertama yang akan ditampilkan, gunakan properti StartScreen alih-alih Navigasi.
  • Untuk menjalankan logika saat layar tertentu ditampilkan, gunakan properti OnVisible layar.

Bergantung pada konteks Anda, properti OnStart mungkin dinonaktifkan secara default. Jika Anda tidak melihatnya dan perlu menggunakannya, periksa pengaturan Tingkat Lanjut aplikasi untuk pengalihan untuk mengaktifkannya.

Saat aturan OnStart yang tidak diblokir diaktifkan (default), OnStart berjalan pada saat yang sama dengan aturan aplikasi lainnya. Akibatnya:

  • Variabel yang diinisialisasi di OnStart mungkin tidak sepenuhnya diinisialisasi saat aturan aplikasi lain membacanya.
  • Layar dapat merender dan menjadi interaktif sebelum App.OnStart atau Screen.OnVisible selesai berjalan, terutama jika fungsi tersebut membutuhkan waktu lama.

Properti OnStart berjalan saat pengguna memulai aplikasi. Gunakan properti ini untuk:

  • Ambil dan cache data dalam koleksi dengan menggunakan fungsi Kumpulkan .
  • Atur variabel global dengan menggunakan fungsi Set.

Rumus ini berjalan sebelum layar pertama muncul. Tidak ada layar yang termuat, sehingga Anda tidak dapat mengatur variabel konteks dengan fungsi UpdateContext. Tetapi Anda dapat meneruskan variabel konteks dengan fungsi Navigasi .

Setelah Anda mengubah properti OnStart , uji dengan mengarahkan mouse ke atas objek Aplikasi di panel Tampilan pohon , memilih elipsis (...), lalu memilih Jalankan OnStart. Tidak seperti saat aplikasi dimuat untuk pertama kalinya, koleksi dan variabel yang ada sudah diatur. Untuk memulai dengan koleksi kosong, gunakan fungsi ClearCollect bukan fungsi Collect.

Menu pintasan item aplikasi untuk Menjalankan OnStart

Note

  • Menggunakan fungsi Navigasi di properti OnStart dihentikan. Aplikasi yang ada masih berfungsi. Untuk waktu yang terbatas, Anda dapat mengaktifkannya di pengaturan aplikasi (di bawah Dihentikan). Tetapi menggunakan Navigasikan dengan cara ini dapat menyebabkan penundaan beban aplikasi karena memaksa sistem untuk menyelesaikan menjalankan OnStart sebelum menampilkan layar pertama. Gunakan properti StartScreen sebagai gantinya untuk mengatur layar pertama yang ditampilkan.
  • Sakelar yang dihentikan tidak aktif untuk aplikasi yang dibuat sebelum Maret 2021 di mana Anda menambahkan Navigasi ke OnStart antara Maret 2021 dan sekarang. Saat mengedit aplikasi ini di Power Apps Studio, Anda akan melihat kesalahan. Nyalakan sakelar yang dihentikan untuk menghapus kesalahan ini.

Properti StartScreen

Properti StartScreen mengatur layar mana yang ditampilkan terlebih dahulu. Power Apps mengevaluasi properti ini sekali saat aplikasi memuat dan mengembalikan objek layar untuk ditampilkan. Secara default, properti ini kosong, dan layar pertama dalam tampilan Pohon Studio ditampilkan terlebih dahulu.

StartScreen adalah properti aliran data yang tidak dapat berisi fungsi perilaku. Semua fungsi aliran data tersedia. Gunakan fungsi dan sinyal ini untuk memutuskan layar mana yang akan ditampilkan terlebih dahulu:

  • Param untuk membaca parameter yang digunakan untuk memulai aplikasi.
  • Fungsi pengguna untuk membaca informasi tentang pengguna saat ini.
  • LookUp, Filter, CountRows, Max, dan fungsi lain yang membaca dari sumber data.
  • API memanggil melalui konektor. Pastikan panggilan kembali dengan cepat.
  • Sinyal seperti Koneksi, Kompas, dan Aplikasi.

Note

Variabel dan koleksi global, termasuk yang dibuat di OnStart, tidak tersedia di StartScreen. Rumus bernama tersedia dan sering kali merupakan alternatif yang lebih baik untuk penggunaan kembali rumus di seluruh aplikasi.

Jika StartScreen mengembalikan kesalahan, layar pertama dalam tampilan Pohon Studio menunjukkan seolah-olah StartScreen tidak diatur. Gunakan fungsi IfError untuk menangkap kesalahan apa pun dan mengalihkan ke layar kesalahan.

Setelah Anda mengubah LayarAwali di Studio, uji dengan mengarahkan mouse ke atas objek Aplikasi di panel Tampilan pohon , memilih elipsis (...), lalu memilih Navigasi ke Mulai Layar. Layar berubah seolah-olah aplikasi baru saja dimuat.

Navigasikan ke StartScreen

Examples

Screen9

Screen9 menunjukkan terlebih dahulu setiap kali aplikasi dimulai.

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

Memeriksa apakah Param "admin-mode" diatur dan menggunakannya untuk memutuskan apakah HomeScreen atau AdminScreen ditampilkan terlebih dahulu.

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

Memeriksa apakah peserta adalah anggota staf dan mengarahkannya ke layar yang benar saat memulai.

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

Mengarahkan aplikasi berdasarkan panggilan API ke ForestScreen atau OceanScreen. Jika API gagal, aplikasi akan menggunakan ErrorScreen sebagai gantinya.

Properti StudioVersion

Gunakan properti StudioVersion untuk menampilkan atau mencatat versi Power Apps Studio yang digunakan untuk menerbitkan aplikasi. Properti ini membantu saat Anda menelusuri kesalahan dan memeriksa apakah aplikasi Anda diterbitkan ulang dengan versi terbaru Power Apps Studio.

StudioVersion mengembalikan teks. Format teks ini dapat berubah dari waktu ke waktu, jadi perlakukan secara keseluruhan dan tidak mengekstrak bagian individual.