Sistematika’s Journal

Diberkati untuk memberkati

Struktur source code Adempiere

Posted by: Bayu Cahya P on: September 25, 2008

Beberapa hari terakhir, saya sedang melakukan riset sederhana tentang struktur source code Adempiere. Setelah mendapat source code terbaru Adempiere 352 dan melakukan update regular melalui svn server adempiere, saya memulai melakukan analisis tersebut.

Folder yang menjadi perhatian saya di svn Adempiere tersebut adalah

Mengapa saya hanya terkonsentrasi di tiga folder tersebut diatas?

Sebelum kita membahas lebih lanjut tentang folder tersebut, ada baiknya kita mengetahui tentang dasar-dasar pengelolaan folder source code menggunakan subversion. Seperti yang telah kita ketahui bersama, subversion adalah salah satu product yang digunakan untuk memanajemen source code. Seperti yang direkomendasikan dalam implementasi pengelolaan source code di subversion, struktur folder subversion secara umum adalah

  • trunk
  • branches
  • tags

Teori menyatakan bahwa peruntukan folder trunk digunakan untuk mengelola source code dalam status aktif development, branches digunakan untuk mengelola update atas versi software tertentu (di folder tags) dan tags digunakan untuk mengelola source code atas release awal dari suatu versi software tersebut. Adalah baik adanya jika kita dapat menganut rekomendasi tersebut dan mengimplementasikannya dalam rencana development internal.

Nah, bagaimana dengan struktur source code di Adempiere? Sayangnya, rekomendasi diatas belum/tidak berlaku sepenuhnya di repository Adempiere. Dengan belum/tidak berlakunya rekomendasi tersebut, janganlah kita berkecil hati dan menjadi bingung. Secara prinsip, pengelolaan folder source code di dalam repository merupakan kesepakatan bersama antar sesama developer di lingkungan tersebut. Setelah saya analisis dalam beberapa waktu, status aktif development untuk Adempiere versi 352 ada di folder branches/stable. Hal tersebut bisa dilihat baik melalui age maupun log message.

Berikut ini adalah contoh age yang diambil tanggal 26 Sept 2008 pukul 10:30

age adempiere source code

dan berikut ini adalah log message di folder branches/stable yang diambil pada tanggal yang sama

log message branches stable adempiere

Di folder inilah status aktif development Adempiere versi 352 dilakukan (menyimpang dari rekomendasi folder). Hal tersebut menjawab mengapa saya menggunakan folder branches/stable sebagai folder yang harus mendapatkan perhatian.

Berikutnya, bagaimana dengan folder branches/patches_352?

Dengan adanya penyempurnaan dan bug fixing dari versi Adempiere sebelumnya, secara umum hal tersebut akan disisipkan secara regular oleh team developer Adempiere ke folder branches/stable (ya, folder branches/stable sebagai repository sentral). Beruntung bagi sebagian dari kita yang dapat melakukan sinkronisasi secara real time dengan server repository Adempiere di source forge. Tinggal melakukan svn update, maka kita akan mendapatkan source code terbaru. Nah, bagaimana dengan rekan rekan lain yang tidak memiliki akses secara langsung di source code dan hanya memiliki versi rilis awal Adempiere 352? Hal inilah yang telah dipikirkan oleh team developer Adempiere.

Secara regular (weekly?), team Adempiere akan mencatat semua perubahan yang terjadi di folder branches/stable sejak rilis awal Adempiere 352, dan menyalin source code tersebut di folder branches/patches_352. Dengan adanya source code di folder tersebut, maka team development (atau kita) dapat membuat java jar file atas source code yang ada di folder branches/patches_352 dan merilisnya sebagai official patch file yang dapat digunakan oleh rekan rekan yang telah mempunyai versi awal Adempiere 352a.

Sebagai catatan, mengingat versi Adempiere 352a merupakan versi alpha (unstable untuk modul manufakturing dan human resource, tetapi stable untuk modul accounting), perubahan struktur data yang terkait dengan database dan data dictionary adalah hal yang umum. Untuk Adempiere versi 352, selain merilis patches, team developer juga merilis perubahan database dan data dictionary dalam format sql migration script. Sampai saat catatan ditulis, berikut ini adalah list sql migration untuk database oracle dan postgresql yang harus disinkronisasikan dengan database Adempiere kita (silahkan di apply sesuai dengan jenis database anda):

  • 20080801_migra_352.zip
  • 20080808_migra_352.zip
  • 20080815_migra_352.zip
  • 20080822_migra_352.zip
  • 20080829_migra_352.zip
  • 20080905_migra_352.zip
  • 20080918_migra_352.zip

Jika saat ini database Adempiere 352 kita belum pernah dilakukan migrasi data, maka kita harus melakukan proses migrasi database secara bertahap dari awal sampai akhir (20080801_migra_352.zip s/d 20080918_migra_352.zip) dan bukan 20080918_migra_352.zip saja.

Yang terakhir adalah folder Contributions/Localizations/Indonesia. Sepanjang yang saya ketahui, peruntukan folder tersebut digunakan untuk implementasi generik yang berlaku di suatu negara. Saat ini, folder tersebut dikelola secara aktif oleh Armen Rizal (salah satu kontributor Adempiere yang berada di Indonesia). Status terakhir atas source code yang dapat dilihat dari log message adalah patches atas return transaction dan reverse document posting.

Nah, untuk sementara waktu, demikianlah hasil analisis saya atas source code Adempiere. Semoga catatan ini dapat bermanfaat.

14 Responses to "Struktur source code Adempiere"

1 | rizZatama Ns

September 26th, 2008 at 8:47 pm

keren boss..
di tunggu analisis selanjutnya..

btw kenapa pilih adempiere drpada compiere?

2 | Bayu Cahya P

December 1st, 2008 at 10:52 am

Mulai 29-11-2008, status folder branch/stable telah dipindahkan ke folder trunk. Silahkan melihat thread https://sourceforge.net/forum/message.php?msg_id=5735225

Salam
Bayu

3 | udin

March 16th, 2009 at 2:08 pm

Pak Bayu,

Apakah saya juga harus menjalankan migration script setelah fresh install?
thx

4 | andi bismoko

March 16th, 2009 at 3:32 pm

dear bayu…
what is your opinion about efectivenes of Adempiere Flash Training…?
thank you…

5 | Bayu Cahya P

March 16th, 2009 at 3:44 pm

Halo Udin,

Jika anda mengimplementasikan versi 342s dan asumsi saya anda menggunakan database postgresql, ya, anda harus melakukan apply migration scripts yang dapat diambil di http://adempiere.svn.sourceforge.net/viewvc/adempiere/branches/adempiere343/migration/342s-trunk/postgresql.

Jangan lupa untuk melakukan apply patch untuk aplikasi ADempiere itu sendiri. Patches terakhir untuk 342 dapat diakses di https://sourceforge.net/project/showfiles.php?group_id=176962&package_id=230906&release_id=648627

Salam
Bayu Cahya P
http://sistematika.web.id

6 | Bayu Cahya P

March 16th, 2009 at 3:51 pm

Hello Andi,

It will depend on your experience with implementing the ERP and knowing the standard business processes. If you have an experience with other proprietary ERP such SAP, M3 or others and already master with common business processes, then basically, you already have an idea about how to implement and configuring the ‘things’ with the help of Adempiere Flash Training.

But, if you have nothing, it will so difficult to grasp the idea behind Adempiere Flash Training.

Btw, we are just offering an consultation with ADempiere itself. If you are interesting with our service, you shall shout me at nospam at sistematika dot web dot id

Thanks
Bayu

7 | udin

March 18th, 2009 at 10:41 am

Bayu,

Terima kasih atas jawabannya. Sejujurnya saya masih kurang paham mengenai fungsi dari migration script ini. Bisa tolong dijelaskan sekilas?
Saya compile dari tags\adempiere342

Terima kasih,

Udin

8 | Bayu Cahya P

March 18th, 2009 at 5:28 pm

Halo Udin,

Selama periode waktu dari ADempiere 342s rilis sampai dengan comment ini ditulis, team ADempiere developer telah melakukan penambahan ataupun bug fixing atas initial release 342s.

Hal yang terkait dengan perubahan di source code, akan dipublikasikan dalam bentuk patch. Contohnya patches-bla bla bla.jar (source code untuk patch tersebut juga tersedia). Sayang sekali patches untuk database tidak disertakan dalam official patches.jar

Nah, perubahan ataupun penambahan database meta data akan di catat dalam migration script.

Jika anda melakukan patches terbaru untuk versi 342s, maka seyogyanya anda pun diharuskan untuk melakukan apply database ‘patch’ menggunakan migration script yang telah ada.

Begitulah kira kira yang dapat saya informasikan.

Salam
Bayu

9 | andi bismoko

April 6th, 2009 at 12:10 pm

dear bayu…
kami rencana implementasi di Indonesia,
apakah tidak lebih baik
mulai mempelajari dari source code adempiere indonesia (starprise)…?

thank you…

10 | Bayu Cahya P

April 6th, 2009 at 2:39 pm

Helo Andi,

Source code Starprise is not available.

regards
Bayu

11 | andi bismoko

April 10th, 2009 at 6:30 pm

so… apa yang bisa developer dapatkan di sini : : http://adempiere.svn.sourceforge.net/viewvc/adempiere/contributions/Localizations/Indonesia ??

thank you…

12 | andi bismoko

April 10th, 2009 at 6:31 pm

and why starprise source code is not avaiable,
bukankah open source…? hehe…
thank’s

13 | AZZAM AHMAD

June 14th, 2009 at 7:41 pm

Dear Author,

Please, make this page into Engliash. Unfortunately I can’t read this laguage.

Thanks & Regards,

Azzam

14 | adi wiguna

December 18th, 2009 at 9:51 am

dear bayu,

saya mencoba menggunakan svn di netbeans untuk sourcecode adempiere,tapi lamanya minta ampun.terus saya mencoba download biasa,download gnu.tarbal.

yang menjadi pertanyaan

1. apakah file tersebut bisa di gunakan di netbeans?
2. bagaimana cara setup source adempiere tersebut ke netbean?
3. bagimana cara set server dan databasenya di netbeans?

pak bayu bisa bantu saya?

Comment Form

SEO Powered by Platinum SEO from Techblissonline