Bagikan melalui


Fungsi AsType dan IsType

Berlaku untuk: Aplikasi kanvas Aplikasi Power Pages Power Platform berbasis model CLI

Memeriksa referensi rekaman untuk jenis tabel tertentu (IsType) dan menangani referensi sebagai jenis spesifik (AsType).

Catatan

Perintah PAC CLI pac power-fx tidak mendukung IsType.

Description

Baca Memahami referensi rekaman dan pencarian polimorfik untuk pengantar yang lebih luas dan detail lebih lanjut.

Bidang pencarian biasanya mengacu pada rekaman pada tabel tertentu. Karena jenis tabel sudah mapan, Anda dapat mengakses bidang pencarian dengan menggunakan notasi titik sederhana. Contohnya, First( Accounts ).'Primary Contact'.'Full Name' berjalan dari tabel Akun ke rekaman Kontak Utama di tabel Kontak dan mengekstrak bidang Nama Lengkap.

Microsoft Dataverse juga mendukung bidang pencarian polimorfik, yang dapat merujuk ke rekaman dari rangkaian tabel, seperti contoh ini.

Bidang Pencarian Dapat merujuk pada
Pemilik Pengguna atau Tim
Pelanggan Akun atau Kontak
Mengenai Akun, Kontak, Artikel Pengetahuan, dll.

Dalam rumus Canvas-App, gunakan referensi rekaman untuk bekerja dengan pencarian pomorfik. Karena referensi rekaman dapat merujuk ke tabel yang berbeda, Anda tidak tahu bidang mana yang akan tersedia saat Anda menulis rumus. Notasi Record.Field tidak tersedia. Rumus tersebut harus beradaptasi dengan rekaman yang dihadapi aplikasi saat berjalan.

Fungsi IsType menguji apakah referensi rekaman mengacu pada jenis tabel yang spesifik. Fungsi menampilkan Boolean BENAR atau SALAH.

Fungsi AsType menangani referensi rekaman sebagai jenis tabel tertentu, terkadang disebut sebagai kasting. Anda dapat menggunakan hasilnya jika hasilnya adalah rekaman tabel dan sekali lagi menggunakan notasi Record.Field untuk mengakses semua bidang rekaman tersebut. Kesalahan akan terjadi jika referensi bukan jenis tertentu.

Gunakan fungsi ini bersama-sama untuk menguji terlebih dulu jenis tabel rekaman, lalu perlakukan sebagai rekaman jenis tersebut sehingga bidang tersedia:

If( IsType( First( Accounts ).Owner, Users ),
    AsType( First( Accounts ).Owner, Users ).'Full Name',
    AsType( First( Accounts ).Owner, Teams ).'Team Name'
)

Anda hanya memerlukan fungsi ini jika mengakses bidang referensi rekaman. Misalnya, Anda dapat menggunakan referensi rekaman dalam fungsi Filter tanpa IsType atau AsType:

Filter( Accounts, Owner = First( Users ) )

Demikian pula, Anda dapat menggunakan referensi rekaman dengan fungsi Patch:

Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )

Jika digunakan dalam konteks rekaman, seperti di Galeri atau kontrol Edit formulir, Anda harus menggunakan operator disambiguasi global untuk mereferensikan jenis tabel. Misalnya, rumus ini akan efektif untuk galeri yang menampilkan daftar kontak yang mana Nama Perusahaan adalah pencarian Pelanggan:

If( IsType( ThisItem.'Company Name', Accounts ),
    AsType( ThisItem.'Company Name', Accounts ).'Account Name',
    AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)

Untuk kedua fungsi, Anda menentukan jenis melalui nama sumber data yang tersambung ke tabel. Agar rumus berfungsi, Anda juga harus menambahkan sumber data ke aplikasi untuk jenis yang ingin diuji atau ditransmisikan. Contohnya, Anda harus menambahkan tabel Pengguna sebagai sumber data jika ingin menggunakan IsType dan AsType dengan pencarian Pemilik dan rekaman dari tabel tersebut. Anda hanya dapat menambahkan sumber data yang sebenarnya digunakan dalam aplikasi; Anda tidak perlu menambahkan semua tabel yang dapat direferensikan pencarian.

Jika referensi rekaman kosong, IsType akan muncul sebagai SALAH, dan AsType muncul sebagai kosong. Semua bidang rekaman kosong akan kosong.

Sintaks

AsType( RecordReference, TableType )

  • RecordReference - Wajib. Referensi rekaman, sering kali bidang pencarian yang dapat merujuk ke rekaman di salah satu dari beberapa tabel.
  • TableType - Diperlukan. Tabel spesifik tempat rekaman harus dikonversi eksplisit.

IsType( RecordReference, TableType )

  • RecordReference - Wajib. Referensi rekaman, sering kali bidang pencarian yang dapat merujuk ke rekaman di salah satu dari beberapa tabel.
  • TableType - Diperlukan. Tabel spesifik yang akan diuji.

Contoh

Memahami referensi rekaman dan pencarian polimorfik berisi contoh yang lengkap.

  1. Buat aplikasi kanvas kosong untuk tablet.

  2. Di panel kiri, pilih Data>Tambahkan data. Kemudian, tambahkan tabel Akun dan Kontak.

    Aplikasi kosong dengan dua sumber data: akun dan kontak.

  3. Di panel kiri, pilih + (Sisipkan) >Tata Letak>galeri vertikal kosong.

    Memasukkan kontrol galeri dengan tata letak vertikal kosong.

  4. Pilih Sambungkan ke data, lalu pilih Kontak sebagai sumber data.

  5. Tetapkan tata letak galeri ke Judul dan subjudul.

    Buka pemilih tata letak dari panel properti.

    Atur tata letak ke Judul dan subtitle.

  6. Di panel Data, buka daftar Title1, lalu pilih Nama Lengkap.

    Tetapkan nilai judul.

  7. Pilih kontrol label Subtitle1.

    Tetapkan nilai subtitle.

  8. Tetapkan properti Teks dari Subtitle1 ke rumus ini:

    If( IsBlank( ThisItem.'Company Name' ), "--",
        IsType( ThisItem.'Company Name', Accounts ),
            "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name',
        "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name'
    )
    

    Layar sekarang selesai menampilkan akun dan kontak yang tercampur di galeri.

    Subtitel di galeri menunjukkan nilai berikut:

    • "--" jika 'Nama Perusahaankosong.
    • "Akun: " dan kemudian bidang Nama Akun dari tabel Akun jika bidang Nama Perusahaan merujuk ke akun.
    • "Kontak: " dan kemudian bidang Nama Lengkap dari tabel Kontak jika bidang Nama Perusahaan merujuk ke kontak.

    Hasil Anda mungkin berbeda dari apa yang ada di topik ini karena menggunakan data sampel yang telah dimodifikasi untuk menampilkan tambahan jenis hasil.