1: package body FF_DATABASE_ITEMS_PKG as
2: /* $Header: ffdbi01t.pkb 120.14 2012/04/18 11:29:35 vmaripal ship $ */
3:
4: procedure insert_tl_rows
5: (x_user_name in varchar2
12: begin
13: --
14: -- Disable trigger validation.
15: --
16: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
17: ff_database_items_pkg.g_disable_triggers := 'Y';
18:
19: insert into ff_database_items_tl (
20: user_name,
13: --
14: -- Disable trigger validation.
15: --
16: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
17: ff_database_items_pkg.g_disable_triggers := 'Y';
18:
19: insert into ff_database_items_tl (
20: user_name,
21: user_entity_id,
15: --
16: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
17: ff_database_items_pkg.g_disable_triggers := 'Y';
18:
19: insert into ff_database_items_tl (
20: user_name,
21: user_entity_id,
22: translated_user_name,
23: description,
33: from fnd_languages l
34: where l.installed_flag in ('I', 'B')
35: and not exists
36: (select null
37: from ff_database_items_tl t
38: where t.user_name = x_user_name
39: and t.user_entity_id = x_user_entity_id
40: and t.language = l.language_code);
41:
41:
42: --
43: -- Reset the trigger code.
44: --
45: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
46:
47: exception
48: when others then
49: --
49: --
50: -- Reset the trigger code.
51: --
52: if l_disable_triggers is not null then
53: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
54: end if;
55:
56: raise;
57: end insert_tl_rows;
91:
92: --
93: -- Disable trigger validation.
94: --
95: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
96: ff_database_items_pkg.g_disable_triggers := 'Y';
97:
98: insert into ff_database_items (
99: user_name,
92: --
93: -- Disable trigger validation.
94: --
95: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
96: ff_database_items_pkg.g_disable_triggers := 'Y';
97:
98: insert into ff_database_items (
99: user_name,
100: user_entity_id,
94: --
95: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
96: ff_database_items_pkg.g_disable_triggers := 'Y';
97:
98: insert into ff_database_items (
99: user_name,
100: user_entity_id,
101: data_type,
102: definition_text,
121:
122: --
123: -- Reset the trigger code.
124: --
125: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
126:
127: exception
128: when others then
129: --
129: --
130: -- Reset the trigger code.
131: --
132: if l_disable_triggers is not null then
133: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
134: end if;
135:
136: raise;
137:
171: ,x_new_name in varchar2
172: ,x_language in varchar2
173: ) is
174: select distinct translated_user_name
175: from ff_database_items_tl
176: where user_name = x_user_name
177: and user_entity_id = x_user_entity_id
178: and translated_user_name <> x_new_name
179: and translated_user_name <> x_user_name
188: ,x_old_name in varchar2
189: ,x_language in varchar2
190: ) is
191: select null
192: from ff_database_items_tl
193: where user_name = x_user_name
194: and user_entity_id = x_user_entity_id
195: and translated_user_name = x_old_name
196: and language <> x_language
718:
719: --
720: -- Disable trigger validation.
721: --
722: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
723: ff_database_items_pkg.g_disable_triggers := 'Y';
724:
725: update ff_database_items_tl set
726: translated_user_name = l_tl_user_name,
719: --
720: -- Disable trigger validation.
721: --
722: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
723: ff_database_items_pkg.g_disable_triggers := 'Y';
724:
725: update ff_database_items_tl set
726: translated_user_name = l_tl_user_name,
727: description = x_description,
721: --
722: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
723: ff_database_items_pkg.g_disable_triggers := 'Y';
724:
725: update ff_database_items_tl set
726: translated_user_name = l_tl_user_name,
727: description = x_description,
728: last_update_date = x_last_update_date,
729: last_updated_by = x_last_updated_by,
735:
736: --
737: -- Reset the trigger code.
738: --
739: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
740:
741: if l_debug then
742: hr_utility.set_location('ffdict.core_update_tl_rows',200);
743: end if;
752: --
753: -- Reset the trigger code.
754: --
755: if l_disable_triggers is not null then
756: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
757: end if;
758:
759: raise;
760: end core_update_tl_rows;
841: ,x_language in varchar2
842: ,x_new_name in varchar2
843: ) is
844: select translated_user_name
845: from ff_database_items_tl
846: where user_name = x_user_name
847: and user_entity_id = x_user_entity_id
848: and translated_user_name <> x_new_name
849: and translated_user_name <> x_user_name
858: ,x_old_name in varchar2
859: ,x_language in varchar2
860: ) is
861: select null
862: from ff_database_items_tl
863: where user_name = x_user_name
864: and user_entity_id = x_user_entity_id
865: and translated_user_name = x_old_name
866: and language <> x_language
869: --
870: -- Disable trigger validation. In the future, the triggers may
871: -- disappear altogether.
872: --
873: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
874: ff_database_items_pkg.g_disable_triggers := 'Y';
875: l_user_name := upper(x_user_name);
876:
877: --
870: -- Disable trigger validation. In the future, the triggers may
871: -- disappear altogether.
872: --
873: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
874: ff_database_items_pkg.g_disable_triggers := 'Y';
875: l_user_name := upper(x_user_name);
876:
877: --
878: -- Verify that the new name isn't going to clash with anything.
923: hr_utility.raise_error;
924: end if;
925: end if;
926:
927: update ff_database_items_tl set
928: translated_user_name = l_tl_name,
929: description = x_description,
930: source_lang = x_source_lang
931: where user_name = l_user_name
934:
935: --
936: -- Reset the trigger code.
937: --
938: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
939:
940: exception
941: when others then
942: --
942: --
943: -- Reset the trigger code.
944: --
945: if l_disable_triggers is not null then
946: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
947: end if;
948:
949: raise;
950: end update_tl_row;
972: ,x_definition_text in varchar2
973: ,x_null_allowed_flag in varchar2
974: ) is
975: select 'Y'
976: from ff_database_items dbi
977: where dbi.user_name = x_user_name
978: and dbi.user_entity_id = x_user_entity_id
979: and (dbi.data_type <> x_data_type or
980: dbi.definition_text <> x_definition_text or
985: --
986: -- Disable trigger validation. In the future, the triggers may
987: -- disappear altogether.
988: --
989: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
990: ff_database_items_pkg.g_disable_triggers := 'Y';
991:
992: --
993: -- If anything is changed on the base table then it is necessary
986: -- Disable trigger validation. In the future, the triggers may
987: -- disappear altogether.
988: --
989: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
990: ff_database_items_pkg.g_disable_triggers := 'Y';
991:
992: --
993: -- If anything is changed on the base table then it is necessary
994: -- to check whether or not this database item is referenced by
1012: hr_utility.set_message_token('1',x_user_name);
1013: hr_utility.raise_error;
1014: end if;
1015:
1016: update ff_database_items set
1017: data_type = upper(x_data_type),
1018: definition_text = x_definition_text,
1019: null_allowed_flag = upper(x_null_allowed_flag)
1020: where user_name = l_user_name
1034:
1035: --
1036: -- Reset the trigger code.
1037: --
1038: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
1039:
1040: exception
1041: when others then
1042: --
1042: --
1043: -- Reset the trigger code.
1044: --
1045: if l_disable_triggers is not null then
1046: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
1047: end if;
1048:
1049: if csr_update_base%isopen then
1050: close csr_update_base;
1088: l_user_name varchar2(2000);
1089: begin
1090: l_user_name := upper(x_user_name);
1091:
1092: delete /*+ INDEX(dbitl FF_DATABASE_ITEMS_TL_PK) */
1093: from ff_database_items_tl dbitl
1094: where dbitl.user_name = l_user_name
1095: and dbitl.user_entity_id = x_user_entity_id;
1096: end delete_tl_rows;
1089: begin
1090: l_user_name := upper(x_user_name);
1091:
1092: delete /*+ INDEX(dbitl FF_DATABASE_ITEMS_TL_PK) */
1093: from ff_database_items_tl dbitl
1094: where dbitl.user_name = l_user_name
1095: and dbitl.user_entity_id = x_user_entity_id;
1096: end delete_tl_rows;
1097:
1112: --
1113: -- Disable trigger validation. In the future, the triggers may
1114: -- disappear altogether.
1115: --
1116: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
1117: ff_database_items_pkg.g_disable_triggers := 'Y';
1118:
1119: ff_database_items_pkg.delete_tl_rows
1120: (x_user_name => l_user_name
1113: -- Disable trigger validation. In the future, the triggers may
1114: -- disappear altogether.
1115: --
1116: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
1117: ff_database_items_pkg.g_disable_triggers := 'Y';
1118:
1119: ff_database_items_pkg.delete_tl_rows
1120: (x_user_name => l_user_name
1121: ,x_user_entity_id => x_user_entity_id
1115: --
1116: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
1117: ff_database_items_pkg.g_disable_triggers := 'Y';
1118:
1119: ff_database_items_pkg.delete_tl_rows
1120: (x_user_name => l_user_name
1121: ,x_user_entity_id => x_user_entity_id
1122: );
1123:
1120: (x_user_name => l_user_name
1121: ,x_user_entity_id => x_user_entity_id
1122: );
1123:
1124: delete from ff_database_items
1125: where user_name = l_user_name
1126: and user_entity_id = x_user_entity_id;
1127:
1128: --
1127:
1128: --
1129: -- Reset the trigger code.
1130: --
1131: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
1132:
1133: exception
1134: when others then
1135: --
1135: --
1136: -- Reset the trigger code.
1137: --
1138: if l_disable_triggers is not null then
1139: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
1140: end if;
1141:
1142: raise;
1143:
1162: from ff_user_entities a
1163: where exists
1164: (
1165: select null
1166: from ff_database_items b
1167: where a.user_entity_id = b.user_entity_id
1168: )
1169: ;
1170: begin
1175:
1176: l_debug := hr_utility.debug_enabled;
1177:
1178: --
1179: -- Disable trigger code by setting ff_database_items_pkg.g_disable_triggers.
1180: --
1181: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
1182: ff_database_items_pkg.g_disable_triggers := 'Y';
1183:
1177:
1178: --
1179: -- Disable trigger code by setting ff_database_items_pkg.g_disable_triggers.
1180: --
1181: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
1182: ff_database_items_pkg.g_disable_triggers := 'Y';
1183:
1184: if l_debug then
1185: hr_utility.trace('add_language:delete');
1178: --
1179: -- Disable trigger code by setting ff_database_items_pkg.g_disable_triggers.
1180: --
1181: l_disable_triggers := ff_database_items_pkg.g_disable_triggers;
1182: ff_database_items_pkg.g_disable_triggers := 'Y';
1183:
1184: if l_debug then
1185: hr_utility.trace('add_language:delete');
1186: end if;
1185: hr_utility.trace('add_language:delete');
1186: end if;
1187:
1188: -- bug 13739722 remove delete
1189: -- delete from ff_database_items_tl t
1190: -- where (t.user_name, t.user_entity_id) not in
1191: -- (
1192: -- select /*+ parallel(b) use_hash(b) index_ffs(b) */ b.user_name
1193: -- , b.user_entity_id
1190: -- where (t.user_name, t.user_entity_id) not in
1191: -- (
1192: -- select /*+ parallel(b) use_hash(b) index_ffs(b) */ b.user_name
1193: -- , b.user_entity_id
1194: -- from ff_database_items b
1195: -- )
1196: -- ;
1197: -- commit;
1198:
1205: end if;
1206:
1207: /* bug 13739722 remove update
1208: forall i in ueids.first .. ueids.last
1209: update ff_database_items_tl t set (
1210: translated_user_name,
1211: description
1212: ) = (select
1213: b.translated_user_name,
1211: description
1212: ) = (select
1213: b.translated_user_name,
1214: b.description
1215: from ff_database_items_tl b
1216: where b.user_entity_id = ueids(i)
1217: and b.user_name = t.user_name
1218: and b.user_entity_id = t.user_entity_id
1219: and b.language = t.source_lang)
1224: ) in (select
1225: subt.user_name,
1226: subt.user_entity_id,
1227: subt.language
1228: from ff_database_items_tl subb, ff_database_items_tl subt
1229: where subb.user_entity_id = ueids(i)
1230: and subb.user_name = subt.user_name
1231: and subb.user_entity_id = subt.user_entity_id
1232: and subb.language = subt.source_lang
1242: hr_utility.trace('add_language:insert');
1243: end if;
1244:
1245: forall i in ueids.first .. ueids.last
1246: insert /*+ append parallel(tt) */ into ff_database_items_tl tt (
1247: user_name,
1248: user_entity_id,
1249: translated_user_name,
1250: description,
1268: b.created_by,
1269: b.creation_date,
1270: l.language_code,
1271: b.source_lang
1272: from ff_database_items_tl b,
1273: fnd_languages l
1274: where l.installed_flag in ('I', 'B')
1275: and b.user_entity_id = ueids(i)
1276: and b.language = l_userenv_lang ) v,
1273: fnd_languages l
1274: where l.installed_flag in ('I', 'B')
1275: and b.user_entity_id = ueids(i)
1276: and b.language = l_userenv_lang ) v,
1277: ff_database_items_tl t
1278: where t.user_name(+) = v.user_name
1279: and t.user_entity_id(+) = v.user_entity_id
1280: and t.language(+) = v.language_code
1281: and t.user_entity_id IS NULL
1291:
1292: --
1293: -- Reset triggers.
1294: --
1295: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
1296:
1297: close csr_user_entity_ids;
1298:
1299: return;
1303: --
1304: -- Reset triggers.
1305: --
1306: if l_disable_triggers is not null then
1307: ff_database_items_pkg.g_disable_triggers := l_disable_triggers;
1308: end if;
1309:
1310: if csr_user_entity_ids%isopen then
1311: close csr_user_entity_ids;
1336: (x_user_name in varchar2
1337: ,x_legislation_code in varchar2
1338: ) is
1339: select ue.user_entity_id
1340: from ff_database_items dbi
1341: , ff_user_entities ue
1342: where dbi.user_name = x_user_name
1343: and ue.user_entity_id = dbi.user_entity_id
1344: and (ue.legislation_code = x_legislation_code or
1431: raise;
1432:
1433: end translate_row;
1434:
1435: end ff_database_items_pkg;