Senin, 27 Desember 2010

Parsing field di lookup expression dengan omb plus

Dalam penggunaan object lookup expression di mapping (owb 11g, kurang tahu di versi sebelum ataupun sesudahnya) belum otomatis field output muncul dengan sendirinya. Tidak seperti tool etl yang lain yang sudah baik, tentunya ketika kita men-drag ke object kemudian sebelah kirinya sudah muncul dengan nama sama. Di owb 11g ini, masih harus mengetik sendiri secara manual, tentunya akan merepotkan, belum lagi salah menulis dan type data dan ukuran salah. Untuk mengurangi digunakanlah script dengan menggunakan omb plus.
Contoh berikut masih menggunakan nama standard ingrp1 dan outgrp1, apabila anda mengcode sendiri, tentunya namanya juga menyesuaikan. :)

Syntax:

# Change the following parameters (the map, the source operator name, its group name and the new expression operator name):
set source_map [Nama Mapping]
set expression_oper LOOKUP_EXP

set atts [OMBRETRIEVE MAPPING '$source_map' OPERATOR '$expression_oper' GROUP 'INGRP1' GET ATTRIBUTES]

foreach att $atts {
set l_adty [OMBRETRIEVE MAPPING '$source_map' OPERATOR '$expression_oper' GROUP 'INGRP1' ATTRIBUTE '$att' GET PROPERTIES (DATATYPE)]
set l_alen [OMBRETRIEVE MAPPING '$source_map' OPERATOR '$expression_oper' GROUP 'INGRP1' ATTRIBUTE '$att' GET PROPERTIES (LENGTH)]
set l_apre [OMBRETRIEVE MAPPING '$source_map' OPERATOR '$expression_oper' GROUP 'INGRP1' ATTRIBUTE '$att' GET PROPERTIES (PRECISION)]
set l_asca [OMBRETRIEVE MAPPING '$source_map' OPERATOR '$expression_oper' GROUP 'INGRP1' ATTRIBUTE '$att' GET PROPERTIES (SCALE)]

OMBALTER MAPPING '$source_map' ADD ATTRIBUTE '$att' OF GROUP 'OUTGRP1' OF OPERATOR '$expression_oper'

OMBALTER MAPPING '$source_map' MODIFY ATTRIBUTE '$att' OF GROUP 'OUTGRP1' OF OPERATOR '$expression_oper' SET PROPERTIES (DATATYPE) VALUES ('$l_adty')
if {[regexp "NUM." $l_adty] > 0} {
OMBALTER MAPPING '$source_map' MODIFY ATTRIBUTE '$att' OF GROUP 'OUTGRP1' OF OPERATOR '$expression_oper' SET PROPERTIES (PRECISION) VALUES ('$l_apre')
OMBALTER MAPPING '$source_map' MODIFY ATTRIBUTE '$att' OF GROUP 'OUTGRP1' OF OPERATOR '$expression_oper' SET PROPERTIES (SCALE) VALUES ('$l_asca')
}
if {[regexp ".CHAR" $l_adty] > 0} {
OMBALTER MAPPING '$source_map' MODIFY ATTRIBUTE '$att' OF GROUP 'OUTGRP1' OF OPERATOR '$expression_oper' SET PROPERTIES (LENGTH) VALUES ('$l_alen')
}
if {[regexp "CHAR" $l_adty] > 0} {
OMBALTER MAPPING '$source_map' MODIFY ATTRIBUTE '$att' OF GROUP 'OUTGRP1' OF OPERATOR '$expression_oper' SET PROPERTIES (LENGTH) VALUES ('$l_alen')
}

OMBALTER MAPPING '$source_map' MODIFY ATTRIBUTE '$att' OF GROUP 'OUTGRP1' OF OPERATOR '$expression_oper' SET PROPERTIES (EXPRESSION) VALUES ('INGRP1.$att')

}

List script di omb plus

Script untuk menampilkan objek yang telah dibuat, dimana lebih memudahkan pencatatan dibanding ketika kita harus masuk design center kemudian mencatat satu-persatu. Dalam hal ini diberikan contoh untuk menampilkan object 'mapping' yang ada di project.

Syntax:
set mappings [OMBLIST MAPPINGS]
foreach mapping $mappings {puts '$mapping'}

Minggu, 26 Desember 2010

Disconnet script di omb plus

Script atau syntax di omb plus untuk disconnect, dimana kadang ditemui ketika akan melakukan debungging/code ala omb plus kepada project/mapping yang dibuat ternyata muncul pesan lock, padahal mapping/project tersebut sudah dalam keadaan close di owb editor (design center).

Syntaxnya:
OMBREVERT
OMBDISCONNECT

Bisa disimpan ke dalam file untuk digunakan dilain waktu, daripada menghafalkan banyak script. :)

Commit script di omb plus

Script commit untuk commit code di omb plus, dengan syntax OMBCOMMIT. simpan filenya, jangan lupa extesion file *.tcl. Simple memang, tetap sangat membantu

Koneksi OMB Plus dengan script

Membuat semacam file *tcl untuk koneksi ke omb plus di komputer. Sengaja dibuat script untuk memudahkan koneksi, apabila digunakan di lain waktu, dibanding menggunakan omb plus secara manual seperti halnya sql plus.

set owbclient [user owb]
set owbclientpwd [password owb]
set host [server owb]
set port [port owb]
set service orcl
set workspaceOwner [biasanya sama dengan nama user owb]
set workspaceName [bisanya sama dengan nama user owb]
set project [nama project di owb]
set module ORACLE_DW_TARGET
OMBCONNECT $owbclient/$owbclientpwd@$host:$port:$service USE WORKSPACE '$workspaceOwner.$workspaceName'
OMBCC '/$project/$module'

Setelah click omb plus, kemudian change directory [cd] ke tempat script ini berada. Jangan lupa / dibalik menjadi \ :). Selamat mencoba

Jumat, 15 Oktober 2010

Instalasi OBIEE Oracle 11G

Software yang semakin besar dan semakin ribet. Silakan di cek dan download di http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html. Setelah diinstal sesuai panduan http://download.oracle.com/docs/cd/E14571_01/bi.1111/e10539/c4_installing.htm#CIHDJGIH. Jika menggunakan default (next-next), jangan lupa user weblogic :)

Senin, 12 Juli 2010

Cloning Row di Kettle Data Integration

Walaupun jarang sifatnya, tetapi kadang diperlukan cloning/mengcopy row. Sehingga bisa digunakan bercabang ataupun menjadi output yang lain. Objek yang digunakan adalah clone row yang terdapat di folder Utility->Clone Row.

Kalkulasi di Kettle Data Integration

Di Data integration ini terdapat objek untuk perhitungan data dari beberapa source sebelumnya, yakni calculator dengan maskimum 3 value jika melihat property dari objek tersebut yakni calculator, dimana objek ini berada di folder Tranform->Calculator.

Union di Kettle Data Integration

Proses ETL kadang diperlukan proses penggabungan dari proses-proses sebelumnya, sebagaimana ETL juga sebagai penggambaran query ataupun proses. Sebagai contoh kita gunakan contoh sebelumnya dengan penambahan objek "append stream" di folder flow->Append Stream.

Jumat, 09 Juli 2010

Aggregate di Kettle Data Integration

Dalam pengolahan data ke Datamart ataupun source olap digunakan data dalam bentuk aggregate (measure) seperti sum, avg, count, dan lain-lain. Nah ETL disini sebagai OLTP dimana data didapatkan tentunya harus meng-aggregate source data tersebut sebelum di-store ke Datamart/Olap Source. Disini coba dibahas bagaimana menggunakan aggregate di Kettle Data Integration. Nah objek yang digunakan disini adalah Group By yang terdapat di folder Statistics-Group By, bukan lagi menggunakan objek "Aggregate Rows" yang ada di folder Deprecated->Aggregate Row, karena beritanya objek ini akan dihilangkan di versi-versi mendatang. :)

Kamis, 08 Juli 2010

Sequence dan loop di Kettle Data Integration

Belajar dari kasus yang ada ditambah melihat contoh software bawaan Data Integration, kadang proses simultan diperlukan proses sequential ataupun looping (perulangan) dengan kondisi tertentu. Ternyata objek yang digunakan adalah objek input->Generate row.
Double click pada objek generate row, limit menunjukkan batasan maksimum generate, kemudian tambahkan objeck "add sequence" untuk mendapatkan nilai integer dari sequential generate row sebanyak limit. Output bisa ke log, table ataupun tabel database. Run kemudian bisa dilihat hasilnya.Mari kita coba dulu

Variabel di Kettle Data Integration

Seperti halnya tool sejenis dalam aplikasi ETL, kettle juga terdapat setting untuk penggunaan variabel dalam transform. Disini, variabel dapat dibuat di "edit->set environment variables" (Ctrl+Alt+J), "execute tranformation", ataupun di file kettle.properties (versi dibawah 4.0.0), jika menggunakan data integration di "edit->edit the kettle.properties file" (Ctrl+Alt+P)

$HOME/.kettle (Unix/Linux/OSX)
C:\Documents and Settings\\.kettle\ (Windows)
C:\Users\\.kettle\ (Windows Vista)


Data Integration Repository

Pelajaran pertama dari tutorial ETL Kettle, kita coba jelaskan cara membuat transformasi sederhana menggunakan aplikasi Spoon, yang merupakan bagian dari suite Pentaho Data Integrasi.
Transformasi pada contoh kita akan membaca catatan dari tabel di database Oracle, dan kemudian akan memfilter dan output ke dua file teks terpisah. Jadi terdapat filter mirip true/false, dimana salah satu kondisi akan keluar di file yang lain.

Senin, 05 Juli 2010

Pentaho Data Integration (Kettle)

Pentaho Data Integration
adalah tool yang fleksibel yang bisa digunakan pada sejumlah kasus yang luas meliputi
:
• Data warehouse populate data built-in untuk slowly changing dimension dan membuat surrogate key
• Migrasi data antara database yang berbeda dan aplikasi
• Loading set data besar ke dalam database full advantage of cloud, clustered and massively parallel processing environments• Data Cleansing dengan langkah-langkah mulai dari yang sangat sederhana untuk transformasi yang sangat kompleks
• Integrasi data termasuk kemampuan untuk meningkatkan ETL real-time sebagai sumber data untuk Pentaho Reporting

Jumat, 25 Juni 2010

Instalasi Jasper ETL

Salah satu produk dari jasper adalah jasper etl, masih minimnya komunitas yang ada menyebabkan kurang familiarnya produk etl dari jasper ini. Komunitas biasa di forum talend.

Kamis, 24 Juni 2010

Setting event driven report di iReport

Mari kita buat dulu database di mysql dulu sebagai contoh.
Misal dengan nama eventdriven, kemudian create table customer, dengan syntax sebagai berikut:

Selasa, 22 Juni 2010

Membuat multi axis di chart report iReport

Menampilkan data yang berbeda secara luas nilainya bisa sulit menggunakan axis/sumbu data tunggal. Dengan menggunakan dua atau lebih sumbu, data dapat lebih mudah dipahami. iReport termasuk built-in mendukung untuk grafik multi-sumbu melalui penggunaan paket JFreeChart.iReport 3.5.0 digunakan sebagai tutorial yang identik dengan versi Profesional iReport Community Edition. Konsep-konsep berlaku untuk versi iReport selanjutnya, dengan user interface berbeda.

Menggunakan domain field di iReport

Lanjutan dari sebelumnya, tentang filter domain.
filter sekarang diatur. Tujuan selanjutnya adalah untuk membuat laporan sederhana menggunakan tiga band (judul, detail dan ringkasan). Selain itu, laporan ini akan berisi variabel.Kita dapat menambahkan sebuah field untuk laporan dengan menyeret dan menjatuhkan field dari jendela Domain ke lokasi yang diinginkan dalam laporan.

Senin, 21 Juni 2010

Membuat domain dan filter repository iReport

Bahasan kali ini memungkinkan kita untuk menggunakan interface dari iReport dikombinasikan dengan kemudahan penggunaan domain untuk membuat layout yang kompleks dan perhitungan. Bahasan ini menggunakan iReport untuk membuat laporan berdasarkan Domain. Domain adalah lapisan semantik yang memungkinkan pengguna untuk membuat laporan tanpa harus mengerti atau menulis SQL kompleks. Sebagai tambahan, pengguna akhir sering menggunakan Domain untuk membuat laporan dengan Ad Hoc perancang JasperServer.

Jumat, 18 Juni 2010

Menggunakan xml subdataset

Contoh data xml:
untuk menampilkan beberapa telpon dari setiap nomor orang di address book.
Untuk menampilkan daftar nomor kita perlu menciptakan sebuah sub-dataset mulai dari node orang. Dataset utama akan bekerja pada node orang, sedangkan sub-dataset akan memproses semua tag telepon dari node orang tertentu.Untuk menampilkan data terus oleh Dataset-sub kita bisa menggunakan subreport (yang akan memungkinkan untuk memiliki beberapa tingkat, karena subreport dapat berisi subreports lainnya), atau kita bisa menggunakan elemen Daftar sederhana.

Kamis, 17 Juni 2010

Menggunakan xml sebagai data source

Sebuah sumber data XML menggunakan file XML untuk menyediakan data untuk mencetak. Struktur XML tidak datar seperti meja, tidak ada baris dan kolom, lebih mirip dengan sebuah pohon, di mana kita dapat memiliki beberapa tingkatan data. Untuk alasan ini kita perlu menggunakan XPath query untuk mengidentifikasi node dari dokumen XML harus dianggap sebagai catatan. Berikut XML cukup sederhana untuk dengan mudah menjelaskan bagaimana untuk melakukannya:

Rabu, 16 Juni 2010

Membuat expression di groovy

JasperReports mendukung bahasa scripting untuk mendefinisikan ekspresi (termasuk Groovy dan JavaScript), menghindari kerumitan yang dialami oleh penulis laporan yang tidak tahu Java, yang telah lama bahasa default yang digunakan untuk menentukan ekspresi (seperti perhitungan dan elaborasi teks) .
Groovy mungkin adalah pilihan terbaik karena beberapa alasan:
- sepenuhnya kompatibel scripting java
- sangat fleksibel (tidak diketik seperti halnya Java)
- Bahasa Groovy dikonversi dalam kode Java byte, menghindari masalah performa khas dari bahasa ditafsirkan (seperti JavaScript)

Senin, 14 Juni 2010

Membuat sub report di iReport 3.7.1

Subreport adalah laporan yang disertakan dalam laporan lain. Hal ini memungkinkan penciptaan tata letak yang sangat kompleks dengan porsi yang berbeda dari satu dokumen diisi menggunakan berbagai sumber data dan laporan.
Dalam bahasan ini kami ingin membuat buku alamat pencetakan untuk setiap orang dalam buku alamat nama, daftar nomor telepon dan daftar alamat email.

Jumat, 11 Juni 2010

Menggunakan variabel di iReport

Pembahasan kali ini berupa penggunaan variabel di iReport, dimana sebelumnya membahas penggunaan parameter. Sebenarnya istilah ini mirip sekali, cuma di iReport ini berbeda penempatan saja, semoga tidak membingungkan.

Rabu, 09 Juni 2010

Menggunakan parameter di iReport

Setelah bahasan sebelumnya menggunakan sajian data gambar dalam bentuk chart, sekarang kita coba dengan menggunakan parameter atau penggunaan variabel pada report yang dipanggil, sehingga ketika run/preview harus memasukkan input parameter sebagai filter yang menghasilkan data report sudah terfilter berdasar parameter yang dimasukkan.

Membuat chart di iReport

Masih menggunakan source sample database online, dengan contoh (Sample Database HSQLDB test) kemudian di report query dibery queryselect count(*) orders, year(ORDERDATE) year, MONTH(ORDERDATE) month from orders group by year(ORDERDATE), MONTH(ORDERDATE) order by year(ORDERDATE), MONTH(ORDERDATE), dengan maksud menghitung jumlah order pertahun dan bulan.Ambil objek chart dari kotak pallette, nanti akan muncul banyak jenis chart, mulai pie chart, bar chart, line chart, dan lain-lain, contoh ambil chart 3d, klik drag ke area title (di atas page header).

Selasa, 08 Juni 2010

Deploy report di iReport

Setelah selesai desain dan preview dilakukan proses deploy ke server. Jika sebelumnya file yang dihasilkan adalah file jasper.

Membuat Report di iReport (Bagian II)

Sambungan dari topik sebelumnya Membuat Report di iReport (Bagian I), selanjutnya cara mengekspor hasil report kedalam bentuk lain, tetapi sebelumnya, ketika habis preview disimpan dulu hasil preview [nama file].jrprint, kalau dalam desain [nama file].jrxml.

Senin, 07 Juni 2010

Membuat Report di iReport (Bagian I)

Merupakan salah satu tool dari jasperforge.org, dan bisa didownload dahulu. Dalam tulisan ini menggunakan tool iReport 3.7.1, walaupun sebenarnya ada yang lebih baru (update), yakni iReport 3.7.2.

Selasa, 01 Juni 2010

Membuat IReport dengan Net Beans

Dikenal juga dengan istilah Jasper Report Business Intelligent.
Step awal instalasi dulu Java NetBeans IDE (disini menggunakan NetBeans 6.8), download plugin iReport, dan install (*.nbm) dengan add plugin ke netbeans.

Selasa, 25 Mei 2010

Oracle Publisher I

Oracle Business Intelligence Publisher (BI Publisher, atau yang lebih dikenal juga dengan XML Publisher adalah jawaban atas usaha pelaporan bagi cara membuat, mengatur, dan menyampaikan format dokumen tingkat tinggi dengan biaya efisien. Bagi bagian IT tinggal membuat template ataupun model data yang ditampilkan dengan berbagai source dan infrastruktur. BI Publisher dapat menggenerate puluhan dari ratusan dokumen per jam dengan meminimalisir akibat transaksi sistem generate. Report dapat dilihat secara online ataupun terjadwal dan disalurkan ke pengguna yang membutuhkan

Selasa, 02 Februari 2010

Cognos 1.0

Informatica 1.0

FTP Dos Batch File

Kadang kebutuhan source data tidak langsung dari database, bisa dari file, entah txt, csv, xml dan lain-lain. Permasalahan akan muncul bila ternyata file tersebut berada di server lain dan hanya diberikan access ftp untuk download dulu.

DMEXPRESS 1.0

Data Stage Parallel Proses

Data Stage Serial 1.0

Sabtu, 30 Januari 2010

Menggunakan Report Portal 1

Instalasi active directory di web server.

Business Object Literature

Terkadang perlu menulis juga di buku. Tidak semua harus ditulis di blog, dimana karakteristik pembaca 'Indonesia' belum menghargai hasil karya tulis orang lain, minimal meninggalkan komentar, bukan googling dibaca dan ditutup begitu saja, untuk menyelesaikan masalahnya sendiri. :(
Berikut sedikit tulisan yang sudah dibukukan

Menggunakan Sagent 2

Menggunakan external source, baik file ataupun database

Menggunakan Sagent 1.0

Membuat data view, sebagai view connection