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