Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mudahnya Mengatasi Konflik Saat Update Data di Aplikasi Web dari PHPMaker
Menambahkan Business Logic Saat Record Sedang Diubah di Aplikasi Web dari PHPMaker
Mengambil Informasi Record yang Sudah Disaring di Aplikasi Web dari PHPMaker

Mudahnya Mengatasi Konflik Saat Update Data di Aplikasi Web dari PHPMaker

Sab, 14 Juni 2014 oleh Masino Sinaga 1 Komentar

Ketika Pengguna sedang memperbarui (Update) data di sebuah Aplikasi Web, maka pasti ada kemungkinan bahwa Pengguna lainnya juga sedang memperbarui atau mengubah data yang sama. Tentu saja hal ini bisa mengakibatkan adanya konflik ketika proses Update tadi dilakukan.

Mari kita simak ilustrasi berikut. Katakanlah Pengguna A dan Pengguna B di saat yang hampir bersamaan sedang memperbarui Record yang sama. Pengguna A sedang memperbarui Record pertama di tabel cars dengan mengganti data Transmiss Speed Count dari nilai 5 ke 3. Pada saat yang hampir bersamaan, Pengguna B juga memperbarui Record pertama di tabel cars tadi dengan mengganti nilai 5 ke 4.

Ketika Pengguna B duluan menyimpan, maka sistem akan menampilkan pesan berhasil menyimpan data. Kemudian, ketika Pengguna A menyimpan data tersebut belakangan, maka sistem akan menampilkan pesan bahwa data tersebut baru saja diubah oleh Pengguna lain. Hal ini terjadi karena data lama di form Edit yang dibuka Pengguna A masih bernilai 5, sementara data yang tersimpan di Database sudah bernilai 4. Jadi, sistem mendeteksi adanya konflik saat mengubah Record yang sama.

PHPMaker dapat menangani hal ini dengan sangat mudah. PHPMaker sudah menyediakan sebuah server event yang bernama Row_UpdateConflict yang berada di bawah Server Events -> Table-Specific -> Common di dalam project PHPMaker Anda. Pastikan sebelumnya Anda sudah memilih salah satu Table yang Anda inginkan dari panel Database di sebelah kiri dari project PHPMaker Anda, untuk memastikan Anda menambahkan kode di server event pada Table yang tepat.

Server event ini akan dipanggil jika konflik ditemukan sebelum memperbarui sebuah Record (jika pengaturan Check Conflicts diaktifkan melalui pengaturan Table di PHPMaker). Argumen dari server event ini adalah Record yang lama (sebagai array) dan Record yang baru (juga sebagai array) yang akan diperbarui.

Anda dapat menggunakan server event ini untuk mengatasi konflik sesuai dengan kriteria Anda. Jika Anda ingin mengabaikan konflik atau Anda telah mengatasi konflik di event ini (dengan mengeset nilai baru ke argumen rsnew) kemudian ingin melanjutkan pemutahiran (Update) data, maka cukup kembalikan nilai FALSE. Sebaliknya, cukup kembalikan nilai TRUE.

Secara standar, server event ini mengembalikan nilai TRUE; yang artinya Aplikasi Web yang Anda bangun dengan menggunakan PHPMaker akan selalu menggunakan penanganan konflik yang disediakan oleh sistem. Dengan kata lain, kalaupun Anda tidak menambahkan kode Anda ke dalam server event ini, maka sistem akan otomatis mendeteksi konflik jika beberapa Pengguna sedang mengubah atau memperbarui Record yang sama.

// Row Update Conflict event
function Row_UpdateConflict($rsold, &$rsnew) {
    // Masukkan kode Anda di sini
    // Untuk mengabaikan konflik, kembalikan nilai FALSE
    return TRUE;
}

Beberapa hal yang perlu diperhatikan terkait dengan server event Row_UpdateConflict adalah:

  1. Karena pemrosesan data yang sedang terjadi untuk dibandingkan pada waktu berikutnya diperlukan, maka dengan menggunakan fitur ini akan menambah waktu yang dibutuhkan untuk memuat halaman. Untuk performansi yang lebih baik, hanya seratus bytes pertama dari field BLOB yang diproses secara standar, tapi ada kesempatan bahwa perubahan dari data BLOB tidak terdeteksi (jika sekian bytes pertama tidak berubah). Anda dapat meningkatkan jumlah bytes dari menu Tools -> Advanced Settings. Jika Anda ingin memproses semua bytes, cukup masukkan nilai 0.
  2. Anda dapat menggunakan server event Row_UpdateConflict untuk mengatasi konflik sesuai dengan business logic Anda melalui kode.
  3. Fitur ini tidak dapat diterapkan untuk Inline-Edit dan Grid-Edit.

Ditempatkan di bawah: PHPMaker Ditag dengan:PHPMaker Indonesia, Row_UpdateConflict, Server Events, Tutorial PHPMaker

Masino Sinaga

Web Developer pengguna PHPMaker untuk membangun Aplikasi Web sejak tahun 2004. Sampai sekarang masih aktif dan rajin membagikan pengalamannya menggunakan PHPMaker melalui situs masinosinaga.com, ilovephpmaker.com, dan phpmakerprojects.com.

Menambahkan Business Logic Saat Record Sedang Diubah di Aplikasi Web dari PHPMaker
Mengambil Informasi Record yang Sudah Disaring di Aplikasi Web dari PHPMaker

Trackbacks

  1. Mengenal Server Events di PHPMaker : IlmuKomputer.Com berkata:
    Sen, 15 September 2014 pukul 9:47 pm

    […] Mudahnya Mengatasi Konflik Saat Update Data di Aplikasi Web dari PHPMaker […]

    Balas

Tinggalkan Balasan Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses

Pos-pos Terbaru

  • Mudahnya Mengubah Nilai Delay Auto Hide Success Message di PHPMaker 2025
  • Mudahnya Berpindah Layout dari Table ke Cards di Halaman List lewat PHPMaker 2025
  • Jangan Lupa Pakai AdjustSql Saat Insert atau Update Data Lewat ExecuteStatement
  • File-File yang Wajib Diperhatikan Setelah Menambah Item User Values di PHPMaker 2025
  • Begini Cara Memuat Tables dari Database Secara Dinamis di PHPMaker 2025

Menu

  • Siapa Saya?
  • Web Development
  • PHPMaker
  • Umum
  • Syarat dan Ketentuan
  • Sitemap (Peta Situs)
  • Komentar

Komentar Terbaru

  • Masino Sinaga pada Mudahnya Menyesuaikan Timezone di Calendar Report pada PHPMaker 2023
  • Nano pada Mudahnya Menyesuaikan Timezone di Calendar Report pada PHPMaker 2023
  • Charly pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023
  • Charly pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023
  • Masino Sinaga pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Projects
  6. PHPMaker Learning

Baru di PHPMaker?

Baca ini terlebih dulu ...

  1. Ayo Menjadi Web Developer yang Cerdas!
  2. PHPMaker: PHP Code Generator + PHP Framework
  3. Pertanyaan-Pertanyaan yang Paling Sering Diajukan Seputar PHPMaker
  4. Tips buat Anda Pemula yang Baru Mengenal dan Menggunakan PHPMaker
  5. Bacalah Help, Bacalah Help, dan Bacalah Help di PHPMaker!

(c) Masino Sinaga 2009 - 2025 | WordPress | Catat masuk | Kembali ke atas