Saya tidak bisa mendapatkan solusi untuk bug Process Builder - Duplicate Management

Aug 19 2020

Ada bug yang sangat membuat frustasi mengenai konflik antara Process Builder dan Duplicate Management.

Beberapa orang telah menyarankan solusi untuk itu, tetapi saya tidak bisa membuatnya berfungsi, konflik masih terjadi untuk saya.

Ini solusinya, terima kasih kepada Yi-Hs Tsai dan Manu Devaraju:

For those looking for a work around to this very annoying problem, here's a solution that I've found works:

Create a checkbox field on the object called "Allow duplicates?" with default set to false.
In your Duplicate rule definition, include this new field under the "Conditions" section.
In your flow or process builder, BEFORE you update the record, first do an update where you set the "Allow duplicates?" field to true.  Then perform the update you want.
Since "Allow duplicates?" is checked and the update no longer meets the rule conditions, so shouldn't trigger the duplicate rule.
If you want the duplicate rule to run in the future for this record, you can do another record update to uncheck the "Allow duplicates?" field.

For instance, I have a duplicate rule on Contacts that has a whole bunch of matching criteria.  Following the steps I:

Create a field on the Contact object called "Allow Duplicates?" with default unchecked.
In my duplicate rule (Setup -> quickfind -> Duplicate Rules), I set a condition: "Contact: Allow Duplicates? EQUALS False"
In my flow, I have a step where I set Allow Duplicates? = true and update my record.
In my flow, then I perform the update on the email, phone, etc., that ordinarily would trigger the rule because of the my matching criteria.
In my flow, when I'm all done, I set the Allow Duplicates? back to false.

Orang lain (Daniel DeAguilar) memiliki lebih banyak tentang ini:

So what i did was created the allow duplicates checkbox Yi-Hs mentions on my Account object (default unchecked), and in process builder did the following steps:

Under 'Choose Object and Specify When to Start the Process' i had recursion enabled (this was key)
1st node in process was looking for whenever my parent account field was changed
Immediate action in 1st node was changing duplicate checkbox to 'checked/true'
instead of stop i had 'evaluate next criteria' and go to 2nd node'
2nd node looked for when duplicate checkbox = true/checked
immediate action #1 to set parent account lookup to parent account id field (enabling lookup related lists)
immediate action #2 to set duplicate checkbox = false/unchecked

Di log debug saya dapat melihat bahwa proses sedang dijalankan dan setelah itu deteksi duplikat berjalan dan semuanya baik-baik saja, bidang kustom baru memiliki nilai yang tepat dan deteksi dicegah.

Tetapi setelah itu lebih banyak pemrosesan berjalan dan deteksi duplikat berjalan sekali lagi dan kali ini bidang khusus baru memiliki nilai defaultnya, sehingga tidak mencegah deteksi dan Anda mendapatkan kesalahan DUPLICATES_DETECTED yang tidak dapat ditangani oleh proses.

Yang paling membingungkan bagi saya adalah di mana / bagaimana tepatnya bidang 'Izinkan duplikat' harus diperbarui. Pembuat proses tidak memiliki perintah / opsi Pembaruan eksplisit.

Berikut tangkapan layar dari konfigurasi pembangun proses saya:

Jawaban

2 KrisGoncalves Aug 19 2020 at 20:58

Melihat lebih jauh ke bawah di komentar tentang gagasan itu untuk melihat komentar asli / solusi oleh Manu Devaraju menjelaskan ini jauh lebih baik. Di bawah ini adalah langkah-langkah disalin / ditempel.

  1. Buat bidang daftar pilihan baru 'Timpa Duplikat' (Ya / Tidak) pada objek Kontak

  2. Buat aturan Pencocokan untuk kombinasi Nama Depan, Nama Belakang dan Nomor Telepon

  3. Buat aturan Duplikat dengan Aturan yang cocok dibuat pada langkah a di atas. Dalam aturan duplikat, cari bagian di bawah ini dan di kriteria tambahkan bidang 'Timpa Duplikat' dan nilainya sebagai 'Tidak' b. Kondisi di atas berarti Anda ingin menjalankan aturan duplikat hanya jika nilai bidang 'Timpa Duplikat' adalah 'Tidak' Kondisi. Secara opsional, tentukan kondisi yang harus dipenuhi record agar aturan dapat dijalankan.

  4. Dalam proses pembangun / alur, ketika Anda mencoba membuat catatan baru atau memperbarui catatan yang ada, setel data tambahan ini 'Timpa Duplikat' sebagai 'Ya' - itu berarti Anda mencoba melewati aturan duplikat yang dijelaskan secara eksplisit dalam alur jadi yang mengalir TIDAK akan memunculkan pesan kesalahan apa pun

  5. Gunakan aturan alur kerja dan pembaruan bidang untuk membatalkan pengaturan 'Timpa Bendera' menjadi 'Tidak' segera setelah pembuat proses memperbaruinya menjadi 'Ya' Nama aturan alur kerja: WF Unset Override duplikat kondisi Bendera: Timpa Duplikat = Ya Tindakan: Panggil Alur Kerja Pembaruan Bidang Alur Kerja Nama Pembaruan Bidang: WFU Unset Override duplikat Flag Field to Update: Override Duplicate Flag Value: No

Kuncinya adalah meminta WF melakukan pembaruan terakhir untuk menyetel bendera kembali ke False . Ini tidak mengalami bug (yang khusus untuk PB).