Wednesday, January 18, 2012

Rekomendasi konfigurasi RAID untuk database Dynamics AX

Akhirnya! keluar juga informasi resmi soal konfigurasi RAID untuk database Dynamics AX! Dalam Installation Guide AX 2012, dijelaskan rekomendasi konfigurasi RAID untuk database SQL Server. Informasi ini tidak disebutkan secara explisit di versi 2009 dan sebelumnya.

Mengapa RAID?
Aplikasi enterprise seperti Dynamics Ax merupakan software terintegrasi yang tidak hanya memuat banyak data, tetapi juga diakses oleh banyak pengguna secara bersamaan. Seluruh data ini disimpan di satu database, sehingga kinerja database menjadi salah satu kunci penting untuk mengoptimalkan kinerja aplikasi.
Teknologi RAID merupakan salah satu jawaban untuk meningkatkan kinerja database.
Salah satu pepatah dalam dunia pemrograman adalah  avoid reinventing the wheel, jadi saya tidak akan mejelaskan tentang definisi RAID, karena banyak literatur di internet. Salah satunya yang bagus  bisa dibaca di http://www.sohoconsult.ch/raid/raid.html. Ketika membaca tentang RAID, saran saya cukup perhatikan RAID 0, RAID 1, RAID 5, RAID 0+1, dan RAID 10.

Lalu bagaimana rekomendasi RAID yang bagus  untuk Dynamics AX?
Jika anda sudah membaca link di atas, maka setidaknya anda paham macam-macam RAID. Nah untuk Dynamics AX, konfigurasi RAID untuk server database SQL Server yang direkomendasikan adalah sebagai berikut :

  • Dua disk dibuat menjadi RAID 1. Oleh sistem operasi ini dibaca sebagai satu disk. Gunakan disk ini untuk tempat instalasi Sistem Operasi Windows dan software database SQL Server.
  • Empat disk berkapasitas kecil dikonfigurasi sebagai RAID 0+1, atau dua disk dikonfigurasi sebagai RAID 1. Oleh sistem operasi ini juga dibaca sebagai satu disk. Gunakan disk ini untuk lokasi file log database.
  • Empat disk berkapasitas lebih besar dikonfigurasi sebagai RAID 0 +1. Oleh sistem operasi ini juga dibaca sebagai satu disk. Gunakan disk ini untuk lokasi file data database. Jika ingin hemat, jumlah disk bisa dikurangi cukup menjadi 3 dan dikonfigurasi menjadi RAID 5.
Masih belum paham dengan RAID?
Gak masalah, serahkan saja pada ahlinya! Alias serahkan saja pada vendor hardware untuk mengatur bagaimana RAID dikonfigurasi. Tidak semua hal harus kita ketahui. Yang penting beritahukan bahwa kita mau konfigurasi RAID ini difungsikan untuk ini. Vendor hardware seharusnya paham cukup dengan instruksi ini. Jika tidak paham, mungkin saatnya perlu cari vendor hardware yang lain :)


Sunday, August 28, 2011

MS Word : Create left and right alignment in single line

One day I needed to create document in Microsoft Word that contains both left and right alignment in one line. I came across several links that explained it, yet it required me to 'pause' a while to follow text instruction. So here is the step by step with images to help others get it quickly, hopefully without 'pause' to think :).

To achieve the left and right alignment on single line, I use the tab stop method that uses tab stop to set the right alignment. There is other method using table but I think using tab stop is simpler.
  1. To get the tab visible, make sure the ruler is turned on by clicking on View tab > Show / Hide group > Check box Ruler.
  2. Set left alignment and start typing the words. To set left alignment go to Home tab > Paragraph > Align left text.
  3. Now open the tab dialog from Page Layout tab > Paragraph group > click on little arrow in the right bottom corner. It will open Paragraph dialog. Click on the Tabs.. button. The tab dialog form is shown


  4. Create new tab stop position e.g. at 15 cm with right alignment, then click Set.

    The result will be like this. Now click OK.
  5. Now the ruler show a new tab stop with right alignment at the position of 15 cm.
  6. Put the cursor to the left of the text that will be at right position, and then hit the keyboard Tab button.

    This is the result

Thursday, July 7, 2011

About number of decimal property of an EDT

About number of decimal property of an EDT.

Extended Data Type (EDT) no of decimal property control the following :

When user input manually from a form (or direct table browser), whatever user input will be rounded to the nearest decimal places allowed by no of decimal. E.g. when no of decimal is 2, entering value 4.0179 will result in 4.02. The value 4.02 will be stored in database.

But the property does not control the value that is entered through code. E.g. there is a code that insert a record with value 4.0179, this exact value is stored in the database, up to 12 decimal places for real data type. However when dislayed back in form or table browser, the value will be rounded according to the no of decimal property.

Remember that this propery is not inherited from parent EDT, so that if there is a need to change EDT in many places, chance is that you need to change many EDTs instead of one parent EDTs.

Saturday, June 25, 2011

Place to put range in data source

Sometimes, without much thinking we tend to change query of a form data sorce this way :
1. Put in the init method of datasource, after super() the range that will be applied to that table’s datasource.
2. Let the system retrieve the default query.
3. In the run method, which is after system generated query is executed, apply the range and then call the datasource.executeQuery again.

This is inefficient because of two things :
1. The data source query is executed two times, in which the first one is never used. This is a waste of resource.
2. When this form is a master table, go to main table will not work with this approach because go to main table is erased by the second exec ute query.

Better approach will be to follow standard AX InventJournalTable, where range query is applied before super() in the datasource.executeQuery method.
This will make sure only one execute query is needed (which is more efficient) as well as it will regard the go to main table.

Wednesday, June 8, 2011

Kehilangan Paspor di Paris

Awal juni kemarin kami sekeluarga - saya, istri, dan Caelin putri kami yang berumur 4 tahun - berlibur ke Paris. Seperti pada umumnya turis, kami berharap mendapatkan pengalaman yang menyenangkan seperti gambaran orang tentang kota Paris yang indah, romantis, dan sebagainya. Sayangnya, baru hari kedua kami harus mendapatkan pengalaman yang menegangkan yaitu kehilangan paspor!

Kami tinggal di Inggris, jadi kami berangkat ke Paris dengan naik kereta Eurostar London – Paris. Perjalanan ditempuh selama dua jam, di mana 20 menitnya berada di terowongan bawah laut. Tidak seseram yang saya bayangkan karena rasanya seperti di dalam terowongan bawah tanah biasa.

Hari pertama, kami tiba di Paris sudah petang sekitar jam 6, jadi setelah check in di hotel dan istirahat sejenak, kami hanya sempat jalan-jalan sebentar untuk menyaksikan menara Eiffel di malam hari. Dengan lampu yang berwarna kuning menara Eiffel memang terlihat indah dan eksotis. Karena sudah malam, kamipun kembali ke hotel, dengan rencana kembali ke menara Eiffel esok harinya.

Sesuai rencana esok hari kami kembali berwisata di sekitar menara Eiffel. Setelah puas berfoto-foto di sekitar taman dan pinggiran sungai dekat menara Eiffel, sore sekitar jam 3 kami kembali ke hotel karena Caelin harus istirahat tidur siang. Perjalanan kami hampir selalu naik kereta bawah tanah, yang di sini istilahnya metro.Naik metro cukup efisien karena frekuensinya sangat sering , walaupun di jalur-jalur tertentu penumpang padat hingga harus berdiri.

Sampai di hotel istriku mengeluarkan isi tas untuk mengisi ulang logistik (halah) selama jalan-jalan, khususnya makanan untuk anak kami. Betapa kagetnya dia membuka tas back pack kami, dompet yang berisi passport kami bertiga hilang!! Dheg, saya sempat tidak percaya, dan mengira ini hanya mimpi. Langsung kami obrak abrik kamar hotel berharap dompet paspor terjatuh di kamar, tetapi nihil. Istriku langsung panik dan menangis, mengingat persoalannya tidak sekedar kehilangan passport. Di paspor itulah tertempel visa kami untuk tinggal di Inggris. Bagaimana kami bisa kembali ke tempat tinggal kami di Inggris kalau tanpa visa? Kalau kami berangkat dari Indonesia dan harus kembali ke Indonesia mungkin kami tidak terlalu panik. Masalah lain lagi, kebanyakan warga Paris tidak bisa atau tidak mau berbahasa Inggris.

Saya langsung berdoa, tidak tahu apa yang harus kami perbuat. Setelah beberapa lama saya mulai pasrah dan bisa menerima keadaan. Saya ingat bahwa saya menyimpan scan passport dan visa yang saya upload di account email yahoo. Langsung saya cari warnet terdekat, untung cukup jalan kaki 5 menit. Setelah mencetak backup scan passport dan visa, saya langsung mencari kantor polisi terdekat. Dua orang kutanya dan tidak bisa memberikan petunjuk yang tepat. Beruntung, aku ketemu dengan sepasang pria dan wanita yang sepertinya suami istri, dan mereka berbahasa Inggris! Ketika kutanya di mana kantor polisi terdekat, dengan perhatian dia menanyakan apakah aku ada masalah.

Kuceritakan bahwa aku WNI, kehilangan passport sekeluarga, sementar kami tinggal di Inggris. Langsung dia dan istrinya mengubah arah jalannya, dan mengantarkanku ke kantor polisi dengan berjalan kaki yang ternyata agak jauh. Ternyata mereka WN Inggris yang tinggal di Paris. Yang wanita malah bercerita pernah pergi ke Bali dan danau Toba! Mereka cerita bahwa di Paris banyak warga dari negara-negara yang dilanda perang dan kekacauan datang ke Perancis dengan harapan bisa mencari tempat tinggal di negara-negara eropa lainnya, salah satunya dengan cara mencuri paspor. Dia bilang masalah kami komplek karena posisi kami tinggal di Inggris, sementara paspor Indonesia. Dia juga bercanda dan menghiburku supaya aku jangan terlalu bersedih – karena masih diberi hidup :)

Sampai di kantor polisi setempat mereka dengan baik hati meluangkan waktu untuk menterjemahkan kasusku ke dalam bahasa Perancis. Di luar dugaan saya, semua polisi yang kami temui tidak bisa berbahasa Inggris. Saya tidak bisa membayangkan apa jadinya kalau tidak ada dua orang baik hati ini yang membantuku menterjemahkan. Kalau saya datang sendiri, bisa-bisa saya diduga imigran gelap.
Setelah sekitar satu jam di kantor polisi, waktu sudah menunjukkan pukul 7 malam. Saya agak lega karena surat kehilangan paspor sudah di tangan. Saya kembali ke hotel, menemui istriku yang masih shock, dan anakku yang mengajak main ke luar karena bosan di kamar hotel.

Setelah menenangkan diri sejenak, seperti saran polisi kami merencanakan untuk besok paginya datang ke KBRI Paris. Karena belum tahu tempatnya, kami putuskan malam itu juga kami survey mencari lokasi kedutaan Indonesia.
Sampai di KBRI, waktu sudah menunjukkan pukul 9 malam. Lega rasanya setelah sekian lama bisa melihat bendera merah putih berkibar. Kami melihat-lihat pintu kedutaan, berharap menemukan jam buka sehingga bisa mengatur jadwal besok mau datang jam berapa. Tidak dinyana, ada suara menyapa kami dari belakang, dan berbahasa Indonesia! Langsung kami salam, nama laki-laki yang menyapa kami adalah Pak Juwiyanto, yang ternyata petugas kedutaan! Betapa senangnya kami ketika beliau mengajak kami masuk ke kedutaan, yang ternyata tetap menerima tamu walau jam kantor sudah tutup dan sudah larut malam.

Lalu kami ceritakan masalah kehilangan passport kami. AJAIB nya, kata salah seorang petugas, tadi sore ada telepon dari kepolisian Perancis, yang katanya menangkap pencopet dan menemukan ada passport Indonesia. Hatiku langsung teriak, berharap itu punya kami. Ternyata benar, setelah konfirmasi telepon dengan Pak Indra – konsulat Indonesia yang sudah pulang ke rumah, daftar nama yang ada di passport adalah nama-nama kami. Kamipun disarankan untuk datang sendiri ke kantor polisi pusat di stasiun Gare du Nord. Orang-orang di KBRI Paris begitu ramah-ramah, bahkan kami dibelikan makan malam!

Setelah ngobrol di KBRI sekitar dua jam, pukul 11 malam kami naik kereta menuju ke stasiun Gare du Nord mencari kantor polisi. Ternyata sungguh menyulitkan karena lagi-lagi orang-orang yang kami tanya tidak bisa berbahasa Inggris. Setelah naik turun tangga mengitari stasiun akhirnya kami menemukan kantor polisi tersebut. Di situ kami lega karena melihat polisinya memegang tas kecil warna kuning tempat kami menyimpan passport. Saya menjelaskan kejadian yang menimpa kami, sementara putriku sudah semakin mengantuk. Dari sekian banyak polisi, hanya satu yang berbahasa Inggris. Ternyata polisi di Perancis sama dengan di Indonesia, kalau tanya detail. Dari posisi passport ketika hilang, hingga apa saja yang hilang semua ditanya. Polisinya bilang bahwa kami beruntung barang kecopetan bisa ditemukan. Setelah interogasi selesai, passport dikembalikan kepada saya, waktu sudah menunjukkan jam 1 malam. Baiknya, polisi Perancis ini mengantarkan kami kembali ke hotel dengan mobilnya – mengingat waktu sudah larut malam. Luar biasa mereka, benar-benar bekerja melindungi dan melayani!

Kami bersyukur paspor kami kembali, terlebih kami jadi dipertemukan dengan dua WN Inggris yang baik hati, dan juga para petugas di KBRI yang benar-benar melayani warganya. Terima kasih untuk bapak-bapak di KBRI Paris : Pak Indra, Pak Nyoto, Pak Juwiyanto, Pak Charles, dan lainnya yang maaf tidak saya ingat semuanya.
Kejadian ini benar-benar menjadi pelajaran buat saya, bahwa di manapun berada harus selalu waspada. Jadi ingat pesan Bang Napi : waspadalah, waspadalah !
Pelajaran yang lain adalah dalam situasi panik, lebih baik berdoa dulu baru bertindak. Dan kini, surat kehilangan paspor ini menjadi oleh-oleh paling berkesan dari Paris.

Thursday, September 30, 2010

SysReportLibraryExport syntax error

I was installing the following scenario :

AOS Server :
Windows 2008 R2

Database Server:
Windows 2008 R2
SQL Server 2008


After install reporting extension I got the following error when run AxPatch.exe as suggested in this procedure.

Error executing code: SysReportLibraryExport (object) has no valid runable
code in method 'new'.
(C)\Classes\SysReportLibraryExport\new

I tried compile the class from AOS server, it is error.
It turned out that I had to compile the class by opening Ax client from database server as there is where the reporting extension is installed.

Thursday, September 9, 2010

Install SQL Server Management Studio and other tools

Once I came across a situation where my SQL Server installation did not complete on the client components part. It was due to the virtual pc unable to locate the CD 2 needed for the installation. The database service was installed but no client tools.
So I need to figure out how to install the client components only.
Toos > Setup > SQLRun_Tools.msi.