Showing posts with label erp. Show all posts
Showing posts with label erp. Show all posts

Monday, July 27, 2009

Sistem Informasi Skripsi : Aplikasi Pertama Platform

Coba, bisa tidak bedakan itu dibuat dengan Delphi/VB/Java?

Mungkin, saya harus meralat kata2 saya, bahwa aplikasi Java dengan Swing akan terlihat berbeda dengan yang sekelasnya yang dibuat dengan VB atau Delphi. Coba lihat gambar tersebut, itu Java Swing. Tidak terlihat berbeda kan? Pun, ada icon pada system tray-nya.

Saya buat aplikasi ini cepat2 saja. Awalnya, masih dalam arahan ke satu modul SMS server dulu. Kemudian, saya ingin tunjukkan aplikasi ini pada yang meminta. Wah, saya pikir, bagus juga! Tepat, modular dan pluginnya bisa d-upload sambil jalan. Semuanya mudah.

Aplikasi di atas menggunakan MS SQL Server sebagai databasenya. Awalnya, saya kecewa karena proses menampilkan data skripsi (kasus ini), tidak cepat. Ada jeda antara saya menekan tombol Skripsi dan kemunculannya. Namun, beberapa saat kemudian, saya pikir, ini mudah! Load saja semua instance dari form dan buka koneksi serta load data yang dibutuhkan di awal loading aplikasi. Pemakai tidak akan merasakan perbedaan startup yang signifikan, namun yang jelas User Experience dengan aplikasi ini bisa meningkat

Dan itulah yang saya imlpementasikan dari aplikasi ini. Response terhadap aksi pemakai sangat baik. Selain itu, keberhasilan proses ini, karena saya menggunakan Design Pattern Singleton. Detail ttg Design Pattern sedang saya siapkan...

Semoga bermanfaat!
NB:
  • Kasus rancangan Platform ini seperti Spring Dependency Injection. Jadi, keterkaitan aplikasi dengan plugin bisa ditentukan dari luar, yaitu dari file XML konfigurasi
  • Di lain kesempatan,saya punya ide untuk menambahkan daftar file konfigurasi XML pada icon system tray, sehingga nantinya jenis aplikasi bisa dijalankan secara run time view Klik Kanan Icon Tray itu saja.

Saturday, July 25, 2009

Referensi ERP : Mulai Mengimplementasikan Database di MSSQL Server


Saya menggunakan buku dari Penerbit Informatika, yang judulnya (kalao g salah inget) Menyelaraskan ERP dengan Strategi Perusahaan (Oleh Wawan dan Falahah). Membaca buku2 Penerbit IF benar2 menyenangkan. Buku ini memulai rangsangan berpikir tentang ERP. Dari buku tersebut, banyak pencerahan ttg ERP yang saya dapatkan. Diantaranya, satu tagline saja, bagaimana berpikir global, dan bertindak lokal (btw, kenapa saya jadi berpikir ini juga moto para teroris pengebom Kuningan ya? duh).

Tidak punya banyak waktu, berikut salah satu diagram ERP yg ada di WEB, dari alamat ini : http://www.softwebsolutions.com/ERP.html


Pun, saya mulai implementasikan banyak database ke MSSQL Server. Seingat saya, baru satu saja thesis yg saya bantu menggunakan MSSQL Server. Yang lain, MySQL dan Access sudah cukup. Saya butuh trigger untuk mengimplementasikan database yang sempurna.

Semoga bermanfaat!

NB:
  • Untuk buku MSSQL Server, sy pakai buku terbitan Dian Rakyat, meski buku ini sbnrnya membahas Power Builder 9.

Friday, July 24, 2009

POC Lebih Baik Tentang Arsitektur Aplikasi ERP Pluggable



Ini Proof of Concept yg lebih baik : penggunaan Jar Class Loader, view yg terintegrasi dan kontribusi plugin pada toolbar (kontribusi pada menu, juga mudah dilakukan). sert penggunaan Apache Configurations. Berikut adalah method yg memulai aplikasi (lupa di kelas mana) :

private void start() {
try {
config = new XMLConfiguration(pluginDir + "\\Platform.xml");
config.setAutoSave(true);
Platform.getInstance().setMainWindow(MainSDI.getInstance());
loadPlugin();
Platform.getInstance().getMainWindow().setVisible(true);
} catch (ConfigurationException ex) {
Logger.getLogger(Startup.class.getName()).log(Level.SEVERE, null, ex);
}
}


Semua isi konfigurasi aplikasi terdapat di Platform.xml yang dibaca oleh kelas milik Apache Configurations. Isi file Platform.xml merupakan petunjuk tentang bagaimana kustomisasi aplikasi yg akan dilakukan. Bayangkan 2 klien yg mirip dalam kebutuhan, maka mereka akan memiliki dua Platform.xml yang berbeda. Adapun kontributor yg berupa plugin, bisa berbagi. Isi dari file Platform.xml, bisa seperti berikut :



SMS Server
startup.PluginSmsServer





Payroll
startup.PluginPayroll



General Ledger
startup.PluginGeneralLedger




Adapun untuk mekanisme load pluginnya ada di kode berikut :

private void loadPlugin() {

JarClassLoader jcl = new JarClassLoader();
jcl.add(pluginDir + "/");
JclObjectFactory factory = JclObjectFactory.getInstance();

Plugin p;
List l = config.configurationsAt("modules.module");
for (int i = 0; i <>
p = (Plugin) factory.create(jcl, l.get(i).getString("class"));
p.contributeToToolbar(Platform.getInstance().getMainWindow().getToolMain());
}
}


Perhatikan bagaimana JCL dipanggil, dan juga perhatikan bagaimana isi konfigurasi pada node modules.module dikelola. Selai itu, pemanggilan contributeToToolbar, merupakan cara ringkas untuk memberi kesempatan bagi plugin untuk berkontribusi. Berikut detail kode contributeToToolbar :

public void contributeToToolbar(JToolBar toolMain) {
btnPenjualan = new JButton("Plugin Penjualan");
btnPenjualan.setIcon(new javax.swing.ImageIcon("D:\\My Pictures\\icon-eclipse\\complete_status.png")); // NOI18N
btnPenjualan.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
btnPenjualan.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
btnPenjualan.setFocusable(false);
btnPenjualan.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Platform.getInstance().getMainWindow().getMainContainer().setViewportView(PenjualanPanel.getInstance());
}
});
toolMain.add(btnPenjualan);
}

Semoga bermanfaat!

NB:
  • Tingkat fleksibilitas bisa ditambah dengan membuat definisi menu via file Platform.xml itu juga (jadi mrip konsepnya dengan file Plugins.xml pada Eclipse RCP).
  • Saya akan sangat tertarik, jika aplikasi yang akan dikembangkan benar2 besar dan luas secara arsitektur. Maka merancang hirarki kelas dan segala kerumitannya sangat menggairahkan

Friday, July 03, 2009

Bangunan Utama untuk Aplikasi ERP Impian


Bangunan utama Aplikasi ERP saya adalah Java, yang dibangun di atas Springframework. Keberhasilan dengan Eclipse RCP, membuat komponen Rich Client aplikasi ERP saya dapat diserahkan ke teknologi Eclipse RCP ini. Namun, aplikasi ini harus siap untuk dionlinekan, sehingga saya akan buat Core dari teknologinya berbasis HTTP, dan pilihan secara alami jatuh pada Springframework. Anda dapat download tiga project Netbeans 6.5 yang merupakan keberhasilan awal pembangunan komponen Server, Klien dan Data Objectnya.

Aplikasi ini akan saya buat modular, sehingga pengguna dapat menggunakan modul yang dia rasa perlu saja. Waktu di jlan tadi saya mikir (ini di warnet), modul pertama yang saya kembangkan haruslan Modul Akuntansi. Beberapa modul yang dapat dikembangkan :
  • CRM
  • Sms Gateway
  • Stok
  • Penjualan Voucher Elektronik
  • dsb dsb
Modul plugin ini berbasiskan Eclipse RCP. Untuk persiapan skalabilitas yang lebih tinggi, yang jelas semua core dari aplikasi disimpan di dalam Core Springframework. Adapun untuk UI, mungkin Eclipse RAP dapat dipergunakan untuk dua kebutuhan desktop dan server ini. Hm.. baru terpikir. Namun tetap, Spring framework adalah inti yang tidak tergantikan meskipun apliksi bergerak dari desktop ke server, atau sebaliknya. Banyak aplikasi yang dibangun seperti ini : di dalamnya ada Tomcat Web Server (Mungkin saya akan pakai Jetty saja, lebih ringan. , namun di atasnya user bekerja dengan menggunakan aplikasi Rich Client. Contohnya adalah Project Cards, yang merupakan aplikasi Manajemen Proyek Extreme Programming.

Sepertinya impian saya di blog ini mulai terwujud. Di artikel Mengenal SAP Lebih Jauh : Pemilihan Database, saya akhirnya menemukan bahwa esensi ERP SAP ternyata masih RDBMS, jadi arah penelitian dan pengembangan aplikasi ERP sy akan ke arah ini. Sebelum itu di artikel Ide Mengembangkan Solusi ERP Sendiri, saya utarakan (selatankan juga masuk akal) kalau saya ingin punya produk ERP sendiri. Semua itu berawal dari pembelajaran SAP yang saya utarakan di artikel Melangkah untuk pembelajaran SAP : Data Mining. Adapun kontak pertama dengan aplikasi ERP adalah dengan Open Bravo.

Semoga bermanfaat!
NB:
  • Basis pekerjaan saya yang membantu Tugas Akhir sangat membantu. Misalnya, saat bantuan suatu Tugas Akhir, tidak ada requirement harus dengan Eclipse RCP, maka karena saya tahu ada potensi di Eclipse RCP, maka saya jadikan bantuan tersebut menggunakan Eclipse RCP. Nah, itu menjadi modal knowledge untuk pembangunan aplikasi selanjutnya.
  • Ada yg lain?