====== Get Siebel Ojects Repository Data ======
SQL запрос позволяющий получить подробную информацию из Siebel Repository (Workspace MAIN) по Applets и Business Components.
Информация доступна только для DR!
Установка
Для работы SQL запросов необходимо предварительно создать все {{ :sql:view.zip |}}
Все View настроены на получение информации из репозитория Siebel Repository и Workspace MAIN
После создания всех технических view необходимо создать View {{ :sql:al_get_info_bc.zip |}}
===== Получение информации по Applet =====
Для получения информации по Applet необходимо использовать {{ :sql:al_get_info_applet.zip |}}
Для получения максимально корректной информации необходимо указывать название Applet и View (название View не обязательное)
WITH inp AS (SELECT
WITH inp AS (SELECT
'Contact Form Applet' p_applet, -- <== здесь должно быть название апплета
'Contact All Communication View' p_view -- <== здесь может быть название вью, если не принципиально - можно не трогать (!!!! - но удалять или комментить строку нельзя)
FROM dual)
SELECT 1
,t.applet_name --название апплета
,t.buscomp_name --название бизнес-компонента
,t.field_name --название поля на БК
,t.control_name --название поля на апплете (технический момент)
,t.control_caplion --отображаемое значение на апплете
,bc.*
FROM
(
SELECT 1
,a.NAME applet_name
,ac.name control_name
,wt.TYPE applet_mode
,nvl(ac.control_caplion,ssi.STRING_VALUE) control_caplion
,ac.field_name
,a.buscomp_name
,wi.expr
,wt.TYPE wt_type
,wt.NAME wt_name
,CASE WHEN ac.visible='Y' AND wi.mode_cd IS NULL
THEN 'Y'
ELSE 'N'
END visible
,wi.mode_cd
-- ,CASE WHEN ac.visible='Y' AND wi.mode_cd IS NULL
-- THEN 0
-- WHEN ac.visible='Y' AND wi.mode_cd IS NOT NULL
-- THEN 1
-- WHEN ac.visible='N' AND wi.mode_cd IS NULL
-- THEN 2
-- ELSE 3
-- END vis_sort
-- ,mod(wi.item_num,1000) sort1
-- ,trunc(wi.item_num/1000) sort2
FROM
(
select c.applet_id
,'Form' cont_type
,ci.CAPTION control_caplion
,ci.lang_cd
,c.caption_ref
,c.COMMENTS,c.CONFLICT_ID,c.CONTENT_FIXUP_NAME,c.CREATED,c.CREATED_BY,c.DB_LAST_UPD,c.DB_LAST_UPD_SRC,c.DET_APPLET_NAME,c.FIELD_NAME,c.FIELD_RETRIEVAL_CD,c.HTML_ATTR,c.HTML_DISPLAY_MODE,c.HTML_HEIGHT,c.HTML_ICON_MAP,c.HTML_MAX_CHAR_DISP,c.HTML_ONLY_FLG,c.HTML_ROW_SEN_FLG,c.HTML_SEQUENCE,c.HTML_TYPE,c.HTML_WIDTH,c.INACTIVE_FLG,c.LABEL_TXT_ALGNMENT,c.LAST_UPD,c.LAST_UPD_BY,c.MODIFICATION_NUM,c.MODULE_NAME,c.MVG_APPLET_NAME,c.NAME,c.PICK_APPLET_NAME,c.PICK_VIS_TYPE,c.POPUP_EDIT_FLG,c.PROMPT_TEXT_REF,c.READONLY,c.REPOSITORY_ID,c.ROW_ID,c.RUNTIME_FLG,c.SEQUENCE,c.SHOW_POPUP_FLG,c.SSE_FLG,c.SST_FLG,c.SSV_FLG,c.TEXT_ALIGNMENT,c.TYPE,c.VISIBLE,c.WIDTH
from siebel.pp_s_control c,siebel.pp_s_control_intl ci where ci.control_id(+)=c.ws_src_id and ci.caption(+) is not null
union all
select l.applet_id
,'List' cont_type
,ci.display_name control_caplion
,ci.lang_cd
,c.display_name_ref
,c.COMMENTS,c.CONFLICT_ID,c.CONTENT_FIXUP_NAME,c.CREATED,c.CREATED_BY,c.DB_LAST_UPD,c.DB_LAST_UPD_SRC,c.DET_APPLET_NAME,c.FIELD_NAME,c.FIELD_RETRIEVAL_CD,c.HTML_ATTR,c.HTML_DISPLAY_MODE,c.HTML_HEIGHT,c.HTML_ICON_MAP,c.HTML_MAX_CHAR_DISP,c.HTML_ONLY_FLG,c.HTML_ROW_SEN_FLG,c.HTML_SEQUENCE,c.HTML_TYPE,c.HTML_WIDTH,c.INACTIVE_FLG,c.LABEL_TXT_ALGNMENT,c.LAST_UPD,c.LAST_UPD_BY,c.MODIFICATION_NUM,c.MODULE_NAME,c.MVG_APPLET_NAME,c.NAME,c.PICK_APPLET_NAME,c.PICK_VIS_TYPE,c.POPUP_EDIT_FLG,c.PROMPT_TEXT_REF,c.READONLY,c.REPOSITORY_ID,c.ROW_ID,c.RUNTIME_FLG,c.SEQUENCE,c.SHOW_POPUP_FLG,c.SSE_FLG,c.SST_FLG,c.SSV_FLG,c.TEXT_ALIGNMENT,c.TYPE,c.VISIBLE,c.WIDTH
from siebel.pp_s_list l,siebel.pp_s_list_column c,siebel.pp_s_list_col_intl ci where c.list_id=l.ws_src_id and ci.list_column_id(+)=c.ws_src_id and ci.display_name(+) is not null
) ac,
siebel.pp_s_applet a,
(SELECT ws_src_id,applet_id,TYPE,NAME
FROM
(SELECT ws_src_id,applet_id,TYPE,NAME,view_exist||sort2 keymn,min(view_exist||sort2) over(PARTITION BY applet_id) mn
FROM
(SELECT ws_src_id,applet_id,TYPE,NAME,SEQUENCE
,decode(TYPE,'Edit List',1,'Edit',2,'Base',3,4)||SEQUENCE||ROW_ID sort2
,CASE WHEN EXISTS(SELECT 1 FROM siebel.pp_s_view v,siebel.pp_s_view_web_tmpl vw,siebel.pp_s_view_wtmpl_it wvi,siebel.pp_s_applet a,inp
WHERE wvi.view_web_tmpl_id=vw.ws_src_id AND vw.view_id=v.ws_src_id AND a.name=wvi.applet_name
AND V.NAME=inp.p_view AND wvi.applet_mode_cd=w.TYPE AND a.ws_src_id=w.applet_id
)
THEN 0
ELSE 1 END view_exist
FROM siebel.pp_s_appl_web_tmpl w,inp
WHERE 1=1
)
)
wHERE keymn = mn
) wt,
siebel.pp_s_appl_wtmpl_it wi,
siebel.pp_S_SYM_STR ss,
siebel.pp_s_sym_str_intl ssi,
inp
WHERE 1=1
AND a.ws_src_id=ac.applet_id
AND a.ws_src_id=wt.applet_id
AND wt.ws_src_id=wi.appl_web_tmpl_id
AND wi.ctrl_name=ac.NAME
and decode(wi.repos_type,'Control',nvl(wi.grid_property,'FormattedHtml'),'FormattedHtml')='FormattedHtml'
AND nvl(wi.expr,'Siebel Universal Agent') in ('Siebel Universal Agent','Siebel Universal Agent OUI')
AND ac.field_name IS NOT null
AND nvl(ac.html_type,0)!='Hidden'
AND nvl(ac.HTML_DISPLAY_MODE,0)!='DontEncodeData'
AND nvl(ac.lang_cd,'RUS')='RUS'
AND ss.name(+)=ac.caption_ref
AND ss.ws_src_id=ssi.sym_str_id(+)
AND ssi.lang_cd(+)='RUS'
) t, inp, AL_GET_INFO_BC bc
WHERE 1=1
AND t.applet_name = inp.p_applet
and t.buscomp_name = bc.bc_name
and t.field_name = bc.field_name
------------------------------
--ORDER BY vis_sort,sort1,sort2
===== Получение информации по Business Component =====
При необходимости можно получить информацию по Business Component. Например если понадобится получить информацию по Field из калькулируемого поля. (Пример BC=Contact, Field=AClub Manager Last Name)
select *
from AL_GET_INFO_BC bc
where bc.bc_name = 'Contact'
and bc.field_name = 'AClub Manager Last Name';