DBA Data[Home] [Help]

PACKAGE BODY: APPS.BSC_SYS_DATASETS_PKG

Source


1 package body BSC_SYS_DATASETS_PKG as
2 /* $Header: BSCDSETB.pls 120.0 2005/06/01 17:03:43 appldev noship $ */
3 procedure INSERT_ROW (
4   X_DATASET_ID in NUMBER,
5   X_PROJECTION_FLAG in NUMBER,
6   X_MEASURE_ID1 in NUMBER,
7   X_OPERATION in VARCHAR2,
8   X_MEASURE_ID2 in NUMBER,
9   X_FORMAT_ID in NUMBER,
10   X_COLOR_METHOD in NUMBER,
11   X_NAME in VARCHAR2,
12   X_HELP in VARCHAR2,
13   X_CREATION_DATE in DATE       DEFAULT NULL,
14   X_CREATED_BY in NUMBER        DEFAULT NULL,
15   X_LAST_UPDATE_DATE in DATE    DEFAULT NULL,
16   X_LAST_UPDATED_BY in NUMBER   DEFAULT NULL,
17   X_LAST_UPDATE_LOGIN in NUMBER DEFAULT NULL
18 ) is
19 begin
20   insert into BSC_SYS_DATASETS_B (
21     PROJECTION_FLAG,
22     DATASET_ID,
23     MEASURE_ID1,
24     OPERATION,
25     MEASURE_ID2,
26     FORMAT_ID,
27     COLOR_METHOD,
28     CREATION_DATE ,
29     CREATED_BY,
30     LAST_UPDATE_DATE,
31     LAST_UPDATED_BY ,
32     LAST_UPDATE_LOGIN
33   ) values (
34     X_PROJECTION_FLAG,
35     X_DATASET_ID,
36     X_MEASURE_ID1,
37     X_OPERATION,
38     X_MEASURE_ID2,
39     X_FORMAT_ID,
40     X_COLOR_METHOD,
41     X_CREATION_DATE ,
42     X_CREATED_BY,
43     X_LAST_UPDATE_DATE,
44     X_LAST_UPDATED_BY ,
45     X_LAST_UPDATE_LOGIN
46   );
47 
48   insert into BSC_SYS_DATASETS_TL (
49     DATASET_ID,
50     NAME,
51     HELP,
52     LANGUAGE,
53     SOURCE_LANG
54   ) select
55     X_DATASET_ID,
56     X_NAME,
57     X_HELP,
58     L.LANGUAGE_CODE,
59     userenv('LANG')
60   from FND_LANGUAGES L
61   where L.INSTALLED_FLAG in ('I', 'B')
62   and not exists
63     (select NULL
64     from BSC_SYS_DATASETS_TL T
65     where T.DATASET_ID = X_DATASET_ID
66     and T.LANGUAGE = L.LANGUAGE_CODE);
67 
68 end INSERT_ROW;
69 
70 procedure TRANSLATE_ROW(
71   X_DATASET_ID in NUMBER,
72   X_NAME in VARCHAR2,
73   X_HELP in VARCHAR2)
74 is
75 begin
76   update BSC_SYS_DATASETS_TL set
77         NAME = NVL(X_NAME,NAME),
78         HELP = NVL(X_HELP, HELP),
79         SOURCE_LANG = userenv('LANG')
80  where
81         userenv('LANG') in (LANGUAGE, SOURCE_LANG)
82         and dataset_id = X_DATASET_ID;
83 end TRANSLATE_ROW;
84 
85 procedure LOCK_ROW (
86   X_DATASET_ID in NUMBER,
87   X_PROJECTION_FLAG in NUMBER,
88   X_MEASURE_ID1 in NUMBER,
89   X_OPERATION in VARCHAR2,
90   X_MEASURE_ID2 in NUMBER,
91   X_FORMAT_ID in NUMBER,
92   X_COLOR_METHOD in NUMBER,
93   X_NAME in VARCHAR2,
94   X_HELP in VARCHAR2
95 ) is
96   cursor c is select
97       PROJECTION_FLAG,
98       MEASURE_ID1,
99       OPERATION,
100       MEASURE_ID2,
101       FORMAT_ID,
102       COLOR_METHOD
103     from BSC_SYS_DATASETS_B
104     where DATASET_ID = X_DATASET_ID
105     for update of DATASET_ID nowait;
106   recinfo c%rowtype;
107 
108   cursor c1 is select
109       NAME,
110       HELP,
111       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
112     from BSC_SYS_DATASETS_TL
113     where DATASET_ID = X_DATASET_ID
114     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
115     for update of DATASET_ID nowait;
116 begin
117   open c;
118   fetch c into recinfo;
119   if (c%notfound) then
120     close c;
121     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
122     app_exception.raise_exception;
123   end if;
124   close c;
125   if (    ((recinfo.PROJECTION_FLAG = X_PROJECTION_FLAG)
126            OR ((recinfo.PROJECTION_FLAG is null) AND (X_PROJECTION_FLAG is null)))
127       AND (recinfo.MEASURE_ID1 = X_MEASURE_ID1)
128       AND ((recinfo.OPERATION = X_OPERATION)
129            OR ((recinfo.OPERATION is null) AND (X_OPERATION is null)))
130       AND ((recinfo.MEASURE_ID2 = X_MEASURE_ID2)
131            OR ((recinfo.MEASURE_ID2 is null) AND (X_MEASURE_ID2 is null)))
132       AND (recinfo.FORMAT_ID = X_FORMAT_ID)
133       AND (recinfo.COLOR_METHOD = X_COLOR_METHOD)
134   ) then
135     null;
136   else
137     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
138     app_exception.raise_exception;
139   end if;
140 
141   for tlinfo in c1 loop
142     if (tlinfo.BASELANG = 'Y') then
143       if (    (tlinfo.NAME = X_NAME)
144           AND (tlinfo.HELP = X_HELP)
145       ) then
146         null;
147       else
148         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
149         app_exception.raise_exception;
150       end if;
151     end if;
152   end loop;
153   return;
154 end LOCK_ROW;
155 
156 procedure UPDATE_ROW (
157   X_DATASET_ID in NUMBER,
158   X_PROJECTION_FLAG in NUMBER,
159   X_MEASURE_ID1 in NUMBER,
160   X_OPERATION in VARCHAR2,
161   X_MEASURE_ID2 in NUMBER,
162   X_FORMAT_ID in NUMBER,
163   X_COLOR_METHOD in NUMBER,
164   X_NAME in VARCHAR2,
165   X_HELP in VARCHAR2,
166   X_CREATION_DATE in DATE       DEFAULT NULL,
167   X_CREATED_BY in NUMBER        DEFAULT NULL,
168   X_LAST_UPDATE_DATE in DATE    DEFAULT NULL,
169   X_LAST_UPDATED_BY in NUMBER   DEFAULT NULL,
170   X_LAST_UPDATE_LOGIN in NUMBER DEFAULT NULL
171 ) is
172 begin
173   update BSC_SYS_DATASETS_B set
174     PROJECTION_FLAG = X_PROJECTION_FLAG,
175     MEASURE_ID1 = X_MEASURE_ID1,
176     OPERATION = X_OPERATION,
177     MEASURE_ID2 = X_MEASURE_ID2,
178     FORMAT_ID = X_FORMAT_ID,
179     COLOR_METHOD = X_COLOR_METHOD,
180     LAST_UPDATE_DATE = DECODE(LAST_UPDATED_BY,1,X_LAST_UPDATE_DATE,LAST_UPDATE_DATE),
181     LAST_UPDATED_BY = DECODE(LAST_UPDATED_BY,1,X_LAST_UPDATED_BY,LAST_UPDATED_BY),
182     LAST_UPDATE_LOGIN = DECODE(LAST_UPDATED_BY,1,X_LAST_UPDATE_LOGIN,LAST_UPDATE_LOGIN)
183   where DATASET_ID = X_DATASET_ID;
184 
185   if (sql%notfound) then
186     raise no_data_found;
187   end if;
188 
189   update BSC_SYS_DATASETS_TL set
190     NAME = X_NAME,
191     HELP = X_HELP,
192     SOURCE_LANG = userenv('LANG')
193   where DATASET_ID = X_DATASET_ID
194   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
195 
196   if (sql%notfound) then
197     raise no_data_found;
198   end if;
199 end UPDATE_ROW;
200 
201 procedure DELETE_ROW (
202   X_DATASET_ID in NUMBER
203 ) is
204 begin
205   delete from BSC_SYS_DATASETS_TL
206   where DATASET_ID = X_DATASET_ID;
207 
208   if (sql%notfound) then
209     raise no_data_found;
210   end if;
211 
212   delete from BSC_SYS_DATASETS_B
213   where DATASET_ID = X_DATASET_ID;
214 
215   if (sql%notfound) then
216     raise no_data_found;
217   end if;
218 end DELETE_ROW;
219 
220 procedure ADD_LANGUAGE
221 is
222 begin
223   delete from BSC_SYS_DATASETS_TL T
224   where not exists
225     (select NULL
226     from BSC_SYS_DATASETS_B B
227     where B.DATASET_ID = T.DATASET_ID
228     );
229 
230   update BSC_SYS_DATASETS_TL T set (
231       NAME,
232       HELP,Y_AXIS_TITLE
233     ) = (select
234       B.NAME,
235       B.HELP,B.Y_AXIS_TITLE
236     from BSC_SYS_DATASETS_TL B
237     where B.DATASET_ID = T.DATASET_ID
238     and B.LANGUAGE = T.SOURCE_LANG)
239   where (
240       T.DATASET_ID,
241       T.LANGUAGE
242   ) in (select
243       SUBT.DATASET_ID,
244       SUBT.LANGUAGE
245     from BSC_SYS_DATASETS_TL SUBB, BSC_SYS_DATASETS_TL SUBT
246     where SUBB.DATASET_ID = SUBT.DATASET_ID
247     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
248     and (SUBB.NAME <> SUBT.NAME
249       or SUBB.HELP <> SUBT.HELP or SUBB.Y_AXIS_TITLE <> SUBT.Y_AXIS_TITLE
250   ));
251 
252   insert into BSC_SYS_DATASETS_TL (
253     DATASET_ID,
254     NAME,
255     HELP,
256     Y_AXIS_TITLE,
257     LANGUAGE,
258     SOURCE_LANG
259   ) select
260     B.DATASET_ID,
261     B.NAME,
262     B.HELP,
263     B.Y_AXIS_TITLE,
264     L.LANGUAGE_CODE,
265     B.SOURCE_LANG
266   from BSC_SYS_DATASETS_TL B, FND_LANGUAGES L
267   where L.INSTALLED_FLAG in ('I', 'B')
268   and B.LANGUAGE = userenv('LANG')
269   and not exists
270     (select NULL
271     from BSC_SYS_DATASETS_TL T
272     where T.DATASET_ID = B.DATASET_ID
273     and T.LANGUAGE = L.LANGUAGE_CODE);
274 end ADD_LANGUAGE;
275 
276 end BSC_SYS_DATASETS_PKG;