1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| procedure PUT_LINE(WHICH in number, BUFF in varchar2) is
temp_file varchar2(255); -- used for messages
user_error varchar2(255); -- to store translated file_error
begin
if WHICH = FND_FILE.LOG then
temp_file := LOG_FNAME;
utl_file.put_line(F_LOG, BUFF);
utl_file.fflush(F_LOG);
elsif WHICH = FND_FILE.OUTPUT then
temp_file := OUT_FNAME;
utl_file.put_line(F_OUT, BUFF);
utl_file.fflush(F_OUT);
end if;
exception
when UTL_FILE.INVALID_FILEHANDLE then
-- first time this could be file not open case
-- try opening temp files and write
WRITE_BUFF(WHICH, 'PUT_LINE', BUFF);
when UTL_FILE.INVALID_OPERATION then
fnd_message.set_name('FND', 'CONC-FILE_ERROR');
fnd_message.set_token('TEMP_FILE', temp_file, FALSE);
user_error := substrb(fnd_message.get, 1, 255);
fnd_message.set_name('FND','CONC-TEMPFILE_INVALID_OPERATN');
fnd_message.set_token('TEMP_FILE', temp_file, FALSE);
fnd_message.set_token('TEMP_DIR', TEMP_DIR, FALSE);
fnd_log.message(FND_LOG.LEVEL_ERROR, 'fnd.plsql.fnd_file.put_line.invalid_operatn', FALSE);
raise_application_error(-20100, user_error);
when UTL_FILE.WRITE_ERROR then
fnd_message.set_name('FND', 'CONC-FILE_ERROR');
fnd_message.set_token('TEMP_FILE', temp_file, FALSE);
user_error := substrb(fnd_message.get, 1, 255);
fnd_message.set_name('FND', 'CONC-TEMPFILE_WRITE_ERROR');
fnd_message.set_token('TEMP_FILE', temp_file, FALSE);
fnd_message.set_token('TEMP_DIR', TEMP_DIR, FALSE);
fnd_log.message(FND_LOG.LEVEL_ERROR, 'fnd.plsql.fnd_file.put_line.write_error', FALSE);
raise_application_error(-20100, user_error);
when others then
raise;
end PUT_LINE; |
Partager