DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_SR_UWQ_NODES_PKG

Source


1 package body CS_SR_UWQ_NODES_PKG as
2 /* $Header: csnodesb.pls 120.0 2006/02/28 12:03:57 spusegao noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_NODE_ID in NUMBER,
6   X_NODE_VIEW in VARCHAR2,
7   X_DATA_SOURCE in VARCHAR2,
8   X_MEDIA_TYPE_ID in NUMBER,
9   X_WHERE_CLAUSE in VARCHAR2,
10   X_RES_CAT_ENUM_FLAG in VARCHAR2,
11   X_NODE_TYPE in VARCHAR2,
12   X_HIDE_IF_EMPTY in VARCHAR2,
13   X_NODE_DEPTH in NUMBER,
14   X_PARENT_ID in NUMBER,
15   X_NODE_QUERY in VARCHAR2,
16   X_CURSOR_SQL in VARCHAR2,
17   X_CURSOR_KEY_COL in VARCHAR2,
18   X_ENABLED_FLAG in VARCHAR2,
19   X_OBJECT_VERSION_NUMBER in NUMBER,
20   X_SECURITY_GROUP_ID in NUMBER,
21   X_NODE_LABEL in VARCHAR2,
22   X_CREATION_DATE in DATE,
23   X_CREATED_BY in NUMBER,
24   X_LAST_UPDATE_DATE in DATE,
25   X_LAST_UPDATED_BY in NUMBER,
26   X_LAST_UPDATE_LOGIN in NUMBER
27 ) is
28   cursor C is select ROWID from CS_SR_UWQ_NODES_B
29     where NODE_ID = X_NODE_ID
30     ;
31 begin
32   insert into CS_SR_UWQ_NODES_B (
33     NODE_ID,
34     NODE_VIEW,
35     DATA_SOURCE,
36     MEDIA_TYPE_ID,
37     WHERE_CLAUSE,
38     RES_CAT_ENUM_FLAG,
39     NODE_TYPE,
40     HIDE_IF_EMPTY,
41     NODE_DEPTH,
42     PARENT_ID,
43     NODE_QUERY,
44     CURSOR_SQL,
45     CURSOR_KEY_COL,
46     ENABLED_FLAG,
47     OBJECT_VERSION_NUMBER,
48     CREATION_DATE,
49     CREATED_BY,
50     LAST_UPDATE_DATE,
51     LAST_UPDATED_BY,
52     LAST_UPDATE_LOGIN
53   ) values (
54     X_NODE_ID,
55     X_NODE_VIEW,
56     X_DATA_SOURCE,
57     X_MEDIA_TYPE_ID,
58     X_WHERE_CLAUSE,
59     X_RES_CAT_ENUM_FLAG,
60     X_NODE_TYPE,
61     X_HIDE_IF_EMPTY,
62     X_NODE_DEPTH,
63     X_PARENT_ID,
64     X_NODE_QUERY,
65     X_CURSOR_SQL,
66     X_CURSOR_KEY_COL,
67     X_ENABLED_FLAG,
68     X_OBJECT_VERSION_NUMBER,
69     X_CREATION_DATE,
70     X_CREATED_BY,
71     X_LAST_UPDATE_DATE,
72     X_LAST_UPDATED_BY,
73     X_LAST_UPDATE_LOGIN
74   );
75 
76   insert into CS_SR_UWQ_NODES_TL (
77     NODE_ID,
78     NODE_LABEL,
79     CREATION_DATE,
80     CREATED_BY,
81     LAST_UPDATE_DATE,
82     LAST_UPDATED_BY,
83     LAST_UPDATE_LOGIN,
84     LANGUAGE,
85     SOURCE_LANG
86   ) select
87     X_NODE_ID,
88     X_NODE_LABEL,
89     X_CREATION_DATE,
90     X_CREATED_BY,
91     X_LAST_UPDATE_DATE,
92     X_LAST_UPDATED_BY,
93     X_LAST_UPDATE_LOGIN,
94     L.LANGUAGE_CODE,
95     userenv('LANG')
96   from FND_LANGUAGES L
97   where L.INSTALLED_FLAG in ('I', 'B')
98   and not exists
99     (select NULL
100     from CS_SR_UWQ_NODES_TL T
101     where T.NODE_ID = X_NODE_ID
102     and T.LANGUAGE = L.LANGUAGE_CODE);
103 
104   open c;
105   fetch c into X_ROWID;
106   if (c%notfound) then
107     close c;
108     raise no_data_found;
109   end if;
110   close c;
111 
112 end INSERT_ROW;
113 
114 procedure LOCK_ROW (
115   X_NODE_ID in NUMBER,
116   X_NODE_VIEW in VARCHAR2,
117   X_DATA_SOURCE in VARCHAR2,
118   X_MEDIA_TYPE_ID in NUMBER,
119   X_WHERE_CLAUSE in VARCHAR2,
120   X_RES_CAT_ENUM_FLAG in VARCHAR2,
121   X_NODE_TYPE in VARCHAR2,
122   X_HIDE_IF_EMPTY in VARCHAR2,
123   X_NODE_DEPTH in NUMBER,
124   X_PARENT_ID in NUMBER,
125   X_NODE_QUERY in VARCHAR2,
126   X_CURSOR_SQL in VARCHAR2,
127   X_CURSOR_KEY_COL in VARCHAR2,
128   X_ENABLED_FLAG in VARCHAR2,
129   X_OBJECT_VERSION_NUMBER in NUMBER,
130   X_SECURITY_GROUP_ID in NUMBER,
131   X_NODE_LABEL in VARCHAR2
132 ) is
133   cursor c is select
134       NODE_VIEW,
135       DATA_SOURCE,
136       MEDIA_TYPE_ID,
137       WHERE_CLAUSE,
138       RES_CAT_ENUM_FLAG,
139       NODE_TYPE,
140       HIDE_IF_EMPTY,
141       NODE_DEPTH,
142       PARENT_ID,
143       NODE_QUERY,
144       CURSOR_SQL,
145       CURSOR_KEY_COL,
146       ENABLED_FLAG,
147       OBJECT_VERSION_NUMBER,
148       SECURITY_GROUP_ID
149     from CS_SR_UWQ_NODES_B
150     where NODE_ID = X_NODE_ID
151     for update of NODE_ID nowait;
152   recinfo c%rowtype;
153 
154   cursor c1 is select
155       NODE_LABEL,
156       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
157     from CS_SR_UWQ_NODES_TL
158     where NODE_ID = X_NODE_ID
159     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
160     for update of NODE_ID nowait;
161 begin
162   open c;
163   fetch c into recinfo;
164   if (c%notfound) then
165     close c;
166     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
167     app_exception.raise_exception;
168   end if;
169   close c;
170   if (    (recinfo.NODE_VIEW = X_NODE_VIEW)
171       AND (recinfo.DATA_SOURCE = X_DATA_SOURCE)
172       AND ((recinfo.MEDIA_TYPE_ID = X_MEDIA_TYPE_ID)
173            OR ((recinfo.MEDIA_TYPE_ID is null) AND (X_MEDIA_TYPE_ID is null)))
174       AND ((recinfo.WHERE_CLAUSE = X_WHERE_CLAUSE)
175            OR ((recinfo.WHERE_CLAUSE is null) AND (X_WHERE_CLAUSE is null)))
176       AND ((recinfo.RES_CAT_ENUM_FLAG = X_RES_CAT_ENUM_FLAG)
177            OR ((recinfo.RES_CAT_ENUM_FLAG is null) AND (X_RES_CAT_ENUM_FLAG is null)))
178       AND ((recinfo.NODE_TYPE = X_NODE_TYPE)
179            OR ((recinfo.NODE_TYPE is null) AND (X_NODE_TYPE is null)))
180       AND ((recinfo.HIDE_IF_EMPTY = X_HIDE_IF_EMPTY)
181            OR ((recinfo.HIDE_IF_EMPTY is null) AND (X_HIDE_IF_EMPTY is null)))
182       AND ((recinfo.NODE_DEPTH = X_NODE_DEPTH)
183            OR ((recinfo.NODE_DEPTH is null) AND (X_NODE_DEPTH is null)))
184       AND ((recinfo.PARENT_ID = X_PARENT_ID)
185            OR ((recinfo.PARENT_ID is null) AND (X_PARENT_ID is null)))
186       AND ((recinfo.NODE_QUERY = X_NODE_QUERY)
187            OR ((recinfo.NODE_QUERY is null) AND (X_NODE_QUERY is null)))
188       AND ((recinfo.CURSOR_SQL = X_CURSOR_SQL)
189            OR ((recinfo.CURSOR_SQL is null) AND (X_CURSOR_SQL is null)))
190       AND ((recinfo.CURSOR_KEY_COL = X_CURSOR_KEY_COL)
191            OR ((recinfo.CURSOR_KEY_COL is null) AND (X_CURSOR_KEY_COL is null)))
192       AND ((recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
193            OR ((recinfo.ENABLED_FLAG is null) AND (X_ENABLED_FLAG is null)))
194       AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
195       AND ((recinfo.SECURITY_GROUP_ID = X_SECURITY_GROUP_ID)
196            OR ((recinfo.SECURITY_GROUP_ID is null) AND (X_SECURITY_GROUP_ID is null)))
197   ) then
198     null;
199   else
200     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
201     app_exception.raise_exception;
202   end if;
203 
204   for tlinfo in c1 loop
205     if (tlinfo.BASELANG = 'Y') then
206       if (    (tlinfo.NODE_LABEL = X_NODE_LABEL)
207       ) then
208         null;
209       else
210         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
211         app_exception.raise_exception;
212       end if;
213     end if;
214   end loop;
215   return;
216 end LOCK_ROW;
217 
218 procedure UPDATE_ROW (
219   X_NODE_ID in NUMBER,
220   X_NODE_VIEW in VARCHAR2,
221   X_DATA_SOURCE in VARCHAR2,
222   X_MEDIA_TYPE_ID in NUMBER,
223   X_WHERE_CLAUSE in VARCHAR2,
224   X_RES_CAT_ENUM_FLAG in VARCHAR2,
225   X_NODE_TYPE in VARCHAR2,
226   X_HIDE_IF_EMPTY in VARCHAR2,
227   X_NODE_DEPTH in NUMBER,
228   X_PARENT_ID in NUMBER,
229   X_NODE_QUERY in VARCHAR2,
230   X_CURSOR_SQL in VARCHAR2,
231   X_CURSOR_KEY_COL in VARCHAR2,
232   X_ENABLED_FLAG in VARCHAR2,
233   X_OBJECT_VERSION_NUMBER in NUMBER,
234   X_SECURITY_GROUP_ID in NUMBER,
235   X_NODE_LABEL in VARCHAR2,
236   X_LAST_UPDATE_DATE in DATE,
237   X_LAST_UPDATED_BY in NUMBER,
238   X_LAST_UPDATE_LOGIN in NUMBER
239 ) is
240 begin
241 
242   update CS_SR_UWQ_NODES_B set
243     ENABLED_FLAG = X_ENABLED_FLAG
244   where NODE_ID = X_NODE_ID
245   and LAST_UPDATED_BY = X_LAST_UPDATED_BY;
246 
247   update CS_SR_UWQ_NODES_B set
248     NODE_VIEW = X_NODE_VIEW,
249     DATA_SOURCE = X_DATA_SOURCE,
250     MEDIA_TYPE_ID = X_MEDIA_TYPE_ID,
251     WHERE_CLAUSE = X_WHERE_CLAUSE,
252     RES_CAT_ENUM_FLAG = X_RES_CAT_ENUM_FLAG,
253     NODE_TYPE = X_NODE_TYPE,
254     HIDE_IF_EMPTY = X_HIDE_IF_EMPTY,
255     NODE_DEPTH = X_NODE_DEPTH,
256     PARENT_ID = X_PARENT_ID,
257     NODE_QUERY = X_NODE_QUERY,
258     CURSOR_SQL = X_CURSOR_SQL,
259     CURSOR_KEY_COL = X_CURSOR_KEY_COL,
260     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
261     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
262     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
263     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
264   where NODE_ID = X_NODE_ID;
265 
266   if (sql%notfound) then
267     raise no_data_found;
268   end if;
269 
270   update CS_SR_UWQ_NODES_TL set
271     NODE_LABEL = X_NODE_LABEL,
272     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
273     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
274     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
275     SOURCE_LANG = userenv('LANG')
276   where NODE_ID = X_NODE_ID
277   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
278 
279 
280   if (sql%notfound) then
281     raise no_data_found;
282   end if;
283 end UPDATE_ROW;
284 
285 procedure DELETE_ROW (
286   X_NODE_ID in NUMBER
287 ) is
288 begin
289   delete from CS_SR_UWQ_NODES_TL
290   where NODE_ID = X_NODE_ID;
291 
292   if (sql%notfound) then
293     raise no_data_found;
294   end if;
295 
296   delete from CS_SR_UWQ_NODES_B
297   where NODE_ID = X_NODE_ID;
298 
299   if (sql%notfound) then
300     raise no_data_found;
301   end if;
302 end DELETE_ROW;
303 
304 procedure ADD_LANGUAGE
305 is
306 begin
307   delete from CS_SR_UWQ_NODES_TL T
308   where not exists
309     (select NULL
310     from CS_SR_UWQ_NODES_B B
311     where B.NODE_ID = T.NODE_ID
312     );
313 
314   update CS_SR_UWQ_NODES_TL T set (
315       NODE_LABEL
316     ) = (select
317       B.NODE_LABEL
318     from CS_SR_UWQ_NODES_TL B
319     where B.NODE_ID = T.NODE_ID
320     and B.LANGUAGE = T.SOURCE_LANG)
321   where (
322       T.NODE_ID,
323       T.LANGUAGE
324   ) in (select
325       SUBT.NODE_ID,
326       SUBT.LANGUAGE
327     from CS_SR_UWQ_NODES_TL SUBB, CS_SR_UWQ_NODES_TL SUBT
328     where SUBB.NODE_ID = SUBT.NODE_ID
329     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
330     and (SUBB.NODE_LABEL <> SUBT.NODE_LABEL
331   ));
332 
333   insert into CS_SR_UWQ_NODES_TL (
334     NODE_ID,
335     NODE_LABEL,
336     CREATION_DATE,
337     CREATED_BY,
338     LAST_UPDATE_DATE,
339     LAST_UPDATED_BY,
340     LAST_UPDATE_LOGIN,
341     LANGUAGE,
342     SOURCE_LANG
343   ) select
344     B.NODE_ID,
345     B.NODE_LABEL,
346     B.CREATION_DATE,
347     B.CREATED_BY,
348     B.LAST_UPDATE_DATE,
349     B.LAST_UPDATED_BY,
350     B.LAST_UPDATE_LOGIN,
351     L.LANGUAGE_CODE,
352     B.SOURCE_LANG
353   from CS_SR_UWQ_NODES_TL B, FND_LANGUAGES L
354   where L.INSTALLED_FLAG in ('I', 'B')
355   and B.LANGUAGE = userenv('LANG')
356   and not exists
357     (select NULL
358     from CS_SR_UWQ_NODES_TL T
359     where T.NODE_ID = B.NODE_ID
360     and T.LANGUAGE = L.LANGUAGE_CODE);
361 end ADD_LANGUAGE;
362 
363 Procedure Translate_Row
364     (x_node_id      IN NUMBER,
365      x_node_label   IN VARCHAR2,
366      x_owner        IN VARCHAR2)
367 is
368 Begin
369  UPDATE CS_SR_UWQ_NODES_TL
370         set
371            NODE_LABEL        = X_NODE_LABEL,
372            LAST_UPDATE_DATE  = SYSDATE,
373            LAST_UPDATED_BY   = decode(X_OWNER,'SEED',1,0),
374            LAST_UPDATE_LOGIN = 0,
375            SOURCE_LANG       = userenv('LANG')
376         where node_id = x_node_id
377         and userenv('LANG') in (language, source_lang);
378 End Translate_Row;
379 
380 end CS_SR_UWQ_NODES_PKG;