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