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