[Home] [Help]
PACKAGE BODY: APPS.FA_RX_REP_COLUMNS_PKG
Source
1 package body FA_RX_REP_COLUMNS_PKG as
2 /* $Header: faxrxrcb.pls 120.6 2009/03/27 01:57:03 bridgway ship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out nocopy VARCHAR2,
5 X_REPORT_ID in NUMBER,
6 X_ATTRIBUTE_SET in VARCHAR2,
7 X_COLUMN_NAME in VARCHAR2,
8 X_CURRENCY_COLUMN in VARCHAR2,
9 X_PRECISION in NUMBER,
10 X_BREAK_GROUP_LEVEL in NUMBER,
11 X_MINIMUM_ACCOUNTABLE_UNIT in NUMBER,
12 X_UNITS in NUMBER,
13 X_FORMAT_MASK in VARCHAR2,
14 X_ORDERING in VARCHAR2,
15 X_DISPLAY_LENGTH in NUMBER,
16 X_DISPLAY_FORMAT in VARCHAR2,
17 X_DISPLAY_STATUS in VARCHAR2,
18 X_BREAK in VARCHAR2,
19 X_ATTRIBUTE_COUNTER in NUMBER,
20 X_ATTRIBUTE_NAME in VARCHAR2,
21 X_CREATION_DATE in DATE,
22 X_CREATED_BY in NUMBER,
23 X_LAST_UPDATE_DATE in DATE,
24 X_LAST_UPDATED_BY in NUMBER,
25 X_LAST_UPDATE_LOGIN in NUMBER
26 ) is
27 cursor C is select ROWID from FA_RX_REP_COLUMNS_B
28 where REPORT_ID = X_REPORT_ID
29 and ATTRIBUTE_SET = X_ATTRIBUTE_SET
30 and COLUMN_NAME = X_COLUMN_NAME
31 ;
32 begin
33 insert into FA_RX_REP_COLUMNS_B (
34 CURRENCY_COLUMN,
35 PRECISION,
36 BREAK_GROUP_LEVEL,
37 MINIMUM_ACCOUNTABLE_UNIT,
38 UNITS,
39 FORMAT_MASK,
40 REPORT_ID,
41 COLUMN_NAME,
42 ORDERING,
43 DISPLAY_LENGTH,
44 DISPLAY_FORMAT,
45 DISPLAY_STATUS,
46 ATTRIBUTE_SET,
47 BREAK,
48 ATTRIBUTE_COUNTER,
49 CREATION_DATE,
50 CREATED_BY,
51 LAST_UPDATE_DATE,
52 LAST_UPDATED_BY,
53 LAST_UPDATE_LOGIN
54 ) values (
55 X_CURRENCY_COLUMN,
56 X_PRECISION,
57 X_BREAK_GROUP_LEVEL,
58 X_MINIMUM_ACCOUNTABLE_UNIT,
59 X_UNITS,
60 X_FORMAT_MASK,
61 X_REPORT_ID,
62 X_COLUMN_NAME,
63 X_ORDERING,
64 X_DISPLAY_LENGTH,
65 X_DISPLAY_FORMAT,
66 X_DISPLAY_STATUS,
67 X_ATTRIBUTE_SET,
68 X_BREAK,
69 X_ATTRIBUTE_COUNTER,
70 X_CREATION_DATE,
71 X_CREATED_BY,
72 X_LAST_UPDATE_DATE,
73 X_LAST_UPDATED_BY,
74 X_LAST_UPDATE_LOGIN
75 );
76
77 insert into FA_RX_REP_COLUMNS_TL (
78 REPORT_ID,
79 ATTRIBUTE_SET,
80 COLUMN_NAME,
81 ATTRIBUTE_NAME,
82 LAST_UPDATE_DATE,
83 LAST_UPDATE_LOGIN,
84 LAST_UPDATED_BY,
85 CREATED_BY,
86 CREATION_DATE,
87 LANGUAGE,
88 SOURCE_LANG
89 ) select
90 X_REPORT_ID,
91 X_ATTRIBUTE_SET,
92 X_COLUMN_NAME,
93 X_ATTRIBUTE_NAME,
94 X_LAST_UPDATE_DATE,
95 X_LAST_UPDATE_LOGIN,
96 X_LAST_UPDATED_BY,
97 X_CREATED_BY,
98 X_CREATION_DATE,
99 L.LANGUAGE_CODE,
100 userenv('LANG')
101 from FND_LANGUAGES L
102 where L.INSTALLED_FLAG in ('I', 'B')
103 and not exists
104 (select NULL
105 from FA_RX_REP_COLUMNS_TL T
106 where T.REPORT_ID = X_REPORT_ID
107 and T.ATTRIBUTE_SET = X_ATTRIBUTE_SET
108 and T.COLUMN_NAME = X_COLUMN_NAME
109 and T.LANGUAGE = L.LANGUAGE_CODE);
110
111 open c;
112 fetch c into X_ROWID;
113 if (c%notfound) then
114 close c;
115 raise no_data_found;
116 end if;
117 close c;
118
119 end INSERT_ROW;
120
121 procedure LOCK_ROW (
122 X_REPORT_ID in NUMBER,
123 X_ATTRIBUTE_SET in VARCHAR2,
124 X_COLUMN_NAME in VARCHAR2,
125 X_CURRENCY_COLUMN in VARCHAR2,
126 X_PRECISION in NUMBER,
127 X_BREAK_GROUP_LEVEL in NUMBER,
128 X_MINIMUM_ACCOUNTABLE_UNIT in NUMBER,
129 X_UNITS in NUMBER,
130 X_FORMAT_MASK in VARCHAR2,
131 X_ORDERING in VARCHAR2,
132 X_DISPLAY_LENGTH in NUMBER,
133 X_DISPLAY_FORMAT in VARCHAR2,
134 X_DISPLAY_STATUS in VARCHAR2,
135 X_BREAK in VARCHAR2,
136 X_ATTRIBUTE_COUNTER in NUMBER,
137 X_ATTRIBUTE_NAME in VARCHAR2
138 ) is
139 cursor c is select
140 CURRENCY_COLUMN,
141 PRECISION,
142 BREAK_GROUP_LEVEL,
143 MINIMUM_ACCOUNTABLE_UNIT,
144 UNITS,
145 FORMAT_MASK,
146 ORDERING,
147 DISPLAY_LENGTH,
148 DISPLAY_FORMAT,
149 DISPLAY_STATUS,
150 BREAK,
151 ATTRIBUTE_COUNTER
152 from FA_RX_REP_COLUMNS_B
153 where REPORT_ID = X_REPORT_ID
154 and ATTRIBUTE_SET = X_ATTRIBUTE_SET
155 and COLUMN_NAME = X_COLUMN_NAME
156 for update of REPORT_ID nowait;
157 recinfo c%rowtype;
158
159 cursor c1 is select
160 ATTRIBUTE_NAME,
161 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
162 from FA_RX_REP_COLUMNS_TL
163 where REPORT_ID = X_REPORT_ID
164 and ATTRIBUTE_SET = X_ATTRIBUTE_SET
165 and COLUMN_NAME = X_COLUMN_NAME
166 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
167 for update of REPORT_ID nowait;
168 begin
169 open c;
170 fetch c into recinfo;
171 if (c%notfound) then
172 close c;
173 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
174 app_exception.raise_exception;
175 end if;
176 close c;
177 if ( ((recinfo.CURRENCY_COLUMN = X_CURRENCY_COLUMN)
178 OR ((recinfo.CURRENCY_COLUMN is null) AND (X_CURRENCY_COLUMN is null)))
179 AND ((recinfo.PRECISION = X_PRECISION)
180 OR ((recinfo.PRECISION is null) AND (X_PRECISION is null)))
181 AND ((recinfo.BREAK_GROUP_LEVEL = X_BREAK_GROUP_LEVEL)
182 OR ((recinfo.BREAK_GROUP_LEVEL is null) AND (X_BREAK_GROUP_LEVEL is null)))
183 AND ((recinfo.MINIMUM_ACCOUNTABLE_UNIT = X_MINIMUM_ACCOUNTABLE_UNIT)
184 OR ((recinfo.MINIMUM_ACCOUNTABLE_UNIT is null) AND (X_MINIMUM_ACCOUNTABLE_UNIT is null)))
185 AND ((recinfo.UNITS = X_UNITS)
186 OR ((recinfo.UNITS is null) AND (X_UNITS is null)))
187 AND ((recinfo.FORMAT_MASK = X_FORMAT_MASK)
188 OR ((recinfo.FORMAT_MASK is null) AND (X_FORMAT_MASK is null)))
189 AND ((recinfo.ORDERING = X_ORDERING)
190 OR ((recinfo.ORDERING is null) AND (X_ORDERING is null)))
191 AND ((recinfo.DISPLAY_LENGTH = X_DISPLAY_LENGTH)
192 OR ((recinfo.DISPLAY_LENGTH is null) AND (X_DISPLAY_LENGTH is null)))
193 AND ((recinfo.DISPLAY_FORMAT = X_DISPLAY_FORMAT)
194 OR ((recinfo.DISPLAY_FORMAT is null) AND (X_DISPLAY_FORMAT is null)))
195 AND (recinfo.DISPLAY_STATUS = X_DISPLAY_STATUS)
196 AND ((recinfo.BREAK = X_BREAK)
197 OR ((recinfo.BREAK is null) AND (X_BREAK is null)))
198 AND ((recinfo.ATTRIBUTE_COUNTER = X_ATTRIBUTE_COUNTER)
199 OR ((recinfo.ATTRIBUTE_COUNTER is null) AND (X_ATTRIBUTE_COUNTER is null)))
200 ) then
201 null;
202 else
203 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
204 app_exception.raise_exception;
205 end if;
206
207 for tlinfo in c1 loop
208 if (tlinfo.BASELANG = 'Y') then
209 if ( (tlinfo.ATTRIBUTE_NAME = X_ATTRIBUTE_NAME)
210 ) then
211 null;
212 else
213 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
214 app_exception.raise_exception;
215 end if;
216 end if;
217 end loop;
218 return;
219 end LOCK_ROW;
220
221 procedure UPDATE_ROW (
222 X_REPORT_ID in NUMBER,
223 X_ATTRIBUTE_SET in VARCHAR2,
224 X_COLUMN_NAME in VARCHAR2,
225 X_CURRENCY_COLUMN in VARCHAR2,
226 X_PRECISION in NUMBER,
227 X_BREAK_GROUP_LEVEL in NUMBER,
228 X_MINIMUM_ACCOUNTABLE_UNIT in NUMBER,
229 X_UNITS in NUMBER,
230 X_FORMAT_MASK in VARCHAR2,
231 X_ORDERING in VARCHAR2,
232 X_DISPLAY_LENGTH in NUMBER,
233 X_DISPLAY_FORMAT in VARCHAR2,
234 X_DISPLAY_STATUS in VARCHAR2,
235 X_BREAK in VARCHAR2,
236 X_ATTRIBUTE_COUNTER in NUMBER,
237 X_ATTRIBUTE_NAME in VARCHAR2,
238 X_LAST_UPDATE_DATE in DATE,
239 X_LAST_UPDATED_BY in NUMBER,
240 X_LAST_UPDATE_LOGIN in NUMBER
241 ) is
242 begin
243 update FA_RX_REP_COLUMNS_B set
244 CURRENCY_COLUMN = X_CURRENCY_COLUMN,
245 PRECISION = X_PRECISION,
246 BREAK_GROUP_LEVEL = X_BREAK_GROUP_LEVEL,
247 MINIMUM_ACCOUNTABLE_UNIT = X_MINIMUM_ACCOUNTABLE_UNIT,
248 UNITS = X_UNITS,
249 FORMAT_MASK = X_FORMAT_MASK,
250 ORDERING = X_ORDERING,
251 DISPLAY_LENGTH = X_DISPLAY_LENGTH,
252 DISPLAY_FORMAT = X_DISPLAY_FORMAT,
253 DISPLAY_STATUS = X_DISPLAY_STATUS,
254 BREAK = X_BREAK,
255 ATTRIBUTE_COUNTER = X_ATTRIBUTE_COUNTER,
256 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
257 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
258 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
259 where REPORT_ID = X_REPORT_ID
260 and ATTRIBUTE_SET = X_ATTRIBUTE_SET
261 and COLUMN_NAME = X_COLUMN_NAME;
262
263 if (sql%notfound) then
264 raise no_data_found;
265 end if;
266
267 update FA_RX_REP_COLUMNS_TL set
268 ATTRIBUTE_NAME = X_ATTRIBUTE_NAME,
269 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
270 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
271 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
272 SOURCE_LANG = userenv('LANG')
273 where REPORT_ID = X_REPORT_ID
274 and ATTRIBUTE_SET = X_ATTRIBUTE_SET
275 and COLUMN_NAME = X_COLUMN_NAME
276 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
277
278 if (sql%notfound) then
279 raise no_data_found;
280 end if;
281 end UPDATE_ROW;
282
283 procedure DELETE_ROW (
284 X_REPORT_ID in NUMBER,
285 X_ATTRIBUTE_SET in VARCHAR2,
286 X_COLUMN_NAME in VARCHAR2
287 ) is
288 begin
289 delete from FA_RX_REP_COLUMNS_TL
290 where REPORT_ID = X_REPORT_ID
291 and ATTRIBUTE_SET = X_ATTRIBUTE_SET
292 and COLUMN_NAME = X_COLUMN_NAME;
293
294 if (sql%notfound) then
295 raise no_data_found;
296 end if;
297
298 delete from FA_RX_REP_COLUMNS_B
299 where REPORT_ID = X_REPORT_ID
300 and ATTRIBUTE_SET = X_ATTRIBUTE_SET
301 and COLUMN_NAME = X_COLUMN_NAME;
302
303 if (sql%notfound) then
304 raise no_data_found;
305 end if;
306 end DELETE_ROW;
307
308 procedure ADD_LANGUAGE
309 is
310 begin
311 delete from FA_RX_REP_COLUMNS_TL T
312 where not exists
313 (select NULL
314 from FA_RX_REP_COLUMNS_B B
315 where B.REPORT_ID = T.REPORT_ID
316 and B.ATTRIBUTE_SET = T.ATTRIBUTE_SET
317 and B.COLUMN_NAME = T.COLUMN_NAME
318 );
319
320 update FA_RX_REP_COLUMNS_TL T set (
321 ATTRIBUTE_NAME
322 ) = (select
323 B.ATTRIBUTE_NAME
324 from FA_RX_REP_COLUMNS_TL B
325 where B.REPORT_ID = T.REPORT_ID
326 and B.ATTRIBUTE_SET = T.ATTRIBUTE_SET
327 and B.COLUMN_NAME = T.COLUMN_NAME
328 and B.LANGUAGE = T.SOURCE_LANG)
329 where (
330 T.REPORT_ID,
331 T.ATTRIBUTE_SET,
332 T.COLUMN_NAME,
333 T.LANGUAGE
334 ) in (select
335 SUBT.REPORT_ID,
336 SUBT.ATTRIBUTE_SET,
337 SUBT.COLUMN_NAME,
338 SUBT.LANGUAGE
339 from FA_RX_REP_COLUMNS_TL SUBB, FA_RX_REP_COLUMNS_TL SUBT
340 where SUBB.REPORT_ID = SUBT.REPORT_ID
341 and SUBB.ATTRIBUTE_SET = SUBT.ATTRIBUTE_SET
342 and SUBB.COLUMN_NAME = SUBT.COLUMN_NAME
343 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
344 and (SUBB.ATTRIBUTE_NAME <> SUBT.ATTRIBUTE_NAME
345 ));
346
347 insert into FA_RX_REP_COLUMNS_TL (
348 REPORT_ID,
349 ATTRIBUTE_SET,
350 COLUMN_NAME,
351 ATTRIBUTE_NAME,
352 LAST_UPDATE_DATE,
353 LAST_UPDATE_LOGIN,
354 LAST_UPDATED_BY,
355 CREATED_BY,
356 CREATION_DATE,
357 LANGUAGE,
358 SOURCE_LANG
359 ) select
360 B.REPORT_ID,
361 B.ATTRIBUTE_SET,
362 B.COLUMN_NAME,
363 B.ATTRIBUTE_NAME,
364 B.LAST_UPDATE_DATE,
365 B.LAST_UPDATE_LOGIN,
366 B.LAST_UPDATED_BY,
367 B.CREATED_BY,
368 B.CREATION_DATE,
369 L.LANGUAGE_CODE,
370 B.SOURCE_LANG
371 from FA_RX_REP_COLUMNS_TL B, FND_LANGUAGES L
372 where L.INSTALLED_FLAG in ('I', 'B')
373 and B.LANGUAGE = userenv('LANG')
374 and not exists
375 (select NULL
376 from FA_RX_REP_COLUMNS_TL T
377 where T.REPORT_ID = B.REPORT_ID
378 and T.ATTRIBUTE_SET = B.ATTRIBUTE_SET
379 and T.COLUMN_NAME = B.COLUMN_NAME
380 and T.LANGUAGE = L.LANGUAGE_CODE);
381 end ADD_LANGUAGE;
382
383 procedure LOAD_ROW(
384 X_REPORT_ID in NUMBER,
385 X_ATTRIBUTE_SET in VARCHAR2,
386 X_COLUMN_NAME in VARCHAR2,
387 X_CURRENCY_COLUMN in VARCHAR2,
388 X_PRECISION in NUMBER,
389 X_BREAK_GROUP_LEVEL in NUMBER,
390 X_MINIMUM_ACCOUNTABLE_UNIT in NUMBER,
391 X_UNITS in NUMBER,
392 X_FORMAT_MASK in VARCHAR2,
393 X_ORDERING in VARCHAR2,
394 X_DISPLAY_LENGTH in NUMBER,
395 X_DISPLAY_FORMAT in VARCHAR2,
396 X_DISPLAY_STATUS in VARCHAR2,
397 X_BREAK in VARCHAR2,
398 X_ATTRIBUTE_COUNTER in NUMBER,
399 X_ATTRIBUTE_NAME in VARCHAR2,
400 X_OWNER in VARCHAR2) is
401 begin
402 LOAD_ROW(
403 X_REPORT_ID => X_REPORT_ID ,
404 X_ATTRIBUTE_SET => X_ATTRIBUTE_SET ,
405 X_COLUMN_NAME => X_COLUMN_NAME ,
406 X_CURRENCY_COLUMN => X_CURRENCY_COLUMN ,
407 X_PRECISION => X_PRECISION ,
408 X_BREAK_GROUP_LEVEL => X_BREAK_GROUP_LEVEL ,
409 X_MINIMUM_ACCOUNTABLE_UNIT => X_MINIMUM_ACCOUNTABLE_UNIT ,
410 X_UNITS => X_UNITS ,
411 X_FORMAT_MASK => X_FORMAT_MASK ,
412 X_ORDERING => X_ORDERING ,
413 X_DISPLAY_LENGTH => X_DISPLAY_LENGTH ,
414 X_DISPLAY_FORMAT => X_DISPLAY_FORMAT ,
415 X_DISPLAY_STATUS => X_DISPLAY_STATUS ,
416 X_BREAK => X_BREAK ,
417 X_ATTRIBUTE_COUNTER => X_ATTRIBUTE_COUNTER ,
418 X_ATTRIBUTE_NAME => X_ATTRIBUTE_NAME ,
419 X_OWNER => X_OWNER ,
420 X_LAST_UPDATE_DATE => null ,
421 X_CUSTOM_MODE => null
422 );
426 X_REPORT_ID in NUMBER,
423 end LOAD_ROW;
424
425 procedure LOAD_ROW(
427 X_ATTRIBUTE_SET in VARCHAR2,
428 X_COLUMN_NAME in VARCHAR2,
429 X_CURRENCY_COLUMN in VARCHAR2,
430 X_PRECISION in NUMBER,
431 X_BREAK_GROUP_LEVEL in NUMBER,
432 X_MINIMUM_ACCOUNTABLE_UNIT in NUMBER,
433 X_UNITS in NUMBER,
434 X_FORMAT_MASK in VARCHAR2,
435 X_ORDERING in VARCHAR2,
436 X_DISPLAY_LENGTH in NUMBER,
437 X_DISPLAY_FORMAT in VARCHAR2,
438 X_DISPLAY_STATUS in VARCHAR2,
439 X_BREAK in VARCHAR2,
440 X_ATTRIBUTE_COUNTER in NUMBER,
441 X_ATTRIBUTE_NAME in VARCHAR2,
442 X_OWNER in VARCHAR2,
443 X_LAST_UPDATE_DATE in VARCHAR2,
444 X_CUSTOM_MODE in VARCHAR2
445 ) is
446 --* Bug#5102292, rravunny
447 --* Begin
448 --*
449 f_luby number; -- entity owner in file
450 f_ludate date; -- entity update date in file
451 db_luby number; -- entity owner in db
452 db_ludate date; -- entity update date in db
453 db_luby_tl number; -- entity owner in db for _tl
454 db_ludate_tl date; -- entity update date in db for _tl
455
456 --* End
457 --*
458 begin
459 declare
460
461 row_id varchar2(64);
462 user_id number := 0;
463 begin
464
465 --* Bug#5102292, rravunny
466 --* Begin
467 --*
468 f_luby := fnd_load_util.owner_id(X_Owner);
469
470 -- Translate char last_update_date to date
471 f_ludate := nvl(to_date(X_Last_Update_Date, 'YYYY/MM/DD HH24:MI:SS'), sysdate);
472
473 select LAST_UPDATED_BY, LAST_UPDATE_DATE
474 into db_luby, db_ludate
475 from fa_rx_rep_columns_b
476 where report_id = X_Report_Id
477 and ATTRIBUTE_SET = X_ATTRIBUTE_SET
478 and column_name = X_Column_Name;
479
480 Begin
481 select LAST_UPDATED_BY, LAST_UPDATE_DATE
482 into db_luby_tl, db_ludate_tl
483 from fa_rx_rep_columns_tl
484 where report_id = X_Report_Id
485 and ATTRIBUTE_SET = X_ATTRIBUTE_SET
486 and column_name = X_Column_Name
487 and language = userenv('LANG');
488 Exception
489 When Others Then
490 db_luby_tl := db_luby;
491 db_ludate_tl := db_ludate;
492 End;
493
494 --* End
495 --*
496
497 If (
498 fnd_load_util.upload_test(f_luby, f_ludate, db_luby, db_ludate, X_CUSTOM_MODE)
499 and
500 fnd_load_util.upload_test(f_luby, f_ludate, db_luby_tl, db_ludate_tl, X_CUSTOM_MODE)
501 )
502 Then
503 UPDATE_ROW(
504 X_REPORT_ID => X_REPORT_ID,
505 X_ATTRIBUTE_SET => X_ATTRIBUTE_SET,
506 X_COLUMN_NAME => X_COLUMN_NAME,
507 X_CURRENCY_COLUMN => X_CURRENCY_COLUMN,
508 X_PRECISION => X_PRECISION,
509 X_BREAK_GROUP_LEVEL => X_BREAK_GROUP_LEVEL,
510 X_MINIMUM_ACCOUNTABLE_UNIT => X_MINIMUM_ACCOUNTABLE_UNIT,
511 X_UNITS => X_UNITS,
512 X_FORMAT_MASK => X_FORMAT_MASK,
513 X_ORDERING => X_ORDERING,
514 X_DISPLAY_LENGTH => X_DISPLAY_LENGTH,
515 X_DISPLAY_FORMAT => X_DISPLAY_FORMAT,
516 X_DISPLAY_STATUS => X_DISPLAY_STATUS,
517 X_BREAK => X_BREAK,
518 X_ATTRIBUTE_COUNTER => X_ATTRIBUTE_COUNTER,
519 X_ATTRIBUTE_NAME => X_ATTRIBUTE_NAME,
520 X_LAST_UPDATE_DATE => f_ludate,
521 X_LAST_UPDATED_BY => f_luby,
522 X_LAST_UPDATE_LOGIN => 0);
523 End If;
524 exception
525 when NO_DATA_FOUND then
526 INSERT_ROW(
527 X_ROWID => row_id,
528 X_REPORT_ID => X_REPORT_ID,
529 X_ATTRIBUTE_SET => X_ATTRIBUTE_SET,
530 X_COLUMN_NAME => X_COLUMN_NAME,
531 X_CURRENCY_COLUMN => X_CURRENCY_COLUMN,
532 X_PRECISION => X_PRECISION,
533 X_BREAK_GROUP_LEVEL => X_BREAK_GROUP_LEVEL,
534 X_MINIMUM_ACCOUNTABLE_UNIT => X_MINIMUM_ACCOUNTABLE_UNIT,
535 X_UNITS => X_UNITS,
536 X_FORMAT_MASK => X_FORMAT_MASK,
537 X_ORDERING => X_ORDERING,
538 X_DISPLAY_LENGTH => X_DISPLAY_LENGTH,
539 X_DISPLAY_FORMAT => X_DISPLAY_FORMAT,
540 X_DISPLAY_STATUS => X_DISPLAY_STATUS,
541 X_BREAK => X_BREAK,
542 X_ATTRIBUTE_COUNTER => X_ATTRIBUTE_COUNTER,
543 X_ATTRIBUTE_NAME => X_ATTRIBUTE_NAME,
544 X_CREATION_DATE => f_ludate,
545 X_CREATED_BY => f_luby,
546 X_LAST_UPDATE_DATE => f_ludate,
547 X_LAST_UPDATED_BY => f_luby,
548 X_LAST_UPDATE_LOGIN => 0);
549 end;
550 end LOAD_ROW;
551
552 procedure TRANSLATE_ROW(
553 X_REPORT_ID in NUMBER,
554 X_ATTRIBUTE_SET in VARCHAR2,
555 X_COLUMN_NAME in VARCHAR2,
556 X_ATTRIBUTE_NAME in VARCHAR2,
557 X_OWNER in VARCHAR2
558 )
559 Is
560 Begin
561 TRANSLATE_ROW(
562 X_REPORT_ID => X_REPORT_ID,
563 X_ATTRIBUTE_SET => X_ATTRIBUTE_SET,
564 X_COLUMN_NAME => X_COLUMN_NAME,
565 X_ATTRIBUTE_NAME => X_ATTRIBUTE_NAME,
566 X_OWNER => X_OWNER,
567 X_LAST_UPDATE_DATE => null,
568 X_CUSTOM_MODE => null);
569 End TRANSLATE_ROW;
570
571 procedure TRANSLATE_ROW(
572 X_REPORT_ID in NUMBER,
573 X_ATTRIBUTE_SET in VARCHAR2,
574 X_COLUMN_NAME in VARCHAR2,
575 X_ATTRIBUTE_NAME in VARCHAR2,
576 X_OWNER in VARCHAR2,
577 X_LAST_UPDATE_DATE in VARCHAR2,
578 X_CUSTOM_MODE in VARCHAR2
579 ) is
580 f_luby number; -- entity owner in file
581 f_ludate date; -- entity update date in file
582 begin
583 --* Bug#5102292, rravunny
584 --* Begin
585 --*
586 f_luby := fnd_load_util.owner_id(X_Owner);
587
588 -- Translate char last_update_date to date
589 f_ludate := nvl(to_date(X_Last_Update_Date, 'YYYY/MM/DD HH24:MI:SS'), sysdate);
590
591 --* End
592 --*
593 update fa_rx_rep_columns_tl set
594 attribute_name = X_ATTRIBUTE_NAME,
598 SOURCE_LANG = userenv('LANG')
595 LAST_UPDATE_DATE = f_ludate,
596 LAST_UPDATED_BY = f_luby,
597 LAST_UPDATE_LOGIN = 0,
599 where
600 report_id = X_REPORT_ID
601 and attribute_set = X_ATTRIBUTE_SET
602 and column_name = X_COLUMN_NAME
603 and userenv('LANG') in (language, source_lang);
607 X_REPORT_ID in NUMBER,
604 end TRANSLATE_ROW;
605
606 procedure RENUMBER_COLUMNS(
608 X_ATTRIBUTE_SET in VARCHAR2,
609 X_LAST_UPDATE_DATE in DATE,
610 X_LAST_UPDATED_BY in NUMBER,
611 X_LAST_UPDATE_LOGIN in NUMBER,
612 X_MAX_ATTRIBUTE_COUNTER out nocopy NUMBER,
613 X_MAX_BREAK_GROUP_LEVEL out nocopy NUMBER) is
614
615 curr_attribute_counter NUMBER := 0;
616 curr_break_level NUMBER := 0;
617 prev_break VARCHAR2(1) := 'Y';
618 prev_break_level NUMBER := NULL;
619
620 CURSOR ccol IS SELECT
621 report_id,
622 attribute_set,
623 column_name,
624 Nvl(break, 'N') break,
625 break_group_level,
626 attribute_counter,
627 last_update_date,
628 last_updated_by,
629 last_update_login
630 FROM fa_rx_rep_columns_b
631 WHERE
632 report_id = X_REPORT_ID AND
633 attribute_set = X_ATTRIBUTE_SET AND
634 display_status = 'YES'
635 ORDER BY Nvl(break, 'N') DESC, break_group_level, attribute_counter
636 FOR UPDATE;
637 begin
638 FOR crow IN ccol LOOP
639 curr_attribute_counter := curr_attribute_counter + 1;
640 IF prev_break = 'Y' AND crow.break = 'N' THEN
641 curr_break_level := curr_break_level + 1;
642 ELSIF crow.break = 'Y' AND
643 (prev_break_level IS NULL OR
644 crow.break_group_level IS NULL OR
645 prev_break_level <> crow.break_group_level) THEN
646 curr_break_level := curr_break_level + 1;
647 END IF;
648
649 UPDATE fa_rx_rep_columns_b SET
650 break = crow.break,
651 break_group_level = curr_break_level,
652 attribute_counter = curr_attribute_counter,
653 last_update_date = X_LAST_UPDATE_DATE,
654 last_updated_by = X_LAST_UPDATED_BY,
655 last_update_login = X_LAST_UPDATE_LOGIN
656 WHERE CURRENT OF ccol;
657
658 prev_break := crow.break;
659 prev_break_level := crow.break_group_level;
660 END LOOP;
661
662 X_MAX_ATTRIBUTE_COUNTER := curr_attribute_counter;
663 X_MAX_BREAK_GROUP_LEVEL := curr_break_level;
664 end RENUMBER_COLUMNS;
665
666
667 end FA_RX_REP_COLUMNS_PKG;