Skip to main content

PowerBuilder 10.5.2 EAServer 6.0.2 Linux

Ceritanya bulan ini nih, ane lagi ada kerjaan porting powerbuilder component ke Sybase EAServer.  Targetnya mendapatkan viabilitas Sybase EAServer terutama yang berjalan di Linux untuk hosting existing application milik kantor. Oleh karena, PowerBuilder yang ada adalah versi 10.5.2, maka pilihan EAServer jatuh pada versi 6.0.2 dan developer edition tentunya.

Pertama, aku coba make OS nya Oom Bill Gate. Microsoft Windows. Fine, semuanya berjalan lancar.  Dengan beberapa penyesuaian mengikuti aturan main di EAServer, aplikasi bisa diporting dengan baik ke EAServer. Client bisa konek dan dioperasikan dengan baik. Fine bin gak ada masalah tentunya.
Berikutnya, bagaimana dengan di Linux?
Grrr....! Full masalah! Ha ha ha....!

Pada aplikasi yang berjalan saat ini ada satu logic yang dibuat untuk mengakomodasi penampilan report yang bersifat dinamis dan bisa di-deploy secara partial tanpa melakukan kompilasi ulang.

PowerBuilder dengan datawindow-nya memang sangat unik. Datawindow yang merupakan object dengan kapabilitas entry data dan data presentation bisa di-assign ke visual / non visual object pada presentasi aplikasi dengan berbagai cara.
Cara Pertama. Dengan meng-assign secara langsung dari datawindow object name yang merupakan variable string ke datawindow control maupun datastore.
::Syntax nya

dw_1.dataobject = "dwObjectName"
ds_1.dataobject = "dwObjectName"

Cara Kedua. Dengan meng-assign psr filename.  Dalam hal ini, datawindow object diekspor sebagai psr file dan diassign ke dataobject.

::Syntax nya
dw_1.dataobject = "[path_to]\psrFileName.psr"
ds_1.dataobject = "[path_to]\psrFileName.psr"

Cara Ketiga.  Dengan datawindow syntax.  Cara ini relatif dynamic dimana datawindow object yang diassign tidak harus ada pada current library list. Atau bahkan bisa dengan membuat datawindow object baru via script.  Namun di sini ane bukan mau cerita yang via script, tapi yang via datawindow object yang tersimpan pada library lain di luar current library list.  Bahkan masih dalam bentuk *.pbl.  Metoda ini menggabungkan LibraryExport PowerFunction dan Create method dari datawindow/datastore control.


::Syntax nya
String sintake,ErroTeks_e
datastore ds_e
integer error_e
ds_e = create datastore
sintake = LibraryExport("[path_to]\PBLFileName.pbl","dwObjectName",ExportDatawindow!)
error_e = ds_e.create(sintake,ErrorTeks_e)
if error_e > 1 then
if error_e > 0 then
    ds_e.settransobject(sqlca)
end if
dst....

Dari ketiga cara di atas kebetulan cara yang diadaptasi oleh aplikasi punya kantor make cara yang ketiga. Nah, lo....!
Semenjak PowerBuilder 9.0 sybase sudah merubah character encoding untuk source PowerBuilder dari DBCS menjadi unicode dengan default encodingnya adalah UTF16LE.
Entah benar enah tidak dugaan saya, inilah kemudian yang mengakibatkan kegagalan routine ini ketika dijalankan dengan memberikan error exception CORBA.MARSHAL bad UTF-8 data.
Awalnya, karena terlalu rajin, ane coba deploy ke berbagai distro utama seperti Ubuntu, RedHat, SuSE, SlackWare, dan terakhir Gentoo. berharap salah satu dari distro tersebut bisa berbaik hati dengan memberikan hasil seperti yang terjadi di Windows.  Namun jauh panggang dari api, usaha gak memberikan hasil. Kambing guling tetap mentah.....
Lama, ane berusaha untuk mencari alternatif dari metoda ini. Akhirnya kepikiran juga kayak begini:
  1. Library yang tadinya *.pbl dibikin jadi *.pbd.
  2. Kemudian library listnya diubah dengan menambahkan pbd file yang berisi datawindow object yang akan digunakan. 
  3. Kemudian assignment datawindow bisa dilakukan dengan menggunakan syntax pertama. 
  4. Pada akhir method, library list dikembalikan kepada nilai awalnya. 
Clear!
Aplikasi dideploy ke server, client di jalankan. Konek sukses. Transaksi sukses. Reporting sukses.  ALHAMDULILLAH!!!! Dan ternyata cukup sederhana.

Popular posts from this blog

Tentang Ultraman; Pahlawan Jepang Yang Mendunia, Salah Satu Teman Masa Kecil

Google Doodle Ultraman Pagi ini, ada kejutan yang bikin saya tersenyum. Google Doodle, hari ini temanya adalah ulang tahun Eiji Tsuburaya  sang pereka tokoh Ultraman atau dalam lidah Jepang disebut Urotoraman, tayang pertama pada 7 Juli 1966 di TBS (Tokyo Broadcasting System).  Urotoraman atau Ultraman adalah Tokusatsu  atau SciFi, seorang pahlawan super yang berukuran rasaksa. Bila beberapa halaman wiki mengatakan bahwa ide pahlawan super berukuran raksasa adalah ide aseli Tsuburaya, bagi saya itu bukan aseli. Mungkin di Jepun sono, ide aseli. Namun di Indonesia raya nan kaya dan tercinta ini, itu bukan ide aseli.  Banyak tokoh pewayangan kita seperti Yudistira, Puntadewa, bahkan yang paing fenomenal adalah Prabu Kreshna yang mampu melakukan tiwikrama , alias berubah menjadi raksasa.  Meskipun itu terjadi ketika yang melakukan sedang murka.  Jadi Ultraman adalah bentuk Tiwikrama dari pahlawan Jepang.  Meskipun begitu dan di luar semua i...

Kerang Penghasil Mutiara Air Tawar

Kerang mutiara air tawar adalah kerang penghasil butir-butir mutiara air tawar, kerang yang habitat hidupnya di Perairan Tawar (Non Laut), kerang jenis ini memiliki nama ilmiah Margatifera margatifera, salah satu jenis species yang terancam punah, jenis moluska dan termasuk ke dalam Family Margaritiferidae . Jenis species kerang lainnya yang dapat menghasilkan butir mutiara air tawar adalah Hyriopsis dan Amblema , habitat asli penyebarannya di Wilayah Asia dan Amerika Utara, kedua jenis species tersebut memiliki keterkaitan dengan family Unionidae . Ciri-cirinya ialah memiliki cangkang nacre yang tebal, nacre adalah istilah dalam kekerangan yang artinya induk/ibu dalam lapisan mutiara (Mother of Pearl). Kerang mutiara jenis ini mampu menghasilkan butir mutiara yang indah dan berkualitas, dan mampu menghasilkan 5 hingga belasan butir mutiara per ekor kerang. Kerang mutiara air tawar Ia memiliki 2 (dua) cangkang yang simetris dan  engsel yang dapat membuka dan menutup u...

Bagaimana Menginstall Snort dengan Barnyard2 dan Snorby

Mas....! Apa? Nuwun sewu, Mas! Saya udah coba install Snort dan Suricata. Tapi bingung... Bingung gimana? Bingung nginstallnya. Sampeyan nginstallnya di mana? Sampeyan gimana? Ya di kantor, Mas! Masa di rumah.  Di rumah komputer kan cuma 1 doang. He he....! Maksud saya, nginstallnya di komputer apa, OS nya apa? Di PC, OS-nya linux Linux apa? Ubuntu, Mas! Hmm... Ubuntu? Sampeyan nginstallnya make apt-get install apa compile dari source-nya? Make apt-get install, Mas! sudo apt-get install snort snort-mysql Emang kenapa, Mas? Gak apa, Cuma biasanya saya nginstallnya langsung dari source. Gimana caranya? Begini, unduh dulu source terakhir yang stabil dari http://www.snort.org/snort-downloads/ Kemudian copykan ke mesin linux yang bakal kita install snort.  Jangan cuma download source snortnya thok.  Download juga library DAQ (Data Aqcuisition Library).  Karena snort juga butuh ini kalo mau mengenable-kan semua fitur snort. Jangan lupa juga download barny...