Konsistensi akhir antara beberapa instans Power Apps

Microsoft Power Platform
Microsoft Dataverse
Azure Logic Apps

Artikel ini menguraikan skenario di mana pelanggan berbasis AS hipotetis, Contoso, baru-baru ini telah mengakuisisi perusahaan lain yang berbasis di Eropa dan sedang dalam proses sistem CRM dan ERP antara kedua perusahaan. Sebagai bagian dari integrasi ini, mereka harus menjaga sebagian entitas Dynamics 365 Dataverse mereka tetap sinkron hingga dapat sepenuhnya diintegrasikan. Aplikasi lini bisnis milik Conotso (LOB) mengonsumsi data dari kedua sistem dan harus dapat menerima permintaan ketika data menunggu sinkronisasi atau ketika hilang. Panduan berikut menunjukkan cara memperhitungkan konsistensi akhir antara instans Power Platform.

Sistem

Plugin/flow untuk selalu melakukan upsert berdasarkan GUID atau tombol alternatif

Diagram memperlihatkan plug-in dataverse yang menyediakan solusi untuk sinkronisasi multi-sistem yang gagal.

Unduh file Visio arsitektur ini.

Alur kerja

Solusi ini dapat dibangun dengan beberapa langkah plugin , dalam siklus hidup plugin. Saat entitas yang Anda buat bersifat wajib, gunakan langkah PraValidasi. PraValidasi terjadi sebelum transaksi database dimulai. Ini adalah opsi yang disukai, jika bidang wajib. Namun, dalam beberapa skenario, langkah plugin PraBuat sudah cukup.

  1. Instans AS mencoba menyinkronkan akun baru ke Instans Eropa melalui Aplikasi Logika. Instans Eropa tidak dapat dijangkau, karena waktu henti atau peningkatan.
  2. Aplikasi Contoso LOB membaca entitas akun utama dari Instans AS. Ini berniat untuk mengirimkan panggilan API yang mereferensikan entitas akun yang tidak direplikasi ke Instans Eropa. Seperti yang ada, panggilan API akan gagal karena catatan tidak ada, karena sinkronisasi tidak berfungsi.
  3. Namun, plugin PreValidation PreValidation/PreCreate terlebih dahulu melakukan upsert berdasarkan GUID entitas yang disediakan dan menyediakan data referensi. Jika sudah ada, maka tidak ada yang berubah. Jika tidak ada, akun baru dibuat, dengan sebagian besar bidang kosong.
  4. Panggilan API berhasil karena akun dengan ID yang diberikan ada di sistem. Plugin menghentikan operasi dan menangani catatan yang hilang dengan mulus. Laporan dari aplikasi LOB berhasil dihasilkan.

Catatan

Microsoft merekomendasikan untuk memperkenalkan pola pemutus sirkuit dalam kode kustom Anda untuk mundur dan mencoba kembali sebagai bagian dari solusi ini untuk menangani pemadaman platform saat mereferensikan salah satu instans. Untuk informasi selengkapnya tentang menggunakan pemutus sirkuit, lihat Pola Pemutus Sirkuit.

Alternatif

Skenario yang dijelaskan di atas menggunakan Aplikasi Logika kustom sebagai metode replikasi. Namun, ada beberapa cara untuk mereplikasi data antara instans Dataverse, yang mencakup, tetapi tidak terbatas pada:

  • Logic Apps
  • Aplikasi fungsi di Azure Functions
  • Azure Data Factory
  • Azure Synapse Analytics
  • Power Automate

Detail skenario

Organisasi terkadang menemukan kebutuhan untuk menjaga dua atau beberapa instans Power Platform tetap sinkron, lebih khusus, biasanya merupakan subset entitas Dataverse. Persyaratan ini dapat terjadi ketika organisasi sengaja menambahkan instans baru untuk isolasi geografis tetapi memerlukan himpunan data umum di semua geo. Atau dapat terjadi ketika dua organisasi bergabung sebelum konsolidasi Power Platform selesai.

Ketika proses sinkronisasi berfungsi seperti yang dirancang, lini aplikasi bisnis yang mengonsumsi dari kedua instans tidak memiliki masalah. Namun, mekanisme sinkronisasi tidak pernah menjadi bukti kesalahan, pemadaman, atau masalah tak terduga kemungkinan akan muncul. Dalam hal ini, lini aplikasi bisnis Anda yang menggunakan data dari kedua instans harus dibangun untuk menangani data yang tidak lengkap.

Agar anak perusahaan Contoso di Eropa baru dapat diintegrasikan ke dalam struktur bisnis Contoso, mereka harus menyinkronkan akun dan kontak dari satu instans Power Platform ke instans lain. Dalam skenario ini, instans AS Power Platform menyinkronkan batch data referensi harian melalui Aplikasi Logika kustom ke instans Eropa. Aplikasi CONTOSO LOB eksklusif menghasilkan pelaporan tentang tiket masalah yang telah dibuat pengguna. Untuk menyelesaikan tugas ini, aplikasi LOB membaca data pengguna dari kedua instans Dataverse untuk menarik data yang relevan, kunci referensi utama dari instans AS dan data tiket dari instans Eropa. Jika proses sinkronisasi belum selesai karena waktu henti, pemeliharaan, atau masalah komunikasi lainnya, permintaan akan menghasilkan kesalahan karena entitas yang hilang dari instans Eropa.

Kemungkinan kasus penggunaan

Pola ini dapat berguna dalam situasi berikut:

  • Sistem yang mengirimkan data referensi sedang tidak berfungsi.
  • Sinkronisasi data membutuhkan waktu lama atau proses tertunda.
  • Sistem konsumen tidak memiliki logika tentang penciptaan entitas yang dibuat.

Kapan menggunakan pendekatan ini

Gunakan pendekatan ini dalam skenario berikut:

  • Anda ingin menjamin rekaman dengan kunci tertentu ada, dan Anda tidak peduli bahwa catatan tidak sepenuhnya terhidrasi.
  • Anda harus menerima pembuatan, bahkan jika data masih belum disinkronkan.

Pola ini mungkin tidak cocok dalam skenario berikut:

  • Logika diterapkan saat rekaman dibuat. Karena data tidak akan terhidrasi, tidak aman untuk mengandalkan sifat-sifat tertentu yang tersedia.

Contoh

Contoh berikut menunjukkan potensi perjalanan dan hasil penundaan sinkronisasi.

Contoh 1 - Jalur yang berhasil tanpa pemadaman atau kesalahan sementara

Diagram memperlihatkan sinkronisasi multi-sistem yang berhasil.

Unduh file Visio arsitektur ini.

  1. Instans AS menyinkronkan akun baru ke Instans Eropa melalui Aplikasi Logika. Semua bekerja karena tidak ada kesalahan sementara atau pemadaman yang terjadi.
  2. Aplikasi Contoso LOB membaca entitas akun utama dari Instans AS dan berniat untuk mengirimkan panggilan API yang mereferensikan entitas akun yang direplikasi ke Instans Eropa. Ini bekerja karena semuanya sudah habis, dan tidak ada pemadaman atau kesalahan sementara yang terjadi. Laporan dari aplikasi LOB berhasil dihasilkan.

Contoh 2 - Jalur yang tidak berhasil saat sinkronisasi tidak berfungsi atau tertunda

Diagram memperlihatkan sinkronisasi multi-sistem yang gagal.

Unduh file Visio arsitektur ini.

  1. Instans AS mencoba menyinkronkan akun baru ke Instans Eropa melalui Aplikasi Logika. Instans Eropa tidak dapat dijangkau, karena waktu henti, pemeliharaan, atau masalah komunikasi lainnya.
  2. Aplikasi Contoso LOB membaca entitas akun utama dari Instans AS dan berniat untuk mengirimkan panggilan API yang mereferensikan entitas akun yang tidak direplikasi ke Instans Eropa. Panggilan API gagal karena akun dengan pengidentifikasi yang diberikan tidak dibuat di Instans Eropa dan laporan tidak dibuat.

Pertimbangan

Pertimbangkan dampak logika bisnis apa pun pada entitas yang belum terhidrasi. Pertimbangkan skenario di mana entitas belum sepenuhnya terhidrasi dan disinkronkan. Beberapa properti akan ditampilkan null, jadi Anda perlu memastikan bahwa setiap keputusan pada data diperhitungkan saat menggunakan pendekatan ini.

Langkah berikutnya

Arsitektur terkait:

Panduan untuk pengembangan Web: