1 PACKAGE WSH_DEBUG_SV AUTHID CURRENT_USER as
2 /* $Header: WSHDEBGS.pls 120.1 2007/08/06 13:38:15 ueshanka ship $ */
3 /*===========================================================================
4 PACKAGE NAME: wsh_debug_sv
5
6 DESCRIPTION: Contains common routines required by Shipping
7
8
9
10 CLIENT/SERVER: Server
11
12 PROCEDURE/FUNCTIONS: debug
13 enable_debug
14 disable_debug
15 debug_enabled
16 get_debug_levels
17 print_debug_stuff
18
19 ===========================================================================*/
20 --bug 6215206: Added global variable to check if debugging is initialized
21 --from ITM Asynchronous process.
22 g_itm_asyn_proc BOOLEAN := FALSE;
23
24 g_File Varchar2(32767) := null;
25 g_Dir Varchar2(32767) := fnd_profile.value('WSH_DEBUG_LOG_DIRECTORY');
26
27 TYPE t_DebugLevels IS TABLE OF NUMBER
28 INDEX BY BINARY_INTEGER;
29
30 TYPE t_TimeType IS RECORD(
31 Marker VARCHAR2(200),
32 Time NUMBER,
33 CallCount NUMBER,
34 TotalTime NUMBER);
35
36 TYPE t_TimeStack IS TABLE OF t_TimeType
37 INDEX BY BINARY_INTEGER;
38
39 TYPE t_CallStack IS TABLE OF VARCHAR2(32767)
40 INDEX BY BINARY_INTEGER;
41
42 TYPE t_NumberTable IS TABLE OF NUMBER
43 INDEX BY BINARY_INTEGER;
44
45 g_TimeStack t_TimeStack;
46 g_CallStack t_CallStack;
47 g_DebugLevels t_DebugLevels;
48 --g_MaxLevels NUMBER := 31;
49 g_MaxLevels NUMBER := 7;
50
51 g_FileHandle utl_file.file_type;
52 C_FILE NUMBER := 1;
53 C_PIPE NUMBER := 2;
54 C_SCREEN NUMBER := 4;
55 C_SQLTRACE NUMBER := 8;
56 C_DELIMITER VARCHAR2(5) := ' ==> ';
57 C_FILLER VARCHAR2(1) := '-';
58 --C_DEBUG_PIPE VARCHAR2(30) := 'WSH_DEBUG_PIPE';
59 C_PIPE_SIZE NUMBER := 1000000;
60 C_PREFIX VARCHAR2(15) := 'wsh';
61 C_SUFFIX VARCHAR2(15) := '.dbg';
62 E_PIPE_FAILURE NUMBER := -20000;
63
64 C_LEVEL1 NUMBER := 32;
65 C_LEVEL2 NUMBER := 8;
66 --C_LEVEL1 NUMBER := 16;
67 --C_LEVEL2 NUMBER := 32;
68
69 C_PERF_LEVEL NUMBER := 2;
70 C_STMT_LEVEL NUMBER := 8;
71 C_PROC_LEVEL NUMBER := 32;
72 C_EVENT_LEVEL NUMBER := 128;
73 C_EXCEP_LEVEL NUMBER := 512;
74 C_ERR_LEVEL NUMBER := 2048;
75 C_UNEXPEC_ERR_LEVEL NUMBER := 8192;
76
77
78
79
80 /*===========================================================================
81 FUNCTION NAME: level_defined
82
83 DESCRIPTION: This function true if the passed level is defined.
84
85 PARAMETERS: x_Level IN NUMBER
86 ===========================================================================*/
87 FUNCTION level_defined (x_Level IN NUMBER) RETURN BOOLEAN;
88
89
90 /*===========================================================================
91 PROCEDURE NAME: start_time
92
93 DESCRIPTION: This procedure puts a time on the stack.
94
95 PARAMETERS: x_Level IN NUMBER
96 x_Marker IN VARCHAR2
97 x_Context IN VARCHAR2
98 ===========================================================================*/
99 PROCEDURE start_time (x_Level IN NUMBER, x_Marker IN VARCHAR2, x_Context IN VARCHAR2 := NULL);
100
101
102 /*===========================================================================
103 PROCEDURE NAME: start_time
104
105 DESCRIPTION: This procedure puts a time on the stack.
106
107 PARAMETERS: x_Marker IN VARCHAR2
108 x_Context IN VARCHAR2
109
110 ===========================================================================*/
111 PROCEDURE start_time (x_Marker IN VARCHAR2, x_Context IN VARCHAR2 := NULL);
112
113
114 /*===========================================================================
115 PROCEDURE NAME: stop_time
116
117 DESCRIPTION: This procedure shows time elapsed for the passed marker value
118
119 PARAMETERS: x_Level IN NUMBER
120 x_Marker IN NUMBER
121 x_Context IN VARCHAR2 := NULL
122
123 ===========================================================================*/
124 PROCEDURE stop_time (x_Level IN NUMBER, x_Marker IN VARCHAR2, x_Context IN VARCHAR2 := NULL);
125
126
127 /*===========================================================================
128 PROCEDURE NAME: stop_time
129
130 DESCRIPTION: This procedure shows time elapsed for the passed marker value
131
132 PARAMETERS: x_Marker IN NUMBER
133 x_Context IN VARCHAR2 := NULL
134
135 ===========================================================================*/
136 PROCEDURE stop_time (x_Marker IN VARCHAR2, x_Context IN VARCHAR2 := NULL);
137
138
139 /*===========================================================================
140 PROCEDURE NAME: tstart
141
142 DESCRIPTION: This procedure stores start time for a function
143
144 PARAMETERS: x_Marker IN VARCHAR2
145
146 ===========================================================================*/
147 PROCEDURE tstart(x_Marker IN VARCHAR2);
148
149
150 /*===========================================================================
151 PROCEDURE NAME: tstart
152
153 DESCRIPTION: This procedure stores start time for a function
154
155 PARAMETERS: x_Level IN NUMBER
156 x_Marker IN VARCHAR2
157
158 ===========================================================================*/
159 PROCEDURE tstart(x_Level IN NUMBER, x_Marker IN VARCHAR2);
160
161
162 /*===========================================================================
163 PROCEDURE NAME: tstop
164
165 DESCRIPTION: This procedure stores elapsed time for a function
166
167 PARAMETERS: x_Marker IN VARCHAR2
168
169 ===========================================================================*/
170 PROCEDURE tstop(x_Marker IN VARCHAR2);
171
172
173 /*===========================================================================
174 PROCEDURE NAME: tstop
175
176 DESCRIPTION: This procedure stores elapsed time for a function
177
178 PARAMETERS: x_Level IN NUMBER
179 x_Marker IN VARCHAR2
180
181 ===========================================================================*/
182 PROCEDURE tstop(x_Level IN NUMBER, x_Marker IN VARCHAR2);
183
184
185 /*===========================================================================
186 FUNCTION NAME: tprint
187
188 DESCRIPTION: This function prints elapsed time for a function
189
190 PARAMETERS: x_Marker IN VARCHAR2
191
192 ===========================================================================*/
193 FUNCTION tprint(x_Marker IN VARCHAR2) RETURN VARCHAR2;
194
195
196 /*===========================================================================
197 PROCEDURE NAME: tdump
198
199 DESCRIPTION: This procedure dumps stored times for all functions.
200
201 PARAMETERS: x_Marker IN VARCHAR2
202
203 ===========================================================================*/
204 PROCEDURE tdump(x_Context IN VARCHAR2 DEFAULT NULL);
205
206
207 /*===========================================================================
208 PROCEDURE NAME: tdump
209
210 DESCRIPTION: This procedure dumps stored times for all functions.
211
212 PARAMETERS: x_Level IN NUMBER
213 x_Context IN VARCHAR2
214
215 ===========================================================================*/
216 PROCEDURE tdump(x_Level IN NUMBER, x_Context IN VARCHAR2 DEFAULT NULL);
217
218
219 /*===========================================================================
220 PROCEDURE NAME: write_output
221
222 DESCRIPTION: This procedure writes output to the requested areas
223
224
225 ===========================================================================*/
226 PROCEDURE write_output(x_Line IN VARCHAR2);
227
228
229 /*===========================================================================
230 PROCEDURE NAME: write_long_output
231
232 DESCRIPTION: This procedure writes output to the requested areas
233
234
235 ===========================================================================*/
236 --PROCEDURE write_long_output(x_Pad_Space IN VARCHAR2, x_Mesg IN VARCHAR2);
237
238 /*===========================================================================
239 PROCEDURE NAME: logmsg
240
241 DESCRIPTION: This procedure prints string followed by a boolean
242 Does not require level and always prints.
243
244
245 ===========================================================================*/
246 PROCEDURE logmsg(x_Module IN VARCHAR2, x_Text IN VARCHAR2, x_Level IN NUMBER DEFAULT C_STMT_LEVEL);
247
248
249 /*===========================================================================
250 PROCEDURE NAME: log
251
252 DESCRIPTION: This procedure prints string followed by a boolean
253 Does not require level and always prints.
254
255
256 ===========================================================================*/
257 PROCEDURE log(x_Module IN VARCHAR2, x_Text IN VARCHAR2, x_Value IN VARCHAR2 := NULL, x_Level IN NUMBER DEFAULT C_STMT_LEVEL);
258
259
260 /*===========================================================================
261 PROCEDURE NAME: log
262
263 DESCRIPTION: This procedure prints string followed by a number
264
265
266 ===========================================================================*/
267 PROCEDURE log(x_Module IN VARCHAR2, x_Text IN VARCHAR2, x_Value IN NUMBER, x_Level IN NUMBER DEFAULT C_STMT_LEVEL);
268
269
270 /*===========================================================================
271 PROCEDURE NAME: log
272
273 DESCRIPTION: This procedure prints string followed by a date
274
275
276 ===========================================================================*/
277 PROCEDURE log(x_Module IN VARCHAR2, x_Text IN VARCHAR2, x_Value IN DATE, x_Level IN NUMBER DEFAULT C_STMT_LEVEL, x_Mask IN VARCHAR2 := 'MM/DD/YYYY HH:MI:SS PM');
278
279
280 /*===========================================================================
281 PROCEDURE NAME: log
282
283 DESCRIPTION: This procedure prints string followed by a boolean
284
285 ===========================================================================*/
286 PROCEDURE log(x_Module IN VARCHAR2, x_Text IN VARCHAR2, x_Value IN BOOLEAN, x_Level IN NUMBER DEFAULT C_STMT_LEVEL);
287
288 /*===========================================================================
289
290 PROCEDURE NAME: push
291
292 DESCRIPTION: This procedure pushes a call onto the call stack
293
294
295 ===========================================================================*/
296 PROCEDURE push(x_Module IN VARCHAR2);
297
298 PROCEDURE push(x_Module IN VARCHAR2, x_name in varchar2);
299
300
301
302 /*===========================================================================
303 PROCEDURE NAME: pop
304
305 DESCRIPTION: This procedure pops a call off the call stack
306
307 PARAMETERS: x_Level IN NUMBER
308 x_Context IN VARCHAR2
309
310 ===========================================================================*/
311 PROCEDURE pop(x_Module IN VARCHAR2, x_Context IN VARCHAR2 := NULL);
312
313
314 /*===========================================================================
315 FUNCTION NAME: make_space
316
317 DESCRIPTION: This function returns the indent space for output
318 depending on the level of the stack
319
320
321 ===========================================================================*/
322 FUNCTION make_space(x_Mode IN NUMBER := 0) RETURN VARCHAR2;
323
324
325 /*===========================================================================
326 PROCEDURE NAME: start_wsh_debugger
327
328 DESCRIPTION This procedure is used to turn on the Shipping Debugger by other
329 products
330
331 ============================================================================*/
332 --FUNCTION start_wsh_debugger( x_Level IN NUMBER DEFAULT C_STMT_LEVEL)
333 --RETURN VARCHAR2 ;
334 PROCEDURE start_debugger
335 (
336 x_file_name OUT NOCOPY VARCHAR2,
337 x_return_status OUT NOCOPY VARCHAR2,
338 x_msg_count OUT NOCOPY NUMBER,
339 x_msg_data OUT NOCOPY VARCHAR2
340 );
341
342 /*===========================================================================
343 PROCEDURE NAME: stop_wsh_debugger
344
345 DESCRIPTION This procedure is used to turn off the Shipping Debugger by other
346 products
347 ============================================================================*/
348
349 PROCEDURE stop_debugger;
350
351 /*===========================================================================
352 FUNCTION NAME: is_debug_enabled
353
354 DESCRIPTION: This function returns TRUE if debug is
355 enabled.
356
357 ===========================================================================*/
358
359 FUNCTION is_debug_enabled RETURN BOOLEAN;
360
361 /********* The APIs below are maintained only for backward compatibility.
362 These should not be called directly from any APIs. ****************/
363
364 PROCEDURE Start_Other_App_Debug(
365 p_application IN VARCHAR2,
366 x_debug_directory OUT NOCOPY VARCHAR2,
367 x_debug_file OUT NOCOPY VARCHAR2,
368 x_return_status OUT NOCOPY VARCHAR2);
369
370 /********* The APIs below are maintained only for backward compatibility.
371 These should not be called directly from any APIs. ****************/
372
373 PROCEDURE Stop_Other_App_Debug(
374 p_application IN VARCHAR2,
375 x_return_status OUT NOCOPY VARCHAR2);
376
377 /********* The APIs below are maintained only for backward compatibility.
378 These should not be called directly from any APIs. ****************/
379
380 /*===========================================================================
381 PROCEDURE NAME: get_debug_levels
382
383 DESCRIPTION: This procedure retrieves debug levels for the debug value
384 passed.
385
386 ===========================================================================*/
387 /********* The APIs below are maintained only for backward compatibility.
388 These should not be called directly from any APIs. ****************/
389
390 PROCEDURE get_debug_levels (x_Topper IN NUMBER);
391
392 /*===========================================================================
393 PROCEDURE NAME: start_debug
394
395 DESCRIPTION: This procedure initializes the debug session.
396
397 PARAMETERS:
398
399 ===========================================================================*/
400 /********* The APIs below are maintained only for backward compatibility.
401 These should not be called directly from any APIs. ****************/
402 PROCEDURE start_debug(file_number VARCHAR2 DEFAULT null);
403
404
405 /*===========================================================================
406 PROCEDURE NAME: stop_debug
407
408 DESCRIPTION: This procedure closes the debug session.
409
410 PARAMETERS:
411
412 ===========================================================================*/
413 /********* The APIs below are maintained only for backward compatibility.
414 These should not be called directly from any APIs. ****************/
415 PROCEDURE stop_debug;
416
417
418 /*===========================================================================
419 PROCEDURE NAME: dlog
420
424 ===========================================================================*/
421 DESCRIPTION: This procedure prints string followed by a string
422
423
425 /********* The APIs below are maintained only for backward compatibility.
426 These should not be called directly from any APIs. ****************/
427 PROCEDURE dlog(x_Level IN NUMBER, x_Text IN VARCHAR2, x_Value IN VARCHAR2 := NULL);
428
429
430 /*===========================================================================
431 PROCEDURE NAME: dlog
432
433 DESCRIPTION: This procedure prints string followed by a number
434
435
436 ===========================================================================*/
437
438 /********* The APIs below are maintained only for backward compatibility.
439 These should not be called directly from any APIs. ****************/
440 PROCEDURE dlog(x_Level IN NUMBER, x_Text IN VARCHAR2, x_Value IN NUMBER);
441
442
443 /*===========================================================================
444 PROCEDURE NAME: dlog
445
446 DESCRIPTION: This procedure prints string followed by a date
447
448
449 ===========================================================================*/
450 /********* The APIs below are maintained only for backward compatibility.
451 These should not be called directly from any APIs. ****************/
452 PROCEDURE dlog(x_Level IN NUMBER, x_Text IN VARCHAR2, x_Value IN DATE,
453 x_Mask IN VARCHAR2 := 'DD-MON-YYYY HH:MI:SS PM');
454
455
456 /*===========================================================================
457 PROCEDURE NAME: dlog
458
459 DESCRIPTION: This procedure prints string followed by a boolean
460
461 ===========================================================================*/
462 /********* The APIs below are maintained only for backward compatibility.
463 These should not be called directly from any APIs. ****************/
464 PROCEDURE dlog(x_Level IN NUMBER, x_Text IN VARCHAR2, x_Value IN boolean);
465
466
467 /*===========================================================================
468 PROCEDURE NAME: dlog
469
470 DESCRIPTION: This procedure prints string followed by a number.
471 Does not require level and always prints.
472
473 ===========================================================================*/
474 /********* The APIs below are maintained only for backward compatibility.
475 These should not be called directly from any APIs. ****************/
476 PROCEDURE dlog(x_Text IN VARCHAR2, x_Value IN NUMBER);
477
478
479 /*===========================================================================
480 PROCEDURE NAME: dlog
481
482 DESCRIPTION: This procedure prints string followed by a string
483 Does not require level and always prints.
484
485
486 ===========================================================================*/
487 /********* The APIs below are maintained only for backward compatibility.
488 These should not be called directly from any APIs. ****************/
489 PROCEDURE dlog(x_Text IN VARCHAR2, x_Value IN VARCHAR2 := NULL);
490
491
492 /*===========================================================================
493 PROCEDURE NAME: dlog
494
495 DESCRIPTION: This procedure prints string followed by a date
496 Does not require level and always prints.
497
498
499 ===========================================================================*/
500 /********* The APIs below are maintained only for backward compatibility.
501 These should not be called directly from any APIs. ****************/
502 PROCEDURE dlog(x_Text IN VARCHAR2, x_Value IN DATE,
503 x_Mask IN VARCHAR2 := 'DD-MON-YYYY HH:MI:SS PM');
504
505
506 /*===========================================================================
507 PROCEDURE NAME: dlog
508
509 DESCRIPTION: This procedure prints string followed by a boolean
510 Does not require level and always prints.
511
512
513 ===========================================================================*/
514 /********* The APIs below are maintained only for backward compatibility.
515 These should not be called directly from any APIs. ****************/
516 PROCEDURE dlog(x_Text IN VARCHAR2, x_Value IN boolean);
517
518
519
520 /*===========================================================================
521 PROCEDURE NAME: dlogd
522
523 DESCRIPTION: This procedure prints string followed by an index,
524 followed by a string, and a date value.
525
526 ===========================================================================*/
527 /********* The APIs below are maintained only for backward compatibility.
528 These should not be called directly from any APIs. ****************/
529 PROCEDURE dlogd(x_Level IN NUMBER, x_Text1 IN VARCHAR2 := NULL, x_Index IN NUMBER := NULL, x_Text2
530 IN VARCHAR2 := NULL, x_Value IN DATE := NULL);
531
532 /*===========================================================================
533 PROCEDURE NAME: dlogn
534
535 DESCRIPTION: This procedure prints string followed by an index,
536 followed by a string, and a number value.
537
538 PARAMETERS:
539
540 ===========================================================================*/
541 /********* The APIs below are maintained only for backward compatibility.
542 These should not be called directly from any APIs. ****************/
543 PROCEDURE dlogn(x_Level IN NUMBER, x_Text1 IN VARCHAR2 := NULL, x_Index IN NUMBER := NULL, x_Text2
544 IN VARCHAR2 := NULL, x_Value IN NUMBER := NULL);
545 /*===========================================================================
546 PROCEDURE NAME: dpush
547
548 DESCRIPTION: This procedure pushes a call onto the call stack
549
550
554
551 ===========================================================================*/
552
553 /*===========================================================================
555 PROCEDURE NAME: dpush
556
557 DESCRIPTION: This procedure pushes a call onto the call stack
558
559
560 ===========================================================================*/
561 /********* The APIs below are maintained only for backward compatibility.
562 These should not be called directly from any APIs. ****************/
563 PROCEDURE dpush(x_Level IN NUMBER, x_Name IN VARCHAR2);
564
565
566 /*===========================================================================
567 PROCEDURE NAME: dpush
568
569 DESCRIPTION: This procedure pushes a call onto the call stack
570
571
572 ===========================================================================*/
573 --PROCEDURE dpush(x_Name IN VARCHAR2);
574
575 /*===========================================================================
576 PROCEDURE NAME: dpop
577
578 DESCRIPTION: This procedure pops a call off the call stack
579
580 PARAMETERS: x_Level IN NUMBER
581 x_Context IN VARCHAR2
582
583 ===========================================================================*/
584 /********* The APIs below are maintained only for backward compatibility.
585 These should not be called directly from any APIs. ****************/
586 PROCEDURE dpop(x_Level IN NUMBER, x_Context IN VARCHAR2 := NULL);
587
588
589 /*===========================================================================
590 PROCEDURE NAME: dpop
591
592 DESCRIPTION: This procedure pops a call off the call stack
593
594 ===========================================================================*/
595 --PROCEDURE dpop(x_Context IN VARCHAR2 := NULL);
596
597 /*===========================================================================
598 PROCEDURE NAME: print_debug_stuff
599
600
601 ===========================================================================*/
602 /********* The APIs below are maintained only for backward compatibility.
603 These should not be called directly from any APIs. ****************/
604 PROCEDURE print_debug_stuff;
605
606
607 /*===========================================================================
608 PROCEDURE NAME: debug
609
610 DESCRIPTION: This procedure prints out a debug message
611 that has been passed to it if debug has
612 been enabled.
613
614
615 ===========================================================================*/
616
617 /********* The APIs below are maintained only for backward compatibility.
618 These should not be called directly from any APIs. ****************/
619 PROCEDURE debug (x_message IN VARCHAR2);
620
621 /*===========================================================================
622 PROCEDURE NAME: enable_debug
623
624 DESCRIPTION: This procedure enables debug output.
625
626
627 ===========================================================================*/
628
629 /********* The APIs below are maintained only for backward compatibility.
630 These should not be called directly from any APIs. ****************/
631 PROCEDURE enable_debug;
632
633
634 /*===========================================================================
635 PROCEDURE NAME: disable_debug
636
637 DESCRIPTION: This procedure disables debug output.
638
639
640 ===========================================================================*/
641
642 /********* The APIs below are maintained only for backward compatibility.
643 These should not be called directly from any APIs. ****************/
644 PROCEDURE disable_debug;
645
646
647 /*===========================================================================
648 FUNCTION NAME: debug_enabled
649
650 DESCRIPTION: This function returns TRUE if debug is
651 enabled.
652
653 ===========================================================================*/
654
655 /********* The APIs below are maintained only for backward compatibility.
656 These should not be called directly from any APIs. ****************/
657 FUNCTION debug_enabled RETURN BOOLEAN;
658
659
660
661
662 /*=========================================================================
663
664 FUNCTION NAME: get_lookup_meaning
665
666 DESCRIPTION This function will return the meaning based on
667 lookup type and lookup code meaning based on
668 This is used for error tokens
669 ===========================================================================*/
670
671 /********* The APIs below are maintained only for backward compatibility.
672 These should not be called directly from any APIs. ****************/
673 FUNCTION get_lookup_meaning (x_lookup_type IN VARCHAR2,
674 x_lookup_code IN VARCHAR2)
675 RETURN VARCHAR2;
676
677 /********* The APIs below are maintained only for backward compatibility.
678 These should not be called directly from any APIs. ****************/
679 PROCEDURE append_other_dbg_file( p_source_file_directory IN VARCHAR2,
680 p_source_file_name IN VARCHAR2,
681 p_target_file_directory IN VARCHAR2,
682 p_target_file_name IN VARCHAR2,
683 x_return_status OUT NOCOPY BOOLEAN);
684
685 /********* The API set_debug_count is created for bug 6215206 for ITM Async process.
686 This api should not be called directly from any other APIs. ****************/
687 PROCEDURE set_debug_count;
688 END WSH_DEBUG_SV;