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

Snort dan Suricata IDPS

Sugeng pagi, Mas! Pagi, gimana kabarnya? Baik, Mas. Gini, Mas! Saya lagi pusing ngurusin jaringan di kantor. Pusing kenapa? Itu lo, Mas, virus tau-tau nongol tanpa permisi.  Bikin jaringan jadi lemot. Yang lebih repotnnya lagi, kita gak tau dari sebelah mana penyebarannya. Lah, gitu aja kok pusing.  Kamu punya alat monitoring macem IDS gak? Apa itu IDS, Mas? IDS itu, singkatan coro londo Intrussion Detection System.  Maksudnya sistem buat mendeteksi aktifitas penyusupan. La, itu kan bukan antivirus, Mas! Lagian mana ada sih yang nyusup di kantor saya.  Apalagi kantor banyakan mainnya di jaringan private. La ini, yang salah! Jangan beranggapan bahwa setiap penyusupan itu datangnya dari luar. Ancaman kebocoran itu paling besar justeru datangnya dari dalam. Dan satu hal lagi penyusupan tidak harus terjadi dalam satu saat.  Seperti proses penyusupan yang dilakukan dengan menggunakan kuda trojan.  Para penyusup justeru anteng dulu di dalam kuda trojan....

Awal Perjalanan

Jalan di dusun Pedhudutan pagi ini masih sangat sepi. Meskipun adzan Shubuh telah berkumandang, dan jama’ah Shubuh telah kembali dari langgar, namun aktifitas penduduk masih belum terlihat bergeliat. Hanya beberapa penduduk yang terlihat telah mendahului pergi ke pasar menjemput pagi. Menjemput rezeki pagi ini. Wadasputih, lintasan pegunungan yang melingkupi dusun Pohkumbang, masih nampak hitam di ujung timur seakan mencanda mentari agar tetap dalam peraduannya meski semburat tangan sinarnya telah menggapai awan yang masih malas-malasan di atas sana. Padepokan Gagak Wulung, pagi ini, terasa sangat sepi. Tidak seperti hari-hari sebelumnya. Tidak ada suara cantrik mengalunkan pesan-pesan ilahi, maupun yang gladen, olah kanuragan. Bahkan dapur-dapur padepokan yang biasanya diisi oleh para simbok, istri-istri cantrik senior maupun para cantrik perempuan, pagi ini sepi. Hanya ada sedikit sisa asap pedhangan bekas menanak nasi tadi, sebelum subuhan. Semua cantrik berkumpul di depan pendo...

Analisis Interaktif Kerentanan PHP

Dasbor Analisis Kerentanan PHP 2025 Analisis Interaktif Kerentanan PHP CVE-2025-1735 (pgsql) & CVE-2025-6491 (SOAP) CVE-2025-1735 CVE-2025-6491 Ringkasan CVE-2025-1735: Ekstensi `pgsql` Kerentanan ini berasal dari penanganan kesalahan yang tidak memadai dalam ekstensi PostgreSQL PHP, yang berpotensi menyebabkan Injeksi SQL dan Penolakan Layanan (DoS). Bagian ini memvisualisasikan data kunci untuk memahami risikonya. Detail Kerentanan ...