Siebel SQLs/Error Messages >  Find all List Applet Fields with SQL

Find all the fields in a List Applet with SQL:

 

WITH ITEMS AS
(SELECT lcl.NAME control_name,
a.NAME applet_name,
bc.NAME buscomp_name,
fld.NAME field_name,
fld.COL_NAME field_col_name,
fld.JOIN_NAME field_join_name,
fld.multivalINK_NAME field_multivalink_name,
fld.BUSCOMP_ID,
fld.PICKLIST_NAME field_picklist_name,
(
CASE
WHEN (fld.multivalINK_NAME IS NOT NULL)
THEN ('MVG')
WHEN (fld.CALCULATED = 'Y')
THEN ('Calculated')
WHEN (fld.JOIN_NAME IS NOT NULL)
THEN (
CASE
WHEN (bcu.VALUE IS NOT NULL)
THEN (
CASE
WHEN (fld.JOIN_NAME <> bcu.VALUE)
THEN ('Joined Field')
ELSE (
CASE
WHEN (fld.PICKLIST_NAME IS NOT NULL)
THEN ('Picklist')
WHEN (fld.TYPE = 'DTYPE_BOOL')
THEN ('Boolean')
ELSE ('Field')
END)
END)
ELSE ('Joined Field')
END)
ELSE (
CASE
WHEN (fld.PICKLIST_NAME IS NOT NULL)
THEN ('Picklist')
WHEN (fld.TYPE = 'DTYPE_BOOL')
THEN ('Boolean')
ELSE ('Field')
END)
END) field_type,
(DECODE(fld.JOIN_NAME, NULL, NULL,
(SELECT j.DEST_TBL_NAME
FROM siebel.s_join j
WHERE fld.JOIN_NAME = j.NAME
AND j.BUSCOMP_ID = fld.BUSCOMP_ID
AND j.INACTIVE_FLG = 'N'
AND j.REPOSITORY_ID = fld.REPOSITORY_ID
))) join_table_name,
(DECODE(fld.JOIN_NAME, NULL, NULL,
(SELECT MAX(fj.COL_NAME)
FROM siebel.s_field fj
WHERE fj.BUSCOMP_ID = fld.BUSCOMP_ID
AND fj.INACTIVE_FLG = 'N'
AND fj.REPOSITORY_ID = fld.REPOSITORY_ID
AND fj.NAME IN
(SELECT sjoin.SRC_FLD_NAME
FROM siebel.s_join_spec sjoin
WHERE sjoin.JOIN_ID IN
(SELECT SIEBEL.S_JOIN.ROW_ID
FROM SIEBEL.S_JOIN
WHERE SIEBEL.S_JOIN.BUSCOMP_ID = fld.BUSCOMP_ID
AND SIEBEL.S_JOIN.NAME IN
(SELECT ji.NAME
FROM siebel.s_join ji
WHERE fld.JOIN_NAME = ji.NAME
AND ji.BUSCOMP_ID = fld.BUSCOMP_ID
AND ji.INACTIVE_FLG = 'N'
AND ji.REPOSITORY_ID = fld.REPOSITORY_ID
)
)
)
))) AS join_src_column,
(DECODE(fld.multivalINK_NAME, NULL, NULL, NVL(
(SELECT lnk.INTER_TBL_NAME
FROM siebel.s_multivalink multival
INNER JOIN siebel.s_link lnk
ON multival.DEST_LINK_NAME = lnk.NAME
AND lnk.REPOSITORY_ID = multival.REPOSITORY_ID
WHERE multival.BUSCOMP_ID = fld.BUSCOMP_ID
AND multival.NAME = fld.multivalINK_NAME
AND multival.INACTIVE_FLG = 'N'
AND multival.REPOSITORY_ID = fld.REPOSITORY_ID
AND lnk.INACTIVE_FLG = 'N'
),
(SELECT DECODE(bcu2.VALUE, NULL, buscomp2.TABLE_NAME, bcu2.VALUE)
FROM siebel.s_multivalink multival
INNER JOIN siebel.s_link lnk
ON multival.DEST_LINK_NAME = lnk.NAME
AND lnk.REPOSITORY_ID = multival.REPOSITORY_ID
INNER JOIN siebel.s_buscomp buscomp2
ON lnk.CHILD_BC_NAME = buscomp2.NAME
AND buscomp2.REPOSITORY_ID = lnk.REPOSITORY_ID
LEFT OUTER JOIN siebel.s_buscomp_uprop bcu2
ON bcu2.BUSCOMP_ID = buscomp2.ROW_ID
AND bcu2.REPOSITORY_ID = buscomp2.REPOSITORY_ID
AND bcu2.NAME = 'Inner Join Extension Table 1'
WHERE multival.BUSCOMP_ID = fld.BUSCOMP_ID
AND multival.NAME = fld.multivalINK_NAME
AND multival.INACTIVE_FLG = 'N'
AND multival.REPOSITORY_ID = fld.REPOSITORY_ID
AND lnk.INACTIVE_FLG = 'N'
AND buscomp2.INACTIVE_FLG = 'N'
)))) mvg_dest_table,
(DECODE(fld.multivalINK_NAME, NULL, NULL, NVL(
(SELECT lnk.IPARENT_COL_NAME
FROM siebel.s_multivalink multival
INNER JOIN siebel.s_link lnk
ON multival.DEST_LINK_NAME = lnk.NAME
AND lnk.REPOSITORY_ID = multival.REPOSITORY_ID
WHERE multival.BUSCOMP_ID = fld.BUSCOMP_ID
AND multival.NAME = fld.multivalINK_NAME
AND multival.INACTIVE_FLG = 'N'
AND multival.REPOSITORY_ID = fld.REPOSITORY_ID
AND lnk.INACTIVE_FLG = 'N'
), (
CASE
WHEN (EXISTS
(SELECT NVL(fld2.COL_NAME, 'ROW_ID')
FROM siebel.s_multivalink multival,
siebel.s_link lnk,
siebel.s_buscomp buscomp2,
siebel.s_field fld2
WHERE multival.DEST_LINK_NAME = lnk.NAME
AND lnk.CHILD_BC_NAME = buscomp2.NAME
AND fld2.BUSCOMP_ID = buscomp2.ROW_ID
AND fld2.NAME = lnk.DST_FLD_NAME
AND lnk.REPOSITORY_ID = multival.REPOSITORY_ID
AND buscomp2.REPOSITORY_ID = lnk.REPOSITORY_ID
AND fld2.REPOSITORY_ID = buscomp2.REPOSITORY_ID
AND multival.BUSCOMP_ID = fld.BUSCOMP_ID
AND multival.NAME = fld.multivalINK_NAME
AND multival.INACTIVE_FLG = 'N'
AND multival.REPOSITORY_ID = fld.REPOSITORY_ID
AND lnk.INACTIVE_FLG = 'N'
AND buscomp2.INACTIVE_FLG = 'N'
AND fld2.INACTIVE_FLG = 'N'
))
THEN
(SELECT NVL(fld2.COL_NAME, 'ROW_ID')
FROM siebel.s_multivalink multival,
siebel.s_link lnk,
siebel.s_buscomp buscomp2,
siebel.s_field fld2
WHERE multival.DEST_LINK_NAME = lnk.NAME
AND lnk.CHILD_BC_NAME = buscomp2.NAME
AND fld2.BUSCOMP_ID = buscomp2.ROW_ID
AND fld2.NAME = lnk.DST_FLD_NAME
AND lnk.REPOSITORY_ID = multival.REPOSITORY_ID
AND buscomp2.REPOSITORY_ID = lnk.REPOSITORY_ID
AND fld2.REPOSITORY_ID = buscomp2.REPOSITORY_ID
AND multival.BUSCOMP_ID = fld.BUSCOMP_ID
AND multival.NAME = fld.multivalINK_NAME
AND multival.INACTIVE_FLG = 'N'
AND multival.REPOSITORY_ID = fld.REPOSITORY_ID
AND lnk.INACTIVE_FLG = 'N'
AND buscomp2.INACTIVE_FLG = 'N'
AND fld2.INACTIVE_FLG = 'N'
)
ELSE
(SELECT DECODE(lnk.DST_FLD_NAME, 'Id', 'ROW_ID', 'Created', 'CREATED', 'Created By', 'CREATED_BY', 'Updated', 'LAST_UPD', 'Updated By', 'LAST_UPD_BY', 'Mod Id', 'MODIFICATION_NUM', 'Conflict Id', 'CONFLICT_ID', NULL, 'ROW_ID')
FROM siebel.s_multivalink multival,
siebel.s_link lnk,
siebel.s_buscomp buscomp2
WHERE multival.DEST_LINK_NAME = lnk.NAME
AND lnk.CHILD_BC_NAME = buscomp2.NAME
AND lnk.REPOSITORY_ID = multival.REPOSITORY_ID
AND buscomp2.REPOSITORY_ID = lnk.REPOSITORY_ID
AND multival.BUSCOMP_ID = fld.BUSCOMP_ID
AND multival.NAME = fld.multivalINK_NAME
AND multival.INACTIVE_FLG = 'N'
AND multival.REPOSITORY_ID = fld.REPOSITORY_ID
AND lnk.INACTIVE_FLG = 'N'
AND buscomp2.INACTIVE_FLG = 'N'
)
END)))) mvg_dest_column,
(DECODE(fld.multivalINK_NAME, NULL, NULL,
(SELECT NVL(multival.PRIMEID_FLD_NAME, lnk.PR_ID_FLD_NAME)
FROM siebel.s_multivalink multival,
siebel.s_link lnk
WHERE multival.DEST_LINK_NAME = lnk.NAME
AND lnk.REPOSITORY_ID = multival.REPOSITORY_ID
AND multival.BUSCOMP_ID = fld.BUSCOMP_ID
AND multival.NAME = fld.multivalINK_NAME
AND multival.INACTIVE_FLG = 'N'
AND multival.REPOSITORY_ID = fld.REPOSITORY_ID
AND lnk.INACTIVE_FLG = 'N'
))) mvg_primary_fld,
(DECODE(fld.multivalINK_NAME, NULL, NULL, (
CASE
WHEN (EXISTS
(SELECT 1
FROM siebel.s_multivalink multival,
siebel.s_link lnk
WHERE multival.DEST_LINK_NAME = lnk.NAME
AND lnk.REPOSITORY_ID = multival.REPOSITORY_ID
AND multival.BUSCOMP_ID = fld.BUSCOMP_ID
AND multival.NAME = fld.multivalINK_NAME
AND multival.INACTIVE_FLG = 'N'
AND multival.REPOSITORY_ID = fld.REPOSITORY_ID
AND lnk.INACTIVE_FLG = 'N'
AND (multival.PRIMEID_FLD_NAME IS NOT NULL
OR lnk.PR_ID_FLD_NAME IS NOT NULL)
))
THEN (NULL)
ELSE ('Y')
END))) mvg_no_primary_flg,
(DECODE(fld.multivalINK_NAME, NULL, NULL,
CASE
WHEN (EXISTS
(SELECT lnk.INTER_TBL_NAME
FROM siebel.s_multivalink multival,
siebel.s_link lnk
WHERE multival.DEST_LINK_NAME = lnk.NAME
AND lnk.REPOSITORY_ID = multival.REPOSITORY_ID
AND lnk.INTER_TBL_NAME IS NOT NULL
AND multival.BUSCOMP_ID = fld.BUSCOMP_ID
AND multival.NAME = fld.multivalINK_NAME
AND multival.INACTIVE_FLG = 'N'
AND multival.REPOSITORY_ID = fld.REPOSITORY_ID
AND lnk.INACTIVE_FLG = 'N'
))
THEN ('Y')
ELSE (NULL)
END)) mvg_mm_flg,
(DECODE(fld.multivalINK_NAME, NULL, NULL,
CASE
WHEN (EXISTS
(SELECT 1
FROM siebel.s_multivalink multival,
siebel.s_link lnk
WHERE multival.DEST_LINK_NAME = lnk.NAME
AND lnk.REPOSITORY_ID = multival.REPOSITORY_ID
AND multival.BUSCOMP_ID = fld.BUSCOMP_ID
AND multival.NAME = fld.multivalINK_NAME
AND lnk.IPARENT_COL_NAME IS NOT NULL
AND multival.INACTIVE_FLG = 'N'
AND multival.REPOSITORY_ID = fld.REPOSITORY_ID
AND lnk.INACTIVE_FLG = 'N'
))
THEN ('ROW_ID')
ELSE (
CASE
WHEN (EXISTS
(SELECT 1
FROM siebel.s_multivalink multival,
siebel.s_link lnk,
siebel.s_buscomp buscomp2,
siebel.s_field fld2
WHERE multival.DEST_LINK_NAME = lnk.NAME
AND lnk.CHILD_BC_NAME = buscomp2.NAME
AND fld2.BUSCOMP_ID = buscomp2.ROW_ID
AND fld2.NAME = lnk.SRC_FLD_NAME
AND lnk.REPOSITORY_ID = multival.REPOSITORY_ID
AND buscomp2.REPOSITORY_ID = lnk.REPOSITORY_ID
AND fld2.REPOSITORY_ID = buscomp2.REPOSITORY_ID
AND multival.BUSCOMP_ID = fld.BUSCOMP_ID
AND multival.NAME = fld.multivalINK_NAME
AND multival.INACTIVE_FLG = 'N'
AND multival.REPOSITORY_ID = fld.REPOSITORY_ID
AND lnk.INACTIVE_FLG = 'N'
AND buscomp2.INACTIVE_FLG = 'N'
AND fld2.INACTIVE_FLG = 'N'
))
THEN
(SELECT NVL(fld2.COL_NAME, 'ROW_ID')
FROM siebel.s_multivalink multival,
siebel.s_link lnk,
siebel.s_buscomp buscomp2,
siebel.s_field fld2
WHERE multival.DEST_LINK_NAME = lnk.NAME
AND lnk.PARENT_BC_NAME = buscomp2.NAME
AND fld2.BUSCOMP_ID = buscomp2.ROW_ID
AND fld2.NAME = lnk.SRC_FLD_NAME
AND lnk.REPOSITORY_ID = multival.REPOSITORY_ID
AND buscomp2.REPOSITORY_ID = lnk.REPOSITORY_ID
AND fld2.REPOSITORY_ID = buscomp2.REPOSITORY_ID
AND multival.BUSCOMP_ID = fld.BUSCOMP_ID
AND multival.NAME = fld.multivalINK_NAME
AND multival.INACTIVE_FLG = 'N'
AND multival.REPOSITORY_ID = fld.REPOSITORY_ID
AND lnk.INACTIVE_FLG = 'N'
AND buscomp2.INACTIVE_FLG = 'N'
AND fld2.INACTIVE_FLG = 'N'
)
ELSE
(SELECT DECODE(lnk.SRC_FLD_NAME, 'Id', 'ROW_ID', 'Created', 'CREATED', 'Created By', 'CREATED_BY', 'Updated', 'LAST_UPD', 'Updated By', 'LAST_UPD_BY', 'Mod Id', 'MODIFICATION_NUM', 'Conflict Id', 'CONFLICT_ID', NULL, 'ROW_ID')
FROM siebel.s_multivalink multival,
siebel.s_link lnk,
siebel.s_buscomp buscomp2
WHERE multival.DEST_LINK_NAME = lnk.NAME
AND lnk.PARENT_BC_NAME = buscomp2.NAME
AND lnk.REPOSITORY_ID = multival.REPOSITORY_ID
AND buscomp2.REPOSITORY_ID = lnk.REPOSITORY_ID
AND multival.BUSCOMP_ID = fld.BUSCOMP_ID
AND multival.NAME = fld.multivalINK_NAME
AND multival.INACTIVE_FLG = 'N'
AND multival.REPOSITORY_ID = fld.REPOSITORY_ID
AND lnk.INACTIVE_FLG = 'N'
AND buscomp2.INACTIVE_FLG = 'N'
)
END)
END)) mvg_src_column,
wti.NAME web_template_item_name,
t.NAME tbl_name,
lclint.DISPLAY_NAME disp_name_override,
refexact.STRING_VALUE disp_name_ref_exact,
NVL(lclint.DISPLAY_NAME, refexact.STRING_VALUE) caption,
bcu.VALUE bc_inner_join_table,
fld.JOIN_NAME,
NVL(bcu.INACTIVE_FLG, 'N') bc_inner_join_inactive,
ROW_NUMBER() Over (Partition BY bc.NAME
|| fld.NAME Order By NULL) rid,
a.LAST_UPD
FROM siebel.s_applet a,
siebel.s_buscomp bc,
siebel.s_field fld,
siebel.s_appl_wtmpl_it wti,
siebel.s_appl_web_tmpl wt,
siebel.s_table t,
siebel.s_list lst,
siebel.s_list_column lcl,
siebel.s_list_col_intl lclint,
siebel.s_sym_str_intl refexact,
siebel.s_buscomp_uprop bcu
WHERE a.BUSCOMP_NAME = bc.NAME
AND bc.ROW_ID = fld.BUSCOMP_ID
AND bcu.BUSCOMP_ID(+) = bc.ROW_ID
AND lcl.FIELD_NAME = fld.NAME
AND wti.APPL_WEB_TMPL_ID = wt.ROW_ID
AND wt.APPLET_ID = a.ROW_ID
AND lst.APPLET_ID = a.ROW_ID
AND lcl.LIST_ID = lst.ROW_ID
AND lclint.LIST_COLUMN_ID(+) = lcl.ROW_ID
AND refexact.SYM_STR_KEY(+) = lcl.DISPLAY_NAME_REF
AND wti.CTRL_NAME = lcl.NAME
AND bc.TABLE_NAME = t.NAME
AND a.REPOSITORY_ID = fld.REPOSITORY_ID
AND bc.REPOSITORY_ID = a.REPOSITORY_ID
AND wt.REPOSITORY_ID = a.REPOSITORY_ID
AND wti.REPOSITORY_ID = wt.REPOSITORY_ID
AND t.REPOSITORY_ID = fld.REPOSITORY_ID
AND lst.REPOSITORY_ID = a.REPOSITORY_ID
AND lcl.REPOSITORY_ID = lst.REPOSITORY_ID
AND lclint.REPOSITORY_ID(+) = lcl.REPOSITORY_ID
AND refexact.REPOSITORY_ID(+) = lcl.REPOSITORY_ID
AND bcu.REPOSITORY_ID(+) = bc.REPOSITORY_ID
AND a.NAME LIKE :pi_vc_appletname
|| '%'
AND fld.REPOSITORY_ID IN
(SELECT SIEBEL.S_REPOSITORY.ROW_ID
FROM SIEBEL.S_REPOSITORY
WHERE SIEBEL.S_REPOSITORY.NAME = 'Siebel Repository'
)
AND a.INACTIVE_FLG = 'N'
AND bc.INACTIVE_FLG = 'N'
AND fld.INACTIVE_FLG = 'N'
AND wt.INACTIVE_FLG = 'N'
AND wti.INACTIVE_FLG = 'N'
AND t.INACTIVE_FLG = 'N'
AND lst.INACTIVE_FLG = 'N'
AND lcl.INACTIVE_FLG = 'N'
AND lclint.INACTIVE_FLG(+) = 'N'
AND refexact.INACTIVE_FLG(+) = 'N'
AND bcu.NAME(+) = 'Inner Join Extension Table 1'
AND wti.REPOS_TYPE = 'List Item'
)
SELECT ITEMS.control_name,
ITEMS.applet_name,
ITEMS.BUSCOMP_ID,
ITEMS.buscomp_name,
ITEMS.field_name,
ITEMS.field_type,
ITEMS.caption,
ITEMS.tbl_name,
ITEMS.field_col_name,
ITEMS.join_table_name,
ITEMS.join_src_column,
ITEMS.mvg_src_column,
ITEMS.mvg_dest_table,
ITEMS.mvg_dest_column,
ITEMS.mvg_primary_fld,
ITEMS.mvg_no_primary_flg,
ITEMS.mvg_mm_flg,
ITEMS.field_join_name,
ITEMS.bc_inner_join_table,
ITEMS.JOIN_NAME,
ITEMS.bc_inner_join_inactive,
ITEMS.field_multivalink_name,
(SELECT f.COL_NAME FROM siebel.s_field f WHERE f.NAME = ITEMS.mvg_primary_fld AND f.BUSCOMP_ID = ITEMS.BUSCOMP_ID) AS field_multivalink_column,
ITEMS.field_picklist_name,
ITEMS.web_template_item_name,
ITEMS.disp_name_override,
ITEMS.disp_name_ref_exact,
ITEMS.rid,
ITEMS.LAST_UPD
FROM ITEMS;