DBA Data[Home] [Help]

PACKAGE BODY: APPS.FND_ID_FLEX_STRUCTURES_PKG

Source


1 package body FND_ID_FLEX_STRUCTURES_PKG as
2 /* $Header: AFFFSTRB.pls 120.4.12010000.1 2008/07/25 14:14:21 appldev ship $ */
3 
4 procedure INSERT_ROW (
5   X_ROWID in out nocopy VARCHAR2,
6   X_APPLICATION_ID in NUMBER,
7   X_ID_FLEX_CODE in VARCHAR2,
8   X_ID_FLEX_NUM in NUMBER,
9   X_ID_FLEX_STRUCTURE_CODE in VARCHAR2,
10   X_CONCATENATED_SEGMENT_DELIMIT in VARCHAR2,
11   X_CROSS_SEGMENT_VALIDATION_FLA in VARCHAR2,
12   X_DYNAMIC_INSERTS_ALLOWED_FLAG in VARCHAR2,
13   X_ENABLED_FLAG in VARCHAR2,
14   X_FREEZE_FLEX_DEFINITION_FLAG in VARCHAR2,
15   X_FREEZE_STRUCTURED_HIER_FLAG in VARCHAR2,
16   X_SHORTHAND_ENABLED_FLAG in VARCHAR2,
17   X_SHORTHAND_LENGTH in NUMBER,
18   X_STRUCTURE_VIEW_NAME in VARCHAR2,
19   X_ID_FLEX_STRUCTURE_NAME in VARCHAR2,
20   X_DESCRIPTION in VARCHAR2,
21   X_SHORTHAND_PROMPT 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 FND_ID_FLEX_STRUCTURES
29     where APPLICATION_ID = X_APPLICATION_ID
30     and ID_FLEX_CODE = X_ID_FLEX_CODE
31     and ID_FLEX_NUM = X_ID_FLEX_NUM
32     ;
33 begin
34   insert into FND_ID_FLEX_STRUCTURES (
35     APPLICATION_ID,
36     ID_FLEX_CODE,
37     ID_FLEX_NUM,
38     ID_FLEX_STRUCTURE_CODE,
39     CONCATENATED_SEGMENT_DELIMITER,
40     CROSS_SEGMENT_VALIDATION_FLAG,
41     DYNAMIC_INSERTS_ALLOWED_FLAG,
42     ENABLED_FLAG,
43     FREEZE_FLEX_DEFINITION_FLAG,
44     FREEZE_STRUCTURED_HIER_FLAG,
45     SHORTHAND_ENABLED_FLAG,
46     SHORTHAND_LENGTH,
47     STRUCTURE_VIEW_NAME,
48     CREATION_DATE,
49     CREATED_BY,
50     LAST_UPDATE_DATE,
51     LAST_UPDATED_BY,
52     LAST_UPDATE_LOGIN
53   ) values (
54     X_APPLICATION_ID,
55     X_ID_FLEX_CODE,
56     X_ID_FLEX_NUM,
57     X_ID_FLEX_STRUCTURE_CODE,
58     X_CONCATENATED_SEGMENT_DELIMIT,
59     X_CROSS_SEGMENT_VALIDATION_FLA,
60     X_DYNAMIC_INSERTS_ALLOWED_FLAG,
61     X_ENABLED_FLAG,
62     X_FREEZE_FLEX_DEFINITION_FLAG,
63     X_FREEZE_STRUCTURED_HIER_FLAG,
64     X_SHORTHAND_ENABLED_FLAG,
65     X_SHORTHAND_LENGTH,
66     X_STRUCTURE_VIEW_NAME,
67     X_CREATION_DATE,
68     X_CREATED_BY,
69     X_LAST_UPDATE_DATE,
70     X_LAST_UPDATED_BY,
71     X_LAST_UPDATE_LOGIN
72   );
73 
74   insert into FND_ID_FLEX_STRUCTURES_TL (
75     APPLICATION_ID,
76     ID_FLEX_CODE,
77     ID_FLEX_NUM,
78     LAST_UPDATE_DATE,
79     LAST_UPDATED_BY,
80     CREATION_DATE,
81     CREATED_BY,
82     LAST_UPDATE_LOGIN,
83     ID_FLEX_STRUCTURE_NAME,
84     DESCRIPTION,
85     SHORTHAND_PROMPT,
86     LANGUAGE,
87     SOURCE_LANG
88   ) select
89     X_APPLICATION_ID,
90     X_ID_FLEX_CODE,
91     X_ID_FLEX_NUM,
92     X_LAST_UPDATE_DATE,
93     X_LAST_UPDATED_BY,
94     X_CREATION_DATE,
95     X_CREATED_BY,
96     X_LAST_UPDATE_LOGIN,
97     X_ID_FLEX_STRUCTURE_NAME,
98     X_DESCRIPTION,
99     X_SHORTHAND_PROMPT,
100     L.LANGUAGE_CODE,
101     userenv('LANG')
102   from FND_LANGUAGES L
103   where L.INSTALLED_FLAG in ('I', 'B')
104   and not exists
105     (select NULL
106     from FND_ID_FLEX_STRUCTURES_TL T
107     where T.APPLICATION_ID = X_APPLICATION_ID
108     and T.ID_FLEX_CODE = X_ID_FLEX_CODE
109     and T.ID_FLEX_NUM = X_ID_FLEX_NUM
110     and T.LANGUAGE = L.LANGUAGE_CODE);
111 
112   open c;
113   fetch c into X_ROWID;
114   if (c%notfound) then
115     close c;
116     raise no_data_found;
117   end if;
118   close c;
119 
120 end INSERT_ROW;
121 
122 procedure LOCK_ROW (
123   X_APPLICATION_ID in NUMBER,
124   X_ID_FLEX_CODE in VARCHAR2,
125   X_ID_FLEX_NUM in NUMBER,
126   X_ID_FLEX_STRUCTURE_CODE in VARCHAR2,
127   X_CONCATENATED_SEGMENT_DELIMIT in VARCHAR2,
128   X_CROSS_SEGMENT_VALIDATION_FLA in VARCHAR2,
129   X_DYNAMIC_INSERTS_ALLOWED_FLAG in VARCHAR2,
130   X_ENABLED_FLAG in VARCHAR2,
131   X_FREEZE_FLEX_DEFINITION_FLAG in VARCHAR2,
132   X_FREEZE_STRUCTURED_HIER_FLAG in VARCHAR2,
133   X_SHORTHAND_ENABLED_FLAG in VARCHAR2,
134   X_SHORTHAND_LENGTH in NUMBER,
135   X_STRUCTURE_VIEW_NAME in VARCHAR2,
136   X_ID_FLEX_STRUCTURE_NAME in VARCHAR2,
137   X_DESCRIPTION in VARCHAR2,
138   X_SHORTHAND_PROMPT in VARCHAR2
139 ) is
140   cursor c is select
141       ID_FLEX_STRUCTURE_CODE,
142       CONCATENATED_SEGMENT_DELIMITER,
143       CROSS_SEGMENT_VALIDATION_FLAG,
144       DYNAMIC_INSERTS_ALLOWED_FLAG,
145       ENABLED_FLAG,
146       FREEZE_FLEX_DEFINITION_FLAG,
147       FREEZE_STRUCTURED_HIER_FLAG,
148       SHORTHAND_ENABLED_FLAG,
149       SHORTHAND_LENGTH,
150       STRUCTURE_VIEW_NAME
151     from FND_ID_FLEX_STRUCTURES
152     where APPLICATION_ID = X_APPLICATION_ID
153     and ID_FLEX_CODE = X_ID_FLEX_CODE
154     and ID_FLEX_NUM = X_ID_FLEX_NUM
155     for update of APPLICATION_ID nowait;
156   recinfo c%rowtype;
157 
158   cursor c1 is select
159       ID_FLEX_STRUCTURE_NAME,
160       DESCRIPTION,
161       SHORTHAND_PROMPT,
162       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
163     from FND_ID_FLEX_STRUCTURES_TL
164     where APPLICATION_ID = X_APPLICATION_ID
165     and ID_FLEX_CODE = X_ID_FLEX_CODE
166     and ID_FLEX_NUM = X_ID_FLEX_NUM
167     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
168     for update of APPLICATION_ID nowait;
169 begin
170   open c;
171   fetch c into recinfo;
172   if (c%notfound) then
173     close c;
174     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
175     app_exception.raise_exception;
176   end if;
177   close c;
178   if (    (recinfo.ID_FLEX_STRUCTURE_CODE = X_ID_FLEX_STRUCTURE_CODE)
179       AND (recinfo.CONCATENATED_SEGMENT_DELIMITER = X_CONCATENATED_SEGMENT_DELIMIT)
180       AND (recinfo.CROSS_SEGMENT_VALIDATION_FLAG = X_CROSS_SEGMENT_VALIDATION_FLA)
181       AND (recinfo.DYNAMIC_INSERTS_ALLOWED_FLAG = X_DYNAMIC_INSERTS_ALLOWED_FLAG)
182       AND (recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
183       AND (recinfo.FREEZE_FLEX_DEFINITION_FLAG = X_FREEZE_FLEX_DEFINITION_FLAG)
184       AND (recinfo.FREEZE_STRUCTURED_HIER_FLAG = X_FREEZE_STRUCTURED_HIER_FLAG)
185       AND (recinfo.SHORTHAND_ENABLED_FLAG = X_SHORTHAND_ENABLED_FLAG)
186       AND ((recinfo.SHORTHAND_LENGTH = X_SHORTHAND_LENGTH)
187            OR ((recinfo.SHORTHAND_LENGTH is null) AND (X_SHORTHAND_LENGTH is null)))
188       AND ((recinfo.STRUCTURE_VIEW_NAME = X_STRUCTURE_VIEW_NAME)
189            OR ((recinfo.STRUCTURE_VIEW_NAME is null) AND (X_STRUCTURE_VIEW_NAME is null)))
190   ) then
191     null;
192   else
193     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
194     app_exception.raise_exception;
195   end if;
196 
197   for tlinfo in c1 loop
198     if (tlinfo.BASELANG = 'Y') then
199       if (    (tlinfo.ID_FLEX_STRUCTURE_NAME = X_ID_FLEX_STRUCTURE_NAME)
200           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
201                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
202           AND ((tlinfo.SHORTHAND_PROMPT = X_SHORTHAND_PROMPT)
203                OR ((tlinfo.SHORTHAND_PROMPT is null) AND (X_SHORTHAND_PROMPT is null)))
204       ) then
205         null;
206       else
207         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
208         app_exception.raise_exception;
209       end if;
210     end if;
211   end loop;
212   return;
213 end LOCK_ROW;
214 
215 procedure UPDATE_ROW (
216   X_APPLICATION_ID in NUMBER,
217   X_ID_FLEX_CODE in VARCHAR2,
218   X_ID_FLEX_NUM in NUMBER,
219   X_ID_FLEX_STRUCTURE_CODE in VARCHAR2,
220   X_CONCATENATED_SEGMENT_DELIMIT in VARCHAR2,
221   X_CROSS_SEGMENT_VALIDATION_FLA in VARCHAR2,
222   X_DYNAMIC_INSERTS_ALLOWED_FLAG in VARCHAR2,
223   X_ENABLED_FLAG in VARCHAR2,
224   X_FREEZE_FLEX_DEFINITION_FLAG in VARCHAR2,
225   X_FREEZE_STRUCTURED_HIER_FLAG in VARCHAR2,
226   X_SHORTHAND_ENABLED_FLAG in VARCHAR2,
227   X_SHORTHAND_LENGTH in NUMBER,
228   X_STRUCTURE_VIEW_NAME in VARCHAR2,
229   X_ID_FLEX_STRUCTURE_NAME in VARCHAR2,
230   X_DESCRIPTION in VARCHAR2,
231   X_SHORTHAND_PROMPT in VARCHAR2,
232   X_LAST_UPDATE_DATE in DATE,
233   X_LAST_UPDATED_BY in NUMBER,
234   X_LAST_UPDATE_LOGIN in NUMBER
235 ) is
236 begin
237   update FND_ID_FLEX_STRUCTURES set
238     ID_FLEX_STRUCTURE_CODE = X_ID_FLEX_STRUCTURE_CODE,
239     CONCATENATED_SEGMENT_DELIMITER = X_CONCATENATED_SEGMENT_DELIMIT,
240     CROSS_SEGMENT_VALIDATION_FLAG = X_CROSS_SEGMENT_VALIDATION_FLA,
241     DYNAMIC_INSERTS_ALLOWED_FLAG = X_DYNAMIC_INSERTS_ALLOWED_FLAG,
242     ENABLED_FLAG = X_ENABLED_FLAG,
243     FREEZE_FLEX_DEFINITION_FLAG = X_FREEZE_FLEX_DEFINITION_FLAG,
244     FREEZE_STRUCTURED_HIER_FLAG = X_FREEZE_STRUCTURED_HIER_FLAG,
245     SHORTHAND_ENABLED_FLAG = X_SHORTHAND_ENABLED_FLAG,
246     SHORTHAND_LENGTH = X_SHORTHAND_LENGTH,
247     STRUCTURE_VIEW_NAME = X_STRUCTURE_VIEW_NAME,
248     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
249     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
250     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
251   where APPLICATION_ID = X_APPLICATION_ID
252   and ID_FLEX_CODE = X_ID_FLEX_CODE
253   and ID_FLEX_NUM = X_ID_FLEX_NUM;
254 
255   if (sql%notfound) then
256     raise no_data_found;
257   end if;
258 
259   update FND_ID_FLEX_STRUCTURES_TL set
260     ID_FLEX_STRUCTURE_NAME = X_ID_FLEX_STRUCTURE_NAME,
261     DESCRIPTION = X_DESCRIPTION,
262     SHORTHAND_PROMPT = X_SHORTHAND_PROMPT,
263     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
264     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
265     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
266     SOURCE_LANG = userenv('LANG')
267   where APPLICATION_ID = X_APPLICATION_ID
268   and ID_FLEX_CODE = X_ID_FLEX_CODE
269   and ID_FLEX_NUM = X_ID_FLEX_NUM
270   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
271 
272   if (sql%notfound) then
273     raise no_data_found;
274   end if;
275 end UPDATE_ROW;
276 
277 procedure DELETE_ROW (
278   X_APPLICATION_ID in NUMBER,
279   X_ID_FLEX_CODE in VARCHAR2,
280   X_ID_FLEX_NUM in NUMBER
281 ) is
282 begin
283   delete from FND_ID_FLEX_STRUCTURES_TL
284   where APPLICATION_ID = X_APPLICATION_ID
285   and ID_FLEX_CODE = X_ID_FLEX_CODE
286   and ID_FLEX_NUM = X_ID_FLEX_NUM;
287 
288   if (sql%notfound) then
289     raise no_data_found;
290   end if;
291 
292   delete from FND_ID_FLEX_STRUCTURES
293   where APPLICATION_ID = X_APPLICATION_ID
294   and ID_FLEX_CODE = X_ID_FLEX_CODE
295   and ID_FLEX_NUM = X_ID_FLEX_NUM;
296 
297   if (sql%notfound) then
298     raise no_data_found;
299   end if;
300 end DELETE_ROW;
301 
302 procedure ADD_LANGUAGE
303  is
304  begin
305 /* Mar/19/03 requested by Ric Ginsberg */
306 /* The following delete and update statements are commented out  */
307 /* as a quick workaround to fix the time-consuming table handler issue */
308 /* Eventually we'll need to turn them into a separate fix_language procedure */
309 /*
310 
311    delete from FND_ID_FLEX_STRUCTURES_TL T
312    where not exists
313      (select NULL
314      from FND_ID_FLEX_STRUCTURES B
315      where B.APPLICATION_ID = T.APPLICATION_ID
316      and B.ID_FLEX_CODE = T.ID_FLEX_CODE
317      and B.ID_FLEX_NUM = T.ID_FLEX_NUM
318      );
319 
320    update FND_ID_FLEX_STRUCTURES_TL T set (
321        ID_FLEX_STRUCTURE_NAME,
322        DESCRIPTION,
323        SHORTHAND_PROMPT
324      ) = (select
325        B.ID_FLEX_STRUCTURE_NAME,
326        B.DESCRIPTION,
327        B.SHORTHAND_PROMPT
328      from FND_ID_FLEX_STRUCTURES_TL B
329      where B.APPLICATION_ID = T.APPLICATION_ID
330      and B.ID_FLEX_CODE = T.ID_FLEX_CODE
331      and B.ID_FLEX_NUM = T.ID_FLEX_NUM
332      and B.LANGUAGE = T.SOURCE_LANG)
333    where (
334        T.APPLICATION_ID,
335        T.ID_FLEX_CODE,
336        T.ID_FLEX_NUM,
337        T.LANGUAGE
338    ) in (select
339        SUBT.APPLICATION_ID,
340        SUBT.ID_FLEX_CODE,
341        SUBT.ID_FLEX_NUM,
342        SUBT.LANGUAGE
343      from FND_ID_FLEX_STRUCTURES_TL SUBB, FND_ID_FLEX_STRUCTURES_TL SUBT
344      where SUBB.APPLICATION_ID = SUBT.APPLICATION_ID
345      and SUBB.ID_FLEX_CODE = SUBT.ID_FLEX_CODE
346      and SUBB.ID_FLEX_NUM = SUBT.ID_FLEX_NUM
347      and SUBB.LANGUAGE = SUBT.SOURCE_LANG
348      and (SUBB.ID_FLEX_STRUCTURE_NAME <> SUBT.ID_FLEX_STRUCTURE_NAME
349        or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
350        or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
351        or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
352        or SUBB.SHORTHAND_PROMPT <> SUBT.SHORTHAND_PROMPT
353        or (SUBB.SHORTHAND_PROMPT is null and SUBT.SHORTHAND_PROMPT is not null)
354        or (SUBB.SHORTHAND_PROMPT is not null and SUBT.SHORTHAND_PROMPT is null)
355    ));
356 */
357 
358    insert into FND_ID_FLEX_STRUCTURES_TL (
359      APPLICATION_ID,
360      ID_FLEX_CODE,
361      ID_FLEX_NUM,
362      LAST_UPDATE_DATE,
363      LAST_UPDATED_BY,
364      CREATION_DATE,
365      CREATED_BY,
366      LAST_UPDATE_LOGIN,
367      ID_FLEX_STRUCTURE_NAME,
368      DESCRIPTION,
369      SHORTHAND_PROMPT,
370      LANGUAGE,
371      SOURCE_LANG
372    ) select
373      B.APPLICATION_ID,
374      B.ID_FLEX_CODE,
375      B.ID_FLEX_NUM,
376      B.LAST_UPDATE_DATE,
377      B.LAST_UPDATED_BY,
378      B.CREATION_DATE,
379      B.CREATED_BY,
380      B.LAST_UPDATE_LOGIN,
381      B.ID_FLEX_STRUCTURE_NAME,
382      B.DESCRIPTION,
383      B.SHORTHAND_PROMPT,
384      L.LANGUAGE_CODE,
385      B.SOURCE_LANG
386    from FND_ID_FLEX_STRUCTURES_TL B, FND_LANGUAGES L
387    where L.INSTALLED_FLAG in ('I', 'B')
388    and B.LANGUAGE = userenv('LANG')
389    and not exists
390      (select NULL
391      from FND_ID_FLEX_STRUCTURES_TL T
392      where T.APPLICATION_ID = B.APPLICATION_ID
393      and T.ID_FLEX_CODE = B.ID_FLEX_CODE
394      and T.ID_FLEX_NUM = B.ID_FLEX_NUM
395      and T.LANGUAGE = L.LANGUAGE_CODE);
396 end ADD_LANGUAGE;
397 
398 PROCEDURE load_row
399   (x_application_short_name       IN VARCHAR2,
400    x_id_flex_code                 IN VARCHAR2,
401    x_id_flex_structure_code       IN VARCHAR2,
402    x_who                          IN fnd_flex_loader_apis.who_type,
403    x_concatenated_segment_delimit IN VARCHAR2,
404    x_cross_segment_validation_fla IN VARCHAR2,
405    x_dynamic_inserts_allowed_flag IN VARCHAR2,
406    x_enabled_flag                 IN VARCHAR2,
407    x_freeze_flex_definition_flag  IN VARCHAR2,
408    x_freeze_structured_hier_flag  IN VARCHAR2,
409    x_shorthand_enabled_flag       IN VARCHAR2,
410    x_shorthand_length             IN NUMBER,
411    x_structure_view_name          IN VARCHAR2,
412    x_id_flex_structure_name       IN VARCHAR2,
413    x_description                  IN VARCHAR2,
414    x_shorthand_prompt             IN VARCHAR2)
415   IS
416      l_application_id   NUMBER;
417      l_id_flex_code     fnd_id_flexs.id_flex_code%TYPE;
418      l_id_flex_num      NUMBER;
419      l_rowid            VARCHAR2(64);
420 BEGIN
421    SELECT application_id
422      INTO l_application_id
423      FROM fnd_application
424      WHERE application_short_name = x_application_short_name;
425 
426    SELECT id_flex_code
427      INTO l_id_flex_code
428      FROM fnd_id_flexs
429      WHERE application_id = l_application_id
430      AND id_flex_code = x_id_flex_code;
431 
432    BEGIN
433       SELECT id_flex_num
434 	INTO l_id_flex_num
435 	FROM fnd_id_flex_structures
436 	WHERE application_id = l_application_id
437 	AND id_flex_code = l_id_flex_code
438 	AND id_flex_structure_code = x_id_flex_structure_code;
439 
440       fnd_id_flex_structures_pkg.update_row
441 	(X_APPLICATION_ID               => l_application_id,
442 	 X_ID_FLEX_CODE                 => l_id_flex_code,
443 	 X_ID_FLEX_NUM                  => l_id_flex_num,
444 	 X_ID_FLEX_STRUCTURE_CODE       => x_id_flex_structure_code,
445 	 X_CONCATENATED_SEGMENT_DELIMIT => x_concatenated_segment_delimit,
446 	 X_CROSS_SEGMENT_VALIDATION_FLA => x_cross_segment_validation_fla,
447 	 X_DYNAMIC_INSERTS_ALLOWED_FLAG => x_dynamic_inserts_allowed_flag,
448 	 X_ENABLED_FLAG                 => x_enabled_flag,
449 	 X_FREEZE_FLEX_DEFINITION_FLAG  => x_freeze_flex_definition_flag,
450 	 X_FREEZE_STRUCTURED_HIER_FLAG  => x_freeze_structured_hier_flag,
451 	 X_SHORTHAND_ENABLED_FLAG       => x_shorthand_enabled_flag,
452 	 X_SHORTHAND_LENGTH             => x_shorthand_length,
453 	 X_STRUCTURE_VIEW_NAME          => x_structure_view_name,
454 	 X_ID_FLEX_STRUCTURE_NAME       => x_id_flex_structure_name,
455 	 X_DESCRIPTION                  => x_description,
456 	 X_SHORTHAND_PROMPT             => x_shorthand_prompt,
457 	 X_LAST_UPDATE_DATE             => x_who.last_update_date,
458 	 X_LAST_UPDATED_BY              => x_who.last_updated_by,
459 	 X_LAST_UPDATE_LOGIN            => x_who.last_update_login);
460    EXCEPTION
461       WHEN no_data_found THEN
462 	 SELECT fnd_id_flex_structures_s.NEXTVAL
463 	   INTO l_id_flex_num
464 	   FROM dual;
465 
466 	 fnd_id_flex_structures_pkg.insert_row
467 	   (X_ROWID                        => l_rowid,
468 	    X_APPLICATION_ID               => l_application_id,
469 	    X_ID_FLEX_CODE                 => l_id_flex_code,
470 	    X_ID_FLEX_NUM                  => l_id_flex_num,
471 	    X_ID_FLEX_STRUCTURE_CODE       => x_id_flex_structure_code,
472 	    X_CONCATENATED_SEGMENT_DELIMIT => x_concatenated_segment_delimit,
473 	    X_CROSS_SEGMENT_VALIDATION_FLA => x_cross_segment_validation_fla,
474 	    X_DYNAMIC_INSERTS_ALLOWED_FLAG => x_dynamic_inserts_allowed_flag,
475 	    X_ENABLED_FLAG                 => x_enabled_flag,
476 	    X_FREEZE_FLEX_DEFINITION_FLAG  => x_freeze_flex_definition_flag,
477 	    X_FREEZE_STRUCTURED_HIER_FLAG  => x_freeze_structured_hier_flag,
478 	    X_SHORTHAND_ENABLED_FLAG       => x_shorthand_enabled_flag,
479 	    X_SHORTHAND_LENGTH             => x_shorthand_length,
480 	    X_STRUCTURE_VIEW_NAME          => x_structure_view_name,
481 	    X_ID_FLEX_STRUCTURE_NAME       => x_id_flex_structure_name,
482 	    X_DESCRIPTION                  => x_description,
483 	    X_SHORTHAND_PROMPT             => x_shorthand_prompt,
484 	    X_CREATION_DATE                => x_who.creation_date,
485   	    X_CREATED_BY                   => x_who.created_by,
486 	    X_LAST_UPDATE_DATE             => x_who.last_update_date,
487 	    X_LAST_UPDATED_BY              => x_who.last_updated_by,
488 	    X_LAST_UPDATE_LOGIN            => x_who.last_update_login);
489    END;
490 END load_row;
491 
492 PROCEDURE translate_row
493   (x_application_short_name       IN VARCHAR2,
494    x_id_flex_code                 IN VARCHAR2,
495    x_id_flex_structure_code       IN VARCHAR2,
496    x_who                          IN fnd_flex_loader_apis.who_type,
497    x_id_flex_structure_name       IN VARCHAR2,
498    x_description                  IN VARCHAR2,
499    x_shorthand_prompt             IN VARCHAR2)
500   IS
501 BEGIN
502    UPDATE fnd_id_flex_structures_tl SET
503      id_flex_structure_name = Nvl(x_id_flex_structure_name,
504 				  id_flex_structure_name),
505      description            = Nvl(x_description, description),
506      shorthand_prompt       = Nvl(x_shorthand_prompt, shorthand_prompt),
507      last_update_date       = x_who.last_update_date,
508      last_updated_by        = x_who.last_updated_by,
509      last_update_login      = x_who.last_update_login,
510      source_lang            = userenv('LANG')
511      WHERE ((application_id, id_flex_code, id_flex_num) =
512 	    (SELECT application_id, id_flex_code, id_flex_num
513 	     FROM fnd_id_flex_structures
514 	     WHERE (application_id =
515 		    (SELECT application_id
516 		     FROM fnd_application
517 		     WHERE application_short_name = x_application_short_name))
518 	     AND id_flex_code = x_id_flex_code
519 	     AND id_flex_structure_code = x_id_flex_structure_code))
520      AND userenv('LANG') in (language, source_lang);
521 END translate_row;
522 
523 end FND_ID_FLEX_STRUCTURES_PKG;