Perubahan yang dilakukan:
- ProcessCompanyDataJob:
- Memodifikasi method processRow dengan menambahkan logika array_pop($row) untuk menghapus elemen terakhir dari array CSV.
- Menambahkan validasi count($row) > 0 untuk memastikan array tidak kosong sebelum diproses.
- Mempertahankan validasi jumlah kolom sesuai FIELD_MAP untuk menjaga konsistensi data.
- Menambahkan log informasi saat field terakhir berhasil dihapus dari setiap baris.
- Mencatat jumlah kolom baru setelah penghapusan untuk keperluan debugging dan monitoring.
- Mengurangi overhead processing dengan mengabaikan kolom tambahan yang tidak diperlukan.
- Memastikan integritas data tetap terjaga saat mapping ke model Branch.
- Tidak mengubah struktur FIELD_MAP yang sudah ada untuk menjaga kompatibilitas.
- Mempertahankan fungsi validasi dan error handling yang sudah berjalan.
- ProcessDataCaptureDataJob:
- Memodifikasi method processRow dengan logika array_pop($row) untuk menghapus kolom terakhir dari array CSV.
- Menambahkan pengecekan count($row) > 0 untuk validasi array.
- Mempertahankan validasi jumlah kolom sesuai CSV_HEADERS untuk memastikan kesesuaian data.
- Menambahkan log saat kolom terakhir berhasil dihapus untuk setiap baris yang diproses.
- Mencatat jumlah kolom baru setelah penghapusan sebagai bagian dari monitoring.
- Memastikan hanya kolom yang didefinisikan dalam CSV_HEADERS yang diproses untuk efisiensi.
- Mengurangi beban proses dengan mengabaikan field yang tidak relevan pada CSV input.
- Mempertahankan integritas data dan mapping ke model DataCapture.
- Tidak mengubah sistem batch processing yang ada, tetap menggunakan CHUNK_SIZE = 1000.
- Mempertahankan performa dengan bulk insert dan upsert untuk data besar.
- Memastikan efisiensi memory dengan chunk processing.
- Menjaga struktur CSV_HEADERS dan proses validasi agar tetap kompatibel dengan sistem yang sudah berjalan.
Tujuan perubahan:
- Memungkinkan sistem untuk mengabaikan kolom tambahan di akhir file CSV baik untuk data company maupun data capture tanpa mengganggu proses import.
- Menghindari error atau kegagalan parsing saat terdapat tambahan kolom dari sistem eksternal.
- Meningkatkan fleksibilitas sistem dalam menghadapi input CSV yang tidak selalu konsisten secara jumlah kolom.
- Menjaga performa dan efisiensi proses dengan tetap mempertahankan proses batch dan chunking.
- Memastikan seluruh perubahan tetap backward compatible dengan proses yang sudah ada.