[Home] [Help]
PACKAGE BODY: APPS.ITG_DEBUG
Source
1 PACKAGE BODY ITG_Debug AS
2 /* ARCS: $Header: itgdbugb.pls 120.1 2005/10/06 02:03:28 bsaratna noship $
3 * CVS: itgdbugb.pls,v 1.17 2003/02/05 18:50:42 ecoe Exp
4 */
5
6 G_SECT_WIDTH CONSTANT NUMBER := 4;
7 G_PROMPT_WIDTH CONSTANT NUMBER := 30;
8
9 g_msg_level NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM;
10 g_pkg_name VARCHAR2(40);
11 g_proc_name VARCHAR2(40);
12 g_changed BOOLEAN;
13
14 l_debug_level NUMBER;
15
16 FUNCTION spacer(
17 p_cnt NUMBER
18 ) RETURN VARCHAR2 IS
19 l_buf VARCHAR2(100) := '';
20 l_cnt NUMBER := p_cnt;
21 BEGIN
22 WHILE l_cnt > 0 LOOP
23 l_buf := l_buf || ' ';
24 l_cnt := l_cnt - 1;
25 END LOOP;
26 RETURN l_buf;
27 END;
28
29 PROCEDURE error_message IS
30 l_buff VARCHAR2(2000);
31 BEGIN
32 /* Insert error prefix before message in fnd_message buffer. */
33 l_buff := FND_MESSAGE.get;
34
35 IF l_debug_level <= 3 THEN
36 cln_debug_pub.Add('ITGDBG>' || G_ERROR_PREFIX || substrb(SQLERRM, 1, 2000 - lengthb(G_ERROR_PREFIX)) , 3);
37 END IF;
38
39 ITG_MSG.text(
40 G_ERROR_PREFIX||substrb(l_buff, 1, 2000 - lengthb(G_ERROR_PREFIX))); /* bug 4002567*/
41 END;
42
43 /* Public procedures. */
44
45 PROCEDURE setup(
46 p_reset BOOLEAN := FALSE,
47 p_msg_level NUMBER := NULL,
48 p_pkg_name VARCHAR2 := NULL,
49 p_proc_name VARCHAR2 := NULL
50 ) IS
51 BEGIN
52 IF p_reset THEN
53 g_msg_level := FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM;
54 g_pkg_name := NULL;
55 g_proc_name := NULL;
56 g_changed := FALSE;
57 END IF;
58 IF p_msg_level IS NOT NULL AND
59 p_msg_level >= FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW AND
60 p_msg_level <= FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR THEN
61 g_msg_level := p_msg_level;
62 END IF;
63 IF p_pkg_name IS NOT NULL THEN
64 g_pkg_name := substrb(p_pkg_name, 1, 40); /* bug 4002567*/
65 g_changed := TRUE;
66 END IF;
67 IF p_proc_name IS NOT NULL THEN
68 g_proc_name := substrb(p_proc_name, 1, 40); /* bug 4002567*/
69 g_changed := TRUE;
70 END IF;
71 END setup;
72
73
74 --- THIS DOES THE WORK
75 --- SET CLN LOGGING to Statement.
76 PROCEDURE msg(
77 p_text VARCHAR2,
78 p_error BOOLEAN := FALSE
79 ) IS
80
81 l_err VARCHAR2(20);
82 BEGIN
83 IF p_error THEN
84 l_err := '[ERROR] ';
85 END IF;
86
87 IF l_debug_level <= 1 THEN
88 cln_debug_pub.Add('ITG Debug - ' || l_err || substrb(p_text,1,2000), 1);
89 END IF;
90
91 IF p_error THEN
92 ITG_MSG.debug_more(substrb(p_text,1,2000));
93 END IF;
94 END;
95
96
97 PROCEDURE msg(
98 p_sect VARCHAR2,
99 p_text VARCHAR2,
100 p_error BOOLEAN := FALSE
101 ) IS
102 BEGIN
103 msg(p_sect || ': ' || spacer(G_SECT_WIDTH - length(p_sect)) ||
104 NVL(p_text, 'NULL'), p_error);
105 END;
106
107 PROCEDURE msg(
108 p_sect VARCHAR2,
109 p_prompt VARCHAR2,
110 p_value VARCHAR2,
111 p_quote BOOLEAN := FALSE,
112 p_error BOOLEAN := FALSE
113 ) IS
114 l_value VARCHAR2(2000);
115 BEGIN
116 IF p_value IS NULL THEN
117 l_value := 'NULL';
118 ELSIF p_quote THEN
119 l_value := ''''||p_value||'''';
120 ELSE
121 l_value := p_value;
122 END IF;
123 msg(p_sect,
124 p_prompt||spacer(G_PROMPT_WIDTH - length(p_prompt))||' = '||l_value,
125 p_error);
126 END;
127
128 PROCEDURE msg(
129 p_sect VARCHAR2,
130 p_prompt VARCHAR2,
131 p_value NUMBER,
132 p_error BOOLEAN := FALSE
133 ) IS
134 BEGIN
135 msg(p_sect, p_prompt, to_char(p_value), p_error);
136 END;
137
138 PROCEDURE msg(
139 p_sect VARCHAR2,
140 p_prompt VARCHAR2,
141 p_value DATE,
142 p_error BOOLEAN := FALSE
143 ) IS
144 BEGIN
145 msg(p_sect, p_prompt, to_char(p_value), p_error);
146 END;
147
148 PROCEDURE add_error(
149 p_level NUMBER := FND_MSG_PUB.G_MSG_LVL_ERROR
150 ) IS
151 BEGIN
152 IF FND_MSG_PUB.Check_Msg_Level(p_level) THEN
153 error_message;
154 FND_MSG_PUB.Add;
155 END IF;
156 END add_error;
157
158 PROCEDURE add_exc_error(
159 p_pkg_name VARCHAR2,
160 p_api_name VARCHAR2,
161 p_level NUMBER := FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
162 ) IS
163 BEGIN
164
165
166 IF FND_MSG_PUB.Check_Msg_Level(p_level) THEN
167 ITG_MSG.text(
168 G_ERROR_PREFIX||substrb(SQLERRM, 1, 2000 - lengthb(G_ERROR_PREFIX))); /* bug 4002567*/
169 FND_MSG_PUB.Add;
170 FND_MSG_PUB.Build_Exc_Msg(p_pkg_name, p_api_name, 'exceptional error');
171 error_message;
172 FND_MSG_PUB.Add;
173 END IF;
174 END add_exc_error;
175
176 PROCEDURE flush_to_logfile(
177 p_dir_name VARCHAR2 := NULL,
178 p_file_name VARCHAR2 := NULL
179 ) IS
180 l_dir_name VARCHAR2(500);
181 l_file_name VARCHAR2(200);
182 l_fh UTL_FILE.file_type;
183 l_text VARCHAR2(2000);
184 l_inxout NUMBER;
185 i NUMBER;
186 BEGIN
187 IF p_dir_name IS NULL THEN
188 l_dir_name := FND_PROFILE.value('CLN_DEBUG_LOG_DIRECTORY');
189 ELSE
190 l_dir_name := p_dir_name;
191 END IF;
192
193 IF p_file_name IS NULL THEN
194 l_file_name :=
195 'itg-'||lower(to_char(sysdate, 'DD-MON-YYYY-HH24-MI-SS'))||'.log';
196 ELSE
197 l_file_name := p_file_name;
198 END IF;
199
200 IF l_dir_name IS NOT NULL THEN
201 FND_MSG_PUB.get(
202 p_msg_index => FND_MSG_PUB.G_FIRST,
203 p_encoded => FND_API.G_FALSE,
204 p_data => l_text,
205 p_msg_index_out => l_inxout);
206 IF l_text IS NULL THEN
207 RETURN;
208 END IF;
209 l_fh := UTL_FILE.fopen(l_dir_name, l_file_name, 'w');
210 WHILE l_text IS NOT NULL LOOP
211 i := instr(l_text, ITG_Debug.G_ERROR_PREFIX);
212 IF i > 0 THEN
213 l_text := substr(l_text, length(ITG_Debug.G_ERROR_PREFIX) + i);
214 END IF;
215 UTL_FILE.put_line(l_fh, l_text);
216 FND_MSG_PUB.get(
217 p_msg_index => FND_MSG_PUB.G_NEXT,
218 p_encoded => FND_API.G_FALSE,
219 p_data => l_text,
220 p_msg_index_out => l_inxout);
221 END LOOP;
222 UTL_FILE.fclose(l_fh);
223 END IF;
224 FND_MSG_PUB.Delete_Msg;
225 EXCEPTION WHEN OTHERS THEN
226 NULL; -- added this section to capture lower level exceptions if any. 3554249
227 END flush_to_logfile;
228
229 BEGIN
230 l_debug_level := to_number(nvl(fnd_profile.value('CLN_DEBUG_LEVEL'), '5'));
231 EXCEPTION
232 WHEN OTHERS THEN
233 NULL;
234 END ITG_Debug;