Siebel Repository tables
Siebel Repository refers to set of tables in which Siebel object definition and scripts are stored. These tables store meta data about Siebel Objects and also contain the configuration information shown in Siebel Tools
S_APPLET : Stores Siebel Applets information
S_BUSCOMP : Stores Siebel Business Component Information
S_FIELD : Stores all the Field details
Situation: Generate a report with all the active BC Fields and their corresponding Table/Column/Data Type/Length. Doing this manually in Siebel Tools is a monotonous and tedious task and it will take lot of time to complete it.
Solution : Directly querying on the Siebel Repository tables which would yield the desired output. Please find below sample query for Account BC
SELECT FIELD.NAME"BC Field Name",FIELD.join_name "Join Name",NULL"Table_Name",field.col_name "Column Name",decode(TEMP.COLTYPE,'V','Varchar','U','UTC Date Time','D','Date','C','Char','X','Long','T',' DateTime','N','Number','L','Clob','S','Date Time')"Data TYPE",TEMP.COLLENGTH "Length"
FROM
SIEBEL.S_REPOSITORY REP,
SIEBEL.S_BUSCOMP BC,
SIEBEL.S_FIELD FIELD,
(selectdistincttab.name"TNAME",col.name"COLNAME",col.data_type "COLTYPE",col.length"COLLENGTH"from
siebel.s_table tab,
siebel.s_column col,
siebel.s_repository rep
where
tab.REPOSITORY_ID=REP.ROW_ID AND
REP.NAME='Siebel Repository' and
col.tbl_id=tab.row_id and
tab.namelike'S_%')temp
WHERE
field.col_name =temp.COLNAME(+)and
field.join_name=temp.TNAME (+)and
field.inactive_flg='N'and
field.col_name isnotnulland
FIELD.BUSCOMP_ID=BC.ROW_ID AND
BC.NAME='Account' AND
BC.REPOSITORY_ID=REP.ROW_ID AND
REP.NAME='Siebel Repository'
Note : The above SQL query is a sample one and based on individuals requirement query should be tuned to get the required data from Repository tables