1 PACKAGE BODY inv_utility_pvt AS
2 -- $Header: INVFUTLB.pls 115.1 2002/12/30 09:27:23 jsugumar noship $
3
4 g_pkg_name CONSTANT VARCHAR2(30) := 'INV_UTILITY_PVT';
5 pg_file_name VARCHAR2(100) := NULL;
6 pg_path_name VARCHAR2(100) := NULL;
7 pg_fp UTL_FILE.file_type;
8
9 /*=======================================================
10 API name : get_log_dir
11 Type : Private
12 Function : Get path name defined from utl_file_dir
13 ========================================================*/
14 PROCEDURE get_log_dir(
15 x_return_status OUT NOCOPY VARCHAR2
16 , x_msg_count OUT NOCOPY NUMBER
17 , x_msg_data OUT NOCOPY VARCHAR2
18 , x_log_dir OUT NOCOPY VARCHAR2
19 ) IS
20 invalid_dir EXCEPTION;
21 l_write_dir VARCHAR2(2000) := NULL;
22 l_msg VARCHAR2(2000);
23
24 CURSOR get_filedebugdir IS
25 SELECT RTRIM(LTRIM(VALUE))
26 FROM v$parameter
27 WHERE UPPER(NAME) = 'UTL_FILE_DIR';
28
29 BEGIN
30 OPEN get_filedebugdir;
31 FETCH get_filedebugdir INTO l_write_dir;
32
33 IF (l_write_dir IS NULL) THEN
34 RAISE invalid_dir;
35 END IF;
36
37 CLOSE get_filedebugdir;
38
39 IF (INSTR(l_write_dir, ',') > 0) THEN
40 l_write_dir := SUBSTR(l_write_dir, 1, INSTR(l_write_dir, ',') - 1);
41 END IF;
42
43 x_log_dir := l_write_dir;
44 EXCEPTION
45 WHEN invalid_dir THEN
46 x_return_status := fnd_api.g_ret_sts_error;
47 WHEN OTHERS THEN
48 x_return_status := fnd_api.g_ret_sts_error;
49 END get_log_dir;
50
51 /*=======================================================
52 API name : write_debug_file
53 Type : Private
54 Function : Write message to logfile.
55 =======================================================*/
56
57 PROCEDURE write_debug_file(line IN VARCHAR2) IS
58 BEGIN
59 IF (pg_file_name IS NOT NULL) THEN
60 UTL_FILE.put_line(pg_fp, line);
61 UTL_FILE.fflush(pg_fp);
62 END IF;
63 END write_debug_file;
64
65 /*=======================================================
66 API name : open_debug_file
67 Type : Private
68 Function : Open the logfile for writing log message.
69 =======================================================*/
70 PROCEDURE open_debug_file(
71 p_path_name IN VARCHAR2
72 , p_file_name IN VARCHAR2
73 , x_return_status OUT NOCOPY VARCHAR2
74 , x_msg_count OUT NOCOPY NUMBER
75 , x_msg_data OUT NOCOPY VARCHAR2
76 ) IS
77 BEGIN
78 pg_fp := UTL_FILE.fopen(p_path_name, p_file_name, 'a');
79 pg_file_name := p_file_name;
80 pg_path_name := p_path_name;
81 EXCEPTION
82 WHEN UTL_FILE.invalid_path THEN
83 x_return_status := fnd_api.g_ret_sts_error;
84 WHEN UTL_FILE.invalid_mode THEN
85 x_return_status := fnd_api.g_ret_sts_error;
86 END open_debug_file;
87
88 /*=======================================================
89 API name : close_debug_file
90 Type : Private
91 Function : Close the logfile
92 =======================================================*/
93
94 PROCEDURE close_debug_file IS
95 BEGIN
96 IF (pg_file_name IS NOT NULL) THEN
97 UTL_FILE.fclose(pg_fp);
98 END IF;
99 END close_debug_file;
100 END inv_utility_pvt;