DBA memiliki kapabilitas untuk membantu Supervisor atau coder pabrik dalam membantu monitoring performa dari software coder atau syncronizer. Karena DBA memiliki akses ke basis data untuk melakukan pengecekan kode unik untuk kebutuhan analisa. Salah satu kendala yang dibiasa dialami adalah jumlah kode unik tidak kembali ke angka 900.000, sehingga perlu dilakukan audit lebih lanjut untuk mengetahui apa yang menyebabkan jumlah kode unik pada komputer pabrik tidak kembali ke 900.000.
Diluar dari analisa masalah, DBA memiliki kewajiban untuk mengembalikan jumlah kode unik ke angka 900.000 jika masalah sudah diselesaikan.
Berikut tahapan secara umum dalam melakukan pengembalikan nilai kode unik ke angka 900.000.
- Berkoordinasi dengan coder atau koordinator lapangan, Markingprinter berapa yang bermasalah dan berapa kode unik yang tidak kembali.
- Melakukan penarikan kode unik sejumlah dengan yang laporkan oleh coder atau koordinator lapangan.
- Remote PC lokal pabrik, kirim file csv hasil penarikan kode unik, lalu import ke basis data komputer pabrik
Untuk penjelasan lebih detail sebagai berikut laporan implementasi pengisian kode unik ke basis data komputer pabrik
1. DBA berkoordinasi dengan coder atau koordinator lapangan, minta markingprinter berapa yang bermasalah dan berapa kode unik. Lihat contoh kasus dibawah. Pada tanggal 5 Oktober 2021 Coder Kapasari melakukan permintaan untuk pembulatan nilai kode unik karena pasca insiden kehabisan kode unik pada server sehingga stok kode unik pabrik tidak kembali, Coder menginformasikan markingprinterid adalah 1000001 (Kapasari High Speed) dan sisa stok adalah 897650. Jadi jumlah kode unik yang perlu di import sejumlah 900000-897650=2350.

2. Kita sudah mengetahui jumlah dan markingprinterid. selanjutnya adalah menarik data dari server. Untuk menarik data dari server dapat menggunakan query berikut.
update smi_sgmuniquecode main set
buffered = '2021-10-05 00:00:00',
requested = '2021-10-05 00:00:00',
downloadedby = 1000101,
smi_markingprinter_id = 1000001
from (
select smi_sgmuniquecode_id, uniquecode
from smi_sgmuniquecode ss where
requested IS NULL
AND buffered IS NULL
AND printed IS NULL
AND downloadedby IS null
and isactive = 'Y'
and ad_org_id = 0
and description like 'ORIGINAL%'
and char_length(uniquecode)=10
order by smi_sgmuniquecode_id asc
limit 2350
) a where main.smi_sgmuniquecode_id =
a.smi_sgmuniquecode_id
and main.requested IS NULL
AND main.buffered IS NULL
AND main.printed IS NULL
AND main.downloadedby IS null
QUERY DI ATAS HANYA CONTOH, BACA DAN PAHAMI.
DILARANG COPAS SEMBARANGAN.
Dari query di atas dapat dilihat terdapat subquery dan terdapat limit pada subquery, ganti limit subquery tersebut dan sesuaikan dengan kebutuhan.
Dari query update, dapat dilihat yang akan di update adalah buffered, requested, downloadedby, smi_markingprinter_id. Buffered, requested adalah penanda kapan kode unik di request atau diambil dari server sehingga syncronizer yang berjalan tidak akan mengambil kode unik yang sudah diambil sebelumnya. Downlaodby adalah siapa yang melakukan request terhadap kode unik tersebut. SMI_Markingprinter_ID adalah kode komputer PC yang ada di pabrik.
3. Selanjutnya adalah import file csv ke basis data komputer pabrik, koordinasi dengan coder untuk koordinator lapangan untuk diberikan akses remote ke PC. Setelah itu akses service postgresql, PC pabrik menggunakan OS Windows dan Postgresql versi 9.6, untuk direktori service postgresql yaitu C:/ProgramFiles/Postgresql/9.6/bin. Masuk ke basis data dengan psql lalu jalankan perintah copy.
copy uniquecode(uniquecode) from 'D:/uniquecode_2350.csv' with csv header QUERY DI ATAS HANYA CONTOH, BACA DAN PAHAMI. DILARANG COPAS SEMBARANGAN. Carefull!! pada opsi with csv header menjelaskan file yang akan diimport adalah csv dan di file tersebut ada headernya. sehingga header ketika diimport tidak ikut masuk ke dalam tabel
Jika selesai, minta coder atau koordinator lapangan untuk menjalankan software coder dan melihat jumlah kode unik yang tersedia, jika step yang dilakukan benar, jumlah kode unik sudah kembali ke angka 900.000