Overview

Classes

  • mapdb
  • webservice
  • Overview
  • Class
  • Tree

Class mapdb

mapping.inc.php
untuk melakukan pemetaan antara basis data Institusi dengan basis data PDDIKTI
profil https://id.linkedin.com/in/basitadhi
buat 2015-10-30
rev 2017-03-01
sifat open source
catatan:
1. rule nama kolom PDDIKTI:
--- dengan raw. -> nama kolom akan ditampilkan tanpa alias, contoh: raw.kolom1 akan ditampilkan kolom1
--- tanpa raw. -> diberikan fungsi trim pada nama kolom, contoh: kolom1 akan ditampilkan trim(kolom1)
--- dengan alias -> nama kolom akan ditampilkan apa adanya, contoh: p.kolom1 akan ditampilkan p.kolom1
2. yang dimaksud tabel institusi dapat berupa tabel, view atau query
3. peta yang harus diisi:
-- a. webservice::cek_tabel()------------ : field, table, pk
-- b. webservice::pddikti_sinkron_guid()- : guid, pk
-- c. webservice::pddikti_injek()-------- : field, inject, lihat 2. Sync GUID
-- d. webservice::pddikti_ekstrak()------ : field, extract

Author: Basit Adhi Prabowo, S.T. basit@unisayogya.ac.id
Located at mapping.inc.php
Methods summary
private
# peta_kolom( )

pemetaan kolom PDDIKTI dan Institusi
indeks:
- field
isi:
nama_tabel_pddikti1 => array(field1.1_pddikti => field1.1_institusi, field1.2_pddikti => field1.2_institusi, ...),
nama_tabel_pddikti2 => array(field2.1_pddikti => field2.1_institusi, field2.2_pddikti => field2.2_institusi, ...),
...
catatan:
- primary key harus di kolom pertama

pemetaan kolom PDDIKTI dan Institusi
indeks:
- field
isi:
nama_tabel_pddikti1 => array(field1.1_pddikti => field1.1_institusi, field1.2_pddikti => field1.2_institusi, ...),
nama_tabel_pddikti2 => array(field2.1_pddikti => field2.1_institusi, field2.2_pddikti => field2.2_institusi, ...),
...
catatan:
- primary key harus di kolom pertama

private
# peta_tabel( )

pemetaan tabel PDDIKTI dan Institusi
indeks:
- table
isi:
nama_tabel_pddikti1 => array("nama" => nama_tabel_institusi1, "filter" => filter_tabel_institusi1),
- atau -
nama_tabel_pddikti2 => array("nama" => "", "filter" => "", "data" => array(indeks2.1=>data2.1, indeks2.2=>data2.2, ...)),
...
dimana:
- nama-- : nama tabel institusi
- filter : filter data untuk tabel institusi
- data-- : OPSIONAL - membuat data sendiri, tidak mengambil dari tabel. jika diisi, maka "nama" dan "filter" akan diabaikan. berupa array()

pemetaan tabel PDDIKTI dan Institusi
indeks:
- table
isi:
nama_tabel_pddikti1 => array("nama" => nama_tabel_institusi1, "filter" => filter_tabel_institusi1),
- atau -
nama_tabel_pddikti2 => array("nama" => "", "filter" => "", "data" => array(indeks2.1=>data2.1, indeks2.2=>data2.2, ...)),
...
dimana:
- nama-- : nama tabel institusi
- filter : filter data untuk tabel institusi
- data-- : OPSIONAL - membuat data sendiri, tidak mengambil dari tabel. jika diisi, maka "nama" dan "filter" akan diabaikan. berupa array()

private
# peta_injek( )

pemetaan untuk memasukkan data dari Institusi ke PDDIKTI
indeks:
- inject
isi:
nama_tabel_pddikti1 => array("table" => nama_tabel_institusi1, "filter" => filter_tabel_institusi1, "type" => type1, "ignoreinject" => ignoreinject1, "tahunakademik" => tahunakademik_tabel_institusi1, "tandatahunakademik" => tandatahunakademik_tabel_institusi1, "istahunakademikkrs" => istahunakademikkrs_tabel_institusi1, "fieldupdate" => array(fieldupdate_tabel_pddikti1, ...), "fieldwhere" => array(fieldwhere_tabel_pddikti1, ...), "jenisfilter" => jenisfilter1),
nama_tabel_pddikti2 => array("table" => nama_tabel_institusi2, "filter" => filter_tabel_institusi2, "type" => type2, "ignoreinject" => ignoreinject2, "tahunakademik" => tahunakademik_tabel_institusi2, "tandatahunakademik" => tandatahunakademik_tabel_institusi2, "istahunakademikkrs" => istahunakademikkrs_tabel_institusi2, "fieldupdate" => array(fieldupdate_tabel_pddikti2, ...), "fieldwhere" => array(fieldwhere_tabel_pddikti2, ...), "jenisfilter" => jenisfilter2),
...
dimana:
table-------------- : nama tabel institusi
filter------------- : filter data untuk tabel institusi
type--------------- : insert (memasukkan data ke PDDIKTI) atau update (memperbarui data yang ada di PDDIKTI)
ignoreinject------- : true (diabaikan ketika injeksi massal) atau false (dijalankan ketika injeksi massal)
tahunakademik------ : OPSIONAL - tahun akademik dari data yang akan diambil
tandatahunakademik- : OPSIONAL - =, <, >, <=, atau >=
istahunakademikkrs- : OPSIONAL - tahunakademikkrs adalah tahun akademik aktif, di mana pada saat itu mahasiswa melakukan KRS. true (tahun akademik tidak berubah) atau false (tahun akademik menjadi tahun akademik sebelumnya)
fieldupdate-------- : OPSIONAL - digunakan ketika type="update", kolom-kolom di PDDIKTI yang akan diubah. berupa array()
fieldwhere--------- : OPSIONAL - digunakan ketika type="update", filter data di PDDIKTI yang akan diubah. berupa array()
jenisfilter-------- : OPSIONAL - internalfilter (mengganti [internalfilter] dengan "filter") atau string kosong
catatan:
- format nama tabel pddikti: [nama_tabel_pddikti] atau [nama_tabel_pddikti][keterangan]
- Ingat! indeks "tahunakademik" pada "inject" harus bisa di-query-kan di this->peta["table"] pada this->peta["guid"], perhatikan alias tabel
- "id" pada this->peta["field"] otomatis dibuat isnull()

pemetaan untuk memasukkan data dari Institusi ke PDDIKTI
indeks:
- inject
isi:
nama_tabel_pddikti1 => array("table" => nama_tabel_institusi1, "filter" => filter_tabel_institusi1, "type" => type1, "ignoreinject" => ignoreinject1, "tahunakademik" => tahunakademik_tabel_institusi1, "tandatahunakademik" => tandatahunakademik_tabel_institusi1, "istahunakademikkrs" => istahunakademikkrs_tabel_institusi1, "fieldupdate" => array(fieldupdate_tabel_pddikti1, ...), "fieldwhere" => array(fieldwhere_tabel_pddikti1, ...), "jenisfilter" => jenisfilter1),
nama_tabel_pddikti2 => array("table" => nama_tabel_institusi2, "filter" => filter_tabel_institusi2, "type" => type2, "ignoreinject" => ignoreinject2, "tahunakademik" => tahunakademik_tabel_institusi2, "tandatahunakademik" => tandatahunakademik_tabel_institusi2, "istahunakademikkrs" => istahunakademikkrs_tabel_institusi2, "fieldupdate" => array(fieldupdate_tabel_pddikti2, ...), "fieldwhere" => array(fieldwhere_tabel_pddikti2, ...), "jenisfilter" => jenisfilter2),
...
dimana:
table-------------- : nama tabel institusi
filter------------- : filter data untuk tabel institusi
type--------------- : insert (memasukkan data ke PDDIKTI) atau update (memperbarui data yang ada di PDDIKTI)
ignoreinject------- : true (diabaikan ketika injeksi massal) atau false (dijalankan ketika injeksi massal)
tahunakademik------ : OPSIONAL - tahun akademik dari data yang akan diambil
tandatahunakademik- : OPSIONAL - =, <, >, <=, atau >=
istahunakademikkrs- : OPSIONAL - tahunakademikkrs adalah tahun akademik aktif, di mana pada saat itu mahasiswa melakukan KRS. true (tahun akademik tidak berubah) atau false (tahun akademik menjadi tahun akademik sebelumnya)
fieldupdate-------- : OPSIONAL - digunakan ketika type="update", kolom-kolom di PDDIKTI yang akan diubah. berupa array()
fieldwhere--------- : OPSIONAL - digunakan ketika type="update", filter data di PDDIKTI yang akan diubah. berupa array()
jenisfilter-------- : OPSIONAL - internalfilter (mengganti [internalfilter] dengan "filter") atau string kosong
catatan:
- format nama tabel pddikti: [nama_tabel_pddikti] atau [nama_tabel_pddikti][keterangan]
- Ingat! indeks "tahunakademik" pada "inject" harus bisa di-query-kan di this->peta["table"] pada this->peta["guid"], perhatikan alias tabel
- "id" pada this->peta["field"] otomatis dibuat isnull()

private
# peta_ekstrak( )

pemetaan untuk mengambil data dari PDDIKTI ke Institusi
indeks:
- extract
isi:
nama_tabel_pddikti1 => array("table" => nama_tabel_institusi1, "uniquefield" => uniquefield_tabel_pddikti1, "istahunakademikkrs" => istahunakademikkrs1, "filtertahunakademik" => filtertahunakademik_tabel_pddikti1),
nama_tabel_pddikti2 => array("table" => nama_tabel_institusi2, "uniquefield" => uniquefield_tabel_pddikti2, "istahunakademikkrs" => istahunakademikkrs2, "filtertahunakademik" => filtertahunakademik_tabel_pddikti2),
...
dimana:
table--------------- : nama tabel institusi
uniquefield--------- : kolom-kolom sebagai parameter data akan diambil dari PDDIKTI ke Institusi
istahunakademikkrs-- : OPSIONAL - tahunakademikkrs adalah tahun akademik aktif, di mana pada saat itu mahasiswa melakukan KRS. true (tahun akademik tidak berubah) atau false (tahun akademik menjadi tahun akademik sebelumnya)
filtertahunakademik- : filter data untuk tabel PDDIKTI berdasarkan tahun akademik; menggunakan [tahunakademik], atau [tahun]

pemetaan untuk mengambil data dari PDDIKTI ke Institusi
indeks:
- extract
isi:
nama_tabel_pddikti1 => array("table" => nama_tabel_institusi1, "uniquefield" => uniquefield_tabel_pddikti1, "istahunakademikkrs" => istahunakademikkrs1, "filtertahunakademik" => filtertahunakademik_tabel_pddikti1),
nama_tabel_pddikti2 => array("table" => nama_tabel_institusi2, "uniquefield" => uniquefield_tabel_pddikti2, "istahunakademikkrs" => istahunakademikkrs2, "filtertahunakademik" => filtertahunakademik_tabel_pddikti2),
...
dimana:
table--------------- : nama tabel institusi
uniquefield--------- : kolom-kolom sebagai parameter data akan diambil dari PDDIKTI ke Institusi
istahunakademikkrs-- : OPSIONAL - tahunakademikkrs adalah tahun akademik aktif, di mana pada saat itu mahasiswa melakukan KRS. true (tahun akademik tidak berubah) atau false (tahun akademik menjadi tahun akademik sebelumnya)
filtertahunakademik- : filter data untuk tabel PDDIKTI berdasarkan tahun akademik; menggunakan [tahunakademik], atau [tahun]

private
# peta_pk( )

pemetaan kunci primer PDDIKTI dan Institusi.
indeks:
- pk
isi:
nama_tabel_pddikti1 => array(kunciprimer1_pddikti => kunciprimer1_institusi),
nama_tabel_pddikti2 => array(kunciprimer2_pddikti => kunciprimer2_institusi),
...
catatan:
- semua tabel di FEEDER PDDIKTI dengan tipe REF harus dimasukkan, tampilkan dengan $ws->ListTable()

pemetaan kunci primer PDDIKTI dan Institusi.
indeks:
- pk
isi:
nama_tabel_pddikti1 => array(kunciprimer1_pddikti => kunciprimer1_institusi),
nama_tabel_pddikti2 => array(kunciprimer2_pddikti => kunciprimer2_institusi),
...
catatan:
- semua tabel di FEEDER PDDIKTI dengan tipe REF harus dimasukkan, tampilkan dengan $ws->ListTable()

private
# peta_guid( )

pemetaan guid PDDIKTI dan Institusi
indeks:
- guid
isi:
nama_tabel_pddikti1 => array("guid" => array(field_guid_pddikti1, field_guid_institusi1), "variable" => array(field_pddikti1, field_institusi1), "table" => array("check" => tabel_institusi_untuk_cek1, "update" => tabel_institusi_untuk_update1), "prerequisite" => parameter_yang_harus_ada_pada_tabel_pddikti1, "filter" => filter_tabel_institusi1, "infotambahanerror" => field_tambahan_ketika_error1, "order by" => parameter_pengurutan1, "forcedouble" => perilaku_ketika_ada_data_rangkap1),
nama_tabel_pddikti2 => array("guid" => array(field_guid_pddikti2, field_guid_institusi2), "variable" => array(field_pddikti2, field_institusi2), "table" => array("check" => tabel_institusi_untuk_cek2, "update" => tabel_institusi_untuk_update2), "prerequisite" => parameter_yang_harus_ada_pada_tabel_pddikti2, "filter" => filter_tabel_institusi2, "infotambahanerror" => field_tambahan_ketika_error2, "order by" => parameter_pengurutan2, "forcedouble" => perilaku_ketika_ada_data_rangkap2),
...
dimana:
guid--------------- : nama kolom PDDIKTI yang terdapat kunci primer untuk PDDIKTI dan Institusi
variable----------- : kolom yang digunakan untuk menyamakan data
table-------------- : tabel yang dicek di institusi, tabel yang diupdate di institusi
prerequisite------- : kolom yang PDDIKTI yang harus ada isinya
filter------------- : filter untuk tabel institusi
infotambahanerror-- : info tambahan ketika ada kesalahan
order by----------- : parameter pengurutan tabel institusi
forcedouble-------- : perilaku ketika ada data rangkap

pemetaan guid PDDIKTI dan Institusi
indeks:
- guid
isi:
nama_tabel_pddikti1 => array("guid" => array(field_guid_pddikti1, field_guid_institusi1), "variable" => array(field_pddikti1, field_institusi1), "table" => array("check" => tabel_institusi_untuk_cek1, "update" => tabel_institusi_untuk_update1), "prerequisite" => parameter_yang_harus_ada_pada_tabel_pddikti1, "filter" => filter_tabel_institusi1, "infotambahanerror" => field_tambahan_ketika_error1, "order by" => parameter_pengurutan1, "forcedouble" => perilaku_ketika_ada_data_rangkap1),
nama_tabel_pddikti2 => array("guid" => array(field_guid_pddikti2, field_guid_institusi2), "variable" => array(field_pddikti2, field_institusi2), "table" => array("check" => tabel_institusi_untuk_cek2, "update" => tabel_institusi_untuk_update2), "prerequisite" => parameter_yang_harus_ada_pada_tabel_pddikti2, "filter" => filter_tabel_institusi2, "infotambahanerror" => field_tambahan_ketika_error2, "order by" => parameter_pengurutan2, "forcedouble" => perilaku_ketika_ada_data_rangkap2),
...
dimana:
guid--------------- : nama kolom PDDIKTI yang terdapat kunci primer untuk PDDIKTI dan Institusi
variable----------- : kolom yang digunakan untuk menyamakan data
table-------------- : tabel yang dicek di institusi, tabel yang diupdate di institusi
prerequisite------- : kolom yang PDDIKTI yang harus ada isinya
filter------------- : filter untuk tabel institusi
infotambahanerror-- : info tambahan ketika ada kesalahan
order by----------- : parameter pengurutan tabel institusi
forcedouble-------- : perilaku ketika ada data rangkap

private
# peta_updatenidn( )

pemetaan update NIDN di Institusi, mengambil data dari PDDIKTI
indeks:
- updatenidn
isi:
array("table" => array(nama_tabel_institusi, nama_tabel_pddikti), "nidn" => array(nama_kolom_nidn_institusi, nama_kolom_nidn_pddikti), "guid" => guid, "filter" => filter)
dimana:
table--- : nama tabel institusi dan PDDIKTI. berupa array()
nidn---- : nama kolom nidn institusi dan PDDIKTI. berupa array()
guid---- : nama kolom PDDIKTI yang terdapat kunci primer dari dosen
filter-- : filter untuk tabel institusi
catatan:
- hanya 1 array

pemetaan update NIDN di Institusi, mengambil data dari PDDIKTI
indeks:
- updatenidn
isi:
array("table" => array(nama_tabel_institusi, nama_tabel_pddikti), "nidn" => array(nama_kolom_nidn_institusi, nama_kolom_nidn_pddikti), "guid" => guid, "filter" => filter)
dimana:
table--- : nama tabel institusi dan PDDIKTI. berupa array()
nidn---- : nama kolom nidn institusi dan PDDIKTI. berupa array()
guid---- : nama kolom PDDIKTI yang terdapat kunci primer dari dosen
filter-- : filter untuk tabel institusi
catatan:
- hanya 1 array

public string
# peta( )

mengembalikan pemetaan antara tabel dan kolom PDDIKTI dengan Institusi untuk keperluan pengecekan, sinkronisasi, injeksi dan ekstraksi data

mengembalikan pemetaan antara tabel dan kolom PDDIKTI dengan Institusi untuk keperluan pengecekan, sinkronisasi, injeksi dan ekstraksi data

Returns

string
  • pemetaan antara tabel dan kolom PDDIKTI dengan Institusi
Properties summary
public $peta
#
public boolean $isdipetakan
# false
ws_pddikti API documentation generated by ApiGen