DBA Data[Home] [Help]

PACKAGE BODY: APPS.BSC_SYS_DIM_GROUPS_PKG

Source


1 package body BSC_SYS_DIM_GROUPS_PKG as
2 /* $Header: BSCSDMGB.pls 120.0 2005/06/01 16:49:55 appldev noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_DIM_GROUP_ID in NUMBER,
6   X_SHORT_NAME in VARCHAR2,
7   X_NAME in VARCHAR2,
8   X_CREATION_DATE in DATE,
9   X_CREATED_BY in NUMBER,
10   X_LAST_UPDATE_DATE in DATE,
11   X_LAST_UPDATED_BY in NUMBER,
12   X_LAST_UPDATE_LOGIN in NUMBER
13 ) is
14   cursor C is select ROWID from BSC_SYS_DIM_GROUPS_TL
15     where DIM_GROUP_ID = X_DIM_GROUP_ID
16     and LANGUAGE = userenv('LANG')
17     ;
18 begin
19   insert into BSC_SYS_DIM_GROUPS_TL (
20     DIM_GROUP_ID,
21     SHORT_NAME,
22     NAME,
23     LANGUAGE,
24     SOURCE_LANG,
25 	  CREATION_DATE ,
26 	  CREATED_BY,
27 	  LAST_UPDATE_DATE,
28 	  LAST_UPDATED_BY ,
29 	  LAST_UPDATE_LOGIN
30   ) select
31     X_DIM_GROUP_ID,
32     X_SHORT_NAME,
33     X_NAME,
34     L.LANGUAGE_CODE,
35     userenv('LANG'),
36 	 X_CREATION_DATE ,
37 	  X_CREATED_BY,
38 	  X_LAST_UPDATE_DATE,
39 	  X_LAST_UPDATED_BY ,
40 	  X_LAST_UPDATE_LOGIN
41   from FND_LANGUAGES L
42   where L.INSTALLED_FLAG in ('I', 'B')
43   and not exists
44     (select NULL
45     from BSC_SYS_DIM_GROUPS_TL T
46     where T.DIM_GROUP_ID = X_DIM_GROUP_ID
47     and T.LANGUAGE = L.LANGUAGE_CODE);
48 
49   open c;
50   fetch c into X_ROWID;
51   if (c%notfound) then
52     close c;
53     raise no_data_found;
54   end if;
55   close c;
56 
57 end INSERT_ROW;
58 
59 procedure LOCK_ROW (
60   X_DIM_GROUP_ID in NUMBER,
61   X_NAME in VARCHAR2
62 ) is
63   cursor c1 is select
64       NAME,
65       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
66     from BSC_SYS_DIM_GROUPS_TL
67     where DIM_GROUP_ID = X_DIM_GROUP_ID
68     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
69     for update of DIM_GROUP_ID nowait;
70 begin
71   for tlinfo in c1 loop
72     if (tlinfo.BASELANG = 'Y') then
73       if (    (tlinfo.NAME = X_NAME)
74       ) then
75         null;
76       else
77         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
78         app_exception.raise_exception;
79       end if;
80     end if;
81   end loop;
82   return;
83 end LOCK_ROW;
84 
85 procedure UPDATE_ROW (
86   X_DIM_GROUP_ID in NUMBER,
87   X_NAME in VARCHAR2,
88   X_CREATION_DATE in DATE,
89   X_CREATED_BY in NUMBER,
90   X_LAST_UPDATE_DATE in DATE,
91   X_LAST_UPDATED_BY in NUMBER,
92   X_LAST_UPDATE_LOGIN in NUMBER
93 ) is
94 begin
95   update BSC_SYS_DIM_GROUPS_TL set
96     NAME = X_NAME,
97     SOURCE_LANG = userenv('LANG'),
98     LAST_UPDATE_DATE = DECODE(LAST_UPDATED_BY,1,X_LAST_UPDATE_DATE,LAST_UPDATE_DATE),
99     LAST_UPDATED_BY = DECODE(LAST_UPDATED_BY,1,X_LAST_UPDATED_BY,LAST_UPDATED_BY),
100     LAST_UPDATE_LOGIN = DECODE(LAST_UPDATED_BY,1,X_LAST_UPDATE_LOGIN,LAST_UPDATE_LOGIN)
101   where DIM_GROUP_ID = X_DIM_GROUP_ID
102   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
103 
104   if (sql%notfound) then
105     raise no_data_found;
106   end if;
107 end UPDATE_ROW;
108 
109 procedure DELETE_ROW (
110   X_DIM_GROUP_ID in NUMBER
111 ) is
112 begin
113   delete from BSC_SYS_DIM_GROUPS_TL
114   where DIM_GROUP_ID = X_DIM_GROUP_ID;
115 
116   if (sql%notfound) then
117     raise no_data_found;
118   end if;
119 
120 end DELETE_ROW;
121 
122 procedure ADD_LANGUAGE
123 is
124 begin
125   update BSC_SYS_DIM_GROUPS_TL T set (
126       NAME
127     ) = (select
128       B.NAME
129     from BSC_SYS_DIM_GROUPS_TL B
130     where B.DIM_GROUP_ID = T.DIM_GROUP_ID
131     and B.LANGUAGE = T.SOURCE_LANG)
132   where (
133       T.DIM_GROUP_ID,
134       T.LANGUAGE
135   ) in (select
136       SUBT.DIM_GROUP_ID,
137       SUBT.LANGUAGE
138     from BSC_SYS_DIM_GROUPS_TL SUBB, BSC_SYS_DIM_GROUPS_TL SUBT
139     where SUBB.DIM_GROUP_ID = SUBT.DIM_GROUP_ID
140     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
141     and (SUBB.NAME <> SUBT.NAME
142   ));
143 
144   insert into BSC_SYS_DIM_GROUPS_TL (
145     DIM_GROUP_ID,
146     SHORT_NAME,
147     NAME,
148     LANGUAGE,
149     SOURCE_LANG,
150     CREATION_DATE ,
151     CREATED_BY,
152     LAST_UPDATE_DATE,
153     LAST_UPDATED_BY
154   ) select
155     B.DIM_GROUP_ID,
156     B.SHORT_NAME,
157     B.NAME,
158     L.LANGUAGE_CODE,
159     B.SOURCE_LANG,
160     B.CREATION_DATE ,
161     B.CREATED_BY,
162     B.LAST_UPDATE_DATE,
163     B.LAST_UPDATED_BY
164   from BSC_SYS_DIM_GROUPS_TL B, FND_LANGUAGES L
165   where L.INSTALLED_FLAG in ('I', 'B')
166   and B.LANGUAGE = userenv('LANG')
167   and not exists
168     (select NULL
169     from BSC_SYS_DIM_GROUPS_TL T
170     where T.DIM_GROUP_ID = B.DIM_GROUP_ID
171     and T.LANGUAGE = L.LANGUAGE_CODE);
172 end ADD_LANGUAGE;
173 
174 end BSC_SYS_DIM_GROUPS_PKG;