Navision's Objects - A Technical Overview
Agar Hidup Lebih Objektive ;)
Navision adalah sebuah software aplikasi ERP yang beroperasi dengan berbasiskan objek-objek yang dimilikinya. Jika kita membuka bagian Object Designer maka akan tampaklah semua objek-objek nya. objek-objek inilah yang menjadi jeroan dibalik penampakan navision yang digunakan oleh user sehari-hari. Itulah sebabnya jika ada masalah dengan transaksi-transaksi yang 'ajaib', biasanya para konsultan seperti kita langsung melakukan 'pemerkosaan' (=P) terhadap sistem dengan mengubah harga pada salah satu tabel yang terkait. Karena tabel adalah bagian dari objek.
Di dalam ilmu pemrograman, pemrograman yang berorientasi objek (OOP) merupakan sebuah langkah yang cukup revolusioner dibandingkan dengan madzhab pemrograman sebelumnya (struktural/prosedural). karena paradigma pemrograman ini mengizinkan programer untuk memodelkan objek-objek nyata dalam kehidupan sehari-hari menjadi sebuah tipe data yang abstrak sehingga dapat disimulasikan dalam dunia virtual. Tapi, marilah kita lupakan sejenak tentang ilmu pemrograman dan kembali ke objek-objek yang ada di Navision. :D
Di dalam Navision, objek-objek dibagi menjadi 5 jenis, yaitu Tabel, Form, Report, Dataport, dan Codeunit. Masing-masing jenis objek memiliki peranan yang spesifik sebagai berikut :
Objek Pertama - Tabel
Tabel adalah salah satu tipe objek yang sangat penting fungsinya dalam software data-base seperti Navision .. ibarat kate nih, software database tanpa tabel itu seperti makan kagak pake nasi. atau ibarat nikah kagak ada pasangannye he..he..he.. bahkan saking pentingnya, biarin lah software database isinya cuman tabel doang tanpa Form atau Report atau yang lainya.. asal siap2 aja mabok buat ngentri atau baca data nya huehehehe..
Nah tabel ini berfungsi sebagai sarang atau rumah buat sang data.. disana ada kamar-kamar yang dinamakan field, field ini ditampilkan dalam bentuk kolom-kolom tabel. sedangkan baris pada tabel (record) adalah sekumpulan data yang memenuhi masing-masing fieldnya. satu record umumnya merepresentasikan sebuah data beserta atribut-atribut yang melekat padanya ataupun mencatat sebuah transaksi.
Nah kalo kita lihat dari perilakunya, tabel-tabel ini pun dapat kita bagi lagi menjadi (setidaknya) 3 macam.
1. Tabel Sumber : Yaitu tabel yang memuat data-data dasar dari sebuah proses bisnis. data-data ini sifatnya statis dan tidak akan pernah berubah oleh jenis transaksi apapun kecuali oleh aktivitas entry data manual. Karena dia merupakan tabel sumber, maka tabel ini akan selalu menjadi rujukan dalam setiap transaksi yang dilakukan. Tabel-tabel yang tergolong tabel sumber adalah seperti : Tabel Item, Tabel Customer, Tabel Vendor, Tabel Unit of Measure, Tabel Item Unit of Measure, Tabel Location dan tabel-tabel sumber lainnya. Tabel sumber ini umumnya diisi pada masa-masa awal implementasi.
2. Tabel Transaksi : Tabel jenis ini merupakan tabel dinamis, yaitu tabel yang berinteraksi dengan user pada tahap pengisian atau pengolahan dokumen (form) . tabel transaksi ini biasanya diisikan atau diolah oleh user dengan mengkombinasikan beberapa data dari berbagai tabel sumber plus data tambahan yang di entri secara manual. misalnya salah satu contoh dari tabel transaksi adalah Sales Header yang merupakan kombinasi dari tabel-tabel sumber seperti Customer, Salespeople/Purchaser, Payment Terms, Location, Shipment Methods, Shipping Agents. atau pun tabel transaksi sales line yang merupakan kombinasi dari tabel-tabel dasar seperti Item, Item Variants, Item Unit of Measures dan beberapa field seperti Quantity yang diisi sendiri secara manual.
3. Tabel Muara : Nah kalo nyang ini merupakan tempat 'pembuangan' akhir dari data setelah transaksi lengkap dilakukan. biasanya tabel muara ini terisi setelah aksi-aksi yang memicu terjadinya transaksi dilakukan, seperti aksi register, atau posting. Kalo di Hakiki biasanya tabel yang beginian itu diakses untuk mencari kambing hitam. siapa yang sudah salah posting, atau salah entry hehehe.. yang digolongkan sebagai tabel muara adalah tabel-tabel seperti Item Ledger Entry, Warehouse Entry, Sales Invoice, Sales Shipment, Customer Ledger Entry, Value Entry, Vendor Ledger Entry dan Muara dari segala transaksi yaitu G/L Entry serta ledger entry-2 lainnya.. tabel muara ini juga yang suka dikenai aksi2 'kekerasan' jika terjadi kesalahan2 transaksi, seperti tanggal posting atau harga,
Objek Kedua - Form
Form itu laksana jendela komunikasi antara sistem dan manusia (shhaaaah gaya teu? =P). Dia menyediakan informasi untuk user sekaligus juga sebaliknya, menyediakan perangkat2 yang dapat digunakan user memberikan perintah atau informasi kepada sistem. jadi ini kayak the interactive part of the system.. bagian ini kayak public relationnya sistem buat user.
Form dapat memberikan informasi dengan cara mengakses tabel serta menampilkannya secara langsung kepada user, form juga dapat digunakan oleh user sebagai tempat entry data, karena field-field yang tersedia pada form mengizinkan user untuk membubuhkan dan mengubah harga-harga yang ada padanya. Informasi yang diberikan oleh user melalui form pada umumnya akan mengisi tabel transaksi, selain itu form juga dapat mengeksekusi transaksi, meloncat untuk menampilkan form berikutnya dll, karena salah satu ciri khas dari form yang mutlak dapat kita kenali adalah adanya button ataupun menu untuk melakukan eksekusi, validasi, ataupun untuk berpindah ke form atau dokumen lainnya.
Selain dari itu, dalam sebuah proses bisnis, form juga berfungsi sebagai dokumen, form biasanya merupakan sebuah dokumen yang terlibat dalam salah satu fase dari keseluruhan rangkaian proses bisnis. oleh karena itu penanganan sebuah form berada dibawah tanggungjawab salah satu fihak yang terlibat dalam proses bisnis tersebut. misalnya sales yang bertanggungjawab terhadap Sales Order, Sales Quotes. atau Form Warehouse Shipment dan Warehouse Pick yang berada di bawah tanggungjawab Warehouse Officer..etc. Dan karena form terkait dengan tanggungjawab maka biasanya juga form ini memiliki print version yang dapat menyajikan form yang sudah dilengkapi oleh yang bersangkutan dalam versi hard copy untuk kebutuhan pengarsipan manual.
hemmm... apalagi tentang form yah???
O iya, Form ini kan PR nya sistem buat user, jadi dia harus di desain se-ergonomis mungkin sehingga menimbulkan kesan nyaman untuk digunakan. disini juga segala macem pengaman dipasang untuk mengurangi human error dalam pengisian data. bahkan saya pernah membayangkan bentuk interaksi antara sistem dengan user untuk aplikasi gudang, gimana kalo lebih graphical instead of tabular?. misalnya dengan gambar rak2 dan ruangan gudangnya, pokok-e ada visualisasinya. Soalnya berbeda dengan orang finance atau akuntansi yang terbiasa dengan tabel, sepertinya orang gudang akan mudah terbantu jika aplikasinya lebih visual,, kalo movement ada icon yang begerak2 dari bin satu ke bin lainnya,, hehe.. pake GUI gitu??.. bisa nggak yah??..
I think its still be a challenge.. ;)
Objek Ketiga - Report
Nah, berbeda dengan Form, objek yang satu ini berkomunikasi dengan user hanya satu arah, dimana sistem --dengan permintaan user tentunya-- menampilkan data-data dan informasi yang diinginkan dan tidak sebaliknya, user tidak dapat mengutak-atik apapun ketika report sudah dijalankan. Dan sesuai namanya, report digunakan untuk melaporkan seluruh transaksi yang pernah terjadi di dalam sistem. olehkarenanya ketika report dijalankan selalu berupa print preview yang siap untuk dicetak. karena sifatnya laporan dari hasil transaksi maka biasanya report bekerja dengan mengakses tabel muara.
Dalam sebuah perusahaan, biasanya cukup banyak permintaan data di akhir perioda analisis baik itu untuk kebutuhan pertanggungjawaban maupun untuk kebutuhan analisis dan perencanaan langkah perusahaan selanjutnya, dalam hal ini dibutuhkan teknik pelaporan yang dapat mengkombinasikan seluruh data transaksi yang disediakan oleh sistem. seperti data penjualan ke customer, pembelian dari vendor, penjualan item tertentu untuk customer tertentu dsb, dan report tersebut dapat ditampilkan dengan menggunakan satu tabel muara sebagai sumber atau beberapa tabel yang dikombinasikan dengan teknik pemrograman tertentu yang biasanya jadi urusan Iqbal ama Hilma. =)
Objek Keempat - Dataport
Ehm.. ehmm.. mau nulis ini teh malu euy.. soalnya belon pernah make :"> ... pernah sih.. nyoba sekali mengeksport data.. tapi cuman buat iseng.. dan abis di ekport nggak di apa-apain lagi.. jadi maaph jika uraiannya terlalu text book atau rada teoritis..
Nah, kalo kata petunjuknya sih (Application Development Guide.pdf) gini bunyinya.. "Dataports are objects that used for importing data from and exporting data to external text files" jadi kalo di departemen perdagangan mah kayak bagean EXIM nya kali ya..
Dengan data port ini kita bisa mengeksport data keluar dari navision menjadi sebuah file .txt , untuk itu kita bisa memilih field-field mana saja yang akan kita eksport :D.. begitu halnya dengan import dari file text.
hehe.. dikit ya.. kurang detil :D.. karena kurang menjiwai.. maaf..
Objek Kelima - Codeunit
Jika kita mengenal tabel sebagai rumah dari data maka codeunit itu fungsinya adalah sebagai tempat ditanamnya skenario pergerakan data dari rumah yang satu ke rumah yang lain. suatu objek codeunit biasanya merupakan satu sekenario dari transaksi tertentu. jadi jika tabel itu sifatnya statis maka codeunit itu lebih dynamic.
Tidak hanya itu, codeunit juga adalah objek yang menjadi harapan terakhir untuk melakukan customisasi terhadap proses bisnis spesifik yang belum diakomodasi oleh fungsi2 standard Navision. So this is the lowest level part of the system, as i always be lazy to watch the script line by line and capturing its scenarios.. hehehe..
Salahsatu keunggulan Navision yang sering diulas dalam beberapa literatur yaitu extreemly customizable. Pertanyaan selanjutnya adalah, "Seberapa ekstrim kita bisa melakukan customisasi?" nah harapan terakhirnya ada pada codeunit itu.. semakin tinggi daya jelajah kita di codeunit, berarti semakin besar customisasi yang mungkin bisa kita lakukan.
Hemm... well, demikian pemaparan subjektif saya tentang objek2 di Navision semoga kehidupan kita bisa lebih objektive ya nggak bal (lirik Iqbal :P - red) he..he..he..
I warn you !!! :
1. Ini adalah tulisan tentang teknikal dari orang awan dan untuk orang awam.
2. Membaca paparan ini mungkin dapat membuat pandangan yang lebih utuh tentang Navision yang kita geluti sehari-hari. otherwise, it can make you a little bit confuse.. hehehe
3. Jika bingung berlanjut segera hubungi Master Faizal, Master Iqbal, Atau Master Hilma
4. Dibutuhkan pengayaan terhadap tulisan ini.. jadi silahkan tanggapi. :)
Di dalam ilmu pemrograman, pemrograman yang berorientasi objek (OOP) merupakan sebuah langkah yang cukup revolusioner dibandingkan dengan madzhab pemrograman sebelumnya (struktural/prosedural). karena paradigma pemrograman ini mengizinkan programer untuk memodelkan objek-objek nyata dalam kehidupan sehari-hari menjadi sebuah tipe data yang abstrak sehingga dapat disimulasikan dalam dunia virtual. Tapi, marilah kita lupakan sejenak tentang ilmu pemrograman dan kembali ke objek-objek yang ada di Navision. :D
Di dalam Navision, objek-objek dibagi menjadi 5 jenis, yaitu Tabel, Form, Report, Dataport, dan Codeunit. Masing-masing jenis objek memiliki peranan yang spesifik sebagai berikut :
Objek Pertama - Tabel
Tabel adalah salah satu tipe objek yang sangat penting fungsinya dalam software data-base seperti Navision .. ibarat kate nih, software database tanpa tabel itu seperti makan kagak pake nasi. atau ibarat nikah kagak ada pasangannye he..he..he.. bahkan saking pentingnya, biarin lah software database isinya cuman tabel doang tanpa Form atau Report atau yang lainya.. asal siap2 aja mabok buat ngentri atau baca data nya huehehehe..
Nah tabel ini berfungsi sebagai sarang atau rumah buat sang data.. disana ada kamar-kamar yang dinamakan field, field ini ditampilkan dalam bentuk kolom-kolom tabel. sedangkan baris pada tabel (record) adalah sekumpulan data yang memenuhi masing-masing fieldnya. satu record umumnya merepresentasikan sebuah data beserta atribut-atribut yang melekat padanya ataupun mencatat sebuah transaksi.
Nah kalo kita lihat dari perilakunya, tabel-tabel ini pun dapat kita bagi lagi menjadi (setidaknya) 3 macam.
1. Tabel Sumber : Yaitu tabel yang memuat data-data dasar dari sebuah proses bisnis. data-data ini sifatnya statis dan tidak akan pernah berubah oleh jenis transaksi apapun kecuali oleh aktivitas entry data manual. Karena dia merupakan tabel sumber, maka tabel ini akan selalu menjadi rujukan dalam setiap transaksi yang dilakukan. Tabel-tabel yang tergolong tabel sumber adalah seperti : Tabel Item, Tabel Customer, Tabel Vendor, Tabel Unit of Measure, Tabel Item Unit of Measure, Tabel Location dan tabel-tabel sumber lainnya. Tabel sumber ini umumnya diisi pada masa-masa awal implementasi.
2. Tabel Transaksi : Tabel jenis ini merupakan tabel dinamis, yaitu tabel yang berinteraksi dengan user pada tahap pengisian atau pengolahan dokumen (form) . tabel transaksi ini biasanya diisikan atau diolah oleh user dengan mengkombinasikan beberapa data dari berbagai tabel sumber plus data tambahan yang di entri secara manual. misalnya salah satu contoh dari tabel transaksi adalah Sales Header yang merupakan kombinasi dari tabel-tabel sumber seperti Customer, Salespeople/Purchaser, Payment Terms, Location, Shipment Methods, Shipping Agents. atau pun tabel transaksi sales line yang merupakan kombinasi dari tabel-tabel dasar seperti Item, Item Variants, Item Unit of Measures dan beberapa field seperti Quantity yang diisi sendiri secara manual.
3. Tabel Muara : Nah kalo nyang ini merupakan tempat 'pembuangan' akhir dari data setelah transaksi lengkap dilakukan. biasanya tabel muara ini terisi setelah aksi-aksi yang memicu terjadinya transaksi dilakukan, seperti aksi register, atau posting. Kalo di Hakiki biasanya tabel yang beginian itu diakses untuk mencari kambing hitam. siapa yang sudah salah posting, atau salah entry hehehe.. yang digolongkan sebagai tabel muara adalah tabel-tabel seperti Item Ledger Entry, Warehouse Entry, Sales Invoice, Sales Shipment, Customer Ledger Entry, Value Entry, Vendor Ledger Entry dan Muara dari segala transaksi yaitu G/L Entry serta ledger entry-2 lainnya.. tabel muara ini juga yang suka dikenai aksi2 'kekerasan' jika terjadi kesalahan2 transaksi, seperti tanggal posting atau harga,
Objek Kedua - Form
Form itu laksana jendela komunikasi antara sistem dan manusia (shhaaaah gaya teu? =P). Dia menyediakan informasi untuk user sekaligus juga sebaliknya, menyediakan perangkat2 yang dapat digunakan user memberikan perintah atau informasi kepada sistem. jadi ini kayak the interactive part of the system.. bagian ini kayak public relationnya sistem buat user.
Form dapat memberikan informasi dengan cara mengakses tabel serta menampilkannya secara langsung kepada user, form juga dapat digunakan oleh user sebagai tempat entry data, karena field-field yang tersedia pada form mengizinkan user untuk membubuhkan dan mengubah harga-harga yang ada padanya. Informasi yang diberikan oleh user melalui form pada umumnya akan mengisi tabel transaksi, selain itu form juga dapat mengeksekusi transaksi, meloncat untuk menampilkan form berikutnya dll, karena salah satu ciri khas dari form yang mutlak dapat kita kenali adalah adanya button ataupun menu untuk melakukan eksekusi, validasi, ataupun untuk berpindah ke form atau dokumen lainnya.
Selain dari itu, dalam sebuah proses bisnis, form juga berfungsi sebagai dokumen, form biasanya merupakan sebuah dokumen yang terlibat dalam salah satu fase dari keseluruhan rangkaian proses bisnis. oleh karena itu penanganan sebuah form berada dibawah tanggungjawab salah satu fihak yang terlibat dalam proses bisnis tersebut. misalnya sales yang bertanggungjawab terhadap Sales Order, Sales Quotes. atau Form Warehouse Shipment dan Warehouse Pick yang berada di bawah tanggungjawab Warehouse Officer..etc. Dan karena form terkait dengan tanggungjawab maka biasanya juga form ini memiliki print version yang dapat menyajikan form yang sudah dilengkapi oleh yang bersangkutan dalam versi hard copy untuk kebutuhan pengarsipan manual.
hemmm... apalagi tentang form yah???
O iya, Form ini kan PR nya sistem buat user, jadi dia harus di desain se-ergonomis mungkin sehingga menimbulkan kesan nyaman untuk digunakan. disini juga segala macem pengaman dipasang untuk mengurangi human error dalam pengisian data. bahkan saya pernah membayangkan bentuk interaksi antara sistem dengan user untuk aplikasi gudang, gimana kalo lebih graphical instead of tabular?. misalnya dengan gambar rak2 dan ruangan gudangnya, pokok-e ada visualisasinya. Soalnya berbeda dengan orang finance atau akuntansi yang terbiasa dengan tabel, sepertinya orang gudang akan mudah terbantu jika aplikasinya lebih visual,, kalo movement ada icon yang begerak2 dari bin satu ke bin lainnya,, hehe.. pake GUI gitu??.. bisa nggak yah??..
I think its still be a challenge.. ;)
Objek Ketiga - Report
Nah, berbeda dengan Form, objek yang satu ini berkomunikasi dengan user hanya satu arah, dimana sistem --dengan permintaan user tentunya-- menampilkan data-data dan informasi yang diinginkan dan tidak sebaliknya, user tidak dapat mengutak-atik apapun ketika report sudah dijalankan. Dan sesuai namanya, report digunakan untuk melaporkan seluruh transaksi yang pernah terjadi di dalam sistem. olehkarenanya ketika report dijalankan selalu berupa print preview yang siap untuk dicetak. karena sifatnya laporan dari hasil transaksi maka biasanya report bekerja dengan mengakses tabel muara.
Dalam sebuah perusahaan, biasanya cukup banyak permintaan data di akhir perioda analisis baik itu untuk kebutuhan pertanggungjawaban maupun untuk kebutuhan analisis dan perencanaan langkah perusahaan selanjutnya, dalam hal ini dibutuhkan teknik pelaporan yang dapat mengkombinasikan seluruh data transaksi yang disediakan oleh sistem. seperti data penjualan ke customer, pembelian dari vendor, penjualan item tertentu untuk customer tertentu dsb, dan report tersebut dapat ditampilkan dengan menggunakan satu tabel muara sebagai sumber atau beberapa tabel yang dikombinasikan dengan teknik pemrograman tertentu yang biasanya jadi urusan Iqbal ama Hilma. =)
Objek Keempat - Dataport
Ehm.. ehmm.. mau nulis ini teh malu euy.. soalnya belon pernah make :"> ... pernah sih.. nyoba sekali mengeksport data.. tapi cuman buat iseng.. dan abis di ekport nggak di apa-apain lagi.. jadi maaph jika uraiannya terlalu text book atau rada teoritis..
Nah, kalo kata petunjuknya sih (Application Development Guide.pdf) gini bunyinya.. "Dataports are objects that used for importing data from and exporting data to external text files" jadi kalo di departemen perdagangan mah kayak bagean EXIM nya kali ya..
Dengan data port ini kita bisa mengeksport data keluar dari navision menjadi sebuah file .txt , untuk itu kita bisa memilih field-field mana saja yang akan kita eksport :D.. begitu halnya dengan import dari file text.
hehe.. dikit ya.. kurang detil :D.. karena kurang menjiwai.. maaf..
Objek Kelima - Codeunit
Jika kita mengenal tabel sebagai rumah dari data maka codeunit itu fungsinya adalah sebagai tempat ditanamnya skenario pergerakan data dari rumah yang satu ke rumah yang lain. suatu objek codeunit biasanya merupakan satu sekenario dari transaksi tertentu. jadi jika tabel itu sifatnya statis maka codeunit itu lebih dynamic.
Tidak hanya itu, codeunit juga adalah objek yang menjadi harapan terakhir untuk melakukan customisasi terhadap proses bisnis spesifik yang belum diakomodasi oleh fungsi2 standard Navision. So this is the lowest level part of the system, as i always be lazy to watch the script line by line and capturing its scenarios.. hehehe..
Salahsatu keunggulan Navision yang sering diulas dalam beberapa literatur yaitu extreemly customizable. Pertanyaan selanjutnya adalah, "Seberapa ekstrim kita bisa melakukan customisasi?" nah harapan terakhirnya ada pada codeunit itu.. semakin tinggi daya jelajah kita di codeunit, berarti semakin besar customisasi yang mungkin bisa kita lakukan.
Hemm... well, demikian pemaparan subjektif saya tentang objek2 di Navision semoga kehidupan kita bisa lebih objektive ya nggak bal (lirik Iqbal :P - red) he..he..he..
I warn you !!! :
1. Ini adalah tulisan tentang teknikal dari orang awan dan untuk orang awam.
2. Membaca paparan ini mungkin dapat membuat pandangan yang lebih utuh tentang Navision yang kita geluti sehari-hari. otherwise, it can make you a little bit confuse.. hehehe
3. Jika bingung berlanjut segera hubungi Master Faizal, Master Iqbal, Atau Master Hilma
4. Dibutuhkan pengayaan terhadap tulisan ini.. jadi silahkan tanggapi. :)
