Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mudahnya Memvalidasi Data yang Akan Di-Import dari PHPMaker 2021
Setting Import Data Berikut Wajib Anda Ketahui Bedanya di PHPMaker 2021
Pesan Error Saat Import Data Sekarang Dapat Disimpan ke File Log dari PHPMaker 2021

Mudahnya Memvalidasi Data yang Akan Di-Import dari PHPMaker 2021

Ming, 6 Desember 2020 oleh Masino Sinaga 1 Komentar

Di artikel sebelumnya, kita sudah membahas betapa mudahnya menyimpan pesan error yang terjadi saat proses Import Data dilakukan dari Aplikasi Web yang dihasilkan oleh PHPMaker 2020 dan PHPMaker 2021. Di artikel berikut kita membahas betapa mudahnya memvalidasi data yang akan di-import.

PHPMaker 2021 sudah menyediakan server event Row_Import yang terdapat di halaman List pada project PHPMaker 2021 Anda. Sesuai dengan namanya, server event ini akan dieksekusi oleh sistem setiap satu baris data sedang di-import ke database.

Katakanlah pada project demo2021, kita ingin memvalidasi data yang terdapat di file products.csv, jika data pada field ProductName yang akan di-import ternyata sudah ada di database, maka data dari file .csv tersebut tidak boleh di-import lagi ke database.

Cukup dengan menyisipkan sedikit kode PHP ini saja ke server event Row_Import, maka kita sudah dapat memvalidasi data yang akan di-import:

	// cek apakah produk dengan nama yang sama sudah pernah ada di database
	$cek = ExecuteScalar("SELECT ProductName FROM products WHERE ProductName = '" . $row["ProductName"] . "'");
	if (!empty($cek)) { // jika sudah ada
		$this->setFailureMessage("Product " . $row["ProductName"] . " already exists."); // tampilkan pesan
		return false; // kembalikan nilai false untuk membatalkan import pada row yang bertalian
	} 

Atau, kode selengkapnya di server event Row_Import jika sebelumnya tidak ada kode yang ditambahkan ke server event ini adalah seperti berikut:

// Row Import event
function Row_Import(&$row, $cnt)
{
	//Log($cnt); // Import record count
	//var_dump($row); // Import row
	//return false; // Return false to skip import

	// cek apakah produk dengan nama yang sama sudah pernah ada di database
	$cek = ExecuteScalar("SELECT ProductName FROM products WHERE ProductName = '" . $row["ProductName"] . "'");
	if (!empty($cek)) { // jika sudah ada
		$this->setFailureMessage("Product " . $row["ProductName"] . " already exists."); // tampilkan pesan
		return false; // kembalikan nilai false untuk membatalkan import pada row yang bertalian
	} 

    return true;
}

Setelah itu, pastikan untuk men-generate ulang semua file script seperti biasa menggunakan PHPMaker 2021.

Jika kriteria pada proses validasi tersebut memenuhi syarat, maka di form Import akan muncul pesan error seperti ini:

Imported 2 of 2 records from products.csv (success: 0, failure: 2)
row 1: Product Chai (new favour) already exists.
row 2: Product Chang (new favour) already exists.
log file: uploads/temp__1670671356/1670671356.txt

Itu artinya, ada 2 record yang akan di-import dari file products.csv, dan kedua record tersebut seluruhnya gagal di-import. Penyebabnya dapat dilihat pada pesan error yang berada di bagian berikutnya, dimana product yang masing-masing bernama Chai (new favour) dan Product Chang (new favour) sudah ada.

Kemudian, di baris paling bawah, ditampilkan log file-nya, yaitu berada di sub-folder temp__1670671356 yang berada di dalam sub-folder uploads, dengan nama file 1670671356.txt.

Jika di project PHPMaker 2021 yang Anda jalankan sudah menggunakan Masino Extensions, maka ketika file log ini dibuka, isinya adalah sebagai berikut:

<?php $val = array (
  'filetoken' => '1670671356',
  'file' => 'products.csv',
  'totalCount' => 2,
  'count' => 2,
  'successCount' => 0,
  'failCount' => 2,
); $err: array (
  'row1' => 'Product Chai (new favour) already exists.',
  'row2' => 'Product Chang (new favour) already exists.',
); ?>

Jika Anda perhatikan informasi yang terdapat di artikel saya yang berjudul Pesan Error Saat Import Data Sekarang Dapat Disimpan ke File Log dari PHPMaker 2021, maka itu artinya pesan error hasil validasi tadi akan otomatis tersimpan di file log tadi.

Rasanya kurang pas jika belum mencoba demonya. Silahkan klik di sini (jika minta login, silahkan gunakan username admin dan password master), lalu cobalah untuk meng-import data ke table products tersebut.

Untuk contoh file yang berisi data yang akan di-import, dapat Anda download salah satu dari file berikut:
– products.csv
– products.xls

Betapa nikmatnya, bukan? Pesan error hasil validasi pun sekarang sudah dapat disimpan ke file log, sehingga mempermudah kita untuk menganalisis, mengapa data yang di-import gagal.

Meskipun tulisan ini membahas PHPMaker 2021, tapi sebagai bonus, kemampuan ini masih dapat Anda nikmati untuk project PHPMaker 2020, sepanjang Anda menggunakan Masino Extensions for PHPMaker sesuai dengan versi PHPMaker-nya.

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, PHPMaker 2021, PHPMaker Indonesia, Row_Import, 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.

Setting Import Data Berikut Wajib Anda Ketahui Bedanya di PHPMaker 2021
Pesan Error Saat Import Data Sekarang Dapat Disimpan ke File Log dari PHPMaker 2021

Trackbacks

  1. Pesan Error Saat Import Data Sekarang Dapat Disimpan ke File Log dari PHPMaker 2021 – Masino Sinaga berkata:
    Sen, 7 Desember 2020 pukul 7:07 am

    […] / PHPMaker / Pesan Error Saat Import Data Sekarang Dapat Disimpan ke File Log dari PHPMaker 2021 Mudahnya Memvalidasi Data yang Akan Di-Import dari PHPMaker 2021 Cara Mengetahui Detail Error di Aplikasi Web yang Dihasilkan oleh 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