Day 2: Persiapan Untuk Oracle Workflow

Learning In HomeOriginal Date: 14 Januari 2009

Salah satu bagian yang kurang dari instalasi Workflow di sistemku adalah pengaturan user. Workflow Configuration Assistant seharusnya sudah menjalankan script wfdirouv.sql untuk membuat data-data pengguna workflow berdasarkan user database. Tapi aku menemukan ada bagian yang aneh disini:


where l.code=userenv('LANG')

Nilai userenv(‘LANG’) di sistem-ku adalah ID (Indonesia). Nilai ID tidak akan ditemukan di tabel WF_LANGUAGES, oleh sebab itu isi view WF_USERS selalu kosong. Aku mencoba mengakali dengan mengubah bagian tersebut menjadi:


where l.code='US'

Setelah menjalankan ulang script, aku memperoleh tiga buah view berisi informasi user yang diambil dari user database, yaitu WF_USERS, WF_ROLES, dan WF_USER_ROLES yang kerap disebut Workflow Directory Service Views. Sedikit catatan, Oracle Workflow mensyaratkan semua user yang ada di WF_USERS harus muncul juga di WF_ROLES.

Aku juga mempelajari cara untuk menjalankan Java Function Activity Agent dengan menggunakan script seperti:


%ORA_DB_HOME%\wf\admin\wfjvlsrn.bat owf_mgr/password@localhost:1521:latihan

Dan cara untuk menghentikannya dengan menjalankan script wfjvstop.sql yang ada di folder %ORA_DB_HOME%\wf\admin\sql\wfjvstop.sql.

Aku juga mempelajari Oracle Workflow Access Protection, dimana setiap pengguna Oracle Workflow Builder (dapat diperoleh dengan meng-install Oracle Client) memiliki access level yang dapat dilihat di menu Help, About. Secara default, aku memiliki access level bernilai 100. Nilai access level tersebut dapat di-atur di registry di lokasi HKLM\SOFTWARE\ORACLE\Workflow\Level. Aku dapat mem-proteksi object di Workflow Builder sehingga hanya user dengan access level yang sama atau bernilai lebih kecil yang dapat mengubahnya. Caranya dengan memilih tab access di properties untuk object bersangkutan. Kombinasi dari dua checkbox yang ada, Preserve Customizations dan Lock at this Access Level, menentukan pengaturan akses untuk object tersebut.

Selain itu, aku juga berhasil menjalankan Oracle Workflow Manager yang merupakan aplikasi J2EE melalui OC4J standalone yang ter-integrasi bersama Oracle Database. Tampilan aplikasi J2EE ini hampir mirip seperti Oracle Enterprise Manager. Lokasi programmnya terletak di folder %ORACLE_HOME%\oc4j\j2ee\OC4J_Workflow_Management_Container. Aku tinggal menjalankan OC4J Standalone, yaitu oc4j.jar dengan merujuk server.xml yang terletak di dalam subfolder config di folder tersebut.

Iklan

Day 1: Saran Dari Mesin Yang Membawa Dampak Bermata Dua

Learning In HomeOriginal Date: 13 Januari 2009

Hari pertama menyentuh komputer sejak berada di Pontianak membuatku cukup frustasi. Bayangkan saja, aku sudah mencetak dokumentasi PDF ke kertas untuk dipelajari, dan baru pada praktek bab awal saja, Oracle Workflow sudah mulai menunjukkan pesan kesalahan.

Hal ini aku temui sejak pagi hari saat ingin mengubah global preferences melalui Oracle Workflow Home Page. Aku mengikuti langkah-langkah yang ada dengan sangat teliti, tapi akhirnya pesan error selalu muncul jika aku men-klik link-link yang ada. Setelah makan siang, aku mulai frustasi, aku meng-install ulang Oracle Workflow Server, Oracle Workflow Middle-tier, bahkan Oracle HTTP Server. Tapi tetap saja tidak membuahkan hasil.

Sorenya, aku hampir menyerah.. Tapi saat mulai kehilangan semangat, tiba-tiba muncul sekilas ide untuk men-debug PL/SQL dengan memakai bantuan UTL_FILE untuk membuat file log. Pada konfigurasi dad, dituliskan bahwa procedure yang pertama kali dipanggil jika aku membuka Oracle Workflow Homepage adalah procedure wfa_html.home. Prosedur ini akan menampilkan halaman HTML yang berisi link-link ke submenu yang ada. Salah satu yang menjadi perhatianku adalah link global preferences, yang jika di-klik akan memanggil procedure wf_pref.edit. Aku segera membuka package WF_PREF dan procedure edit di SQL Developer, dimana aku kemudian menambahkan SYS.UTL_FILE.PUT_LINE disetiap bagian yang aku anggap penting. Akhirnya ketemu juga. Program error saat memanggil fnd_document_management.get_dm_home. Aku pun kini fokus ke procedure get_dm_home.

Aku terkejut karena fungsi ini tidak sempat dipanggil. Walaupun definisi dan deklarasinya ada, ternyata package fnd_document_management masih invalid. Masalahnya mulai terkuak setelah aku men-query semua package invalid milik OWF_MGR. Ada cukup banyak package yang invalid. Dan khususnya untuk fnd_document_management,ia harus memanggil sebuah fungsi lagi yang invalid, dimana fungsi tersebut memanggil package UTL_HTTP.

UTL_HTTP?? Package ini secara default boleh di-eksekusi oleh semua orang. Tapi aku mendapat saran Oracle Enterprise Manager untuk me-revoke hak eksekusi karena package ini bisa sangat berbahaya bila ditangan yang salah. Saran yang bagus, dan memang sangat masuk akal demi alasan keamanan. Tapi aku tidak menyangka akibatnya aku harus seharian mencari-cari penyebab kesalahan yang aneh seperti sekarang ini 😉 Akhirnya setelah memberi akses eksekusi pada user OWF_MGR, aku bisa melanjutkan kembali pembelajaranku mengikuti materi-materi yang ada.

Oracle Workflow: Instalasi

Saat masih bekerja, aku sering mendengar orang-orang memperbincangkan workflow, sehingga aku menarik kesimpulan bahwa workflow merupakan satu hal yang cukup penting dalam merancang suatu aplikasi. Semua kesalahan dalam workflow menjadi sorotan utama saat pertemuan harian di ruang persidangan para programmer.

Oracle juga menyediakan layanan workflow untuk aplikasi, yang terdiri atas 3 komponen, yaitu: Oracle Workflow Server, Oracle Workflow Middle Tier dan Oracle Workflow Client.

Untuk instalasi Oracle Workflow Server, dibutuhkan Oracle Database, karena konfigurasi Workflow Server akan membuat user, tabel dan procedure baru di database (saat menjalankan Workflow Configuration Assistant). Oracle merekomendasikan agar object database yang dibuat oleh Workflow Configuration Assistant ini tidak dirubah secara manual, misalnya melalui SQL*Plus.

Instalasi Oracle Workflow Middle Tier membutuhkan Oracle HTTP Server. Instalasi tersebut akan menambahkan entry Location baru di dads.conf, yaitu /pls/wf. Selain itu, ia juga membuat virtual directory /OA_MEDIA, /OA_JAVA, dan /OA_DOC, yang dapat dilihat di file %ORACLE_HTTP_SERVER_HOME%\wf\admin\wf.conf. Khusus untuk /OA_DOC, ia me-refer ke direktori fisik yang belum ada. Untuk itu, aku perlu meng-ekstrak file %ORACLE_HTTP_SERVER_HOME%\wf\wfdoc263.zip sehingga terdapat direktori %ORACLE_HTTP_SERVER%\wf\doc.

Sampai disini, aku menemukan sedikit masalah, karena Universal Installer menambahkan entri dads.conf dengan line karakter berbasis UNIX. Akibatnya, kalau dibuka melalui notepad, karakter ganti baris terlihat seperti kotak. Dan ternyata itu tidak hanya mempengaruh tampilan, Oracle HTTP Server menjadi ngambek dan tidak mau jalan. Akhirnya setelah mengganti setiap kotak dengan ‘enter’, Oracle HTTP Server akhirnya bisa jalan kembali. Aku segera mencoba membuka http://localhost:7777/pls/wf/wfa_html.home dan mengisi dengan user name yang aku tentukan sebelumnya (dalam hal ini aku memakai default owf_mgr).