DBA Data[Home] [Help]

PACKAGE BODY: APPS.PO_DEBUG

Source


1 PACKAGE BODY PO_DEBUG AS
2 -- $Header: POXDBUGB.pls 120.1 2005/06/29 19:29:55 shsiung noship $
3 
4 
5 /***************************************************************
6  ***************************************************************
7 
8 The logging routines in this package are obsolete.
9 They are replaced by routines in the PO_LOG package.
10 
11 For more details on the PO logging strategy, see the document at
12 /podev/po/internal/standards/logging/logging.xml
13 
14  ***************************************************************
15  ***************************************************************
16  */
17 
18 -----------------------------------------------------------------------------
19 -- Define public procedures.
20 -----------------------------------------------------------------------------
21 
22 
23 
24 -- Obsolete.
25 -- See PO_LOG.
26 FUNCTION is_debug_stmt_on
27 RETURN BOOLEAN
28 IS
29 BEGIN
30 
31 RETURN(PO_LOG.d_stmt);
32 
33 END is_debug_stmt_on;
34 
35 
36 -- Obsolete.
37 -- See PO_LOG.
38 FUNCTION is_debug_unexp_on
39 RETURN BOOLEAN
40 IS
41 BEGIN
42 
43 RETURN(PO_LOG.d_unexp);
44 
45 END is_debug_unexp_on;
46 
47 
48 
49 
50 -- Obsolete.
51 -- See PO_LOG.
52 PROCEDURE debug_stmt(
53    p_log_head                       IN             VARCHAR2
54 ,  p_token                          IN             VARCHAR2
55 ,  p_message                        IN             VARCHAR2
56 )
57 IS
58 BEGIN
59 IF PO_LOG.d_stmt THEN
60   PO_LOG.stmt(p_log_head||'.'||p_token,NULL,p_message);
61 END IF;
62 END debug_stmt;
63 
64 
65 
66 -- Obsolete.
67 -- See PO_LOG.
68 PROCEDURE debug_begin(
69    p_log_head                       IN             VARCHAR2
70 )
71 IS
72 BEGIN
73 IF PO_LOG.d_proc THEN
74   PO_LOG.proc_begin(p_log_head||'.');
75 END IF;
76 END debug_begin;
77 
78 
79 -- Obsolete.
80 -- See PO_LOG.
81 PROCEDURE debug_end(
82    p_log_head                       IN             VARCHAR2
83 )
84 IS
85 BEGIN
86 IF PO_LOG.d_proc THEN
87   PO_LOG.proc_end(p_log_head||'.');
88 END IF;
89 END debug_end;
90 
91 
92 
93 -- Obsolete.
94 -- See PO_LOG.
95 PROCEDURE debug_var(
96    p_log_head                       IN             VARCHAR2
97 ,  p_progress                       IN             VARCHAR2
98 ,  p_name                           IN             VARCHAR2
99 ,  p_value                          IN             VARCHAR2
100 )
101 IS
102 BEGIN
103 IF PO_LOG.d_stmt THEN
104   PO_LOG.stmt(p_log_head||'.'||p_progress,NULL,p_name,p_value);
105 END IF;
106 END debug_var;
107 
108 
109 
110 
111 PROCEDURE debug_var(
112    p_log_head                       IN             VARCHAR2
113 ,  p_progress                       IN             VARCHAR2
114 ,  p_name                           IN             VARCHAR2
115 ,  p_value                          IN             NUMBER
116 )
117 IS
118 BEGIN
119 IF PO_LOG.d_stmt THEN
120   PO_LOG.stmt(p_log_head||'.'||p_progress,NULL,p_name,p_value);
121 END IF;
122 END debug_var;
123 
124 
125 
126 
127 PROCEDURE debug_var(
128    p_log_head                       IN             VARCHAR2
129 ,  p_progress                       IN             VARCHAR2
130 ,  p_name                           IN             VARCHAR2
131 ,  p_value                          IN             DATE
132 )
133 IS
134 BEGIN
135 IF PO_LOG.d_stmt THEN
136   PO_LOG.stmt(p_log_head||'.'||p_progress,NULL,p_name,p_value);
137 END IF;
138 END debug_var;
139 
140 
141 
142 
143 PROCEDURE debug_var(
144    p_log_head                       IN             VARCHAR2
145 ,  p_progress                       IN             VARCHAR2
146 ,  p_name                           IN             VARCHAR2
147 ,  p_value                          IN             BOOLEAN
148 )
149 IS
150 BEGIN
151 IF PO_LOG.d_stmt THEN
152   PO_LOG.stmt(p_log_head||'.'||p_progress,NULL,p_name,p_value);
153 END IF;
154 END debug_var;
155 
156 
157 
158 
159 PROCEDURE debug_var(
160    p_log_head                       IN             VARCHAR2
161 ,  p_progress                       IN             VARCHAR2
162 ,  p_name                           IN             VARCHAR2
163 ,  p_value                          IN             po_tbl_number
164 )
165 IS
166 BEGIN
167 IF PO_LOG.d_stmt THEN
168   PO_LOG.stmt(p_log_head||'.'||p_progress,NULL,p_name,p_value);
169 END IF;
170 END debug_var;
171 
172 
173 
174 
175 PROCEDURE debug_var(
176    p_log_head                       IN             VARCHAR2
177 ,  p_progress                       IN             VARCHAR2
178 ,  p_name                           IN             VARCHAR2
179 ,  p_value                          IN             po_tbl_date
180 )
181 IS
182 BEGIN
183 IF PO_LOG.d_stmt THEN
184   PO_LOG.stmt(p_log_head||'.'||p_progress,NULL,p_name,p_value);
185 END IF;
186 END debug_var;
187 
188 
189 
190 
191 PROCEDURE debug_var(
192    p_log_head                       IN             VARCHAR2
193 ,  p_progress                       IN             VARCHAR2
194 ,  p_name                           IN             VARCHAR2
195 ,  p_value                          IN             po_tbl_varchar1
196 )
197 IS
198 BEGIN
199 IF PO_LOG.d_stmt THEN
200   PO_LOG.stmt(p_log_head||'.'||p_progress,NULL,p_name,p_value);
201 END IF;
202 END debug_var;
203 
204 
205 
206 
207 PROCEDURE debug_var(
208    p_log_head                       IN             VARCHAR2
209 ,  p_progress                       IN             VARCHAR2
210 ,  p_name                           IN             VARCHAR2
211 ,  p_value                          IN             po_tbl_varchar5
212 )
213 IS
214 BEGIN
215 IF PO_LOG.d_stmt THEN
216   PO_LOG.stmt(p_log_head||'.'||p_progress,NULL,p_name,p_value);
217 END IF;
218 END debug_var;
219 
220 
221 
222 
223 PROCEDURE debug_var(
224    p_log_head                       IN             VARCHAR2
225 ,  p_progress                       IN             VARCHAR2
226 ,  p_name                           IN             VARCHAR2
227 ,  p_value                          IN             po_tbl_varchar30
228 )
229 IS
230 BEGIN
231 IF PO_LOG.d_stmt THEN
232   PO_LOG.stmt(p_log_head||'.'||p_progress,NULL,p_name,p_value);
233 END IF;
234 END debug_var;
235 
236 
237 
238 
239 PROCEDURE debug_var(
240    p_log_head                       IN             VARCHAR2
241 ,  p_progress                       IN             VARCHAR2
242 ,  p_name                           IN             VARCHAR2
243 ,  p_value                          IN             po_tbl_varchar100
244 )
245 IS
246 BEGIN
247 IF PO_LOG.d_stmt THEN
248   PO_LOG.stmt(p_log_head||'.'||p_progress,NULL,p_name,p_value);
249 END IF;
250 END debug_var;
251 
252 
253 
254 
255 PROCEDURE debug_var(
256    p_log_head                       IN             VARCHAR2
257 ,  p_progress                       IN             VARCHAR2
258 ,  p_name                           IN             VARCHAR2
259 ,  p_value                          IN             po_tbl_varchar2000
260 )
261 IS
262 BEGIN
263 IF PO_LOG.d_stmt THEN
264   PO_LOG.stmt(p_log_head||'.'||p_progress,NULL,p_name,p_value);
265 END IF;
266 END debug_var;
267 
268 
269 
270 
271 -- Obsolete.
272 -- See PO_LOG.
273 PROCEDURE debug_exc(
274    p_log_head                       IN             VARCHAR2
275 ,  p_progress                       IN             VARCHAR2
276 )
277 IS
278 BEGIN
279 IF PO_LOG.d_exc THEN
280   PO_LOG.exc(p_log_head||'.'||p_progress,NULL,NULL);
281 END IF;
282 END debug_exc;
283 
284 
285 
286 -- Obsolete.
287 -- See PO_LOG.
288 PROCEDURE debug_err(
289    p_log_head                       IN             VARCHAR2
290 ,  p_progress                       IN             VARCHAR2
291 )
292 IS
293 BEGIN
294 IF PO_LOG.d_exc THEN
295   PO_LOG.exc(p_log_head||'.'||p_progress,NULL,NULL);
296 END IF;
297 END debug_err;
298 
299 
300 
301 
302 -- Obsolete.
303 -- See PO_LOG.
304 PROCEDURE debug_unexp(
305    p_log_head                       IN             VARCHAR2
306 ,  p_progress                       IN             VARCHAR2
307 ,  p_message                        IN             VARCHAR2
308       DEFAULT NULL
309 )
310 IS
311 BEGIN
312 IF PO_LOG.d_exc THEN
313   PO_LOG.exc(p_log_head||'.'||p_progress,NULL,p_message);
314 END IF;
315 
316 EXCEPTION
317 WHEN OTHERS THEN
318    NULL;
319 
320 END debug_unexp;
321 
322 
323 
324 
325 -- Obsolete.
326 -- See PO_LOG.
327 PROCEDURE debug_table(
328    p_log_head                       IN             VARCHAR2
329 ,  p_progress                       IN             VARCHAR2
330 ,  p_table_name                     IN             VARCHAR2
331 ,  p_rowid_tbl                      IN             po_tbl_varchar2000
332 ,  p_column_name_tbl                IN             po_tbl_varchar30
333       DEFAULT NULL
334 ,  p_table_owner                    IN             VARCHAR2
335       DEFAULT NULL
336 )
337 IS
338 BEGIN
339 PO_LOG.stmt_table(p_log_head||'.'||p_progress,NULL,
340   p_table_name,p_rowid_tbl,p_column_name_tbl);
341 END debug_table;
342 
343 
344 
345 
346 -- Obsolete.
347 -- See PO_LOG.
348 PROCEDURE debug_session_gt(
349    p_log_head                       IN             VARCHAR2
350 ,  p_progress                       IN             VARCHAR2
351 ,  p_key                            IN             NUMBER
352 ,  p_column_name_tbl                IN             po_tbl_varchar30
353       DEFAULT NULL
354 )
355 IS
356 BEGIN
357 PO_LOG.stmt_session_gt(p_log_head||'.'||p_progress,NULL,
358   p_key,p_column_name_tbl);
359 END debug_session_gt;
360 
361 
362 
363 
364 -------------------------------------------------------------------------------
365 --Start of Comments
366 --Name: handle_unexp_error
367 --Pre-reqs:
368 --  None.
369 --Modifies:
370 --  API message list
371 --  FND_LOG_MESSAGES
372 --Locks:
373 --  None.
374 --Function:
375 --  Adds an exception message to the standard API message list
376 --  and to the FND log, when appropriate.
377 --Parameters:
378 --IN:
379 --p_pkg_name
380 --  Name of the PL/SQL package that encountered the error.
381 --p_proc_name
382 --  Name of the PL/SQL procedure that encountered the error.
383 --p_progress
384 --  Label indicating the location within the procedure.
385 --p_add_to_msg_list
386 --  Indicates whether or not an exception message should be added
387 --  to the API message list.
388 --    TRUE  -  add a message to the list
389 --    FALSE -  don't add a message to the list
390 --    NULL  -  use FND standard routines to determine whether or not
391 --                to add a message to the list
392 --End of Comments
393 -------------------------------------------------------------------------------
394 PROCEDURE handle_unexp_error(
395    p_pkg_name                       IN             VARCHAR2
396 ,  p_proc_name                      IN             VARCHAR2
397 ,  p_progress                       IN             VARCHAR2
398       DEFAULT NULL
399 ,  p_add_to_msg_list                IN             BOOLEAN
400       DEFAULT NULL
401 )
402 IS
403 
404 l_add_to_msg_list    BOOLEAN := p_add_to_msg_list;
405 
406 BEGIN
407 
408 IF (l_add_to_msg_list IS NULL) THEN
409    l_add_to_msg_list :=
410       FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR);
411 END IF;
412 
413 -- Add the unexpected error to the standard API message list.
414 IF l_add_to_msg_list THEN
415    FND_MSG_PUB.add_exc_msg(
416       p_pkg_name        => p_pkg_name
417    ,  p_procedure_name  => p_proc_name
418    );
419 END IF;
420 
421 -- Log a debug message.
422 IF PO_LOG.d_unexp THEN
423    debug_unexp(
424       p_log_head => 'po.plsql.'||UPPER(p_pkg_name)||'.'||UPPER(p_proc_name)
425    ,  p_progress => p_progress
426    );
427 END IF;
428 
429 EXCEPTION
430 WHEN OTHERS THEN
431    NULL;
432 
433 END handle_unexp_error;
434 
435 -- Bug 3570793 START
436 -------------------------------------------------------------------------------
437 --Start of Comments
438 --Name: write_msg_list_to_file
439 --Pre-reqs:
440 --  None.
441 --Modifies:
442 --  FND_LOG_MESSAGES
443 --Locks:
444 --  None.
445 --Function:
446 --  Writes the messages on the API message list (FND_MSG_PUB) to the concurrent
447 --  program log file output, and to the FND log, if enabled.
448 --Parameters:
449 --IN:
450 --p_log_head
451 --  Module value to pass to FND_LOG, indicating the package, procedure, etc.
452 --p_progress
453 --  Label indicating the location within the procedure.
454 --End of Comments
455 -------------------------------------------------------------------------------
456 PROCEDURE write_msg_list_to_file (
457   p_log_head                        IN             VARCHAR2
458 , p_progress                        IN             VARCHAR2
459 ) IS
460   l_msg VARCHAR2(2000);
461   l_module VARCHAR2(200);
462 BEGIN
463   l_module := p_log_head || '.' || p_progress;
464 
465   FOR i IN 1..FND_MSG_PUB.count_msg LOOP
466     l_msg := substrb ( FND_MSG_PUB.get(p_msg_index => i,
467                                        p_encoded   => FND_API.G_FALSE),
468                        1, 2000 );
469 
470     -- Write the message to the concurrent program log file.
471     FND_FILE.put_line ( FND_FILE.LOG,
472                         substrb(l_module || ': ' || l_msg, 1, 2000) );
473 
474     -- Write the message to the FND log, if enabled.
475     IF PO_LOG.d_unexp THEN
476       IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_UNEXPECTED) THEN
477         FND_LOG.string ( log_level => FND_LOG.level_unexpected,
478                        module    => l_module,
479                        message   => l_msg );
480       END IF;
481     END IF;
482   END LOOP;
483 
484 EXCEPTION
485 WHEN OTHERS THEN
486   NULL; -- ignore any exceptions
487 END write_msg_list_to_file;
488 -- Bug 3570793 END
489 
490 -------------------------------------------------------------------------------
491 -------------------------------------------------------------------------------
492 -- 8/20/03: The following procedures are non-standard comformant,
493 --          and should not be used.
494 --          They exist for legacy code.
495 -------------------------------------------------------------------------------
496 -------------------------------------------------------------------------------
497 
498 
499 /*=========================================================================
500 
501   PROCEDURE NAME:	PUT_LINE()
502 
503 ===========================================================================*/
504 
505 -- Write debug messages to file or standard out based on the value of package
506 -- variable PO_DEBUG.write_to_file.
507 --
511 
508 -- Use PO_DEBUG.set_file_io( TRUE / FALSE ) to set this variable.
509 
510 PROCEDURE PUT_LINE (v_line in varchar2) IS
512 x_temp varchar2(10) := 'NULL';
513 
514 BEGIN
515 
516     if PO_DEBUG.write_to_file is NULL then
517 
518 	-- Do nothing.
519 	null;
520 
521     elsif PO_DEBUG.write_to_file then
522 
523 	-- write to system log file
524       	-- Assuming all the rules for utl_file have been properly followed
525       	-- the following call should write to a system generated log file.
526 
527 	x_temp := 'FILE';
528 	FND_FILE.PUT_LINE(FND_FILE.LOG, v_line);
529 
530     else
531 
532 	-- write to standard out
533 	x_temp := 'STD OUT';
534     	--dbms_output.put_line(v_line);
535 
536     end if;
537 
538 EXCEPTION
539 
540     when others then
541 	-- do not raise any exception
542     	--dbms_output.put_line('***  ERROR WRITING TO FILE - Check UTL_FILE_DIR Parameter in init.ora *** : ' || x_temp);
543 	PO_DEBUG.write_to_file := NULL;	 -- Reset the file I/O flag so that the package is not invoked again
544 					 -- May run into rollback problems if the FND_FILE package is called again
545 					 -- because it performs an implicit commit.
546 
547 END PUT_LINE;
548 
549 -- Set flag for writing to file or standard out
550 
551 PROCEDURE set_file_io(flag BOOLEAN) IS
552 
553 BEGIN
554 
555     PO_DEBUG.write_to_file := flag;
556 
557 /* Bug 1014430 : dbms_output should be enabled conditionally only if the
558                       flag is false.
559 */
560 
561    if (flag or flag is null) then
562        dbms_output.disable;
563    else
564        dbms_output.enable(1000000);
565    end if;
566 
567    EXCEPTION
568 	when others then null;
569 
570 END set_file_io;
571 
572 
573 
574 
575 END PO_DEBUG;