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