Optimasi Open Feeder (OF)
Persiapan
- pastikan versi wildantea yg terbaru
- set konfig log error php importer wildantea menjadi true
- pastikan pd importer wildantea tidak ada issue terkait lisensi. jika ada, atasi dg menggunakan kode yg sdh bayar subscription atau replace code index.php
- catat log ketika terjadi request ke feeder baik via rest atau soap pd importer wildantea
- catat log ketika terjadi request ke feeder baik via rest atau soap pd open feeder
Langkah Optimasi pd setiap usecase/context
- analisis code push_*.php di importer wildantea, buat algoritmanya
- catat berbagai test case pd fitur yg dikerjakan. baca code dari file push_* di importer wildantea
- siapkan data u/ pengembangan dg berbagai test case di aplikasi feeder secara MANUAL
- lakukan simulasi dg berbagai test case baik di wildan tea dan OF, lalu analisis log nya
- catat input dan output function pada app OF
- buat repository module beserta testingnya sesuai dg catatan log (poin no 4)
- buat service module baru dg menggunakan repository module
- binding tsb dg controller
Prosedur push_nilai
- load data nilai from source
- get id kelas kuliah using GetRecordset from kelas_kuliah with filter
"(p.id_sms,trim(kode_mk),trim(nm_kls),p.id_smt) IN ($implode_id_kelas)"
- get id mhs using GetListMahasiswa with filter
"(id_prodi,trim(nim)) in ($nim_concat_where)" OR "trim(nim) in ($nim_concat_where)"
- loop data nilai
- validasi & ambil id_reg_pd dr hasil pencarian sblmnya
- validasi & ambil id_kls dr hasil pencarian sblmnya
- jika OK, bentuk key dan value
- jika NOT OK, taruh sbg daftar error
- olah data berdasarkan metode by nilai saja atau nilai + krs
- jika terdapat data krs, lakukan InsertRecordset ke tabel nilai scr bulk
- jika terdapat data nilai, lakukan UpdateNilaiPerkuliahanKelas per item
- update status u/ data yg sdh diproses
Test case
- update nilai dg kondisi normal
- update nilai tp data krs tidak ada
- update nilai tp datanya sudah dihapus
Tips
- gunakan postman/sopaui u/ membandingkan response dari repo
- buat repo function lebih dahulu, setelah itu service
- buat unit testing lebih dahulu dg input sesuai dengan log dari OF
- kemudian bikin implementasi dari testing tsb
- baik input dan output gunakan istilah yg dipake oleh REST
contoh: gunakan id_registrasi_mahasiswa, bukan id_reg_pd
- buat function melakukan satu hal saja,
contoh:
- pahami suatu function dari unit testingnya, alih2 komentar
Log
WILDAN PREMIUM NORMAL CASE (Metode Kode Prodi = Sebagai Prodi Mhs + Kelas)
[04-Jan-2022 12:09:44 Asia/Jakarta] GetRecordset kelas_kuliah => "(p.id_sms,trim(kode_mk),trim(nm_kls),p.id_smt) IN (('9da791d6-e543-4999-82e9-e3b77f4dc776','F202','01.01','20211'))"
[04-Jan-2022 12:09:44 Asia/Jakarta] GetListMahasiswa -> {"act":"GetListMahasiswa","token":"fe89a0ce8332a750a3e9bbce5d0a0bbf","filter":"(id_prodi,trim(nim)) in (('9da791d6-e543-4999-82e9-e3b77f4dc776','P17335121001'),('9da791d6-e543-4999-82e9-e3b77f4dc776','P17335121002'),('9da791d6-e543-4999-82e9-e3b77f4dc776','P17335121003'))","order":"","limit":"","offset":""}
[04-Jan-2022 12:09:44 Asia/Jakarta] GetPesertaKelasKuliah -> {"act":"GetPesertaKelasKuliah","token":"fe89a0ce8332a750a3e9bbce5d0a0bbf","filter":"(id_kelas_kuliah,id_registrasi_mahasiswa) IN (('50c144cb-28da-43e8-8ae8-158399bcd4a6','1da4e078-05e9-4258-bc20-c0cfc8c3b287'),('50c144cb-28da-43e8-8ae8-158399bcd4a6','e465ba50-2157-437e-90e7-4e0ae0dd415d'),('50c144cb-28da-43e8-8ae8-158399bcd4a6','5a769a16-cd4d-4471-a800-9d495274b0ae'))","order":"","limit":"","offset":""}
[04-Jan-2022 12:09:45 Asia/Jakarta] UpdateRecordset nilai => [{"key":{"id_kls":"50c144cb-28da-43e8-8ae8-158399bcd4a6","id_reg_pd":"1da4e078-05e9-4258-bc20-c0cfc8c3b287"},"data":{"nilai_angka":"21","nilai_huruf":"A+","nilai_indeks":"4"}},{"key":{"id_kls":"50c144cb-28da-43e8-8ae8-158399bcd4a6","id_reg_pd":"e465ba50-2157-437e-90e7-4e0ae0dd415d"},"data":{"nilai_angka":"31","nilai_huruf":"C+","nilai_indeks":"2"}},{"key":{"id_kls":"50c144cb-28da-43e8-8ae8-158399bcd4a6","id_reg_pd":"5a769a16-cd4d-4471-a800-9d495274b0ae"},"data":{"nilai_angka":"41","nilai_huruf":"B","nilai_indeks":"3"}}]
WILDAN PREMIUM NORMAL CASE (Metode Kode Prodi = Sebagai Prodi Kelas Only)
checkListRefNilai [{"nim":"P17335121001","nama_mahasiswa":"ADIT ANDRIYANNTO","kode_mata_kuliah":"F202","id_semester":"20211","nama_kelas_kuliah":"01.01","nilai_huruf":"A+","nilai_indeks":4,"nilai_angka":"50","kode_prodi":"48401","nama_program_studi":"D3 Farmasi"},{"nim":"P17335121002","nama_mahasiswa":"ALVIA DUZ JANNAH","kode_mata_kuliah":"F202","id_semester":"20211","nama_kelas_kuliah":"01.01","nilai_huruf":"C+","nilai_indeks":2,"nilai_angka":"50","kode_prodi":"48401","nama_program_studi":"D3 Farmasi"},{"nim":"P17335121003","nama_mahasiswa":"AMELIA PUTRI MAULIDA","kode_mata_kuliah":"F202","id_semester":"20211","nama_kelas_kuliah":"01.01","nilai_huruf":"B","nilai_indeks":3,"nilai_angka":"50","kode_prodi":"48401","nama_program_studi":"D3 Farmasi"}]
checkRefNilai {"nim":"P17335121001","nama_mahasiswa":"ADIT ANDRIYANNTO","kode_mata_kuliah":"F202","id_semester":"20211","nama_kelas_kuliah":"01.01","nilai_huruf":"A+","nilai_indeks":4,"nilai_angka":"50","kode_prodi":"48401","nama_program_studi":"D3 Farmasi"}
checkRefNilai {"nim":"P17335121002","nama_mahasiswa":"ALVIA DUZ JANNAH","kode_mata_kuliah":"F202","id_semester":"20211","nama_kelas_kuliah":"01.01","nilai_huruf":"C+","nilai_indeks":2,"nilai_angka":"50","kode_prodi":"48401","nama_program_studi":"D3 Farmasi"}
checkRefNilai {"nim":"P17335121003","nama_mahasiswa":"AMELIA PUTRI MAULIDA","kode_mata_kuliah":"F202","id_semester":"20211","nama_kelas_kuliah":"01.01","nilai_huruf":"B","nilai_indeks":3,"nilai_angka":"50","kode_prodi":"48401","nama_program_studi":"D3 Farmasi"}
updateListNilai [{"nim":"P17335121001","nama_mahasiswa":"ADIT ANDRIYANNTO","kode_mata_kuliah":"F202","id_semester":"20211","nama_kelas_kuliah":"01.01","nilai_huruf":"A+","nilai_indeks":4,"nilai_angka":"50","kode_prodi":"48401","nama_program_studi":"D3 Farmasi","id_prodi":"9da791d6-e543-4999-82e9-e3b77f4dc776","id_matkul":"f4fb5ab0-1455-4292-a71b-b81932d98e98","id_registrasi_mahasiswa":"1da4e078-05e9-4258-bc20-c0cfc8c3b287","id_kelas_kuliah":"50c144cb-28da-43e8-8ae8-158399bcd4a6","check":{"ref_nilai":true}},{"nim":"P17335121002","nama_mahasiswa":"ALVIA DUZ JANNAH","kode_mata_kuliah":"F202","id_semester":"20211","nama_kelas_kuliah":"01.01","nilai_huruf":"C+","nilai_indeks":2,"nilai_angka":"50","kode_prodi":"48401","nama_program_studi":"D3 Farmasi","id_prodi":"9da791d6-e543-4999-82e9-e3b77f4dc776","id_matkul":"f4fb5ab0-1455-4292-a71b-b81932d98e98","id_registrasi_mahasiswa":"e465ba50-2157-437e-90e7-4e0ae0dd415d","id_kelas_kuliah":"50c144cb-28da-43e8-8ae8-158399bcd4a6","check":{"ref_nilai":true}},{"nim":"P17335121003","nama_mahasiswa":"AMELIA PUTRI MAULIDA","kode_mata_kuliah":"F202","id_semester":"20211","nama_kelas_kuliah":"01.01","nilai_huruf":"B","nilai_indeks":3,"nilai_angka":"50","kode_prodi":"48401","nama_program_studi":"D3 Farmasi","id_prodi":"9da791d6-e543-4999-82e9-e3b77f4dc776","id_matkul":"f4fb5ab0-1455-4292-a71b-b81932d98e98","id_registrasi_mahasiswa":"5a769a16-cd4d-4471-a800-9d495274b0ae","id_kelas_kuliah":"50c144cb-28da-43e8-8ae8-158399bcd4a6","check":{"ref_nilai":true}}]
updateNilai {"nim":"P17335121001","nama_mahasiswa":"ADIT ANDRIYANNTO","kode_mata_kuliah":"F202","id_semester":"20211","nama_kelas_kuliah":"01.01","nilai_huruf":"A+","nilai_indeks":4,"nilai_angka":"50","kode_prodi":"48401","nama_program_studi":"D3 Farmasi","id_prodi":"9da791d6-e543-4999-82e9-e3b77f4dc776","id_matkul":"f4fb5ab0-1455-4292-a71b-b81932d98e98","id_registrasi_mahasiswa":"1da4e078-05e9-4258-bc20-c0cfc8c3b287","id_kelas_kuliah":"50c144cb-28da-43e8-8ae8-158399bcd4a6","check":{"ref_nilai":true}}
updateNilai {"nim":"P17335121002","nama_mahasiswa":"ALVIA DUZ JANNAH","kode_mata_kuliah":"F202","id_semester":"20211","nama_kelas_kuliah":"01.01","nilai_huruf":"C+","nilai_indeks":2,"nilai_angka":"50","kode_prodi":"48401","nama_program_studi":"D3 Farmasi","id_prodi":"9da791d6-e543-4999-82e9-e3b77f4dc776","id_matkul":"f4fb5ab0-1455-4292-a71b-b81932d98e98","id_registrasi_mahasiswa":"e465ba50-2157-437e-90e7-4e0ae0dd415d","id_kelas_kuliah":"50c144cb-28da-43e8-8ae8-158399bcd4a6","check":{"ref_nilai":true}}
updateNilai {"nim":"P17335121003","nama_mahasiswa":"AMELIA PUTRI MAULIDA","kode_mata_kuliah":"F202","id_semester":"20211","nama_kelas_kuliah":"01.01","nilai_huruf":"B","nilai_indeks":3,"nilai_angka":"50","kode_prodi":"48401","nama_program_studi":"D3 Farmasi","id_prodi":"9da791d6-e543-4999-82e9-e3b77f4dc776","id_matkul":"f4fb5ab0-1455-4292-a71b-b81932d98e98","id_registrasi_mahasiswa":"5a769a16-cd4d-4471-a800-9d495274b0ae","id_kelas_kuliah":"50c144cb-28da-43e8-8ae8-158399bcd4a6","check":{"ref_nilai":true}}
OF Request
{"act":"GetProdi","filter":"1=1 AND TRIM(kode_program_studi) = '48401'","limit":1,"offset":0}
{"act":"GetProdi","filter":"1=1 AND TRIM(kode_program_studi) = '48401'","limit":1,"offset":0}
{"act":"GetProdi","filter":"1=1 AND TRIM(kode_program_studi) = '48401'","limit":1,"offset":0}
{"act":"GetListMataKuliah","filter":"1=1 AND id_prodi = '9da791d6-e543-4999-82e9-e3b77f4dc776'","limit":1,"offset":0}
{"act":"GetListMataKuliah","filter":"1=1 AND id_prodi = '9da791d6-e543-4999-82e9-e3b77f4dc776'","limit":1,"offset":0}
{"act":"GetListMataKuliah","filter":"1=1 AND id_prodi = '9da791d6-e543-4999-82e9-e3b77f4dc776'","limit":1,"offset":0}
{"act":"GetListRiwayatPendidikanMahasiswa","filter":"1=1 AND TRIM(nim) = 'P17335121002' AND TRIM(nama_mahasiswa) = TRIM('ALVIA DUZ JANNAH') AND id_prodi = '9da791d6-e543-4999-82e9-e3b77f4dc776'","limit":1,"offset":0}
{"act":"GetListRiwayatPendidikanMahasiswa","filter":"1=1 AND TRIM(nim) = 'P17335121003' AND TRIM(nama_mahasiswa) = TRIM('AMELIA PUTRI MAULIDA') AND id_prodi = '9da791d6-e543-4999-82e9-e3b77f4dc776'","limit":1,"offset":0}
{"act":"GetListRiwayatPendidikanMahasiswa","filter":"1=1 AND TRIM(nim) = 'P17335121001' AND TRIM(nama_mahasiswa) = TRIM('ADIT ANDRIYANNTO') AND id_prodi = '9da791d6-e543-4999-82e9-e3b77f4dc776'","limit":1,"offset":0}
{"act":"GetListKelasKuliah","filter":"1=1 AND TRIM(nama_kelas_kuliah) = TRIM('01.01') AND TRIM(kode_mata_kuliah) = TRIM('F202') AND id_semester = '20211' AND id_prodi = '9da791d6-e543-4999-82e9-e3b77f4dc776'","limit":1,"offset":0}
{"act":"GetListKelasKuliah","filter":"1=1 AND TRIM(nama_kelas_kuliah) = TRIM('01.01') AND TRIM(kode_mata_kuliah) = TRIM('F202') AND id_semester = '20211' AND id_prodi = '9da791d6-e543-4999-82e9-e3b77f4dc776'","limit":1,"offset":0}
{"act":"GetListKelasKuliah","filter":"1=1 AND TRIM(nama_kelas_kuliah) = TRIM('01.01') AND TRIM(kode_mata_kuliah) = TRIM('F202') AND id_semester = '20211' AND id_prodi = '9da791d6-e543-4999-82e9-e3b77f4dc776'","limit":1,"offset":0}
{"act":"UpdateNilaiPerkuliahanKelas","key":{"id_registrasi_mahasiswa":"e465ba50-2157-437e-90e7-4e0ae0dd415d","id_kelas_kuliah":"50c144cb-28da-43e8-8ae8-158399bcd4a6"},"record":{"nilai_angka":"50","nilai_indeks":2,"nilai_huruf":"C+"}}
{"act":"UpdateNilaiPerkuliahanKelas","key":{"id_registrasi_mahasiswa":"1da4e078-05e9-4258-bc20-c0cfc8c3b287","id_kelas_kuliah":"50c144cb-28da-43e8-8ae8-158399bcd4a6"},"record":{"nilai_angka":"50","nilai_indeks":4,"nilai_huruf":"A+"}}
{"act":"UpdateNilaiPerkuliahanKelas","key":{"id_registrasi_mahasiswa":"5a769a16-cd4d-4471-a800-9d495274b0ae","id_kelas_kuliah":"50c144cb-28da-43e8-8ae8-158399bcd4a6"},"record":{"nilai_angka":"50","nilai_indeks":3,"nilai_huruf":"B"}}