DBA Data[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;