The following lines contain the word 'select', 'insert', 'update' or 'delete':
procedure INSERT_ROW (
X_ROWID in out nocopy varchar2,
X_GUID in raw,
X_NAME in varchar2,
X_TYPE in varchar2,
X_STATUS in varchar2,
X_GENERATE_FUNCTION in varchar2,
X_OWNER_NAME in varchar2,
X_OWNER_TAG in varchar2,
X_DISPLAY_NAME in varchar2,
X_DESCRIPTION in varchar2,
X_CUSTOMIZATION_LEVEL in varchar2,
X_LICENSED_FLAG in varchar2,
X_JAVA_GENERATE_FUNC in varchar2,
X_IREP_ANNOTATION in varchar2
) is
cursor C is select rowid from wf_events where guid = X_GUID;
insert into wf_events (
guid,
name,
type,
status,
generate_function,
owner_name,
owner_tag,
customization_level,
licensed_flag,
java_generate_func,
irep_annotation
) values (
X_GUID,
X_NAME,
X_TYPE,
X_STATUS,
X_GENERATE_FUNCTION,
X_OWNER_NAME,
X_OWNER_TAG,
X_CUSTOMIZATION_LEVEL,
l_licensed_flag,
X_JAVA_GENERATE_FUNC,
X_IREP_ANNOTATION
);
insert into wf_events_tl (
guid,
language,
display_name,
description,
source_lang)
select X_GUID,
L.CODE,
X_DISPLAY_NAME,
X_DESCRIPTION,
userenv('LANG')
from wf_languages l
where l.installed_flag = 'Y'
and not exists
(select null
from wf_events_tl t
where t.guid = X_GUID
and t.language = l.code);
wf_core.context('Wf_Events_Pkg', 'Insert_Row', x_guid, x_name, x_type);
end INSERT_ROW;
procedure UPDATE_ROW (
X_GUID in raw,
X_NAME in varchar2,
X_TYPE in varchar2,
X_STATUS in varchar2,
X_GENERATE_FUNCTION in varchar2,
X_OWNER_NAME in varchar2,
X_OWNER_TAG in varchar2,
X_DISPLAY_NAME in varchar2,
X_DESCRIPTION in varchar2,
X_CUSTOMIZATION_LEVEL in varchar2,
X_LICENSED_FLAG in varchar2,
X_JAVA_GENERATE_FUNC in varchar2,
X_IREP_ANNOTATION in varchar2
) is
l_custom_level varchar2(1);
l_update_allowed varchar2(1);
SELECT guid
FROM wf_events
WHERE name = p_name;
update wf_events set
name = X_NAME,
type = X_TYPE,
status = X_STATUS,
generate_function = X_GENERATE_FUNCTION,
owner_name = X_OWNER_NAME,
owner_tag = X_OWNER_TAG,
licensed_flag = l_licensed_flag,
customization_level = X_CUSTOMIZATION_LEVEL,
java_generate_func = X_JAVA_GENERATE_FUNC,
irep_annotation = X_IREP_ANNOTATION
where guid = l_guid;
update wf_events_tl set
display_name = X_DISPLAY_NAME,
description = X_DESCRIPTION,
source_lang = userenv('LANG')
where guid = l_guid
and userenv('LANG') in (language, source_lang);
wf_event.raise('oracle.apps.wf.event.event.update',l_guid);
l_update_allowed := is_update_allowed(X_CUSTOMIZATION_LEVEL, l_custom_level);
if l_update_allowed = 'N' then
-- Set up the Error Stack
wf_core.context('WF_EVENTS_PKG','UPDATE_ROW',
x_name,
l_custom_level,
X_CUSTOMIZATION_LEVEL);
-- The Loader can update as the Custom Level is C
update wf_events set
name = X_NAME,
type = X_TYPE,
status = X_STATUS,
generate_function = X_GENERATE_FUNCTION,
owner_name = X_OWNER_NAME,
owner_tag = X_OWNER_TAG,
customization_level = X_CUSTOMIZATION_LEVEL,
licensed_flag = l_licensed_flag,
java_generate_func = X_JAVA_GENERATE_FUNC,
irep_annotation = X_IREP_ANNOTATION
where guid = l_guid;
update wf_events_tl set
display_name = X_DISPLAY_NAME,
description = X_DESCRIPTION,
source_lang = userenv('LANG')
where guid = l_guid
and userenv('LANG') in (language, source_lang);
-- UI users cannot update Core events
null;
-- users changes must be preserved. Update all
-- fields EXCEPT the status field.
update wf_events set
name = X_NAME,
type = X_TYPE,
generate_function = X_GENERATE_FUNCTION,
owner_name = X_OWNER_NAME,
owner_tag = X_OWNER_TAG,
customization_level = X_CUSTOMIZATION_LEVEL,
licensed_flag = l_licensed_flag,
java_generate_func = X_JAVA_GENERATE_FUNC,
irep_annotation = X_IREP_ANNOTATION
where guid = l_guid;
update wf_events_tl set
display_name = X_DISPLAY_NAME,
description = X_DESCRIPTION,
source_lang = userenv('LANG')
where guid = l_guid
and userenv('LANG') in (language, source_lang);
-- Caller of the Update is the UI
-- Limit events can have only a status change..
-- When the user is updating the event using the UI
-- Updates are allowed ONLY to the status field.
update wf_events set
status = X_STATUS
where guid = l_guid;
-- Here are the updates allowed for extensible and User defined events
-- only when the caller is the UI
if g_Mode = 'CUSTOM' then
update wf_events set
name = X_NAME,
type = X_TYPE,
status = X_STATUS,
generate_function = X_GENERATE_FUNCTION,
owner_name = X_OWNER_NAME,
owner_tag = X_OWNER_TAG,
customization_level = X_CUSTOMIZATION_LEVEL,
licensed_flag = l_licensed_flag,
java_generate_func = X_JAVA_GENERATE_FUNC,
irep_annotation = X_IREP_ANNOTATION
where guid = l_guid;
update wf_events_tl set
display_name = X_DISPLAY_NAME,
description = X_DESCRIPTION,
source_lang = userenv('LANG')
where guid = l_guid
and userenv('LANG') in (language, source_lang);
wf_event.raise('oracle.apps.wf.event.event.update',l_guid);
wf_core.context('Wf_Events_Pkg', 'Update_Row', l_guid, x_name, x_type);
end UPDATE_ROW;
procedure DELETE_ROW (
X_GUID in raw
) is
begin
wf_event.raise('oracle.apps.wf.event.event.delete',x_guid);
delete from wf_events_tl where guid = X_GUID;
delete from wf_events where guid = X_GUID;
wf_core.context('Wf_Events_Pkg', 'Delete_Row', x_guid);
end DELETE_ROW;
WF_EVENTS_PKG.UPDATE_ROW (
X_GUID => X_GUID,
X_NAME => X_NAME,
X_TYPE => X_TYPE,
X_STATUS => X_STATUS,
X_GENERATE_FUNCTION => X_GENERATE_FUNCTION,
X_OWNER_NAME => X_OWNER_NAME,
X_OWNER_TAG => X_OWNER_TAG,
X_DISPLAY_NAME => X_DISPLAY_NAME,
X_DESCRIPTION => X_DESCRIPTION,
X_CUSTOMIZATION_LEVEL => X_CUSTOMIZATION_LEVEL,
X_LICENSED_FLAG => X_LICENSED_FLAG,
X_JAVA_GENERATE_FUNC => X_JAVA_GENERATE_FUNC,
X_IREP_ANNOTATION => X_IREP_ANNOTATION
);
WF_EVENTS_PKG.INSERT_ROW(
X_ROWID => row_id,
X_GUID => X_GUID,
X_NAME => X_NAME,
X_TYPE => X_TYPE,
X_STATUS => X_STATUS,
X_GENERATE_FUNCTION => X_GENERATE_FUNCTION,
X_OWNER_NAME => X_OWNER_NAME,
X_OWNER_TAG => X_OWNER_TAG,
X_DISPLAY_NAME => X_DISPLAY_NAME,
X_DESCRIPTION => X_DESCRIPTION,
X_CUSTOMIZATION_LEVEL => X_CUSTOMIZATION_LEVEL,
X_LICENSED_FLAG => X_LICENSED_FLAG,
X_JAVA_GENERATE_FUNC => X_JAVA_GENERATE_FUNC,
X_IREP_ANNOTATION => X_IREP_ANNOTATION
);
delete from wf_events_tl t
where not exists
(select 'baserow'
from wf_events b
where b.guid = t.guid);
update wf_events_tl t set (display_name, description)
= (select b.display_name, b.description
from wf_events_tl b
where b.guid = t.guid
and b.language = t.source_lang)
where (t.guid, t.language) in
(select subt.guid,
subt.language
from wf_events_tl subb, wf_events_tl subt
where subb.guid = subt.guid
and subb.language = subt.source_lang
and (subb.display_name <> subt.display_name
or subb.description <> subt.description
or (subb.description is null and subt.description is not null)
or (subb.description is not null and subt.description is null))
);
insert into wf_events_tl (
guid,
language,
display_name,
description,
source_lang)
select b.guid,
l.code,
b.display_name,
b.description,
b.source_lang
from wf_events_tl b, wf_languages l
where l.installed_flag = 'Y'
and b.language = userenv('LANG')
and (b.guid , l.code) NOT IN
(select /*+ hash_aj index_ffs(T,WF_EVENTS_TL_U1) */
t.guid ,T.LANGUAGE
from wf_events_tl T) ;
select NAME, TYPE, STATUS, GENERATE_FUNCTION, OWNER_NAME,
OWNER_TAG, DISPLAY_NAME, DESCRIPTION, CUSTOMIZATION_LEVEL,
LICENSED_FLAG,JAVA_GENERATE_FUNC, IREP_ANNOTATION
into L_NAME, L_TYPE, L_STATUS, L_GENERATE_FUNCTION, L_OWNER_NAME,
L_OWNER_TAG, L_DISPLAY_NAME, L_DESCRIPTION, l_customization_level,
l_licensed_flag,l_javagenerate, l_irep_annotation
from wf_events_vl
where guid = x_guid;
l_message := WF_EVENT_SYNCHRONIZE_PKG.SetGUID(l_message); -- update #NEW
l_message := WF_EVENT_SYNCHRONIZE_PKG.SetSYSTEMGUID(l_message); -- update #LOCAL
l_message := WF_EVENT_SYNCHRONIZE_PKG.SetSID(l_message); -- update #SID
select CUSTOMIZATION_LEVEL from
WF_EVENTS
where guid = X_GUID;
select application_id
into l_appl_id
from fnd_application
where application_short_name = X_OWNER_TAG;
function is_update_allowed(X_CUSTOM_LEVEL_NEW in varchar2,
X_CUSTOM_LEVEL_OLD in varchar2) return varchar2
is
begin
-- Cannot overwrite data with a higher customization level
if X_CUSTOM_LEVEL_NEW = 'U' then
if X_CUSTOM_LEVEL_OLD in ('C','L') then
-- Error will be logged
return ('N');
-- Return Y. Update is based on the caller
return ('Y');
-- Return Y. Update is based on the caller
return('Y');
end is_update_allowed;