[Home] [Help]
PACKAGE BODY: APPS.FND_CONCURRENT_ARGUMENTS_PKG
Source
1 package body FND_CONCURRENT_ARGUMENTS_PKG as
2 /* $Header: AFCPPCPB.pls 115.0 2003/10/04 07:29:28 aranjeet noship $ */
3
4
5 procedure INSERT_ROW (
6 X_ROWID in out nocopy VARCHAR2,
7 X_RUNTIME_PROPERTY_FUNCTION in VARCHAR2,
8 X_APPLICATION_ID in NUMBER,
9 X_DESCRIPTIVE_FLEXFIELD_NAME in VARCHAR2,
10 X_DESCRIPTIVE_FLEX_CONTEXT_COD in VARCHAR2,
11 X_APPLICATION_COLUMN_NAME in VARCHAR2,
12 X_END_USER_COLUMN_NAME in VARCHAR2,
13 X_LAST_UPDATE_DATE in DATE,
14 X_LAST_UPDATED_BY in NUMBER,
15 X_CREATION_DATE in DATE,
16 X_CREATED_BY in NUMBER,
17 X_LAST_UPDATE_LOGIN in NUMBER,
18 X_COLUMN_SEQ_NUM in NUMBER,
19 X_ENABLED_FLAG in VARCHAR2,
20 X_REQUIRED_FLAG in VARCHAR2,
21 X_SECURITY_ENABLED_FLAG in VARCHAR2,
22 X_DISPLAY_FLAG in VARCHAR2,
23 X_DISPLAY_SIZE in NUMBER,
24 X_MAXIMUM_DESCRIPTION_LEN in NUMBER,
25 X_CONCATENATION_DESCRIPTION_LE in NUMBER,
26 X_FLEX_VALUE_SET_ID in NUMBER,
27 X_RANGE_CODE in VARCHAR2,
28 X_DEFAULT_TYPE in VARCHAR2,
29 X_DEFAULT_VALUE in VARCHAR2,
30 X_SRW_PARAM in VARCHAR2,
31 X_FORM_LEFT_PROMPT in VARCHAR2,
32 X_FORM_ABOVE_PROMPT in VARCHAR2,
33 X_DESCRIPTION in VARCHAR2
34 ) IS
35 LANG VARCHAR2(30);
36 CURSOR C IS SELECT rowid FROM fnd_descr_flex_column_usages
37 WHERE application_id = X_APPLICATION_ID
38 AND descriptive_flexfield_name = X_DESCRIPTIVE_FLEXFIELD_NAME
39 AND descriptive_flex_context_code = X_DESCRIPTIVE_FLEX_CONTEXT_COD
40 AND application_column_name = X_APPLICATION_COLUMN_NAME;
41 BEGIN
42
43 INSERT INTO fnd_descr_flex_column_usages(
44 application_id,
45 descriptive_flexfield_name,
46 descriptive_flex_context_code,
47 application_column_name,
48 end_user_column_name,
49 last_update_date,
50 last_updated_by,
51 creation_date,
52 created_by,
53 last_update_login,
54 column_seq_num,
55 enabled_flag,
56 required_flag,
57 security_enabled_flag,
58 display_flag,
59 display_size,
60 maximum_description_len,
61 concatenation_description_len,
62 flex_value_set_id,
63 range_code,
64 default_type,
65 default_value,
66 srw_param
67 ) VALUES (
68 X_APPLICATION_ID,
69 X_DESCRIPTIVE_FLEXFIELD_NAME,
70 X_DESCRIPTIVE_FLEX_CONTEXT_COD,
71 X_APPLICATION_COLUMN_NAME,
72 X_END_USER_COLUMN_NAME,
73 X_LAST_UPDATE_DATE,
74 X_LAST_UPDATED_BY,
75 X_CREATION_DATE,
76 X_CREATED_BY,
77 X_LAST_UPDATE_LOGIN,
78 X_COLUMN_SEQ_NUM,
79 X_ENABLED_FLAG,
80 X_REQUIRED_FLAG,
81 X_SECURITY_ENABLED_FLAG,
82 X_DISPLAY_FLAG,
83 X_DISPLAY_SIZE,
84 X_MAXIMUM_DESCRIPTION_LEN,
85 X_CONCATENATION_DESCRIPTION_LE,
86 X_FLEX_VALUE_SET_ID,
87 X_RANGE_CODE,
88 X_DEFAULT_TYPE,
89 X_DEFAULT_VALUE,
90 X_SRW_PARAM
91 );
92
93 OPEN C;
94 FETCH C INTO X_ROWID;
95 if (C%NOTFOUND) then
96 CLOSE C;
97 Raise NO_DATA_FOUND;
98 end if;
99 CLOSE C;
100
101 --
102 -- Insert translated columns in _TL table.
103 --
104
105 INSERT INTO fnd_descr_flex_col_usage_TL
106 (
107 application_id,
108 descriptive_flexfield_name,
109 descriptive_flex_context_code,
110 language,
111 application_column_name,
112 form_left_prompt,
113 form_above_prompt,
114 description,
115 CREATED_BY,
116 CREATION_DATE,
117 LAST_UPDATED_BY,
118 LAST_UPDATE_DATE,
119 LAST_UPDATE_LOGIN,
120 source_lang
121 ) SELECT
122 X_APPLICATION_ID,
123 X_DESCRIPTIVE_FLEXFIELD_NAME,
124 X_DESCRIPTIVE_FLEX_CONTEXT_COD,
125 L.LANGUAGE_CODE,
126 X_APPLICATION_COLUMN_NAME,
127 X_FORM_LEFT_PROMPT,
128 X_FORM_ABOVE_PROMPT,
129 X_DESCRIPTION,
130 X_CREATED_BY,
131 X_CREATION_DATE,
132 X_LAST_UPDATED_BY,
133 X_LAST_UPDATE_DATE,
134 X_LAST_UPDATE_LOGIN,
135 userenv('LANG')
136 FROM FND_LANGUAGES L
137 WHERE L.installed_flag in ('I', 'B')
138 AND not exists
139 (SELECT NULL
140 FROM fnd_descr_flex_col_usage_TL T
141 WHERE T.application_id = X_APPLICATION_ID
142 AND T.descriptive_flexfield_name = X_DESCRIPTIVE_FLEXFIELD_NAME
143 AND T.descriptive_flex_context_code = X_DESCRIPTIVE_FLEX_CONTEXT_COD
144 AND T.application_column_name = X_APPLICATION_COLUMN_NAME
145 AND T.language = L.language_code);
146
147 END Insert_Row;
148
149
150
151 procedure LOCK_ROW (
152 X_RUNTIME_PROPERTY_FUNCTION in VARCHAR2,
153 X_APPLICATION_ID in NUMBER,
154 X_DESCRIPTIVE_FLEXFIELD_NAME in VARCHAR2,
155 X_DESCRIPTIVE_FLEX_CONTEXT_COD in VARCHAR2,
156 X_APPLICATION_COLUMN_NAME in VARCHAR2,
157 X_END_USER_COLUMN_NAME in VARCHAR2,
158 X_COLUMN_SEQ_NUM in NUMBER,
159 X_ENABLED_FLAG in VARCHAR2,
160 X_REQUIRED_FLAG in VARCHAR2,
161 X_SECURITY_ENABLED_FLAG in VARCHAR2,
162 X_DISPLAY_FLAG in VARCHAR2,
163 X_DISPLAY_SIZE in NUMBER,
164 X_MAXIMUM_DESCRIPTION_LEN in NUMBER,
165 X_CONCATENATION_DESCRIPTION_LE in NUMBER,
166 X_FLEX_VALUE_SET_ID in NUMBER,
167 X_RANGE_CODE in VARCHAR2,
168 X_DEFAULT_TYPE in VARCHAR2,
169 X_DEFAULT_VALUE in VARCHAR2,
170 X_SRW_PARAM in VARCHAR2,
171 X_FORM_LEFT_PROMPT in VARCHAR2,
172 X_FORM_ABOVE_PROMPT in VARCHAR2,
173 X_DESCRIPTION in VARCHAR2
174 ) IS
175 Counter NUMBER;
176 CURSOR C IS
177 SELECT
178 application_id,
179 descriptive_flexfield_name,
180 descriptive_flex_context_code,
181 application_column_name,
182 end_user_column_name,
183 column_seq_num,
184 enabled_flag,
185 required_flag,
186 security_enabled_flag,
187 display_flag,
188 display_size,
189 maximum_description_len,
190 concatenation_description_len,
191 flex_value_set_id,
192 range_code,
193 default_type,
194 default_value,
195 srw_param
196 FROM fnd_descr_flex_column_usages
197 WHERE APPLICATION_ID = X_APPLICATION_ID AND
198 DESCRIPTIVE_FLEXFIELD_NAME = X_DESCRIPTIVE_FLEXFIELD_NAME AND
199 descriptive_flex_context_code = X_DESCRIPTIVE_FLEX_CONTEXT_COD AND
200 application_column_name = X_APPLICATION_COLUMN_NAME
201 FOR UPDATE of Application_Id NOWAIT;
202
203 Recinfo C%ROWTYPE;
204 CURSOR C1 IS
205 SELECT application_column_name, form_left_prompt,
206 form_above_prompt, description
207 FROM fnd_descr_flex_col_usage_TL
208 WHERE application_id = X_APPLICATION_ID
209 AND descriptive_flexfield_name = X_DESCRIPTIVE_FLEXFIELD_NAME
210 AND descriptive_flex_context_code = X_DESCRIPTIVE_FLEX_CONTEXT_COD
211 AND application_column_name = X_APPLICATION_COLUMN_NAME
212 AND language = userenv('LANG')
213 FOR UPDATE of application_id NOWAIT;
214 Tlinfo C1%ROWTYPE;
215 BEGIN
216 Counter := 0;
217 LOOP
218 BEGIN
219 Counter := Counter + 1;
220 OPEN C;
221 FETCH C INTO Recinfo;
222 if (C%NOTFOUND) then
223 CLOSE C;
224 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
225 app_exception.raise_exception;
226 end if;
227 CLOSE C;
228 if (
229 (Recinfo.application_id = X_APPLICATION_ID)
230 AND (Recinfo.descriptive_flexfield_name = X_DESCRIPTIVE_FLEXFIELD_NAME)
231 AND (Recinfo.descriptive_flex_context_code = X_DESCRIPTIVE_FLEX_CONTEXT_COD)
232 AND (Recinfo.application_column_name = X_APPLICATION_COLUMN_NAME)
233 AND (Recinfo.end_user_column_name = X_END_USER_COLUMN_NAME)
234 AND (Recinfo.column_seq_num = X_COLUMN_SEQ_NUM)
235 AND (Recinfo.enabled_flag = X_ENABLED_FLAG)
236 AND (Recinfo.required_flag = X_REQUIRED_FLAG)
237 AND (Recinfo.security_enabled_flag = X_SECURITY_ENABLED_FLAG)
238 AND (Recinfo.display_flag = X_DISPLAY_FLAG)
239 AND (Recinfo.display_size = X_DISPLAY_SIZE)
240 AND (Recinfo.maximum_description_len = X_MAXIMUM_DESCRIPTION_LEN)
241 AND (Recinfo.concatenation_description_len = X_CONCATENATION_DESCRIPTION_LE)
242 AND ( (Recinfo.flex_value_set_id = X_FLEX_VALUE_SET_ID)
243 OR ( (Recinfo.flex_value_set_id IS NULL)
244 AND (X_FLEX_VALUE_SET_ID IS NULL)))
245 AND ( (Recinfo.range_code = X_RANGE_CODE)
246 OR ( (Recinfo.range_code IS NULL)
247 AND (X_RANGE_CODE IS NULL)))
248 AND ( (Recinfo.default_type = X_DEFAULT_TYPE)
249 OR ( (Recinfo.default_type IS NULL)
250 AND (X_DEFAULT_TYPE IS NULL)))
251 AND ( (Recinfo.default_value = X_DEFAULT_VALUE)
252 OR ( (Recinfo.default_value IS NULL)
253 AND (X_DEFAULT_VALUE IS NULL)))
254 AND ( (Recinfo.srw_param = X_SRW_PARAM)
255 OR ( (Recinfo.srw_param IS NULL)
256 AND (X_SRW_PARAM IS NULL)))
257 ) then
258 null;
259 else
260 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
261 app_exception.raise_exception;
262 end if;
263
264 --
265 -- Check translated columns in _TL table
266 --
267 OPEN C1;
268 FETCH C1 INTO Tlinfo;
269 if (C1%NOTFOUND) then
270 CLOSE C1;
271 RETURN;
272 end if;
273 CLOSE C1;
274
275 if (
276 (Tlinfo.form_left_prompt = X_FORM_LEFT_PROMPT)
277 AND (Tlinfo.form_above_prompt = X_FORM_ABOVE_PROMPT)
278 AND ( (Tlinfo.description = X_DESCRIPTION)
279 OR ( (TLinfo.description IS NULL)
280 AND (X_DESCRIPTION IS NULL)))
281 ) then
282 null;
283 else
284 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
285 ---- FND_MESSAGE.Set_Name('FND', 'ST:'||Tlinfo.form_left_prompt ||':'||X_FORM_LEFT_PROMPT||':'||Tlinfo.description||':'||X_DESCRIPTION||':'||Tlinfo.form_above_prompt||':'||X_FORM_ABOVE_PROMPT||':END');
286 app_exception.raise_exception;
287 end if;
288 return;
289
290
291 EXCEPTION
292 When APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION then
293 if (c%isopen) then
294 close c;
295 end if;
296 if (c1%isopen) then
297 close c1;
298 end if;
299 END;
300 end LOOP;
301 END Lock_Row;
302
303
304
305 procedure UPDATE_ROW (
306 X_RUNTIME_PROPERTY_FUNCTION in VARCHAR2,
307 X_APPLICATION_ID in NUMBER,
308 X_DESCRIPTIVE_FLEXFIELD_NAME in VARCHAR2,
309 X_DESCRIPTIVE_FLEX_CONTEXT_COD in VARCHAR2,
310 X_APPLICATION_COLUMN_NAME in VARCHAR2,
311 X_END_USER_COLUMN_NAME in VARCHAR2,
312 X_LAST_UPDATE_DATE in DATE,
313 X_LAST_UPDATED_BY in NUMBER,
314 X_LAST_UPDATE_LOGIN in NUMBER,
315 X_COLUMN_SEQ_NUM in NUMBER,
316 X_ENABLED_FLAG in VARCHAR2,
317 X_REQUIRED_FLAG in VARCHAR2,
318 X_SECURITY_ENABLED_FLAG in VARCHAR2,
319 X_DISPLAY_FLAG in VARCHAR2,
320 X_DISPLAY_SIZE in NUMBER,
321 X_MAXIMUM_DESCRIPTION_LEN in NUMBER,
322 X_CONCATENATION_DESCRIPTION_LE in NUMBER,
323 X_FLEX_VALUE_SET_ID in NUMBER,
324 X_RANGE_CODE in VARCHAR2,
325 X_DEFAULT_TYPE in VARCHAR2,
326 X_DEFAULT_VALUE in VARCHAR2,
330 X_DESCRIPTION in VARCHAR2
327 X_SRW_PARAM in VARCHAR2,
328 X_FORM_LEFT_PROMPT in VARCHAR2,
329 X_FORM_ABOVE_PROMPT in VARCHAR2,
331 ) IS
332 BEGIN
333
334 UPDATE fnd_descr_flex_column_usages
335 SET
336 application_id = X_APPLICATION_ID,
337 descriptive_flexfield_name = X_DESCRIPTIVE_FLEXFIELD_NAME,
338 descriptive_flex_context_code = X_DESCRIPTIVE_FLEX_CONTEXT_COD,
339 application_column_name = X_APPLICATION_COLUMN_NAME,
340 end_user_column_name = X_END_USER_COLUMN_NAME,
341 last_update_date = X_LAST_UPDATE_DATE,
342 last_updated_by = X_LAST_UPDATED_BY,
343 last_update_login = X_LAST_UPDATE_LOGIN,
344 column_seq_num = X_COLUMN_SEQ_NUM,
345 enabled_flag = X_ENABLED_FLAG,
346 required_flag = X_REQUIRED_FLAG,
347 security_enabled_flag = X_SECURITY_ENABLED_FLAG,
348 display_flag = X_DISPLAY_FLAG,
349 display_size = X_DISPLAY_SIZE,
350 maximum_description_len = X_MAXIMUM_DESCRIPTION_LEN,
351 concatenation_description_len = X_CONCATENATION_DESCRIPTION_LE,
352 flex_value_set_id = X_FLEX_VALUE_SET_ID,
353 range_code = X_RANGE_CODE,
354 default_type = X_DEFAULT_TYPE,
355 default_value = X_DEFAULT_VALUE,
356 srw_param = X_SRW_PARAM
357 WHERE APPLICATION_ID = X_APPLICATION_ID AND
358 DESCRIPTIVE_FLEXFIELD_NAME = X_DESCRIPTIVE_FLEXFIELD_NAME AND
359 descriptive_flex_context_code = X_DESCRIPTIVE_FLEX_CONTEXT_COD AND
360 application_column_name = X_APPLICATION_COLUMN_NAME;
361
362
363 if (SQL%NOTFOUND) then
364 Raise NO_DATA_FOUND;
365 end if;
366
367 --
368 -- Update translated columns in _TL for current language
369 --
370 UPDATE fnd_descr_flex_col_usage_tl SET
371 form_left_prompt = X_FORM_LEFT_PROMPT,
372 form_above_prompt = X_FORM_ABOVE_PROMPT,
373 description = X_DESCRIPTION,
374 last_update_date = X_LAST_UPDATE_DATE,
375 last_updated_by = X_LAST_UPDATED_BY,
376 last_update_login = X_LAST_UPDATE_LOGIN,
377 source_lang = userenv('LANG')
378 where application_id = X_application_id
379 and descriptive_flexfield_name = X_DESCRIPTIVE_FLEXFIELD_NAME
380 and descriptive_flex_context_code = X_DESCRIPTIVE_FLEX_CONTEXT_COD
381 and application_column_name = X_APPLICATION_COLUMN_NAME
382 and language = userenv('LANG');
383
384 if (SQL%NOTFOUND) then
385 RAISE NO_DATA_FOUND;
386 end if;
387
388 END UPDATE_ROW;
389
390
391
392 procedure DELETE_ROW (
393 X_APPLICATION_ID in NUMBER,
394 X_DESCRIPTIVE_FLEXFIELD_NAME in VARCHAR2,
395 X_DESCRIPTIVE_FLEX_CONTEXT_COD in VARCHAR2,
396 X_APPLICATION_COLUMN_NAME in VARCHAR2
397 ) IS
398 BEGIN
399 DELETE FROM fnd_descr_flex_column_usages
400 WHERE APPLICATION_ID = X_APPLICATION_ID AND
401 DESCRIPTIVE_FLEXFIELD_NAME = X_DESCRIPTIVE_FLEXFIELD_NAME AND
402 DESCRIPTIVE_FLEX_CONTEXT_CODE = X_DESCRIPTIVE_FLEX_CONTEXT_COD AND
403 APPLICATION_COLUMN_NAME = X_APPLICATION_COLUMN_NAME;
404
405 if (SQL%NOTFOUND) then
406 Raise NO_DATA_FOUND;
407 end if;
408
409 DELETE FROM fnd_descr_flex_col_usage_TL
410 WHERE application_id = X_APPLICATION_ID
411 AND descriptive_flexfield_name = X_DESCRIPTIVE_FLEXFIELD_NAME
412 AND descriptive_flex_context_code = X_DESCRIPTIVE_FLEX_CONTEXT_COD
413 AND application_column_name = X_APPLICATION_COLUMN_NAME;
414
415 UPDATE fnd_descriptive_flexs
416 SET last_update_date = SYSDATE
417 WHERE application_id = X_APPLICATION_ID
418 AND descriptive_flexfield_name = X_DESCRIPTIVE_FLEXFIELD_NAME;
419
420 END DELETE_ROW;
421
422 end FND_CONCURRENT_ARGUMENTS_PKG;