1: package body FND_OBJECT_INSTANCE_SETS_PKG as
2: /* $Header: AFSCOISB.pls 120.2 2005/10/27 18:19:53 tmorrow ship $ */
3:
4: procedure INSERT_ROW (
5: X_ROWID in out nocopy VARCHAR2,
14: X_LAST_UPDATE_DATE in DATE,
15: X_LAST_UPDATED_BY in NUMBER,
16: X_LAST_UPDATE_LOGIN in NUMBER
17: ) is
18: cursor C is select ROWID from FND_OBJECT_INSTANCE_SETS
19: where INSTANCE_SET_ID = X_INSTANCE_SET_ID
20: ;
21: begin
22: insert into FND_OBJECT_INSTANCE_SETS (
18: cursor C is select ROWID from FND_OBJECT_INSTANCE_SETS
19: where INSTANCE_SET_ID = X_INSTANCE_SET_ID
20: ;
21: begin
22: insert into FND_OBJECT_INSTANCE_SETS (
23: INSTANCE_SET_ID,
24: INSTANCE_SET_NAME,
25: OBJECT_ID,
26: PREDICATE,
40: X_LAST_UPDATED_BY,
41: X_LAST_UPDATE_LOGIN
42: );
43:
44: insert into FND_OBJECT_INSTANCE_SETS_TL (
45: INSTANCE_SET_ID,
46: DISPLAY_NAME,
47: DESCRIPTION,
48: CREATED_BY,
66: from FND_LANGUAGES L
67: where L.INSTALLED_FLAG in ('I', 'B')
68: and not exists
69: (select NULL
70: from FND_OBJECT_INSTANCE_SETS_TL T
71: where T.INSTANCE_SET_ID = X_INSTANCE_SET_ID
72: and T.LANGUAGE = L.LANGUAGE_CODE);
73:
74: open c;
92: cursor c is select
93: INSTANCE_SET_NAME,
94: OBJECT_ID,
95: PREDICATE
96: from FND_OBJECT_INSTANCE_SETS
97: where INSTANCE_SET_ID = X_INSTANCE_SET_ID
98: for update of INSTANCE_SET_ID nowait;
99: recinfo c%rowtype;
100:
101: cursor c1 is select
102: DISPLAY_NAME,
103: DESCRIPTION,
104: decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
105: from FND_OBJECT_INSTANCE_SETS_TL
106: where INSTANCE_SET_ID = X_INSTANCE_SET_ID
107: and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
108: for update of INSTANCE_SET_ID nowait;
109: begin
153: X_LAST_UPDATED_BY in NUMBER,
154: X_LAST_UPDATE_LOGIN in NUMBER
155: ) is
156: begin
157: update FND_OBJECT_INSTANCE_SETS set
158: OBJECT_ID = X_OBJECT_ID,
159: PREDICATE = X_PREDICATE,
160: LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
161: LAST_UPDATED_BY = X_LAST_UPDATED_BY,
165: if (sql%notfound) then
166: raise no_data_found;
167: end if;
168:
169: update FND_OBJECT_INSTANCE_SETS_TL set
170: DISPLAY_NAME = X_DISPLAY_NAME,
171: DESCRIPTION = X_DESCRIPTION,
172: LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
173: LAST_UPDATED_BY = X_LAST_UPDATED_BY,
191: X_DESCRIPTION in VARCHAR2,
192: X_CUSTOM_MODE in VARCHAR2
193: ) is
194: begin
195: fnd_object_instance_sets_pkg.LOAD_ROW (
196: X_INSTANCE_SET_NAME => X_INSTANCE_SET_NAME,
197: X_OWNER => X_OWNER,
198: X_OBJECT_NAME => X_OBJECT_NAME,
199: X_PREDICATE => X_PREDICATE,
236: -- Fix it later after discussion
237:
238: select INSTANCE_SET_ID, LAST_UPDATED_BY, LAST_UPDATE_DATE
239: into ins_set_id, db_luby, db_ludate
240: from fnd_object_instance_sets
241: where INSTANCE_SET_NAME = X_INSTANCE_SET_NAME;
242:
243: if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
244: db_ludate, X_CUSTOM_MODE)) then
241: where INSTANCE_SET_NAME = X_INSTANCE_SET_NAME;
242:
243: if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
244: db_ludate, X_CUSTOM_MODE)) then
245: fnd_object_instance_sets_pkg.UPDATE_ROW (
246: X_INSTANCE_SET_ID => ins_set_id,
247: X_INSTANCE_SET_NAME => X_INSTANCE_SET_NAME,
248: X_OBJECT_ID => obj_id,
249: X_PREDICATE => X_PREDICATE,
256:
257: exception
258: when NO_DATA_FOUND then
259:
260: select fnd_object_instance_sets_s.nextval into ins_set_id from dual;
261:
262: fnd_object_instance_sets_pkg.INSERT_ROW(
263: X_ROWID => row_id,
264: X_INSTANCE_SET_ID => ins_set_id,
258: when NO_DATA_FOUND then
259:
260: select fnd_object_instance_sets_s.nextval into ins_set_id from dual;
261:
262: fnd_object_instance_sets_pkg.INSERT_ROW(
263: X_ROWID => row_id,
264: X_INSTANCE_SET_ID => ins_set_id,
265: X_INSTANCE_SET_NAME => X_INSTANCE_SET_NAME,
266: X_OBJECT_ID => obj_id,
283: X_DESCRIPTION in VARCHAR2,
284: X_CUSTOM_MODE in VARCHAR2
285: ) is
286: begin
287: fnd_object_instance_sets_pkg.TRANSLATE_ROW (
288: X_INSTANCE_SET_NAME => X_INSTANCE_SET_NAME,
289: X_OWNER => X_OWNER ,
290: X_DISPLAY_NAME => X_DISPLAY_NAME,
291: X_DESCRIPTION => X_DESCRIPTION,
315: f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
316:
317: select LAST_UPDATED_BY, LAST_UPDATE_DATE
318: into db_luby, db_ludate
319: from fnd_object_instance_sets_tl
320: where instance_set_id = (select i.instance_set_id
321: from fnd_object_instance_sets i
322: where i.instance_set_name = X_INSTANCE_SET_NAME)
323: and userenv('LANG') = LANGUAGE;
317: select LAST_UPDATED_BY, LAST_UPDATE_DATE
318: into db_luby, db_ludate
319: from fnd_object_instance_sets_tl
320: where instance_set_id = (select i.instance_set_id
321: from fnd_object_instance_sets i
322: where i.instance_set_name = X_INSTANCE_SET_NAME)
323: and userenv('LANG') = LANGUAGE;
324:
325: if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
323: and userenv('LANG') = LANGUAGE;
324:
325: if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
326: db_ludate, X_CUSTOM_MODE)) then
327: update fnd_object_instance_sets_tl set
328: display_name = nvl(X_DISPLAY_NAME, display_name),
329: description = nvl(X_DESCRIPTION, description),
330: source_lang = userenv('LANG'),
331: last_update_date = f_ludate,
331: last_update_date = f_ludate,
332: last_updated_by = f_luby,
333: last_update_login = 0
334: where instance_set_id = (select i.instance_set_id
335: from fnd_object_instance_sets i
336: where i.instance_set_name = X_INSTANCE_SET_NAME)
337: and userenv('LANG') in (language, source_lang);
338: end if;
339: end TRANSLATE_ROW;
341: procedure DELETE_ROW (
342: X_INSTANCE_SET_ID in NUMBER
343: ) is
344: begin
345: delete from FND_OBJECT_INSTANCE_SETS_TL
346: where INSTANCE_SET_ID = X_INSTANCE_SET_ID;
347:
348: if (sql%notfound) then
349: raise no_data_found;
348: if (sql%notfound) then
349: raise no_data_found;
350: end if;
351:
352: delete from FND_OBJECT_INSTANCE_SETS
353: where INSTANCE_SET_ID = X_INSTANCE_SET_ID;
354:
355: if (sql%notfound) then
356: raise no_data_found;
365: /* as a quick workaround to fix the time-consuming table handler issue */
366: /* Eventually we'll need to turn them into a separate fix_language procedure */
367: /*
368:
369: delete from FND_OBJECT_INSTANCE_SETS_TL T
370: where not exists
371: (select NULL
372: from FND_OBJECT_INSTANCE_SETS B
373: where B.INSTANCE_SET_ID = T.INSTANCE_SET_ID
368:
369: delete from FND_OBJECT_INSTANCE_SETS_TL T
370: where not exists
371: (select NULL
372: from FND_OBJECT_INSTANCE_SETS B
373: where B.INSTANCE_SET_ID = T.INSTANCE_SET_ID
374: );
375:
376: update FND_OBJECT_INSTANCE_SETS_TL T set (
372: from FND_OBJECT_INSTANCE_SETS B
373: where B.INSTANCE_SET_ID = T.INSTANCE_SET_ID
374: );
375:
376: update FND_OBJECT_INSTANCE_SETS_TL T set (
377: DISPLAY_NAME,
378: DESCRIPTION
379: ) = (select
380: B.DISPLAY_NAME,
378: DESCRIPTION
379: ) = (select
380: B.DISPLAY_NAME,
381: B.DESCRIPTION
382: from FND_OBJECT_INSTANCE_SETS_TL B
383: where B.INSTANCE_SET_ID = T.INSTANCE_SET_ID
384: and B.LANGUAGE = T.SOURCE_LANG)
385: where (
386: T.INSTANCE_SET_ID,
387: T.LANGUAGE
388: ) in (select
389: SUBT.INSTANCE_SET_ID,
390: SUBT.LANGUAGE
391: from FND_OBJECT_INSTANCE_SETS_TL SUBB, FND_OBJECT_INSTANCE_SETS_TL SUBT
392: where SUBB.INSTANCE_SET_ID = SUBT.INSTANCE_SET_ID
393: and SUBB.LANGUAGE = SUBT.SOURCE_LANG
394: and (SUBB.DISPLAY_NAME <> SUBT.DISPLAY_NAME
395: or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
397: or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
398: ));
399: */
400:
401: insert into FND_OBJECT_INSTANCE_SETS_TL (
402: INSTANCE_SET_ID,
403: DISPLAY_NAME,
404: DESCRIPTION,
405: CREATED_BY,
419: B.LAST_UPDATE_DATE,
420: B.LAST_UPDATE_LOGIN,
421: L.LANGUAGE_CODE,
422: B.SOURCE_LANG
423: from FND_OBJECT_INSTANCE_SETS_TL B, FND_LANGUAGES L
424: where L.INSTALLED_FLAG in ('I', 'B')
425: and B.LANGUAGE = userenv('LANG')
426: and not exists
427: (select NULL
424: where L.INSTALLED_FLAG in ('I', 'B')
425: and B.LANGUAGE = userenv('LANG')
426: and not exists
427: (select NULL
428: from FND_OBJECT_INSTANCE_SETS_TL T
429: where T.INSTANCE_SET_ID = B.INSTANCE_SET_ID
430: and T.LANGUAGE = L.LANGUAGE_CODE);
431: end ADD_LANGUAGE;
432:
429: where T.INSTANCE_SET_ID = B.INSTANCE_SET_ID
430: and T.LANGUAGE = L.LANGUAGE_CODE);
431: end ADD_LANGUAGE;
432:
433: end FND_OBJECT_INSTANCE_SETS_PKG;