[Home] [Help]
PACKAGE BODY: APPS.ERROR_STACK
Source
1 PACKAGE BODY ERROR_STACK AS
2 /* $Header: PORERSTB.pls 120.2 2005/07/01 13:44:39 dkfchan noship $*/
3
4 p_error_stack ErrorStackType;
5
6
7 PROCEDURE PushMessage(p_message_name IN VARCHAR2,
8 p_appl_code IN VARCHAR2,
9 p_token1 IN VARCHAR2 DEFAULT NULL,
10 p_value1 IN VARCHAR2 DEFAULT NULL,
11 p_token2 IN VARCHAR2 DEFAULT NULL,
12 p_value2 IN VARCHAR2 DEFAULT NULL,
13 p_token3 IN VARCHAR2 DEFAULT NULL,
14 p_value3 IN VARCHAR2 DEFAULT NULL,
15 p_token4 IN VARCHAR2 DEFAULT NULL,
16 p_value4 IN VARCHAR2 DEFAULT NULL,
17 p_token5 IN VARCHAR2 DEFAULT NULL,
18 p_value5 IN VARCHAR2 DEFAULT NULL) IS
19
20 l_index NUMBER;
21 l_count NUMBER;
22
23 BEGIN
24 IF (p_message_name IS NOT NULL) THEN
25 l_index := p_error_stack.LAST;
26 IF (l_index IS NULL) THEN
27 l_index := 1;
28 ELSE
29 l_index := l_index + 1;
30 END IF;
31 l_count := 0;
32 p_error_stack(l_index).message_name := p_message_name;
33 p_error_stack(l_index).appl_code := p_appl_code;
34 IF (p_token1 IS NOT NULL) THEN
35 p_error_stack(l_index).token1 := p_token1;
36 p_error_stack(l_index).value1 := p_value1;
37 l_count := l_count + 1;
38 IF (p_token2 IS NOT NULL) THEN
39 p_error_stack(l_index).token2 := p_token2;
40 p_error_stack(l_index).value2 := p_value2;
41 l_count := l_count + 1;
42 IF (p_token3 IS NOT NULL) THEN
43 p_error_stack(l_index).token3 := p_token3;
44 p_error_stack(l_index).value3 := p_value3;
45 l_count := l_count + 1;
46 IF (p_token4 IS NOT NULL) THEN
47 p_error_stack(l_index).token4 := p_token4;
48 p_error_stack(l_index).value4 := p_value4;
49 l_count := l_count + 1;
50 IF (p_token5 IS NOT NULL) THEN
51 p_error_stack(l_index).token5 := p_token5;
52 p_error_stack(l_index).value5 := p_value5;
53 l_count := l_count + 1;
54 END IF;
55 END IF;
56 END IF;
57 END IF;
58 END IF;
59 p_error_stack(l_index).number_of_tokens := l_count;
60 END IF;
61
62 END PushMessage;
63
64
65 PROCEDURE PopMessage(
66 p_message_name OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
67 p_appl_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
68 p_token1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
69 p_value1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
70 p_token2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
71 p_value2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
72 p_token3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
73 p_value3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
74 p_token4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
75 p_value4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
76 p_token5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
77 p_value5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2) IS
78
79 l_progress VARCHAR2(10) := '000';
80 l_index NUMBER;
81 l_num_tokens NUMBER;
82 p_return_code VARCHAR2(10);
83 BEGIN
84
85 IF (p_error_stack.COUNT <= 0) THEN
86 p_return_code := E_EMPTY_ERROR_STACK;
87 RETURN;
88 END IF;
89
90 l_index := p_error_stack.FIRST;
91 IF (l_index IS NOT NULL) THEN
92 l_progress := '001.'||to_char(l_index);
93 p_message_name := p_error_stack(l_index).message_name;
94 p_appl_code := p_error_stack(l_index).appl_code;
95 p_token1 := p_error_stack(l_index).token1;
96 p_value1 := p_error_stack(l_index).value1;
97 p_token2 := p_error_stack(l_index).token2;
98 p_value2 := p_error_stack(l_index).value2;
99 p_token3 := p_error_stack(l_index).token3;
100 p_value3 := p_error_stack(l_index).value3;
101 p_token4 := p_error_stack(l_index).token4;
102 p_value4 := p_error_stack(l_index).value4;
103 p_token5 := p_error_stack(l_index).token5;
104 p_value5 := p_error_stack(l_index).value5;
105 p_error_stack.DELETE(l_index);
106 END IF;
107 p_return_code := E_SUCCESS;
108
109 EXCEPTION
110 WHEN OTHERS THEN
111 p_return_code := SQLCODE;
112 END PopMessage;
113
114 PROCEDURE SQL_ERROR (
115 routine IN VARCHAR2,
116 location IN VARCHAR2,
117 error_code IN VARCHAR2) is
118
119 BEGIN
120
121 PushMessage('PO_ALL_SQL_ERROR','PO','ROUTINE',routine,'ERR_NUMBER',location,'SQL_ERR',SQLERRM(error_code));
122
123 END;
124
125 PROCEDURE dummy_test is
126 begin
127 NULL;
128 end;
129
130 function GETMSGCOUNT return number is
131 begin
132 return p_error_stack.COUNT;
133 end GETMSGCOUNT;
134
135 END ERROR_STACK;