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