DBA Data[Home] [Help]

PACKAGE BODY: APPS.FND_FLEXBUILDER_PARAMS_PKG

Source


1 package body FND_FLEXBUILDER_PARAMS_PKG as
2 /* $Header: AFFBFBPB.pls 120.2.12010000.1 2008/07/25 14:13:32 appldev ship $ */
3 
4 procedure INSERT_ROW (
5   X_ROWID in out nocopy VARCHAR2,
6   X_APPLICATION_ID in NUMBER,
7   X_FUNCTION_CODE in VARCHAR2,
8   X_SEQUENCE in NUMBER,
9   X_PARAMETER_NAME in VARCHAR2,
10   X_ASSIGNMENT_TYPE in VARCHAR2,
11   X_PARAMETER_TYPE in VARCHAR2,
12   X_PROTECTED_FLAG in VARCHAR2,
13   X_DESCRIPTION in VARCHAR2,
14   X_APPLICATION_COLUMN_NAME in VARCHAR2,
15   X_SEGMENT_ATTRIBUTE_TYPE in VARCHAR2,
16   X_CONDITIONAL_PARAMETER in VARCHAR2,
17   X_CONDITIONAL_VALUE in VARCHAR2,
18   X_CONSTANT_VALUE in VARCHAR2,
19   X_FLEXFIELD_APPLICATION_ID in NUMBER,
20   X_FLEX_VALUE_SET_ID in NUMBER,
21   X_ASSIGNMENT_VALUE_SET_ID in NUMBER,
22   X_VALUE_SET_MATCH_REQUIRED_FLA in VARCHAR2,
23   X_ID_FLEX_CODE in VARCHAR2,
24   X_ID_FLEX_NUM in NUMBER,
25   X_ID_PARAMETER in VARCHAR2,
26   X_OUTPUT_COLUMN in VARCHAR2,
27   X_SOURCE_PARAMETER in VARCHAR2,
28   X_USER_PARAMETER_NAME in VARCHAR2,
29   X_CREATION_DATE in DATE,
30   X_CREATED_BY in NUMBER,
31   X_LAST_UPDATE_DATE in DATE,
32   X_LAST_UPDATED_BY in NUMBER,
33   X_LAST_UPDATE_LOGIN in NUMBER
34 ) is
35   cursor C is select ROWID from FND_FLEXBUILDER_PARAMETERS
36     where APPLICATION_ID = X_APPLICATION_ID
37     and FUNCTION_CODE = X_FUNCTION_CODE
38     and SEQUENCE = X_SEQUENCE
39     and PARAMETER_NAME = X_PARAMETER_NAME
40     ;
41 begin
42   insert into FND_FLEXBUILDER_PARAMETERS (
43     APPLICATION_ID,
44     FUNCTION_CODE,
45     SEQUENCE,
46     PARAMETER_NAME,
47     ASSIGNMENT_TYPE,
48     PARAMETER_TYPE,
49     PROTECTED_FLAG,
50     DESCRIPTION,
51     APPLICATION_COLUMN_NAME,
52     SEGMENT_ATTRIBUTE_TYPE,
53     CONDITIONAL_PARAMETER,
54     CONDITIONAL_VALUE,
55     CONSTANT_VALUE,
56     FLEXFIELD_APPLICATION_ID,
57     FLEX_VALUE_SET_ID,
58     ASSIGNMENT_VALUE_SET_ID,
59     VALUE_SET_MATCH_REQUIRED_FLAG,
60     ID_FLEX_CODE,
61     ID_FLEX_NUM,
62     ID_PARAMETER,
63     OUTPUT_COLUMN,
64     SOURCE_PARAMETER,
65     CREATION_DATE,
66     CREATED_BY,
67     LAST_UPDATE_DATE,
68     LAST_UPDATED_BY,
69     LAST_UPDATE_LOGIN
70   ) values (
71     X_APPLICATION_ID,
72     X_FUNCTION_CODE,
73     X_SEQUENCE,
74     X_PARAMETER_NAME,
75     X_ASSIGNMENT_TYPE,
76     X_PARAMETER_TYPE,
77     X_PROTECTED_FLAG,
78     X_DESCRIPTION,
79     X_APPLICATION_COLUMN_NAME,
80     X_SEGMENT_ATTRIBUTE_TYPE,
81     X_CONDITIONAL_PARAMETER,
82     X_CONDITIONAL_VALUE,
83     X_CONSTANT_VALUE,
84     X_FLEXFIELD_APPLICATION_ID,
85     X_FLEX_VALUE_SET_ID,
86     X_ASSIGNMENT_VALUE_SET_ID,
87     X_VALUE_SET_MATCH_REQUIRED_FLA,
88     X_ID_FLEX_CODE,
89     X_ID_FLEX_NUM,
90     X_ID_PARAMETER,
91     X_OUTPUT_COLUMN,
92     X_SOURCE_PARAMETER,
93     X_CREATION_DATE,
94     X_CREATED_BY,
95     X_LAST_UPDATE_DATE,
96     X_LAST_UPDATED_BY,
97     X_LAST_UPDATE_LOGIN
98   );
99 
100   insert into FND_FLEXBUILDER_PARAMS_TL (
101     APPLICATION_ID,
102     FUNCTION_CODE,
103     SEQUENCE,
104     PARAMETER_NAME,
105     USER_PARAMETER_NAME,
106     LAST_UPDATE_DATE,
107     LAST_UPDATED_BY,
108     CREATION_DATE,
109     CREATED_BY,
110     LAST_UPDATE_LOGIN,
111     LANGUAGE,
112     SOURCE_LANG
113   ) select
114     X_APPLICATION_ID,
115     X_FUNCTION_CODE,
116     X_SEQUENCE,
117     X_PARAMETER_NAME,
118     X_USER_PARAMETER_NAME,
119     X_LAST_UPDATE_DATE,
120     X_LAST_UPDATED_BY,
121     X_CREATION_DATE,
122     X_CREATED_BY,
123     X_LAST_UPDATE_LOGIN,
124     L.LANGUAGE_CODE,
125     userenv('LANG')
126   from FND_LANGUAGES L
127   where L.INSTALLED_FLAG in ('I', 'B')
128   and not exists
129     (select NULL
130     from FND_FLEXBUILDER_PARAMS_TL T
131     where T.APPLICATION_ID = X_APPLICATION_ID
132     and T.FUNCTION_CODE = X_FUNCTION_CODE
133     and T.SEQUENCE = X_SEQUENCE
134     and T.PARAMETER_NAME = X_PARAMETER_NAME
135     and T.LANGUAGE = L.LANGUAGE_CODE);
136 
137   open c;
138   fetch c into X_ROWID;
139   if (c%notfound) then
140     close c;
141     raise no_data_found;
142   end if;
143   close c;
144 
145 end INSERT_ROW;
146 
147 procedure LOCK_ROW (
148   X_APPLICATION_ID in NUMBER,
149   X_FUNCTION_CODE in VARCHAR2,
150   X_SEQUENCE in NUMBER,
151   X_PARAMETER_NAME in VARCHAR2,
152   X_ASSIGNMENT_TYPE in VARCHAR2,
153   X_PARAMETER_TYPE in VARCHAR2,
154   X_PROTECTED_FLAG in VARCHAR2,
155   X_DESCRIPTION in VARCHAR2,
156   X_APPLICATION_COLUMN_NAME in VARCHAR2,
157   X_SEGMENT_ATTRIBUTE_TYPE in VARCHAR2,
158   X_CONDITIONAL_PARAMETER in VARCHAR2,
159   X_CONDITIONAL_VALUE in VARCHAR2,
160   X_CONSTANT_VALUE in VARCHAR2,
161   X_FLEXFIELD_APPLICATION_ID in NUMBER,
162   X_FLEX_VALUE_SET_ID in NUMBER,
163   X_ASSIGNMENT_VALUE_SET_ID in NUMBER,
164   X_VALUE_SET_MATCH_REQUIRED_FLA in VARCHAR2,
165   X_ID_FLEX_CODE in VARCHAR2,
166   X_ID_FLEX_NUM in NUMBER,
167   X_ID_PARAMETER in VARCHAR2,
168   X_OUTPUT_COLUMN in VARCHAR2,
169   X_SOURCE_PARAMETER in VARCHAR2,
170   X_USER_PARAMETER_NAME in VARCHAR2
171 ) is
172   cursor c is select
173       ASSIGNMENT_TYPE,
174       PARAMETER_TYPE,
175       PROTECTED_FLAG,
176       DESCRIPTION,
177       APPLICATION_COLUMN_NAME,
178       SEGMENT_ATTRIBUTE_TYPE,
179       CONDITIONAL_PARAMETER,
180       CONDITIONAL_VALUE,
181       CONSTANT_VALUE,
182       FLEXFIELD_APPLICATION_ID,
183       FLEX_VALUE_SET_ID,
184       ASSIGNMENT_VALUE_SET_ID,
185       VALUE_SET_MATCH_REQUIRED_FLAG,
186       ID_FLEX_CODE,
187       ID_FLEX_NUM,
188       ID_PARAMETER,
189       OUTPUT_COLUMN,
190       SOURCE_PARAMETER
191     from FND_FLEXBUILDER_PARAMETERS
192     where APPLICATION_ID = X_APPLICATION_ID
193     and FUNCTION_CODE = X_FUNCTION_CODE
194     and SEQUENCE = X_SEQUENCE
195     and PARAMETER_NAME = X_PARAMETER_NAME
196     for update of APPLICATION_ID nowait;
197   recinfo c%rowtype;
198 
199   cursor c1 is select
200       USER_PARAMETER_NAME
201     from FND_FLEXBUILDER_PARAMS_TL
202     where APPLICATION_ID = X_APPLICATION_ID
203     and FUNCTION_CODE = X_FUNCTION_CODE
204     and SEQUENCE = X_SEQUENCE
205     and PARAMETER_NAME = X_PARAMETER_NAME
206     and LANGUAGE = userenv('LANG')
207     for update of APPLICATION_ID nowait;
208   tlinfo c1%rowtype;
209 
210 begin
211   open c;
212   fetch c into recinfo;
213   if (c%notfound) then
214     close c;
215     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
216     app_exception.raise_exception;
217   end if;
218   close c;
219   if (    (recinfo.ASSIGNMENT_TYPE = X_ASSIGNMENT_TYPE)
220       AND (recinfo.PARAMETER_TYPE = X_PARAMETER_TYPE)
221       AND (recinfo.PROTECTED_FLAG = X_PROTECTED_FLAG)
222       AND ((recinfo.DESCRIPTION = X_DESCRIPTION)
223            OR ((recinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
224       AND ((recinfo.APPLICATION_COLUMN_NAME = X_APPLICATION_COLUMN_NAME)
225            OR ((recinfo.APPLICATION_COLUMN_NAME is null) AND (X_APPLICATION_COLUMN_NAME is null)))
226       AND ((recinfo.SEGMENT_ATTRIBUTE_TYPE = X_SEGMENT_ATTRIBUTE_TYPE)
227            OR ((recinfo.SEGMENT_ATTRIBUTE_TYPE is null) AND (X_SEGMENT_ATTRIBUTE_TYPE is null)))
228       AND ((recinfo.CONDITIONAL_PARAMETER = X_CONDITIONAL_PARAMETER)
229            OR ((recinfo.CONDITIONAL_PARAMETER is null) AND (X_CONDITIONAL_PARAMETER is null)))
230       AND ((recinfo.CONDITIONAL_VALUE = X_CONDITIONAL_VALUE)
231            OR ((recinfo.CONDITIONAL_VALUE is null) AND (X_CONDITIONAL_VALUE is null)))
232       AND ((recinfo.CONSTANT_VALUE = X_CONSTANT_VALUE)
233            OR ((recinfo.CONSTANT_VALUE is null) AND (X_CONSTANT_VALUE is null)))
234       AND ((recinfo.FLEXFIELD_APPLICATION_ID = X_FLEXFIELD_APPLICATION_ID)
235            OR ((recinfo.FLEXFIELD_APPLICATION_ID is null) AND (X_FLEXFIELD_APPLICATION_ID is null)))
236       AND ((recinfo.FLEX_VALUE_SET_ID = X_FLEX_VALUE_SET_ID)
237            OR ((recinfo.FLEX_VALUE_SET_ID is null) AND (X_FLEX_VALUE_SET_ID is null)))
238       AND ((recinfo.ASSIGNMENT_VALUE_SET_ID = X_ASSIGNMENT_VALUE_SET_ID)
239            OR ((recinfo.ASSIGNMENT_VALUE_SET_ID is null) AND (X_ASSIGNMENT_VALUE_SET_ID is null)))
240       AND ((recinfo.VALUE_SET_MATCH_REQUIRED_FLAG = X_VALUE_SET_MATCH_REQUIRED_FLA)
241            OR ((recinfo.VALUE_SET_MATCH_REQUIRED_FLAG is null) AND (X_VALUE_SET_MATCH_REQUIRED_FLA is null)))
242       AND ((recinfo.ID_FLEX_CODE = X_ID_FLEX_CODE)
243            OR ((recinfo.ID_FLEX_CODE is null) AND (X_ID_FLEX_CODE is null)))
244       AND ((recinfo.ID_FLEX_NUM = X_ID_FLEX_NUM)
245            OR ((recinfo.ID_FLEX_NUM is null) AND (X_ID_FLEX_NUM is null)))
246       AND ((recinfo.ID_PARAMETER = X_ID_PARAMETER)
247            OR ((recinfo.ID_PARAMETER is null) AND (X_ID_PARAMETER is null)))
248       AND ((recinfo.OUTPUT_COLUMN = X_OUTPUT_COLUMN)
249            OR ((recinfo.OUTPUT_COLUMN is null) AND (X_OUTPUT_COLUMN is null)))
250       AND ((recinfo.SOURCE_PARAMETER = X_SOURCE_PARAMETER)
251            OR ((recinfo.SOURCE_PARAMETER is null) AND (X_SOURCE_PARAMETER is null)))
252   ) then
253     null;
254   else
255     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
256     app_exception.raise_exception;
257   end if;
258 
259   open c1;
260   fetch c1 into tlinfo;
261   if (c1%notfound) then
262     close c1;
263     return;
264   end if;
265   close c1;
266 
267   if (    (tlinfo.USER_PARAMETER_NAME = X_USER_PARAMETER_NAME)
268   ) then
269     null;
270   else
271     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
272     app_exception.raise_exception;
273   end if;
274   return;
275 end LOCK_ROW;
276 
277 procedure UPDATE_ROW (
278   X_APPLICATION_ID in NUMBER,
279   X_FUNCTION_CODE in VARCHAR2,
280   X_SEQUENCE in NUMBER,
281   X_PARAMETER_NAME in VARCHAR2,
282   X_ASSIGNMENT_TYPE in VARCHAR2,
283   X_PARAMETER_TYPE in VARCHAR2,
284   X_PROTECTED_FLAG in VARCHAR2,
285   X_DESCRIPTION in VARCHAR2,
286   X_APPLICATION_COLUMN_NAME in VARCHAR2,
287   X_SEGMENT_ATTRIBUTE_TYPE in VARCHAR2,
288   X_CONDITIONAL_PARAMETER in VARCHAR2,
289   X_CONDITIONAL_VALUE in VARCHAR2,
290   X_CONSTANT_VALUE in VARCHAR2,
291   X_FLEXFIELD_APPLICATION_ID in NUMBER,
292   X_FLEX_VALUE_SET_ID in NUMBER,
293   X_ASSIGNMENT_VALUE_SET_ID in NUMBER,
294   X_VALUE_SET_MATCH_REQUIRED_FLA in VARCHAR2,
295   X_ID_FLEX_CODE in VARCHAR2,
296   X_ID_FLEX_NUM in NUMBER,
297   X_ID_PARAMETER in VARCHAR2,
298   X_OUTPUT_COLUMN in VARCHAR2,
299   X_SOURCE_PARAMETER in VARCHAR2,
300   X_USER_PARAMETER_NAME in VARCHAR2,
301   X_LAST_UPDATE_DATE in DATE,
302   X_LAST_UPDATED_BY in NUMBER,
303   X_LAST_UPDATE_LOGIN in NUMBER
304 ) is
305 begin
306   update FND_FLEXBUILDER_PARAMETERS set
307     ASSIGNMENT_TYPE = X_ASSIGNMENT_TYPE,
308     PARAMETER_TYPE = X_PARAMETER_TYPE,
309     PROTECTED_FLAG = X_PROTECTED_FLAG,
310     DESCRIPTION = X_DESCRIPTION,
311     APPLICATION_COLUMN_NAME = X_APPLICATION_COLUMN_NAME,
312     SEGMENT_ATTRIBUTE_TYPE = X_SEGMENT_ATTRIBUTE_TYPE,
313     CONDITIONAL_PARAMETER = X_CONDITIONAL_PARAMETER,
314     CONDITIONAL_VALUE = X_CONDITIONAL_VALUE,
315     CONSTANT_VALUE = X_CONSTANT_VALUE,
316     FLEXFIELD_APPLICATION_ID = X_FLEXFIELD_APPLICATION_ID,
317     FLEX_VALUE_SET_ID = X_FLEX_VALUE_SET_ID,
318     ASSIGNMENT_VALUE_SET_ID = X_ASSIGNMENT_VALUE_SET_ID,
319     VALUE_SET_MATCH_REQUIRED_FLAG = X_VALUE_SET_MATCH_REQUIRED_FLA,
320     ID_FLEX_CODE = X_ID_FLEX_CODE,
321     ID_FLEX_NUM = X_ID_FLEX_NUM,
322     ID_PARAMETER = X_ID_PARAMETER,
323     OUTPUT_COLUMN = X_OUTPUT_COLUMN,
324     SOURCE_PARAMETER = X_SOURCE_PARAMETER,
325     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
326     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
327     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
328   where APPLICATION_ID = X_APPLICATION_ID
329   and FUNCTION_CODE = X_FUNCTION_CODE
330   and SEQUENCE = X_SEQUENCE
331   and PARAMETER_NAME = X_PARAMETER_NAME;
332 
333   if (sql%notfound) then
334     raise no_data_found;
335   end if;
336 
337   update FND_FLEXBUILDER_PARAMS_TL set
338     USER_PARAMETER_NAME = X_USER_PARAMETER_NAME,
339     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
340     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
341     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
342     SOURCE_LANG = userenv('LANG')
343   where APPLICATION_ID = X_APPLICATION_ID
344   and FUNCTION_CODE = X_FUNCTION_CODE
345   and SEQUENCE = X_SEQUENCE
346   and PARAMETER_NAME = X_PARAMETER_NAME
347   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
348 
349   if (sql%notfound) then
350     raise no_data_found;
351   end if;
352 end UPDATE_ROW;
353 
354 procedure DELETE_ROW (
355   X_APPLICATION_ID in NUMBER,
356   X_FUNCTION_CODE in VARCHAR2,
357   X_SEQUENCE in NUMBER,
358   X_PARAMETER_NAME in VARCHAR2
359 ) is
360 begin
361   delete from FND_FLEXBUILDER_PARAMETERS
362   where APPLICATION_ID = X_APPLICATION_ID
363   and FUNCTION_CODE = X_FUNCTION_CODE
364   and SEQUENCE = X_SEQUENCE
365   and PARAMETER_NAME = X_PARAMETER_NAME;
366 
367   if (sql%notfound) then
368     raise no_data_found;
369   end if;
370 
371   delete from FND_FLEXBUILDER_PARAMS_TL
372   where APPLICATION_ID = X_APPLICATION_ID
373   and FUNCTION_CODE = X_FUNCTION_CODE
374   and SEQUENCE = X_SEQUENCE
375   and PARAMETER_NAME = X_PARAMETER_NAME;
376 
377   if (sql%notfound) then
378     raise no_data_found;
379   end if;
380 end DELETE_ROW;
381 
382 procedure ADD_LANGUAGE
383  is
384  begin
385 /* Mar/19/03 requested by Ric Ginsberg */
386 /* The following delete and update statements are commented out */
387 /* as a quick workaround to fix the time-consuming table handler issue */
388 /* Eventually we'll need to turn them into a separate fix_language procedure */
389 /*
390 
391    delete from FND_FLEXBUILDER_PARAMS_TL T
392    where not exists
393      (select NULL
394      from FND_FLEXBUILDER_PARAMETERS B
395      where B.APPLICATION_ID = T.APPLICATION_ID
396      and B.FUNCTION_CODE = T.FUNCTION_CODE
397      and B.SEQUENCE = T.SEQUENCE
398      and B.PARAMETER_NAME = T.PARAMETER_NAME
399      );
400 
401    update FND_FLEXBUILDER_PARAMS_TL T set (
402        USER_PARAMETER_NAME
403      ) = (select
404        B.USER_PARAMETER_NAME
405      from FND_FLEXBUILDER_PARAMS_TL B
406      where B.APPLICATION_ID = T.APPLICATION_ID
407      and B.FUNCTION_CODE = T.FUNCTION_CODE
408      and B.SEQUENCE = T.SEQUENCE
409      and B.PARAMETER_NAME = T.PARAMETER_NAME
410      and B.LANGUAGE = T.SOURCE_LANG)
411    where (
412        T.APPLICATION_ID,
413        T.FUNCTION_CODE,
414        T.SEQUENCE,
415        T.PARAMETER_NAME,
416        T.LANGUAGE
417    ) in (select
418        SUBT.APPLICATION_ID,
419        SUBT.FUNCTION_CODE,
420        SUBT.SEQUENCE,
421        SUBT.PARAMETER_NAME,
422        SUBT.LANGUAGE
423      from FND_FLEXBUILDER_PARAMS_TL SUBB, FND_FLEXBUILDER_PARAMS_TL SUBT
424      where SUBB.APPLICATION_ID = SUBT.APPLICATION_ID
425      and SUBB.FUNCTION_CODE = SUBT.FUNCTION_CODE
426      and SUBB.SEQUENCE = SUBT.SEQUENCE
427      and SUBB.PARAMETER_NAME = SUBT.PARAMETER_NAME
428      and SUBB.LANGUAGE = SUBT.SOURCE_LANG
429      and (SUBB.USER_PARAMETER_NAME <> SUBT.USER_PARAMETER_NAME
430    ));
431 */
432 
433    insert into FND_FLEXBUILDER_PARAMS_TL (
434      APPLICATION_ID,
435      FUNCTION_CODE,
436      SEQUENCE,
437      PARAMETER_NAME,
438      USER_PARAMETER_NAME,
439      LAST_UPDATE_DATE,
440      LAST_UPDATED_BY,
441      CREATION_DATE,
442      CREATED_BY,
443      LAST_UPDATE_LOGIN,
444      LANGUAGE,
445      SOURCE_LANG
446    ) select
447      B.APPLICATION_ID,
448      B.FUNCTION_CODE,
449      B.SEQUENCE,
450      B.PARAMETER_NAME,
451      B.USER_PARAMETER_NAME,
452      B.LAST_UPDATE_DATE,
453      B.LAST_UPDATED_BY,
454      B.CREATION_DATE,
455      B.CREATED_BY,
456      B.LAST_UPDATE_LOGIN,
457      L.LANGUAGE_CODE,
458      B.SOURCE_LANG
459    from FND_FLEXBUILDER_PARAMS_TL B, FND_LANGUAGES L
460    where L.INSTALLED_FLAG in ('I', 'B')
461    and B.LANGUAGE = userenv('LANG')
462    and not exists
463      (select NULL
464      from FND_FLEXBUILDER_PARAMS_TL T
465      where T.APPLICATION_ID = B.APPLICATION_ID
466      and T.FUNCTION_CODE = B.FUNCTION_CODE
467      and T.SEQUENCE = B.SEQUENCE
468      and T.PARAMETER_NAME = B.PARAMETER_NAME
469      and T.LANGUAGE = L.LANGUAGE_CODE);
470 
471 end ADD_LANGUAGE;
472 
473 end FND_FLEXBUILDER_PARAMS_PKG;