[Home] [Help]
1: package body AK_ATTRIBUTES_PKG AS
2: /* $Header: AKDATTRB.pls 120.3 2006/01/25 15:31:00 tshort ship $ */
3: --*****************************************************************************
4: procedure INSERT_ROW (
5: X_ROWID in out NOCOPY VARCHAR2,
53: X_LAST_UPDATE_DATE in DATE,
54: X_LAST_UPDATED_BY in NUMBER,
55: X_LAST_UPDATE_LOGIN in NUMBER
56: ) is
57: cursor C is select ROWID from AK_ATTRIBUTES
58: where ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
59: and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE;
60:
61: begin
58: where ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
59: and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE;
60:
61: begin
62: insert into AK_ATTRIBUTES (
63: ATTRIBUTE_APPLICATION_ID,
64: ATTRIBUTE_CODE,
65: ATTRIBUTE_LABEL_LENGTH,
66: ATTRIBUTE_VALUE_LENGTH,
162: raise no_data_found;
163: end if;
164: close c;
165:
166: insert into AK_ATTRIBUTES_TL (
167: ATTRIBUTE_APPLICATION_ID,
168: ATTRIBUTE_CODE,
169: LANGUAGE,
170: NAME,
194: from FND_LANGUAGES L
195: where L.INSTALLED_FLAG in ('I', 'B')
196: and not exists
197: (select NULL
198: from AK_ATTRIBUTES_TL T
199: where T.ATTRIBUTE_CODE = X_ATTRIBUTE_CODE
200: and T.ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
201: and T.LANGUAGE = L.LANGUAGE_CODE);
202: end INSERT_ROW;
287: ATTRIBUTE12,
288: ATTRIBUTE13,
289: ATTRIBUTE14,
290: ATTRIBUTE15
291: from AK_ATTRIBUTES
292: where ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
293: and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE
294: for update of ATTRIBUTE_APPLICATION_ID nowait;
295: recinfo c%rowtype;
298: NAME,
299: ATTRIBUTE_LABEL_LONG,
300: ATTRIBUTE_LABEL_SHORT,
301: DESCRIPTION
302: from AK_ATTRIBUTES_TL
303: where ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
304: and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE
305: and LANGUAGE = userenv('LANG')
306: for update of ATTRIBUTE_CODE nowait;
506: X_LAST_UPDATED_BY in NUMBER,
507: X_LAST_UPDATE_LOGIN in NUMBER
508: ) is
509: begin
510: update AK_ATTRIBUTES set
511: ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID,
512: ATTRIBUTE_CODE = X_ATTRIBUTE_CODE,
513: ATTRIBUTE_LABEL_LENGTH = X_ATTRIBUTE_LABEL_LENGTH,
514: ATTRIBUTE_VALUE_LENGTH = X_ATTRIBUTE_VALUE_LENGTH,
557: if (sql%notfound) then
558: raise no_data_found;
559: end if;
560:
561: update AK_ATTRIBUTES_TL set
562: NAME = X_NAME,
563: ATTRIBUTE_LABEL_LONG = X_ATTRIBUTE_LABEL_LONG,
564: ATTRIBUTE_LABEL_SHORT = X_ATTRIBUTE_LABEL_SHORT,
565: DESCRIPTION = X_DESCRIPTION,
580: X_ATTRIBUTE_APPLICATION_ID in NUMBER,
581: X_ATTRIBUTE_CODE in VARCHAR2
582: ) is
583: begin
584: delete from AK_ATTRIBUTES
585: where ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
586: and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE;
587: if (sql%notfound) then
588: raise no_data_found;
595: if (sql%notfound) then
596: null;
597: end if;
598:
599: delete from AK_ATTRIBUTES_TL
600: where ATTRIBUTE_APPLICATION_ID = X_ATTRIBUTE_APPLICATION_ID
601: and ATTRIBUTE_CODE = X_ATTRIBUTE_CODE;
602: if (sql%notfound) then
603: raise no_data_found;
613: /* as a quick workaround to fix the time-consuming table handler issue */
614: /* Eventually we'll need to turn them into a separate fix_language procedure */
615: /*
616:
617: delete from AK_ATTRIBUTES_TL T
618: where not exists
619: (select NULL
620: from AK_ATTRIBUTES B
621: where B.ATTRIBUTE_CODE = T.ATTRIBUTE_CODE
616:
617: delete from AK_ATTRIBUTES_TL T
618: where not exists
619: (select NULL
620: from AK_ATTRIBUTES B
621: where B.ATTRIBUTE_CODE = T.ATTRIBUTE_CODE
622: and B.ATTRIBUTE_APPLICATION_ID = T.ATTRIBUTE_APPLICATION_ID
623: );
624:
621: where B.ATTRIBUTE_CODE = T.ATTRIBUTE_CODE
622: and B.ATTRIBUTE_APPLICATION_ID = T.ATTRIBUTE_APPLICATION_ID
623: );
624:
625: update AK_ATTRIBUTES_TL T set (
626: NAME,
627: ATTRIBUTE_LABEL_LONG,
628: ATTRIBUTE_LABEL_SHORT,
629: DESCRIPTION
631: B.NAME,
632: B.ATTRIBUTE_LABEL_LONG,
633: B.ATTRIBUTE_LABEL_SHORT,
634: B.DESCRIPTION
635: from AK_ATTRIBUTES_TL B
636: where B.ATTRIBUTE_CODE = T.ATTRIBUTE_CODE
637: and B.ATTRIBUTE_APPLICATION_ID = T.ATTRIBUTE_APPLICATION_ID
638: and B.LANGUAGE = T.SOURCE_LANG)
639: where (
643: ) in (select
644: SUBT.ATTRIBUTE_CODE,
645: SUBT.ATTRIBUTE_APPLICATION_ID,
646: SUBT.LANGUAGE
647: from AK_ATTRIBUTES_TL SUBB, AK_ATTRIBUTES_TL SUBT
648: where SUBB.ATTRIBUTE_CODE = SUBT.ATTRIBUTE_CODE
649: and SUBB.ATTRIBUTE_APPLICATION_ID = SUBT.ATTRIBUTE_APPLICATION_ID
650: and SUBB.LANGUAGE = SUBT.SOURCE_LANG
651: and (SUBB.NAME <> SUBT.NAME
660: or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
661: ));
662: */
663:
664: insert /*+ append parallel(tt) */ into AK_ATTRIBUTES_TL tt (
665: ATTRIBUTE_APPLICATION_ID,
666: ATTRIBUTE_CODE,
667: NAME,
668: ATTRIBUTE_LABEL_LONG,
689: B.LAST_UPDATE_DATE,
690: B.LAST_UPDATE_LOGIN,
691: L.LANGUAGE_CODE,
692: B.SOURCE_LANG
693: from AK_ATTRIBUTES_TL B, FND_LANGUAGES L
694: where L.INSTALLED_FLAG in ('I', 'B')
695: and B.LANGUAGE = userenv('LANG')
696: ) v, AK_ATTRIBUTES_TL t
697: where T.ATTRIBUTE_CODE(+) = v.ATTRIBUTE_CODE
692: B.SOURCE_LANG
693: from AK_ATTRIBUTES_TL B, FND_LANGUAGES L
694: where L.INSTALLED_FLAG in ('I', 'B')
695: and B.LANGUAGE = userenv('LANG')
696: ) v, AK_ATTRIBUTES_TL t
697: where T.ATTRIBUTE_CODE(+) = v.ATTRIBUTE_CODE
698: and T.ATTRIBUTE_APPLICATION_ID(+) = v.ATTRIBUTE_APPLICATION_ID
699: and T.LANGUAGE(+) = v.LANGUAGE_CODE
700: and T.ATTRIBUTE_CODE is NULL
701: and T.ATTRIBUTE_APPLICATION_ID is NULL;
702:
703: end ADD_LANGUAGE;
704:
705: end AK_ATTRIBUTES_PKG;