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')

}

Tidak ada komentar:

Posting Komentar