Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
[Topik ini adalah dokumentasi prarilis dan dapat berubah.]
Tujuan dari contoh plug-in ini adalah untuk membantu Anda memulai dengan mengintegrasikannya ke dalam aplikasi Anda. Anda akan memahami pengalaman penulisan mencakup penulisan Microsoft Dataverse API kustom yang didukung oleh Power Fx ekspresi, yang dapat memicu tindakan internal atau eksternal ke Dataverse.
Penting
- Plug-in low-code instan tidak diprioritaskan dan tidak dikirimkan sebagai fitur. Plug-in low-code instan diganti dengan fungsi. Informasi selengkapnya: Fungsi di( Microsoft Dataverse pratinjau)
- Ini adalah fitur pratinjau.
- Fitur pratinjau tidak dibuat untuk penggunaan produksi dan mungkin memiliki fungsionalitas yang dibatasi. Fitur ini tersedia sebelum rilis resmi agar pelanggan bisa memperoleh akses awal dan memberikan tanggapan.
Prasyarat
Untuk menggunakan salah satu contoh plug-in untuk peristiwa Dataverse data, aplikasi akselerator harus diinstal di lingkungan. Informasi selengkapnya: Prasyarat untuk membuat plug-in kode rendah
Catatan
Templat email hanya tersedia untuk tabel tertentu. Informasi selengkapnya: Membuat templat untuk email
Mengembalikan nilai non-negatif
Contoh ini menggunakan fungsi Abs() untuk mengembalikan nilai non-negatif dari argumennya. Jika angka negatif, Abs
mengembalikan evalen positif.
Putar Dataverse aplikasi Akselerator, pada bilah perintah pilih Tindakan>baru Plugin instan.
Berikan nama tampilan, seperti nama rumus, dan deskripsi.
Buat
Out
parameter untuk memvalidasi perilaku yang diharapkan yang masuk akal, seperti string Secara opsional menggunakan parameter input untuk mempermudah pengujian, yang masuk akal dengan rumus.Di editor rumus, bungkus
Out
parameter dalam tanda kurung keriting:{Out: "" }
Masukkan ekspresi yang menguji rumus:
- Validasi bahwa intellisense menerima rumus (teks berubah menjadi biru muda).
- Terapkan ekspresi yang menyediakan output untuk membantu memvalidasi hasil, misalnya.
{Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 ) }
Pilih Berikutnya, lalu pilih Simpan.
Pilih Uji untuk menguji rumus. Gunakan parameter output untuk memvalidasi hasilnya.
Validasi input dan kesalahan kustom
Pendeteksian duplikat
Terapkan validasi input sisi server, seperti deteksi kesalahan duplikat yang melemparkan pesan kesalahan kustom.
- Putar Dataverse aplikasi Akselerator, pada bilah perintah pilih Tindakan>baru Plugin otomatis.
- Di kotak Nama, masukkan Centang Duplikat.
- Untuk Tabel, pilih Kontak.
- Untuk Jalankan plugin ini saat baris, pilih Dibuat.
- Di kotak Rumus , masukkan rumus ini:
If( !IsBlank(LookUp([@Contacts],'Last Name'=ThisRecord.'Last Name' && 'First Name'=ThisRecord.'First Name')),
Error("You have existing contacts with the same first name and last name")
)
- Pilih Simpan.
Menguji plug-in
- Untuk menguji plug-in, buat aplikasi kanvas menggunakan tabel kontak dengan mengikuti langkah-langkah di sini: Tentukan tabel.
- Buat baris kontak.
- Buat kontak lain dengan nama yang sama seperti pada langkah sebelumnya.
- Sebuah pesan ditampilkan yang menunjukkan catatan duplikat yang ditemukan. Pilih Abaikan dan simpan pada prompt pesan kesalahan.
Pesan kesalahan kustom ini ditampilkan: Anda memiliki dua kontak dengan nama depan dan belakang yang sama.
Validasi Data
Tampilkan jenis kesalahan tertentu menggunakan pencacahan ErrorKind .
Buat plug-in otomatis baru.
Berikan nilai-nilai berikut:
- Nama: Validasi input
- Deskripsi: Memeriksa tanggal yang valid dan memunculkan kesalahan jika tidak valid
- Tabel: Penunjukan
- Jalankan plugin ini saat baris: Diperbarui
Masukkan rumus di bawah ini:
If(ThisRecord.'Due Date' < Now(), Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" }) );
Di bawah Opsi lanjutan, atur Kapan ini harus dijalankan ke Pra-operasi; Anda ingin menjalankan aturan ini sebelum data disimpan untuk mencegah data yang tidak valid.
Pilih Simpan.
Buka fungsi Error() untuk mempelajari lebih lanjut tentang kesalahan kustom.
Mengirim email berdasarkan peristiwa data
Prasyarat:
- Sinkronisasi sisi server disiapkan untuk lingkungan Anda. Informasi selengkapnya: Menyiapkan sinkronisasi email, janji temu, kontak, dan tugas sisi server
- Templat email.
Contoh templat email
Berikut adalah contoh templat email yang dapat Anda buat untuk peristiwa data berbasis SenMail:
- Jenis templat: Global
- Nama: Pesan Terima kasih
- Deskripsi:Gunakan template ini untuk berterima kasih kepada pelanggan karena telah melakukan pemesanan dengan Anda.
-
Subjek:
Thank you for your order <orderconfirmation-{!salesorder:Order Number; }>
- Isi: Gunakan kode ini.
Hello {!Sales Order:First Name;},
Order Type: {! Sales Order: Order Type;},
Location Type: {! Sales Order: Location Type;},
Address1: {! Sales Order: Address 1;},
Address2: {! Sales Order: Address 2;},
Preferred Service Start Date 1: {! Sales Order: Preferred Service Start Date;},
Next Step- We take upto 48 hrs to schedule an in-person and will notify you as soon as we have a In-person Technician allocated at your site. For any questions, please contact us at 1-800-CON-SOLAR
Yours Sincerely,
Contoso Sales
Membuat plug-in otomatis
- Putar Dataverse aplikasi Akselerator, lalu pilih +Plugin baru di bagian Plugin otomatis.
- Masukkan informasi berikut:
Nama: SendEmailUponCreate
Tabel: Pilih nama tabel logis pesanan penjualan, yaitu SalesOrder. Peristiwa ini didasarkan pada tabel Pesanan Penjualan.
Jalankan plugin ini dengan baris adalah: Dibuat
Rumus: Tempelkan kode di bawah ini ke dalam kotak Rumus . Untuk informasi selengkapnya tentang fungsi SendEmailFromTemplate, ke SendEmailFromTemplate Action.
XSendEmailFromTemplate( LookUp('Email Templates',StartsWith(title,"Order Thank You")).'Email Template', ThisRecord, LookUp(Users,'Primary Email'="sampleemail@sample.com"),[ThisRecord.Email] )
- Pilih Pasca Operasi> Lanjutan.
- Pilih Simpan.
Pesan konfirmasi Plugin berhasil disimpan muncul.
Mengirim notifikasi dalam aplikasi berdasarkan tindakan instan
Notifikasi dalam aplikasi memungkinkan pembuat mengonfigurasi notifikasi kontekstual yang dapat ditindaklanjuti untuk pengguna di aplikasi berbasis model.
Buat plugin low-code yang mengirimkan notifikasi dalam aplikasi
- Putar Dataverse aplikasi akselerator, lalu pilih +Plugin baru di bawah Plugin instan.
- Masukkan informasi berikut, pilih Berikutnya:
- Nama: NotifyTechnican1
- Deskripsi:Plug-in instan ini memberi tahu pengguna aplikasi.
- Pada halaman Definisi , buat parameter input dengan tipe data berikut:
- ID Pesanan: String
- TeknisiEmail: String
-
Rumus. Tempelkan kode berikut di kotak Rumus . Untuk informasi selengkapnya tentang fungsi ini, buka Tindakan SendAppNotification.
XSendAppNotification( "New service", LookUp(Users,'Primary Email'=TechnicianEmail), "You have a new solar panel installation scheduled on "& LookUp('Scheduling Results','OrderId'=OrderID).'ServiceDate'&" in "& LookUp('Service Orders','Order Number'=OrderID).City &". Contact the coordinator with any questions.", [ XCreateSidePaneActionForEntity( "View order", OrderID, "Sales Order", "cr8b8_serviceorder1", LookUp('Service Orders','Order Number'=OrderID).'Service Order' ) ] )
- Pilih Selanjutnya.
- Pada halaman Ringkasan , pilih Simpan.
Memanggil tindakan instan notifikasi dalam aplikasi
- Pilih aplikasi kanvas, lalu pilih Edit di bilah perintah (atau buat yang baru).
- Pilih layar di panel navigasi kiri, atau buat yang baru.
- Pada menu Sisipkan , tambahkan Tombol ke halaman menggunakan teknisi Pemberitahuan Teks.
- Pilih tombol, dan masukkan yang berikut ini di bilah rumus fx , di mana DataCardValue17 adalah kolom yang berisi ID Pesanan, dan DataCardValue15 adalah kolom yang berisi alamat email teknisi. Dalam contoh ini, aplikasi kanvas bernama Aplikasi Pesanan Layanan digunakan.
Environment.cr8b8_Notifytechnician1({ OrderID: DataCardValue17.Text, TechnicianEmail: DataCardValue15.Text }); Notify("The technician was notified!", NotificationType.Success, 2000);
- Simpan dan Publikasikan perubahan Anda.
Saat tindakan pemberitahuan teknisi dipilih di aplikasi, pemberitahuan dalam aplikasi dikirim ke teknisi yang telah ditugaskan ke pesanan servis. Tindakan pada pemberitahuan akan membuka detail pesanan layanan di panel samping.
Sampel plug-in instan dengan konektor MSN Weather
Plugin ini mengembalikan cuaca saat ini untuk lokasi tertentu menggunakan konektor MSN Cuaca.
Prasyarat:
- Prasyarat untuk membuat plug-in kode rendah
- Konektor MSN Weather diizinkan di lingkungan
Buat referensi koneksi untuk MSN Weather jika belum tersedia di lingkungan:
Salin cuplikan:
Selesaikan pengeditan rumus menggunakan intellisense dan gunakan properti respons konektor sesuai kebutuhan:
Simpan
Tip
Gunakan fungsi With() untuk menangkap seluruh respons dari satu tindakan jika Anda ingin mengakses properti berbeda yang mungkin dimiliki respons. Dalam contoh di bawah ini, ada parameter Location
input (string) dan parameter Out
output (string).
With({ /* Capture current weather response from connector */
c: new_MsnWeather.CurrentWeather( Location, "Imperial" ).responses.weather.current
},{ /* Return concatenated weather details */
Out: "Current temp: " & c.temp & " degrees. Feels like " & c.feels & " degrees. Wind speed is " & c.windSpd & " mph."
})
Praktik terbaik
Menangani kesalahan loop tak terbatas dalam plugin low-code otomatis
Jangan menulis pernyataan patch pada plugin otomatis setelah peristiwa 'Update', di mana patch terjadi pada tabel yang sama dengan plugin. Hal ini menyebabkan loop tak terbatas dan kegagalan eksekusi plugin.
Pola bermasalah: Menggunakan Patch()
rumus memicu pembaruan lain.
Pola yang direkomendasikan: Gunakan Set()
rumus sebagai gantinya untuk menghindari masalah ini.