[Home] [Help]
PACKAGE BODY: APPS.XTR_RISK_DEBUG_PKG
Source
1 PACKAGE BODY XTR_RISK_DEBUG_PKG as
2 /* $Header: xtrrmbgb.pls 115.14 2003/11/22 00:40:23 prafiuly ship $ */
3 /*========================== risk_debug ============================*/
4
5 /*===========================================================================
6
7 PROCEDURE NAME: write_output (private)
8
9 DESCRIPTION: This procedure writes output to the requested areas
10
11 PARAMETERS: p_Line IN VARCHAR2
12
13 ===========================================================================*/
14 PROCEDURE write_output(p_Line IN VARCHAR2)
15 IS
16
17 BEGIN
18
19 IF g_sql_debug THEN
20 --dbms_output.put_line(SUBSTR(p_Line, 1, 200));
21 null;
22 ELSE
23
24 utl_file.put_line(g_FileHandle, SUBSTR(p_Line, 1, 1000));
25 utl_file.fflush(g_FileHandle);
26 END IF;
27
28 END write_output;
29
30
31
32 /*===========================================================================
33
34 FUNCTION NAME: make_space (private)
35
36 ===========================================================================*/
37 FUNCTION make_space(p_Mode IN NUMBER := 0) RETURN VARCHAR2 IS
38
39 v_Temp VARCHAR2(500);
40
41 BEGIN
42
43 v_Temp := RPAD(' ', 2 * (g_CallStack.COUNT - 1), ' ');
44
45 IF p_Mode = 0 AND g_CallStack.COUNT > 0 THEN
46
47 v_Temp := v_Temp || ' ';
48 END IF;
49
50 v_Temp := TO_CHAR(SYSDATE,'HH24:MI:SS') || ' - ' || v_Temp;
51
52 RETURN(v_Temp);
53
54 END make_space;
55
56
57 /*===========================================================================
58
59 PROCEDURE NAME: tstart (private)
60
61 DESCRIPTION: This procedure stores start time for a function
62
63 PARAMETERS: p_Marker IN VARCHAR2
64
65 ===========================================================================*/
66 PROCEDURE tstart(p_Marker IN VARCHAR2)
67 IS
68
69 v_Context VARCHAR2(100);
70 v_Position NUMBER := 0;
71
72 BEGIN
73
74 IF g_Debug THEN
75
76 FOR v_Count IN 1..g_TimeStack.COUNT LOOP
77
78 IF g_TimeStack(v_Count).Marker = UPPER(p_Marker) THEN
79
80 v_Position := v_Count;
81 EXIT;
82 END IF;
83
84 END LOOP;
85
86 IF v_Position = 0 THEN
87 v_Position := g_TimeStack.COUNT + 1;
88
89 g_TimeStack(v_Position).Marker := UPPER(p_Marker);
90 g_TimeStack(v_Position).TotalTime := 0;
91 g_TimeStack(v_Position).CallCount := 0;
92 END IF;
93
94 g_TimeStack(v_Position).Time := dbms_utility.get_time;
95 g_TimeStack(v_Position).CallCount := g_TimeStack(v_Position).CallCount + 1;
96 END IF;
97
98 END tstart;
99
100
101 /*===========================================================================
102
103
104 PROCEDURE NAME: tstop (private)
105
106 DESCRIPTION: This procedure stores elapsed time for a function
107
108 PARAMETERS: p_Marker IN VARCHAR2
109
110 ===========================================================================*/
111 PROCEDURE tstop(p_Marker IN VARCHAR2) IS
112
113 v_Context VARCHAR2(100);
114 v_Position NUMBER := 0;
115
116 BEGIN
117
118
119 IF g_Debug THEN
120 FOR v_Count IN 1..g_TimeStack.COUNT LOOP
121
122 IF g_TimeStack(v_Count).Marker = UPPER(p_Marker) THEN
123 g_TimeStack(v_Count).TotalTime :=
124 g_TimeStack(v_Count).TotalTime + ((( dbms_utility.get_time -
125 g_TimeStack(v_Count).Time)/100));
126 EXIT;
127 END IF;
128
129 END LOOP;
130 END IF;
131
132 END tstop;
133
134
135 /*===========================================================================
136
137 FUNCTION NAME: tprint (private)
138
139 DESCRIPTION: This function prints elapsed time for a function
140
141 PARAMETERS: p_Marker IN VARCHAR2
142
143 ===========================================================================*/
144 FUNCTION tprint(p_Marker IN VARCHAR2) RETURN VARCHAR2 IS
145
146 v_Context VARCHAR2(100);
147 v_Position NUMBER := 0;
148
149 BEGIN
150
151 IF g_Debug THEN
152
153 FOR v_Count IN 1..g_TimeStack.COUNT LOOP
154
155 IF g_TimeStack(v_Count).Marker = UPPER(p_Marker) THEN
156 RETURN(ROUND(((dbms_utility.get_time -
157 g_TimeStack(v_Count).Time) / 100), 2) || ' seconds');
158 END IF;
159
160 END LOOP;
161 RETURN(NULL);
162
163 END IF;
164
165 END tprint;
166
167
168
169 /*===========================================================================
170
171 PROCEDURE NAME: set_filehandle
172
173 DESCRIPTION: This procedure set the g_FileHandle
174
175 PARAMETERS: p_FileHandle IN utl_file.file_type
176
177 ===========================================================================*/
178 PROCEDURE set_filehandle (p_FileHandle IN utl_file.file_type := NULL) IS
179
180 BEGIN
181
182 IF not utl_file.is_open(g_FileHandle) and
183 utl_file.is_open(p_FileHandle) THEN
184
185 g_debug := TRUE;
186 g_FileHandle := p_FileHandle;
187 END IF;
188
189 END set_filehandle;
190
191
192
193
194 /*===========================================================================
195
196 PROCEDURE NAME: check_fnd_profile (private)
197
198 DESCRIPTION: This procedure check the fnd_profile_options and
199 fnd_profile_option_values table for concurrent program
200 debugging
201
202 ===========================================================================*/
203 FUNCTION check_fnd_profile return BOOLEAN IS
204
205 v_value VARCHAR2(128);
206 v_path_name VARCHAR2(128);
207 v_file_name VARCHAR2(128);
208
209
210 BEGIN
211 SELECT profile_option_value
212 INTO v_value
213 FROM fnd_profile_options fpo,
214 fnd_profile_option_values fpov
215 WHERE fpo.profile_option_id = fpov.profile_option_id and
216 fpo.profile_option_name = 'XTR: CONCURRENT PROGRAM DEBUG' and
217 fpov.level_value = FND_GLOBAL.USER_ID;
218
219 IF v_value = '' or v_value is NULL THEN
220 RETURN(FALSE);
221 END IF;
222
223 v_path_name := substr(v_value, 1, instr(v_value, ' ', 1) - 1);
224 v_file_name := substr(v_value, instr(v_value, ' ', 1) + 1,
225 NVL(length(v_value), 0) - instr(v_value, ' ', 1));
226
227 start_debug(v_path_name, v_file_name);
228
229 RETURN(TRUE);
230 EXCEPTION
231 WHEN OTHERS THEN
232 RETURN(FALSE);
233
234 END check_fnd_profile;
235
236
237
238 /*===========================================================================
239
240 PROCEDURE NAME: start_debug
241
242 DESCRIPTION: This procedure initializes the debug session.
243
244 PARAMETERS: p_file_name VARCHAR2 DEFAULT null
245
246 ===========================================================================*/
247 PROCEDURE start_debug(p_path_name VARCHAR2,
248 p_file_name VARCHAR2) IS
249
250 v_filename VARCHAR2(30);
251
252 BEGIN
253
254 -- RV: Bug 3011847 --
255
256 --Bug 3236479 Bug NULL;
257 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
258 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
259 'xtr', 'START_DEBUG********');
260 end if;
261
262 --REMCOMMENTS 115.13
263
264 END start_debug;
265
266
267 /*===========================================================================
268
269
270 PROCEDURE NAME: stop_debug
271
272 DESCRIPTION: This procedure closes the debug session.
273
274 ===========================================================================*/
275 PROCEDURE stop_debug IS
276
277 BEGIN
278
279 -- RV: Bug 3011847 --
280
281 --Bug 3236479 Bug NULL;
282 if( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
283 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
284 'xtr', 'STOP_DEBUG********');
285 end if;
286
287 --REMCOMMENTS 115.13
288
289 END stop_debug;
290
291
292 /*===========================================================================
293
294 PROCEDURE NAME: stop_conc_debug
295
296 DESCRIPTION: This procedure turn off the concurrent program debuging.
297
298 ===========================================================================*/
299 PROCEDURE stop_conc_debug IS
300
301 BEGIN
302
303 -- RV: Bug 3011847 --
304
305 --bug 3236479
306 stop_debug;
307
308 --REMCOMMENTS 115.13
309
310 END stop_conc_debug;
311
312
313 /*===========================================================================
314 Bug 3236479
315
316 PROCEDURE NAME: dlog with Module and Log Level
317
318 DESCRIPTION: This procedure prints string followed by a string.
319 Does not require level and always prints.
320
321 PARAMETERS: p_Text IN VARCHAR2
322 p_Value IN VARCHAR2 := NULL
323
324 ===========================================================================*/
325 PROCEDURE dlog(p_Text IN VARCHAR2, p_Value IN VARCHAR2 := NULL,
326 p_module IN VARCHAR2 := 'xtr',
327 p_log_level IN NUMBER := FND_LOG.LEVEL_PROCEDURE) IS
328
329 v_count NUMBER;
330 v_length NUMBER;
331 i NUMBER;
332 --the maximum characters allowed for dbms_output
333 v_max NUMBER(3):=100;
334 v_start NUMBER;
335 BEGIN
336
337 if( p_LOG_LEVEL >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
338 FND_LOG.STRING(p_log_level,
339 p_module, p_Text || G_DELIMITER || p_Value );
340 end if;
341
342 END dlog;
343
344
345 /*===========================================================================
346 Bug 3236479
347
348 PROCEDURE NAME: dlog - Number with Module and Log Level
349
350 DESCRIPTION: This procedure prints string followed by a number.
351 Does not require level and always prints.
352
353 PARAMETERS: p_Text IN VARCHAR2
354 p_Value IN NUMBER
355
356 ===========================================================================*/
357 PROCEDURE dlog(p_Text IN VARCHAR2, p_Value IN NUMBER,
358 p_module IN VARCHAR2 := 'xtr',
359 p_log_level IN NUMBER := FND_LOG.LEVEL_PROCEDURE) IS
360
361 BEGIN
362
363 if( p_LOG_LEVEL >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
364 FND_LOG.STRING(p_log_level,
365 p_module, p_Text || G_DELIMITER || p_Value );
366 end if;
367
368 END dlog;
369
370
371 /*===========================================================================
372 Bug 3236479
373
374 PROCEDURE NAME: dlog - boolean with Module and Level Args
375
376 DESCRIPTION: This procedure prints string followed by a boolean
377 Does not require level and always prints.
378
379 PARAMETERS: p_Text IN VARCHAR2
380 p_Value IN boolean
381 p_module IN VARCHAR2
382 p_log_level IN NUMBER
383
384 ===========================================================================*/
385 PROCEDURE dlog(p_Text IN VARCHAR2, p_Value IN BOOLEAN,
386 p_module IN VARCHAR2 := 'xtr',
387 p_log_level IN NUMBER := FND_LOG.LEVEL_PROCEDURE) IS
388
389 v_Temp VARCHAR2(5) := 'FALSE';
390
391 BEGIN
392
393 if p_Value then
394 v_Temp := 'TRUE';
395 end if;
396
397 if( p_log_level >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
398 FND_LOG.STRING(p_log_level,
399 p_module, p_Text || G_DELIMITER || v_Temp );
400 end if;
401
402 END dlog;
403
404
405 /*===========================================================================
406 Bug 3236479
407
408 PROCEDURE NAME: dlog - date with Module and Log Level
409
410 DESCRIPTION: This procedure prints string followed by a date.
411 Does not require level and always prints.
412
413 PARAMETERS: p_Text IN VARCHAR2
414 p_Value IN DATE
415 p_Mask IN VARCHAR2 := 'DD-MON-YYYY HH24:MI:SS'
416 p_module IN VARCHAR2
417 p_log_level IN NUMBER
418
419 ===========================================================================*/
420 PROCEDURE dlog(p_Text IN VARCHAR2, p_Value IN DATE,
421 p_Mask IN VARCHAR2 := 'DD-MON-YYYY HH24:MI:SS',
422 p_module IN VARCHAR2 := 'xtr',
423 p_log_level IN NUMBER := FND_LOG.LEVEL_PROCEDURE) IS
424
425 BEGIN
426
427 if( p_log_level >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
428 FND_LOG.STRING(p_log_level,
429 p_module, p_Text || G_DELIMITER || TO_CHAR(p_Value, p_Mask) );
430 end if;
431
432 END dlog;
433
434
435 /*===========================================================================
436 Bug 3236479
437
438 PROCEDURE NAME: dpush
439
440 DESCRIPTION: This procedure pushes a call onto the call stack
441
442 PARAMETERS: p_Name IN VARCHAR2
443
444 ===========================================================================*/
445 PROCEDURE dpush(p_Name IN VARCHAR2,
446 p_module IN VARCHAR2 := 'xtr',
447 p_log_level IN NUMBER := FND_LOG.LEVEL_PROCEDURE) IS
448 v_Name VARCHAR2(80);
449 BEGIN
450
451 -- RV: Bug 3011847 --
452
453 if( p_log_level >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
454 FND_LOG.STRING(p_log_level,
455 p_module, 'Entering ' || UPPER(nvl(p_Name,p_module)));
456 end if;
457
458 --REMCOMMENTS 115.13
459
460 END dpush;
461
462
463
464 /*===========================================================================
465 Bug 3236479
466
467 PROCEDURE NAME: dpop
468
469 DESCRIPTION: This procedure pops a call off the call stack
470
471 PARAMETERS: p_Context IN VARCHAR2
472
473 ===========================================================================*/
474 PROCEDURE dpop(p_Context IN VARCHAR2 := NULL,
475 p_module IN VARCHAR2 := 'xtr',
476 p_log_level IN NUMBER := FND_LOG.LEVEL_PROCEDURE) IS
477
478 v_pretext VARCHAR2(500);
479 v_post_text VARCHAR2(500);
480
481 BEGIN
482
483 -- RV: Bug 3011847 --
484
485 if( p_log_level >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
486 FND_LOG.STRING(p_log_level,
487 p_module, 'Exiting ' || UPPER(nvl(p_Context,p_module)));
488 end if;
489
490 --REMCOMMENTS 115.13
491
492 END dpop;
493
494
495 /*===========================================================================
496
497 PROCEDURE NAME: start_conc_prog
498
499 DESCRIPTION: This procedure check the fnd_profile_options and
500 fnd_profile_option_values table for concurrent program
501 debugging. If the profile option is on, start the debug
502 package for concurrent programs.
503
504 ===========================================================================*/
505 PROCEDURE start_conc_prog IS
506 BEGIN
507
508 -- RV: Bug 3011847 --
509
510 --bug 3236479
511 start_debug;
512
513 --REMCOMMENTS 115.13
514
515 END start_conc_prog;
516
517
518 END XTR_RISK_DEBUG_PKG;