Category Archives: Open Source

News Update Adempiere 3.9.0

Info mengenai perkembangan terkini project open source Adempiere.

Project Adempiere tetap merupakan project yang aktif dan terus menerus melakukan inovasi. Tentunya kita perlu berterima kasih kepada kontributor-kontributor utama Adempiere seperti Adaxa dan E-Evolution.

Komunitas Adempiere telah melakukan beberapa langkah untuk meningkatkan kolaborasi, di antaranya:

1. Repository Source code dipindahkan ke :

https://github.com/adempiere/

2. Launching portal baru disini :

http://www.adempiere.net/web/guest/welcome

3. Sentralisasi forum disini :

http://adempiere.io/web/guest/forum/

4. 24×7 Chat online disini :

http://www.adempiere.net/web/guest/chat-on-line

Untuk planning release terbaru bisa dicek disini :

http://www.adempiere.com/Release_390

Semoga informasi ini bermanfaat buat semua.

Guide to Disable Weak Diffie-Hellman in Adempiere

Diffie-Hellman key exchange is a popular cryptographic algorithm that allows Internet protocols to agree on a shared key and negotiate a secure connection. It is fundamental to many protocols including HTTPS, SSH, IPsec, SMTPS, and protocols that rely on TLS.

Logjam is a new attack against the Diffie-Hellman key-exchange protocol used in TLS. Basically:

The Logjam attack allows a man-in-the-middle attacker to downgrade vulnerable TLS connections to 512-bit export-grade cryptography. This allows the attacker to read and modify any data passed over the connection. The attack is reminiscent of the FREAK attack, but is due to a flaw in the TLS protocol rather than an implementation vulnerability, and attacks a Diffie-Hellman key exchange rather than an RSA key exchange. The attack affects any server that supports DHE_EXPORT ciphers, and affects all modern web browsers. 8.4% of the Top 1 Million domains were initially vulnerable.

Adempiere 370 too can’t get away with this vulnerability issue. The good news is that it is only susceptible to passive eavesdropping from an attacker with nation-state resources, so you should be less worry. Nevertheless, to eliminate the risk, we have to disable the use of the weak Diffie-Hellman group and use a stronger 2048-bit group. If you don’t do this, your server is no longer accessible using the most recent release of popular browsers. You would get Secure Connection Failed error (see also our post about how to temporarily solve the error).

JSSE Configuration

If you run your own Adempiere 370 server, you might want to follow this advice. Open file serverTemplate.xml that resides in @ADEMPIERE_HOME@\jboss\server\adempiere\deploy\jboss-web.deployer. Look for Connector that define a SSL HTTP/1.1 and add ciphers attribute as shown below.

<!-- Define a SSL HTTP/1.1 Connector on port 8443
This connector uses the JSSE configuration, when using APR, the
connector should be using the OpenSSL style configuration
described in the APR documentation -->
<Connector port="@ADEMPIERE_SSL_PORT@" address="${jboss.bind.address}" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false"
keystoreFile="@ADEMPIERE_KEYSTORE@"
keystorePass="@ADEMPIERE_KEYSTOREPASS@"
sslProtocol="TLS"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,
TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"
/>

Choosing a cipher suite

A cipher suite is really four different ciphers in one, describing the key exchange, bulk encryption, message authentication and random number function. In this particular case, we’re focusing on the bulk encryption cipher.

The JSSE list of cipher suites is here and there is an extensive comparison list. There’s a number of different ciphers available, and the list has changed substantially between JDK 1.7 and JDK 1.6.

In 1.6, the default list is out of order — some of the weaker ciphers show up before the stronger ciphers do. Not only that, but 1.6 has no support for Elliptic Curve cryptography (ECC) ciphers, which are much stronger and allow for perfect forward secrecy. In 1.7, the default cipher list is reportedly pretty good. Unfortunately Adempiere 370 is still using 1.6.

Choosing a browser

Make sure you have the most recent version of your browser installed, and check for updates frequently. Google Chrome (including Android Browser), Mozilla Firefox, Microsoft Internet Explorer, and Apple Safari are all deploying fixes for the Logjam attack.

Reference

Guide to Deploying Diffie-Hellman for TLS
SSL/TLS, ciphers, perfect forward secrecy and Tomcat
Fixing the Most Dangerous Code in the World

Cara Instalasi Adempiere di Cloud

Rasanya sudah lama kami tidak mengulas topik mengenai instalasi. Makanya untuk meneruskan tradisi ini, dalam postingan kali ini saya akan menerangkan bagaimana cara instalasi Adempiere di cloud.

KONFIGURASI

Pada prinsipnya instalasi di cloud sama dengan yang biasa kita lakukan di server sendiri (on-premise). Saya mengasumsikan anda sudah menyiapkan dua buah virtual machine dengan sistem operasi CentOS 64 bit. Satu untuk application server dan satu lagi untuk database servernya. Dalam contoh di bawah, asumsikan IP masing-masing adalah 10.210.10.101 dan 10.210.10.102. Kalau anda mau coba-coba di local machine, anda bisa juga menggunakan VirtualBox. Untuk spek virtual hardwarenya, saya menganjurkan 2 CPU core dan 4 GB RAM.

Kalau anda sudah mempunyai VM, anda bisa memeriksa dulu konfigurasi VM anda tersebut.

Cara memeriksa versi CentOs:

# cat /etc/redhat-release

Cara memeriksa OS 32 bit atau 64 bit :

# uname -a

Kalau hasilnya seperti ini artinya 64 bit.
Linux hostname 2.6.9-55.0.2.ELsmp #1 SMP Tue Jun 12 17:58:20 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux

Kalau hasilnya seperti ini artinya 32 bit.
Linux hostname 2.6.9-55.0.2.ELsmp #1 SMP Tue Jun 12 17:59:08 EDT 2007 i686 i686 i386 GNU/Linux

Memeriksa CPU info :

# cat /proc/cpuinfo

# lspci -vv

INSTALL DATABASE

Ok, sekarang sudah siap ? Let’s get started. Kita sekarang login pakai root ke database servernya dulu.

Download PostgreSQL

# wget http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm
# rpm -i http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm
# yum install postgresql92-server postgresql92-contrib

# service postgresql-9.2 initdb

# service postgresql-9.2 start

Set PostgreSQL 9 Environment:

# su – postgres
# nano .bash_profile

[ -f /etc/profile ] && source /etc/profile
PGDATA=/var/lib/pgsql/9.2/data
export PGDATA
PATH=$PATH:$HOME/bin:/usr/pgsql-9.2/bin
export PATH

Jangan logout dulu, sekarang kita harus ganti password postgres:

# psql

postgres=# ALTER USER postgres WITH PASSWORD ‘mySecurePassword’;
postgres=# \q
# exit

# passwd postgres
– mySecurePassword

Kemudian jangan lupa konfigurasi file pg_hba.conf dan postgresql.conf:

# nano /var/lib/pgsql/9.2/data/pg_hba.conf

# nano /var/lib/pgsql/9.2/data/postgresql.conf

Sekarang kita nyalakan service-nya.

# service postgresql-9.2 restart

Supaya service-nya otomatis dinyalakan pada waktu booting:

# chkconfig –level 234 postgresql-9.2 on
# chkconfig –list postgresql

Setelah itu, buatlah user ‘adempiere’ di PostgreSQL (don’t change the user name!)

# su – postgres
# psql

postgres=# CREATE USER adempiere WITH PASSWORD ‘adempiere’;
postgres=# CREATE DATABASE starprise;
postgres=# \q

Sampai disini, database server sudah siap.

INSTALL JDK

Kita sekarang login pakai root ke application server. Pertama-tama kita install dulu Oracle JDK. Bisa juga pakai OpenJDK sebagai alternatif. Untuk mengunduhnya, Oracle mensyaratkan kita untuk menyetujui halaman perjanjian lisensi terlebih dahulu. Tapi karena kita sekarang sedang berada dalam VM yang tidak mempunyai GUI, maka kita perlu sedikit trik supaya server Oracle mengira kita sudah menyetujui halaman tersebut. Cobalah perintah di bawah ini.

# wget –no-cookies –header “Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com” http://download.oracle.com/otn-pub/java/jdk/6u38-b05/jdk-6u38-linux-x64-rpm.bin

Ok, kalau sukses, anda segera lanjutkan dengan menginstall JDK-nya.

# sh jdk-6u14-linux-i586-rpm.bin
accept license

# ln -s -f /usr/java/jdk1.6.0_38/bin/java /usr/bin/java

# java -version

Set java home and path:

# cd /etc/profile.d
# nano /etc/profile.d/starprise.sh

Isi dari file starprise.sh ini adalah sebagai berikut:

export JAVA_HOME=/usr/java/jdk1.6.0_38/
export ADEMPIERE_HOME=/opt/Adempiere
export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

Sampai disini anda jangan logout dulu dari Application Server.

INSTALL ADEMPIERE

Sebelum anda melanjutkan ke langkah berikutnya, coba dulu apakah Application Server anda bisa connect ke Database Server.

# psql -h 10.210.10.102 -p 5432 -U adempiere -d starprise

Kalau tidak bisa, anda harus periksa ulang konfigurasi pg_hba dan iptables di Database Server.
Jika berhasil, maka anda lanjutkan dengan menginstall Adempiere.

# useradd adempiere
# passwd adempiere

Pastikan resolusi nama server dengan IP Public:

# hostname
# nano /etc/hosts

tambahkan seperti ini kira-kiranya: 118.99.99.99 GoodWill

# unzip Adempiere_370.zip -d /opt/

Copy juga file AdempiereEnv.properties yang sudah dikonfigurasi sebelumnya.

scp AdempiereEnv.properties root@118.99.99.99:/opt/Adempiere

Ubah port ke 8080 & 4433 di dalam file ini (karena non root tidak boleh pakai port < 1000)

Supaya Adempiere service otomatis dijalankan ketika booting:

# chmod +x /etc/init.d/adempiere

# chkconfig adempiere on

Salah satu masalah yang sering dialami oleh para nubie adalah masalah kepemilikan log file. Seringnya gara-gara owner-nya adalah root, oleh sebab itu anda harus ganti menjadi user dan group anda.

# cd /opt
# chown -R adempiere Adempiere
# chgrp -R adempiere Adempiere

# cd Adempiere/
# chmod +x *.sh
# chmod +x utils/*.sh
# chmod +x utils/postgresql/*.sh

Sekarang anda boleh login dengan menggunakan user adempiere.

# sh RUN_silentsetup.sh

Konfigurasi Adempiere.properties
– ubah MaxPoolSize kurang dari PostgreSQL max_connections

Import Database

# sh utils/RUN_DBRestore.sh

Nyalakan servernya:

# service adempiere start

Selamat! Anda telah berhasil melakukan instalasi Adempiere ke cloud. Sekarang anda boleh coba buka IP Public anda di dalam browser, sambil jangan lupa menambahkan port 8080. Jika tidak ada masalah, maka anda akan segera masuk ke halaman muka Adempiere. Jika masih belum berhasil, anda harus periksa kembali konfigurasi port di dalam Iptables Application Server.

Goodwill Consulting is a long time Adempiere / Idempiere supporter since their inception. We are offering software-as-a-service solution on the cloud based on Adempiere / Idempiere. For more information, you can drop us a visit at www.goodwillerp.com

Invoicing and payment terms

Commonly used invoice payment terms and their meanings

This list explains many of the terms commonly used on invoices.

Invoice payment terms

Net 7 Payment seven days after invoice date
Net 10 Payment ten days after invoice date
Net 30 Payment 30 days after invoice date
Net 60 Payment 60 days after invoice date
Net 90 Payment 90 days after invoice date
EOM End of month
21 MFI 21st of the month following invoice date
1 % 10 Net 30 1 per cent discount if payment received within ten days otherwise payment 30 days after invoice date
COD Cash on delivery
Cash account Account conducted on a cash basis, no credit
Letter of credit A documentary credit confirmed by a bank, often used for export
Bill of exchange A promise to pay at a later date, usually supported by a bank
CND Cash next delivery
CBS Cash before shipment
CIA Cash in advance
CWO Cash with order
1MD Monthly credit payment of a full month’s supply
2MD As above plus an extra calendar month
Contra Payment from the customer offset against the value of supplies purchased from the customer
Stage payment Payment of agreed amounts at stages

Many of them are working out-of-the-box in our Goodwill ERP. However in implementations we sometimes find a very unusual requirement. Like in one case, in Karawang, they sell  motorcycles with payment term “after harvesting” (what?) which means the customer will pay you after the next harvest season. Only in Indonesia, grrr…. 😀

Anyway, if you need a special treatment for your business case, let us know. We can help you.

Keamanan Software Open Source

Banyak orang kerap meragukan sistem keamanan software open source. Menurut anggapan mereka, karena open source maka siapa saja bisa mengetahui sistem keamanan yang digunakan, membongkar kelemahannya dan akhirnya membobolnya.

Menurut saya sebaliknya. Beberapa software propietary memang ada yang menerapkan sistem keamanan yang sifatnya propietary. Tetapi dalam banyak hal, sistem keamanan software open source sama dengan sistem keamanan yang dipakai di software lain. Dengan model terbuka, software open source justru menjamin bahwa sistem keamanan yang dipakai adalah sistem yang jujur.

Cobalah baca berita yang satu ini.

The NSA has asked Linus Torvalds to install backdoors into GNU/Linux

Berita yang mengejutkan ini datang dari pengakuan Nils Torvalds, ayah dari Linus Torvalds si pembuat Linux, yang adalah anggota parlemen Uni Eropa. Karena Linux adalah sistem operasi open source maka hal tersebut mustahil untuk dilakukan karena siapa pun akan dapat menemukan backdoor yang dipasang.

Akan berbeda ceritanya dengan software propietary. Kita tidak akan pernah tahu apa yang terdapat di dalam software tersebut. Pemakai tidak akan pernah tahu ada tidaknya backdoor. Bahkan pejabat resmi vendor software tersebut pun tidak dapat (atau tidak mau) menjawabnya.

Untuk video lengkapnya tonton disini

Kenyataan ini sangat mengerikan apabila kita membayangkan orang lain bisa mengakses dan mengontrol komputer kita karena sistem operasi yang kita pakai mempunyai backdoor. Bagaimana pula dengan aplikasi finansial kita ? Database kita ? Atau firmware yang dipakai di handphone kita ? Tidak heran apabila para pejabat di negeri kita pun tidak luput dari penyadapan yang dilakukan oleh pihak asing.

Karena sebagai pemakai software propietary kita berada dalam posisi konsumen yang lemah. Ibaratnya anda sedang menyantap makanan yang tidak dapat anda ketahui isi dan resepnya. Sebaliknya pada software open source, resiko keamanan seperti ini justru dapat terhindarkan.

Payment Term with Fixed Payment Schedule date

How often you wish you could do something to tweak your ERP ? The blessing to use an open source ERP is you have access to its source codes. Isn’t it great if you could just make a lil bit change so you can get exactly what you want, and not to depend on what your software dictates you.

During one implementation in a car dealer, we were facing with one requirement to support installment sales. We thought it should be easy as we knew Adempiere has already payment schedule feature. Just open up Payment Term window and create a new payment term with Fixed Due Date being checked.

1-year-installment

1-year-installment

And then we entered all the schedules with equally divided percentages, for example if it is a one-year installment than the percentage is 100/12, which 8.3333. The net days is how Adempiere will determine the due date of each schedule, which in this case is the accumulation of 30 days that end up to 360 days (supposedly equal to one year length).

Payment Schedule

Payment Schedule

However, the Fixed Due Date option didn’t give what we expected. The Due date is falling on different date each month! And the worst is in one occasion, two schedules can due on the same month (see month of July in the picture below).

Order Schedule before tweak

Order Schedule before tweak

How it happens ? Because every month has a different length in days, you can’t just accumulate the net days with an exact 30-day length. That explains how we end up with 360 days a year, and not 365 days as in actual.

Luckily we are using open source ERP. There is nothing can stop us. The show must go on. So what we did it back in the day is to bring a new option called Fixed Payment Schedule date. This option will complement the existing Fixed Due date feature.

1-year-installment_fixed

1-year-installment_fixed

The following is how the schedule is generated using this new option. It exactly gives what our client wants that for each month of the installment period, the Due date will certainly fall into the same date. And that shows the power of open source ERP!

Order Schedule after fixed

Order Schedule after fixed

If you think this feature is worthy enough to be included in the next release of Adempiere or Idempiere, let us know. We will also be grateful to have your feedback. Until next time!

Goodwill Consulting is a long time Adempiere / Idempiere supporter since their inception. We are offering software-as-a-service solution on the cloud based on Adempiere / Idempiere. For more information, you can drop us a visit at www.goodwillerp.com

Adempiere, Idempiere atau OpenERP

Sebagai praktisi Open Source ERP, kami sering ditodong dengan pertanyaan ini. Bagaimana memilih open source ERP yang paling sesuai dengan kebutuhan Anda ?

Di Indonesia setidaknya tercatat ada beberapa software open source ERP yang cukup populer. Awal mulanya berangkat dari kemunculan Compiere ERP yang mulai dipakai di sini sejak tahun 2002. Nama-nama seperti Openbravo, Adempiere dan (sekarang) Idempiere semuanya merupakan turunan dari Compiere ERP.

Pengembang awal Compiere dan OpenERP (mula-mula bernama Tiny ERP) mempunyai pendekatan yang berbeda dalam membangun software ERP. OpenERP dirancang sebagai ERP yang ringan, sederhana dan mudah dipakai (makanya dulu namanya Tiny ERP). Jika Anda dahulu adalah pengguna aplikasi akuntansi semacam Accurate atau Zahir, maka pindah ke OpenERP bukanlah persoalan besar.

Jika Anda mengharapkan yang lebih kompleks dari OpenERP, maka Anda perlu mencoba menginstall beberapa modul untuk menemukan fitur yang paling pas buat kebutuhan Anda. Misalnya jika Anda perusahaan distributor, setidaknya Anda memerlukan 5 modul tambahan. Tentunya dengan bantuan konsultan berpengalaman, Anda bisa melalui proses ini dengan lebih cepat.

OpenERP dikembangkan dengan bahasa pemrograman Python yang kurang populer di Indonesia. Oleh sebab itu apabila Anda ingin mengembangkan OpenERP lebih jauh, sebaiknya Anda memiliki professional support sebab mencari programmer yang menguasai Python sangatlah sulit.

Dan sama seperti Compiere, OpenERP juga mengalami nasib di-fork oleh komunitas dengan nama Tryton. Untuk mengetahui perbedaan keduanya dapat dibaca disini.

Kebalikan dari OpenERP, Adempiere dan (sekarang) Idempiere disiapkan dalam satu bundel besar berisi seluruh fitur yang ada dan dirancang untuk mendukung bisnis skala menengah ke atas. Anda dapat mengabaikan fitur-fitur yang tidak ingin Anda pakai dengan mengatur akses pada menu-menunya. Dari sisi skalabilitas, konfigurasi standard Adempiere sanggup mendukung 100 concurrent user. Untuk skala yang lebih besar, Anda bisa menerapkan load balancer dan database cluster.

Adempiere adalah aplikasi berbasiskan Java (J2EE). Ia menggunakan platform ZK (ajax-based) untuk web UI-nya. Pada tahun 2010, Low Hengsin, salah satu top kontributor, melakukan eksperimen mengubah arsitektur Adempiere ke dalam OSGI supaya Adempiere menjadi lebih modular.  OSGI sendiri adalah teknologi atau platform service dan module system untuk Java. Eksperimen ini akhirnya berujung kepada forking baru bernama Idempiere setelah beberapa top kontributor lainnya turut bergabung ke dalamnya.

Secara teknis, apa yang ada di dalam Adempiere diwariskan oleh Idempiere. Pengembangan lanjutan di Idempiere dapat dibuat seperti plug-in. Anda nanti bisa mengaktifkan atau menon-aktifkan plug-in tersebut kapan saja. Namun demikian teknologi ini masih tergolong baru dan saya pikir kita semua masih sama-sama harus sabar menunggu proses pematangan Idempiere.

Goodwill sendiri adalah pendukung dan pengembang Adempiere dan (sekarang) Idempiere. Jadi mungkin Jawaban kami di atas agak bias. Tapi mudah-mudahan penjelasan ini bisa memberikan Anda lebih banyak gambaran. Jika Anda harus memutuskan saat ini, Adempiere masih merupakan pilihan yang bijak. Seperti biasa, kami selalu merekomendasikan versi yang paling stabil (business-wise) – bukan versi yang paling terakhir atau yang paling canggih (technology-wise). Produk utama kami, yakni paket distro Adempiere Indonesia a.k.a Goodwill ERP adalah berbasiskan Adempiere v.3.6.1 dimana kelak Anda dengan mudah dapat bermigrasi ke Idempiere.

Adempiere Cheat Sheet

Bergelut dengan aplikasi seluas ERP, banyak hal yang harus nempel terus di otak kita. Tapi seringkali justru hal-hal yang kecil dan sepele malah menjadi tidak mudah diingat. Kiat penulis adalah membuat catatan sederhana yang berfungsi sebagai “cheat sheet” alias kertas contekan supaya kita dengan cepat menemukan kembali jawabannya.

Berikut ini penulis ingin berbagi beberapa contekan yang sering dipakai oleh penulis.

ADempiere Conversion

Kalau anda sering lupa atau menjadi linglung bagaimana mengentri konversi kurs atau UOM, ini patokannya.

USD ke IDR, isi nilai tukarnya di kolom “multiply rate” (misalnya 10000).

Untuk UOM, jika satuan terkecil di master Product adalah kg.
Konversi Kg ke Ton, masukan angka “1000” di kolom “divide rate”.

Inget ya, jangan kebalik 🙂

DISPLAY TYPE

Adempiere menyediakan beberapa macam “display type” untuk tipe data numerikal. Pada window Table & Column, Anda bisa menentukannya dengan mudah lewat field Reference. Namun demikian, ternyata acapkali kita sering dibuat bingung mau pilih “display type” yang mana, karena Adempiere sama sekali tidak memberi petunjuk perbedaannya.

Ok, dengan menengok coding-nya (DisplayType.java) ternyata perbedaannya adalah pada pengaturan “minimum fraction digit” seperti ini:

Integer  : –
Quantity : –
Amount   : 2
CostPrice: 2
Number   : 1

Catatan: Ternyata Amount dan Cost Price tidak memiliki perbedaan. Dengan sedikit modifikasi, penulis membuat tipe Cost Price bisa dikonfigurasi. Sehingga jika ada kebutuhan di atas 2 digit di belakang koma, maka penulis tinggal mengaturnya saja di System Configurator.

Why can’t I issue my Expense report ?

Ketika kita menjalankan proses Project Issue dengan menggunakan Expense Report, sering kali kita mengalami kegagalan dengan pesan yang sama sekali tidak dapat memberi petunjuk kepada user apa yang menjadi penyebabnya.

Sebenarnya penyebabnya ada 4 hal, yakni:
1.    Expense Report harus punya Product
2.    Expense Report harus punya Quantity
3.    Expense Report harus sama Project
4.    Expense Report belum pernah diissue sebelumnya.

Dengan sedikit modifikasi, sekarang penulis membuat pesan kesalahan menjadi jelas sehingga user tahu penyebabnya yang mana.

SEED COST LOGIC

Bagaimana cara Adempiere mencari harga pokok sebuah produk ? Ini dia yang sering membuat mumet. Kalau Anda tidak tahu logik pencariannya, dijamin Anda bakal sering-sering menepuk jidat Anda sendiri.

Ok, ini dia urutan pencariannya (asumsi pakai Costing Method Average PO):

1. M_Cost (Costing tab), field CurrentCostPrice, Cost Element = Average PO
2. C_OrderLine_ID, field PriceCost then field PriceActual (included tax corrected)
3. M_Cost (Costing tab), field CurrentCostPrice, Cost Element = Standard Costing, per Org
4. Last Invoice Price (included tax corrected)
5. Last PO Price (included tax corrected)
6. M_Product_PO (Purchasing tab), field PO Price, current vendor first
7. Purchase Price List, most current, field PriceStd then field PriceList

Print Format Lookup Logic

Bagaimana Adempiere menemukan default Print Format untuk form yang mau kita cetak ? Tergantung jenis formnya, Anda bisa mengeceknya dalam daftar berikut. Apabila Anda sudah tahu logik ini, maka Anda bisa membuat pengaturan default Print Format dengan lebih baik.

1. CHECK – Bank Account Document, then Document Type
2. DUNNING – Dunning Level
3. REMITTANCE – Print Form
4. PROJECT – Print Form
5. RFQ – RFQ Topic
6. MOVEMENT – Document Type
7. REQUISITION – Document Type
8. VOUCHER – Document Type
9. ORDER – Document Type, then Print Form
10. SHIPMENT – Document Type, then Print Form
11. INVOICE – Business partner, then Document Type, then Print Form
12. MANUFACTURING ORDER – Print Form
13. DISTRIBUTION ORDER – Print Form
14. INVENTORY – Document Type

VARIABLE SPESIAL UNTUK PENCETAKAN

Tahukah Anda jika Adempiere menyediakan beberapa variable spesial yang bisa Anda pakai dalam pencetakan, misalnya ketika Anda butuh mencetak nomor halaman dan jumlah halaman seperti ini.

“Hal 1 dari 10”

Variable ini tidak terdokumentasi dengan baik tetapi sebenarnya dapat Anda baca dengan menekan F1 (Help) ketika berada di jendela Print Format. Berikut kutipannya:

Item in the print format maintaining layout information. The following additional variables are available when printing:
@*Page@ – the current page number
@*PageCount@ – the total number of pages
@*MultiPageInfo@ – “Page x of y” – only printed if more than one page
@*CopyInfo@ – if it is a copy of the document “Duplicate” is printed
@*ReportName@ – name of the report
@*Header@ – Full Header with user/client/org name and connection
@*CurrentDate@ – the user who prints this report
@*CurrentDateTime@ – the print time
@*CurrentUser@ – the user who prints this report
The layoit logic for forms is:
– if not printed: ignore
– set New Line Position
– new page
– new line, if something was printed since last new line
– format item
– print it (if not null/empty selected)
(i.e. supress null does not prevent new line)

Catatan: khusus variable @*CurrentUser@ adalah tambahan fitur dari tim Goodwill. Jika Anda membutuhkannya, silakan hubungi tim Goodwill untuk penjelasan teknisnya.

Sekian dulu sharing “Adempiere cheat sheet”-nya. Penulis berjanji akan meneruskan sharingnya di lain kesempatan. Semoga bermanfaat.

Goodwill Consulting adalah bagian dari komunitas pengembang dan pendukung Adempiere. Jika Anda membutuhkan bantuan profesional untuk implementasi Adempiere, silahkan menghubungi kami.

Adempiere Indonesia

Tidak terasa Goodwill Consulting akan segera berusia 9 tahun sebentar lagi. Sungguh merupakan pengalaman yang luar biasa bagi kami dalam memperkenalkan dan mendidik pasar terhadap sesuatu yang baru yang bernama “open source ERP”. Kami mungkin bukan orang pertama yang melakukan hal ini tetapi pada masa-masa awal kami merintis, pasar ternyata belum sepenuhnya siap untuk menerima ERP yang seperti ini. Dalam bayangan mereka, ERP itu adalah barang mewah yang identik dengan nama-nama besar seperti SAP dan Oracle. Sementara yang namanya “open source ERP” masih terasa asing di telinga.

Pada waktu itu kami sangat terkesan dengan software ERP bernama Compiere. Disain databasenya sangat bagus, arsitektur juga sudah sesuai standar MVC (model-view-controller), penerapan standard coding sangat konsisten, dan secara umum memiliki fungsional yang cukup lengkap dibandingkan software-software “open source erp” lainnya pada waktu itu. Compiere bahkan mempunyai fitur-fitur yang hanya bisa dijumpai di ERP kelas atas seperti multi dimensional accounting dan workflow processor.

Dan yang membuat kami terkagum-kagum, software ini dibuat oleh satu orang saja, namanya Jorg Janke, pria kelahiran Jerman yang kini menetap di Amerika Serikat. Jorg, dibantu istrinya Kathy dan dengan pengalaman membangun aplikasi ERP untuk Oracle dan SAP di Jerman, berhasil menciptakan suatu produk yang menurut kami, memiliki segalanya untuk menjadi sesuatu yang besar.

Compiere, menurut pandangan kami, bukanlah sekedar software ERP, tetapi lebih merupakan software framework dimana kita bisa membangun atau mengembangkan solusi-solusi vertikal di atasnya. Namun harus diakui Compiere bukannya tanpa kelemahan. Ia tidak semodular yang kami pikir. Pada beberapa tempat, Anda tidak bisa melakukan modifikasi tanpa menyentuh core class-nya (M* dan Doc*). Tetapi kelemahan Compiere terbesar adalah rendahnya kualitas komunikasi antara sang Founder dengan komunitas open source yang tergabung di dalamnya.

Pada waktu itu kami – komunitas – memandang Jorg Janke bagaikan seorang Dewa. Kami pikir dia adalah Sang Jenius. Dia yang telah menciptakan maha karya yang manfaatnya dirasakan dan dikagumi oleh banyak orang. Komunitas sangat salut dan menghormatinya. Namun sama seperti Dewa, dia juga sangat-sangat jarang berbicara dengan komunitas. Ini lama-lama menimbulkan ketidak-nyamanan dan kesalah-pahaman buat komunitas Compiere, terutama soal mekanisme kontribusi dari komunitas dan/atau partner. Dan klimaksnya adalah ketika Compiere mendapat suntikan investasi dari angel investor.

Setiap investor pasti menghendaki ROI, betul kan ? dan itu artinya Compiere harus berubah menjadi mesin uang. Model open source pun semakin dijauhi, source code tidak pernah lagi diupdate untuk publik, hingga akhirnya suasana memanas dan berujung kepada forking yang dilakukan oleh teman-teman komunitas. Forking ini kemudian dinamakan Adempiere, dengan motornya adalah Red1 dari Malaysia, Carlos Ruiz dari Colombia, Victor Perez dari Mexico dan sahabat kami Trifon dari Bulgaria. (Red. Penulis sendiri adalah orang keenam yang bergabung ke dalam tim committer proyek ini, referensi http://hg.code.sf.net/p/adempiere/code/file/26a028a976e2/COMMITTERS)

Popularitas Adempiere secara perlahan tapi pasti mulai menyaingi induknya Compiere. Komunitas bekerja sangat keras untuk menghasilkan suatu aplikasi ERP yang jauh lebih baik dari orisinalnya. Prestasi signifikan yang dicapai oleh komunitas adalah pengembangan web user interface, dukungan untuk open source database Postgresql, dan ekstension manufacturing. Berkat kegigihan komunitas, sekarang aplikasi Adempiere telah menjadi salah satu aplikasi open source ERP yang paling populer di dunia.

Di Indonesia sendiri, setelah beberapa implementasi dengan Compiere, kami pun beralih ke Adempiere dengan menggunakan database yang juga open source yakni Postgresql. Implementasi pertama kami adalah di salah satu waralaba lokal terkenal, setelah itu disusul dengan implementasi di beberapa perusahaan distributor dan manufacturing. Pada tahun 2010, kami juga ditunjuk oleh sebuah grup perkebunan kelapa sawit untuk implementasi Adempiere di perkebunan mereka. Walaupun pada waktu itu kami sama sekali tidak berpengalaman dengan industri perkebunan, berkat kerjasama yang sangat baik dengan tim key-user, maka kami berhasil go-live dalam waktu 6 bulan saja. Kami juga sangat takjub, ternyata web UI Adempiere cukup ringan untuk dipakai dalam koneksi VSAT yang hanya 128 Kbps saja.  Sekarang seluruh sebelas kebun yang ada sudah memakai Adempiere secara online.

Jadi berdasarkan pengalaman sembilan tahun kami ini, Adempiere terbukti memiliki fleksibilitas yang sangat baik sehingga dapat diterapkan di berbagai jenis industri. Skalabilitasnya juga sangat baik, jika perlu Anda pun bisa menerapkan load balancing. Sebagai implementor, kami sangat terbantu dengan lisensi open source ini sehingga kami bahkan dapat melakukan pengembangan-pengembangan dan perbaikan-perbaikan yang sekiranya itu tidak mungkin dilakukan jika apa yang kami gunakan adalah sebuah software propietary tanpa akses ke source codenya.

Pengalaman ini kami sarikan ke dalam satu paket distro Adempiere yang kami namakan “Goodwill ERP” ™. Paket distro ini khusus dikembangkan dan disetup dengan tujuan supaya bisa langsung dipakai oleh badan-badan usaha di Indonesia. Dalam implementasi Adempiere, Anda tentunya tidak mau bergelut dengan masalah “setup sana, setup ini” dan “tidak bisa ini, tidak bisa itu”. Kami membuat implementasi Anda menjadi jauh lebih mudah dan menyenangkan karena apa yang belum tersedia dalam standar Adempiere, sudah kami siapkan terlebih dahulu atas dasar pengalaman kami. Harapan kami semoga “Goodwill ERP” ini bisa menjadi pilihan utama sebagai paket distro Adempiere Indonesia.

Goodwill Consulting adalah bagian dari komunitas pengembang dan pendukung Adempiere. Jika Anda membutuhkan bantuan profesional untuk implementasi Adempiere, silahkan menghubungi kami.