Jun 20

Sejarah Implementasi ERP di Indonesia

Sejarah Implementasi ERP di Indonesia

Istilah ERP (Enterprise Resource Planning) pertama kali dipakai oleh Gartner Group pada tahun 90-an untuk menerangkan sistem komputerisasi terintegrasi untuk manufacturing, yang di dalamnya tentunya sudah termasuk MRP (Material Requirements Planning), dan generasi selanjutnya MRP II (Manufacturing Resource Planning). Meski awalnya ERP dikembangkan untuk manufacturing, sejak tahun 90-an vendor ERP mulai memasukkan paket mereka dengan modul-modul finansial dan akuntansi, serta Human Resource. Pada masa ini, ERP masih berfokus pada otomatisasi fungsi-fungsi back office yang tidak berhubungan langsung dengan customer atau pihak eksternal lainnya.

Di Indonesia, Astra International merupakan salah satu yang menjadi pioner dalam mengimplementasikan ERP di periode 90-an, dimana saat itu yang mendominasi pasar ERP adalah software dari Jerman bernama SAP yang memang punya pengalaman besar di manufacturing. Menjelang akhir 90-an, karena isu Millenium Bug, banyak perusahaan besar melakukan peremajaan sistem lama mereka dengan ERP. Saat itu, banyak teman-teman kami satu alumni yang bekerja dalam implementasi SAP di grup-grup besar seperti Indah Kiat, atau di perusahaan konsultan SAP seperti Iforte dan Metrodata. Dan karena implementasi SAP ini tergolong super mahal, maka perusahaan besar ini merasa perlu bikin subsidiary yang bisa deliver implementasi SAP ke perusahaan lain. Maksudnya mengubah dari cost center jadi profit center, kalau bisa.

Memasuki periode 2000-an, dominasi SAP mulai mendapat tantangan dari vendor-vendor IT lainnya. Ceruk pasar ERP yang besar ini ikut dilirik oleh Oracle, perusahaan database terbesar dunia yang meluncurkan aplikasi ERP mereka, Oracle Finance. Keduanya menjadi top player di dalam pasar ERP. Setelah mereka, ada puluhan vendor ERP second layer seperti JD Edwards, PeopleSoft, Mapics, APAC, IFS, dll. yang menawarkan harga yang sedikit di bawah dua nama besar tersebut. Perusahaan software nomor satu dunia, Microsoft pun tidak mau kalah, ikut bermain di pasar ERP dengan mengakuisisi beberapa vendor ERP sekaligus seperti Great Plains, Solomon, Navision dan Axapta (sekarang semuanya menjadi Microsoft Dynamics). Karena merasa ketinggalan, Microsoft tidak mau pusing untuk berlama-lama mendevelop software ERP dari scratch, supaya mereka bisa ikut menikmati kue ERP ini.

Namun demikian, meski vendor-vendor ERP semakin banyak bermunculan, kesan pertama ERP tetap sama yakni MAHAL. Saat itu hanya perusahaan-perusahaan besar saja yang berani berinvestasi dengan nilai milyaran untuk implementasi ERP. Sedangkan banyak perusahaan menengah ke bawah tidak mempunyai pilihan selain mengembangkan custom software sendiri dengan Foxpro, Visual Basic, dll.

Sementara itu, nun jauh di Jerman, di negeri kelahiran SAP sana, salah seorang eks direktur Oracle Eropa bernama Jorge Janke mulai mengembangkan ERP yang dirilis sebagai software open source dengan nama Compiere. Mulanya, Compiere didevelop untuk perusahaan distribusi ban milik Goodyear. Kemudian di tahun 2002, Compiere mulai menawarkan solusinya ini ke seluruh dunia dan membuka partnership dengan implementor lokal dari beberapa negara. Solusi ERP open source ini tentunya membuka opsi baru bagi perusahaan-perusahaan menengah ke bawah yang tidak mempunyai budget yang cukup untuk memilih software ERP propietary di atas. Solusi ini tentunya juga menarik untuk dibawa ke Indonesia.

Pada tahun 2004, Java User Group (JUG) Indonesia mengundang partner Compiere dari Malaysia untuk melakukan training bersama. Kami perlu tahu lebih banyak hal mengenai software ini sebelum bergerak menjadi implementornya. Mulanya solusi ini masih dipandang sebelah mata di Indonesia dan di masa-masa awal Goodwill Consulting mengalami banyak tantangan untuk “berani-beraninya” berkompetisi dengan nama-nama besar ERP lainnya. Namun demikian nyatanya solusi ini cukup diminati di segmen pasar ERP menengah ke bawah yang masih banyak menggunakan sistem manual dengan spreadsheet atau custom software.

Apalagi di pertengahan periode 2000-an, perusahaan-perusahaan yang “terjebak” menggunakan top-tier ERP mulai merasakan efek-efek dari kesalahan selama masa implementasi seperti data migration yang bermasalah, ketiadaan fitur lokal, sampai ke masalah performance sistem. Jargon-jargon seperti SAP = Setan Aja Pusing, Oracle = Ora Kelar-kelar (Tidak selesai-selesai) sudah sangat akrab di telinga user. Orang-orang mulai gelisah dengan masalah lisensi yang mahal. Belum lagi biaya maintenance per tahun yang konon 17% dari harga aplikasinya.

Peluang ini menggelitik vendor ERP besar untuk ikutan menggarap segmen pasar ini, maka dirilislah aplikasi seperti Oracle Finance for SMB dan SAP Business One. Aplikasi yang terakhir ini sebenarnya adalah hasil akuisisi SAP atas sebuah vendor ERP. Sama halnya seperti Microsoft, SAP tidak mau kehilangan momentum sedetik pun untuk turut bermain di segmen ini. Paket starter SAP Business One ditawarkan dengan harga yang cukup terjangkau, namun jika diperhatikan, paket ini hanya terdiri atas 5 user licenses yang mana tentunya tidak cukup buat sebuah perusahaan yang serius ingin menerapkan sistem ERP. Di sisi lain, solusi ERP open source bebas dipakai dengan jumlah user yang tidak terbatas secara gratis, tidak ada biaya lisensi sama sekali. Kekuatan brand SAP membuat aplikasi ini cukup laku di pasar karena bagi orang yang lebih mementingkan brand, mereka bisa dengan bangga menyandang predikat “We Run SAP”, meskipun yang mereka pakai sebenarnya software yang berbeda.

Memasuki periode 2010-an, teknologi semakin berkembang pesat seiring berkembangnya internet dimana-mana. ERP pun makin luas cakupannya, sampai ke CRM dan BI. Software ERP mulai memasuki era web-based, aplikasi dideploy di cloud, bisa berjalan di browser dimana saja. Tentunya tidak semua vendor ERP dengan cepat dapat mengikuti perubahan zaman ini sehingga masih banyak yang bertahan sebagai aplikasi desktop, yang ketika dipaksa diakses di cabang dengan remote desktop, jalannya jadi seperti keong. Tidak heran, banyak yang mulai beralih ke web-based ERP. Di periode ini nama-nama seperti Accumatica dan Oracle Netsuite mengisi kompetisi pasar, yang terakhir ini menawarkan aplikasi ERP dengan konsep SaaS (software as a service) yang dapat disewa.

Goodwill Consulting ketika itu sudah aktif sebagai kontributor Adempiere, sebuah project open source yang sebenarnya adalah fork dari Compiere. Project ini digagas oleh konsultan dan pengguna Compiere yang kecewa ketika Compiere gagal untuk memberikan aspirasi dan akses yang lebih luas kepada komunitas untuk berpartisipasi dalam pengembangannya. Adempiere sendiri berhasil melepaskan diri dari bayang-bayang Compiere dan melejit menjadi aplikasi ERP open source yang paling populer. Apalagi sejak tahun 2008, Adempiere mulai merilis user interface web-based-nya dan menjadikannya salah satu software ERP yang dapat berjalan di web-based dan desktop sekaligus. Di masa-masa ini juga mulai bermunculan beberapa software ERP open source lainnya, di antaranya Tiny ERP, yang mulanya ditujukan untuk perusahaan kecil, kemudian berganti nama menjadi Open ERP, lalu terakhir menjadi Odoo ERP.

Hanya saja, tidak semua software open source ini adalah open source yang murni dibangun oleh komunitas seperti Adempiere. Ada yang dirilis sebagai open source, tapi pengembang utamanya tetap dipegang oleh si vendor dan biasanya untuk model seperti ini, si vendor juga menyediakan versi komersil yang punya fitur-fitur ekstra yang tidak tersedia di versi open source.

Di periode ini, software open source sudah dapat diterima pasar dan dikemas lebih baik lewat dukungan konsultan-konsultan lokal seperti Goodwill Consulting yang lebih memahami bagaimana memadukan kekuatan software berkelas dunia ini dengan “kearifan lokal” khas Indonesia. Meskipun nantinya, kami menyaksikan ada beberapa konsultan abal-abal gagal untuk mendeliver implementasi dengan baik dan membuat image Adempiere agak tercoreng. Karena itu, dari Goodwill lahirlah distro Adempiere dari pengembangan tim sendiri yang diberi nama Goodwill ERP. Ini adalah fork Adempiere yang dikemas dan disiapkan khusus untuk pasar Indonesia, dimana pengalaman dan best practice kami sejak tahun 2005 dituangkan ke dalamnya, dan ketika dieksekusi oleh tim implementor Goodwill yang berpengalaman, menjamin implementasi ERP yang lebih smooth. Goodwill ERP berjalan dengan antar muka web based yang aman, cepat dan handal, dan tersedia baik dalam layanan private cloud atau on-premise.

Memasuki akhir periode 2010-an, terdapat fenomena software akuntansi naik kelas dan menyandang predikat ERP. Memang, adalah suatu hal yang alamiah ketika suatu software dikembangkan terus-menerus, fitur dan modulnya pun akan semakin bertambah, sehingga yang tadinya hanya mencakup fungsi tertentu saja, umumnya akuntansi, maka sekarang mencakup banyak fungsi ibaratnya sebuah ERP. Ini sebenarnya patut dicermati agar tidak salah pilih karena disain asli suatu software menentukan seberapa baik dia dirancang untuk menjadi sebuah sistem yang terintegrasi. Biasanya software akuntansi dibangun dengan sudut pendekatan orang akunting, dimana tidak penting kontrol operasional sepanjang tujuan akuntansinya tercapai. Di sisi lain, software ERP dirancang sejak awal untuk menjadi satu sistem terintegrasi yang akuntabel, yang memperhatikan segala aspek, tidak hanya pada satu fungsi tertentu saja.

Sama halnya dengan pengalaman Goodwill Consulting ketika memilih untuk menjadi implementor software ERP. Melalui observasi dan penelitian yang mendalam terhadap isi software, kami sangat kagum dengan disain Compiere yang elegan, dengan konsep Application Dictionary-nya yang sangat fleksibel, dengan Multi Dimensional Accounting-nya, yang di saat itu fitur seperti ini hanya bisa dinikmati di top-tier ERP saja. Ada banyak pilihan software lainnya saat itu, tapi Compiere memenangkan hati kami, dan sejak itu kami tidak pernah berpaling. Kami adalah saksi dan pelaku, yang tumbuh-kembang bersama dengan Compiere, Adempiere dan sekarang Idempiere, selama hampir 20 tahun, dan menyaksikan bagaimana software ERP datang dan berlalu.

Nov 11

Financial Report improvement featuring Multi report sources

When doing implementation we often struggle to produce Financial Report with complex multi-dimensional accounting layouts. One of the case is when we would like to breakdown an account by Cost Centers or by Sales Regions. In traditional accounting, we used to find a structure of Chart of Account which composed of many duplicated accounts, for example one set of travel expense accounts for General activity and another set of the same travel expense accounts for Sales activity. With multi-dimensional feature that Adempiere has, we often suggest our clients to get rid of those duplicated accounts and tell them that later on they can break them down by any other dimensions they want.

Sample report breakdown by Dept dimension

Sample report breakdown by Dept dimension

Well, not that easy. When it comes to Financial Report, we get hit by the wall that it is so difficult to prepare such a layout using the existing functionality. There is Combination feature in Report Source tab introduced sometimes ago but it is also not offering an easy way we thought. You can use that feature if the dimension only contains small data but what if you have hundreds of records, such as “tell me how much is the Revenue breakdown by products”.

Team Goodwill have tried to improve the current Report Source tab to allow combining multiple report sources in one Report Line using the And/Or condition. Future development would include support for condition in parentheses. For example you can combine two report sources, Account “AND” Business Partner, to produce a Receivables detail report showing the balance for each customer.

Just take a look at the sample report above. The sample #1 is a Report Line using single report source, which is only Account type. By choosing a summary account, it can then expand all its child accounts.

The sample #2 is a Report Line using two report source, one is Account type, and the other is Activity. The Activity is purposely left empty because we want to show all. The system would always expand the details of the report source with the highest Sequence Number, in this case the Activity.

Travel Expense - ALL DEPT (breakdown by Dept)

Travel Expense – ALL DEPT (breakdown by Dept)

Here, we used Activity dimension as “Departments”.

The Tree of Activity as Departments

The Tree of Activity as Departments

Ok, let’s take a look another examples. In sample #5, we show Travel Expense and filtered by General departments only.

Sample Report Filtered and Breakdown

Sample Report Filtered and Breakdown

This is how we do it. We add two report sources like above. But this time we enter “General” activity. In this sample, when the Sequence number is the same, the system would expand the details of the last report source we entered. And since “General” is a summary level activity, system will show all its children.

Travel Expense - General only (breakdown by Dept)

Travel Expense – General only (breakdown by Dept)

In sample #6, thing is getting serious. We want to show Travel Expense, filtered by Sales dept and breakdown by Sales Region. Here how we do it.

Travel Expense - Sales Dept (breakdown by Sales Region)

Travel Expense – Sales Dept (breakdown by Sales Region)

That’s it folks. We would like hearing your feedback on how to improve this functionality. Let’s make Adempiere great again 🙂

Oct 28

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.

Jun 30

Import Data Faktur Pajak dari Goodwill ERP ke e-Faktur

Anda pasti sudah mendengar bahwa mulai 1 Juli 2015 Pengusaha Kena Pajak (PKP) yang dikukuhkan pada Kantor Pelayanan Pajak di Jawa dan Bali diwajibkan membuat faktur pajak berbentuk elektronik (e-Faktur).

Pemberlakuan e-Faktur merupakan wujud peningkatan layanan Direktorat Jenderal (Ditjen) Pajak bagi PKP yang dimaksudkan untuk memberikan kemudahan, kenyamanan, dan keamanan dalam melaksanakan kewajiban perpajakan khususnya pembuatan Faktur Pajak.

Pemberlakuan e-Faktur tentu saja membawa perubahan cara bekerja bagi semua orang. Selama ini para pemakai Goodwill ERP sudah langsung membuat dan mencetak Faktur Pajak dari menu Sales Invoice. Setelah 1 Juli 2015, nantinya kita harus membuatnya melalui aplikasi e-Faktur yang disediakan oleh Ditjen Pajak. Dan Faktur Pajak nantinya tidak usah dicetak lagi, tapi cukup diapprove secara online lewat aplikasi e-Faktur.

Tentunya ini menimbulkan persoalan jika kita harus mengentri ulang semua data penjualan dan pembelian ke dalam e-Faktur. Oleh sebab itu sebagai komitmen kami untuk selalu memberikan layanan terbaik kepada Anda, kami sudah merilis fitur baru yakni Tax Allocation dengan dua kemampuan yakni:

1. Alokasi PPN Keluaran dan PPN Masukan sehingga Anda bisa dengan mudah menghitung kurang/lebih bayar-nya.

2. Ekspor data pajak ke file CSV. Nantinya file ini bisa diimport masuk ke dalam aplikasi e-Faktur.

Untuk lebih jelasnya, kami juga sudah menyediakan video demonstrasi cara mengimport data faktur pajak dari Goodwill ERP ke e-Faktur di bawah ini. Semoga bermanfaat.

Bagian ke-2

Nov 07

Alokasi pembayaran multi-currency

Di Indonesia kita tentunya tidak lepas dari transaksi yang mempergunakan mata uang asing. Di bagian Finance, kita lazim melakukan pelunasan invoice dalam mata uang asing dengan mempergunakan mata uang Rupiah. Karena perbedaan mata uang ini, biasanya kita mendapati perbedaan selisih kurs antara kedua mata uang tersebut.

Pertanyaannya, bagaimanakah kita menangani proses transaksi yang demikian di dalam Goodwill ERP ? Mudah atau sulitkah ?

Sebenarnya proses transaksi demikian tidak memiliki perbedaan dengan transaksi yang sama mata uang. Untuk lebih jelasnya dalam video berikut ini kami memeragakan bagaimana melakukannya di dalam window Payment.

Youtube channel Goodwill ERP – Alokasi pembayaran beda mata uang.

Untuk transaksi yang lebih kompleks, seperti pembayaran multi payment atau parsial, seperti biasa Anda bisa melakukannya lewat form Payment Allocation, dengan memperhatikan dua hal berikut ini.

  • Kolom Currency di Payment Allocation harus dipilih sesuai dengan Currency Invoice yang kita mau alokasikan.

Jika Invoice kita dalam USD maka pilihlah Currency “USD”. Kemudian centanglah kolom Multi-Currency. Maka baik Invoice maupun Payment Anda yang beda mata uang tersebut akan muncul di layar.

  • Kolom Date di Payment Allocation harus dipilih sesuai dengan Tanggal Payment yang kita mau alokasikan.

Tanggal yang dipilih sebagai tanggal Payment Allocation akan menentukan kurs mana yang akan digunakan. Oleh sebab itu jika Anda melakukan pelunasan dengan 2 atau lebih Payment, Anda harus mencermati tanggal-tanggalnya.

  • Jika tanggal masing-masing Payment sama semua, maka Anda bisa melakukan satu kali alokasi sekaligus.
  1. Invoice A Dialokasikan dengan Payment 1, 2 & 3 (tanggal sama semua). Proses.

  • Jika tanggal masing-masing Payment berbeda-beda, maka alokasi dilakukan secara bertahap dengan urutan seperti berikut :
  1. Invoice A Dialokasikan dengan Payment 1 (sesuai tanggal Payment 1). Proses.

  2. Invoice A Dialokasikan dengan Payment 2 (sesuai tanggal Payment 2). Proses.

  3. Invoice A Dialokasikan dengan Payment 3 (sesuai tanggal Payment 3). Proses.

Semoga penjelasan ini bermanfaat. Selamat mencoba!

May 16

Goodwill menawarkan layanan Cloud ERP on-demand

Generasi Baru Software ERP Indonesia

Goodwill ERP adalah software ERP modern dengan teknologi cloud yang aman, cepat dan handal. Software ERP ini merupakan aplikasi bisnis lengkap, mulai dari inventory, supply chain, finansial, akuntansi, manajemen proyek, sampai manufacturing yang dirancang khusus untuk kebutuhan usaha di Indonesia. Kehadiran Goodwill ERP memungkinkan banyak perusahaan dapat mengimplementasikan software ERP tanpa harus mengeluarkan biaya besar dan proses implementasi yang rumit. Dengan teknologi Cloud Computing, pemakai dapat langsung “menyewa” sistem ERP siap-pakai (software, server, storage, dan lainnya) dengan nilai ekonomis yang sangat terjangkau dan proses go-live yang cepat.Goodwill ERP sudah diimplementasikan di banyak bidang usaha sejak tahun 2005, mulai dari distributor, pabrik, jasa, otomotif hingga ke perkebunan sawit. Dan mulai versi 3.7, Goodwill ERP diluncurkan sebagai produk dan layanan berbasiskan Cloud dengan antar-muka web yang sangat cepat dan ringan. Pemakai kemudian dapat memilih menggunakan Goodwill ERP dengan model layanan SaaS (on-demand) atau private cloud hosting di data center dalam/luar negeri. Selain itu, Goodwill ERP juga dapat dideploy secara on premise di server kantor Anda sendiri.

Cloud on-demand

Dunia semakin berkembang ke arah digitalisasi dan globalisasi. Siap tidak siap, kita semua harus dapat mengikuti kemajuan zaman ini, diantaranya dengan kehadiran teknologi komputasi terdistribusi yang lazim disebut dengan “Cloud Computing”. Teknologi Cloud memungkinkan banyak perusahaan untuk dapat memanfaatkan software ERP sebagai sebuah layanan on-demand yang mudah dan cepat. Dengan model layanan ini, pengguna diuntungkan dengan tidak perlu mengeluarkan biaya lisensi software dan investasi hardware yang besar.

Dengan berlangganan mulai dari 300 ribu rupiah per bulan, Anda sudah bisa menikmati fitur-fitur aplikasi ERP kelas dunia.

Private Server

Goodwill ERP telah menciptakan cara bekerja yang baru dan modern dimana kita tidak lagi terikat oleh keterbatasan waktu dan tempat. Untuk menambah kenyamanan Anda dalam bekerja, kami juga dapat menyediakan layanan Goodwill ERP dalam server pribadi Anda sendiri, yang hanya bisa diakses oleh Anda saja. Dengan model layanan ini, Anda memiliki fleksibilitas yang tinggi untuk mengatur konfigurasi software ERP Anda.

Layanan ini merupakan sebuah “win-win solution” yang memadukan manfaat cloud ERP dan privasi layaknya sebuah ERP in-house. Layanan ini sangat spesifik dan individual. Harap untuk menghubungi kami untuk informasi lebih jauh.

Goodwill ERP

Goodwill ERP dapat diakses dalam beragam gadget

Keunggulan Goodwill ERP

1. Akses Tanpa Batasan

Dengan antar-muka web, pemakai dapat terhubung secara aman dari mana pun, kapan pun, dan menggunakan device apa pun. Sangat cocok untuk bisnis yang letak geografisnya berbeda-beda (misal, banyak outlet dan cabang).

2. Investasi Rendah

Pemakai tidak perlu keluar biaya besar untuk membeli lisensi software, server baru, UPS, data storage, dan sebagainya. Pemakai cukup membayar sesuai pemakaian.

3. Pengelolaan Resiko

Sistem dan data pemakai dijaga dan dipelihara dengan standard keamanan tingkat tinggi dalam sebuah data center. Sebaliknya menyimpan data di kantor jauh lebih berisiko (kebakaran, staff yang tidak kompeten, kegagalan backup, dll)


FAQ

1. Software apa saja yang harus diinstal ?

Anda cukup pakai browser seperti Mozilla Firefox atau Google Chrome versi terbaru.

2. Bagaimana kalau mau konsultasi dulu sebelum berlangganan ?

Anda bisa menghubungi sales person kami untuk mengatur jadwal demo ke tempat Anda.

3. Berapa kecepatan bandwidth internet yang diperlukan?

Dalam penggunaan normal, Goodwill ERP dapat diakses mulai dari kecepatan 128 Kbps.

4. Bagaimana dengan keamanan data saya ?

Data anda dijaga dan dibackup dalam data center yang sudah disertifikasi ISO 27001:2005 (Information Security).

5. Dimanakah data saya berada?

Data center terletak di IDC Duren 3, Jakarta Selatan, yang merupakan jantung dari peering Internet Indonesia yang terbesar yaitu OpenIXP dengan bandwidth 1 Gbps.

6. Apakah saya bisa migrasi ke sistem lain dengan mudah ?

Anda bisa mengekspor data anda ke dalam format spreadsheet (xls).

7. Dimana saya bisa mendapatkan informasi lebih jauh ?

Anda bisa membuka websitenya di GoodwillERP.com

atau dengan menghubungi :

PT Goodwill Bintang Utama
Office: +62 (21) 661-2164
Sales: +62 (21) 707-95895
Email: sales@goodwill.co.id

Mar 10

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

Dec 08

Recalculating average costing backwardly

Dealing with average costing could be a nightmare for most of us. Chuck Boecking, a fellow Adempiere consultant based in US explained it very well in his blog why we (not to) choose average costing in a ERP.

ERP is a perpetual inventory accounting system. Therefore, the system  will post every inventory transaction as they happen. When you use average invoicing, your inventory valuation will almost always be inaccurate. For example, Let’s assume you buy a bunch of products over time over different costs. Then, over time, you sell all product. The resulting inventory GL balance will almost always be non-zero. Therefore, you will have a phantom inventory balance. If your operations are even a little complex, the variances that result from average invoice costing can be difficult to track and explain.

Most of the time we heard about recommendation on using Standard Costing as a way to escape from this nightmare. In earlier release of Compiere (v. 2.5), even there are only Standard Costing and Last PO price method. However in Indonesia, the requirement for standard accounting practice is to use either Average Costing or FIFO/LIFO. I still can recall back in 2005 how our team had to develop our own average costing functionality to satisfy the clients’ need.

Eventually Compiere overhauled its costing engine and introduced average costing and FIFO/LIFO. But it’s so poor and immature we could hardly use it in real world. Our team once again drilled down the costing engine and did some major hacks. We contributed it back to community in 2006 although we know it’s not crystal clear perfect yet. At least now we had a working average costing in Adempiere (Hengsin Low later added more workarounds in 2010).

One culprit we still found anyway is the fact that the ERP is allowing a back-dated transaction. Since we are using a moving (weighted) average costing, we could have trouble if user is entering transactions in a not so chronological manner.

I am thinking to have a process where we could tell the ERP to recalculate the costing for a given period. Our team had made a good effort so far. However I’m still not satisfied and then I stumbled on this link referenced by one of my client, whom now became a good friend of mine.

The idea is to calculate the average costing backwardly, instead of from the beginning which is very time and resource consuming. I copy the content of the link here, in case it’s lost.

So let’s begin.

There are two tables:
-the one that holds inventory transactions, and
-the one that holds the latest inventory valuation

I am trying to make an inventory valuation report using average costing method based on a certain date. Doing it the normal way, calculating from the beginning until that specific date, will yield variable response time. Imagine calculating on five years worth of data ( and thousands different inventory items ). It will take considerable amount of time ( and my company is not silicon-valley grade. meaning, 2 core cpu and 8 GB of RAM only) so I am calculating it backwardly: from the latest (current) backtrack to that specific date.

(Every month the accounting dept will check on data, so the calculation will only deal with 1 month’s worth of data, forever. equal to consistent unchanging performance)

I have merged the table into one on the script below

create table test3 ( rn integer, amt numeric, qty integer, oqty integer);
insert into test3 (rn,amt,qty,oqty) values (0,2260038.16765793,8,0);
insert into test3 (rn,amt,qty,oqty) values (1,1647727.2727,3,0);
insert into test3 (rn,amt,qty,oqty) values (2,2489654.75326715,0,1);
insert into test3 (rn,amt,qty,oqty) values (3,2489654.75326715,0,1);
insert into test3 (rn,amt,qty,oqty) values (4,1875443.6364,1,0);
insert into test3 (rn,amt,qty,oqty) values (5,1647727.2727,3,0);
insert into test3 (rn,amt,qty,oqty) values (6,3012987.01302857,0,1);
insert into test3 (rn,amt,qty,oqty) values (7,3012987.01302857,0,1);

select * from test3; (already sorted desc so rn=1 is the newest transaction)

rn  amt        qty  oqty
0   2260038.168 8   0    --> this is the current average
1   1647727.273 3   0
2   2489654.753 0   1
3   2489654.753 0   1
4   1875443.636 1   0
5   1647727.273 3   0
6   3012987.013 0   1
7   3012987.013 0   1

Average Costing Method backtracking ( given current avg calculate last transaction avg, and so on until nth transactions )

Avg (n) = ((Avg(n-1) * (Cum Qty(n)+In Qty(n))) – (In Amount(n) * In Qty (n)) + (Avg(n-1) * Out Qty(n))/(Cum Qty(n)+Out Amount(n))

Cumulative qty for backtracking transactions would be minus for in, plus for out. So if current qty is 8, transaction in qty before is 3, then cumulative qty for that transaction is 5.

To calculate the average for one transaction before last, then we use current average to use in that transaction calculation.

with recursive
runsum (id,amt,qty,oqty,sqty,avg) as
    (select data.id, data.amt, data.qty, data.oqty, data.sqty, data.avg
     from (
        select rn as id,amt,qty, oqty,
        sum(case when rn=0 then qty else
             case when oqty=0 then qty*-1
                else oqty end end) over (order by rn) as sqty, lag(amt) over (order by rn) as avg
          from test3 ) data
         ),
counter (maximum) as
         (select count(rn)
          from test3
         ),
trans (n, id,amt,qty,oqty,sqty,prevavg,avg) as
    (select 0 n, id,amt,qty,oqty, sqty,avg,avg
      from runsum
     union
    select trans.n+1, runsum.id,trans.amt,trans.qty, trans.oqty, trans.sqty,
    lag(trans.avg) over (order by 1),
    case when runsum.sqty=0 then runsum.amt else
    ((trans.prevavg*(runsum.sqty+trans.qty))-(runsum.amt*trans.qty)+(trans.prevavg*trans.oqty))/(runsum.sqty+trans.oqty)
    end
    from runsum join trans using (id)
    where trans.n<(select maximum*2 from counter))
select *
from trans
where prevavg is null and avg is not null
order by id;

The result is supposed to be like this

rn  amt        qty oqty sqty sum avg
1   1647727.273 3   0   5   2627424.705
2   2489654.753 0   1   6   2627424.705
3   2489654.753 0   1   7   2627424.705
4   1875443.636 1   0   6   2752754.883
5   1647727.273 3   0   3   3857782.493
6   3012987.013 0   1   4   3857782.493
7   3012987.013 0   1   5   3857782.493

I hope we could have something working in near future. So stay tuned.

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