DBA Data[Home] [Help]

PACKAGE BODY: APPS.WSH_EXCEPTIONS_PUB

Source


1 PACKAGE BODY WSH_EXCEPTIONS_PUB AS
2 /* $Header: WSHXCPBB.pls 115.12 2004/05/24 21:40:37 dramamoo ship $ */
3 
4 --===================
5 -- CONSTANTS
6 --===================
7 G_PKG_NAME CONSTANT VARCHAR2(30) := 'WSH_EXCEPTIONS_PUB';
8 -- add your constants here if any
9 
10 --===================
11 -- PROCEDURES
12 --===================
13 
14 ------------------------------------------------------------------------------
15 -- Procedure:	Get_Exceptions
16 --
17 -- Parameters:  1) p_logging_entity_id - entity id for a particular entity name
18 --              2) p_logging_entity_name - can be 'TRIP', 'STOP', 'DELIVERY',
19 --                                       'DETAIL', or 'CONTAINER'
20 --              3) x_exceptions_tab - list of exceptions
21 --
22 -- Description: This procedure takes in a logging entity id and logging entity
23 --              name and create an exception table.
24 ------------------------------------------------------------------------------
25 
26 PROCEDURE Get_Exceptions (
27         -- Standard parameters
28         p_api_version           IN      NUMBER,
29         p_init_msg_list         IN      VARCHAR2  DEFAULT FND_API.G_FALSE,
30         x_return_status         OUT NOCOPY      VARCHAR2,
31         x_msg_count             OUT NOCOPY      NUMBER,
32         x_msg_data              OUT NOCOPY      VARCHAR2,
33 
34         -- program specific parameters
35         p_logging_entity_id	IN 	NUMBER,
36 	p_logging_entity_name	IN	VARCHAR2,
37 
38         -- program specific out parameters
39         x_exceptions_tab	OUT NOCOPY 	WSH_EXCEPTIONS_PUB.XC_TAB_TYPE
40 	) IS
41 
42   -- Standard call to check for call compatibility
43   l_api_version          CONSTANT        NUMBER  := 1.0;
44   l_api_name             CONSTANT        VARCHAR2(30):= 'Get_Exceptions';
45 l_debug_on BOOLEAN;
46   l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.'
47                                                         || 'Get_Exceptions';
48 
49 
50 
51 BEGIN
52 
53   --
54   l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
55   --
56   IF l_debug_on IS NULL
57   THEN
58       l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
59   END IF;
60   --
61   IF l_debug_on THEN
62      wsh_debug_sv.push (l_module_name);
63      wsh_debug_sv.log (l_module_name,'p_init_msg_list', p_init_msg_list);
64      wsh_debug_sv.log (l_module_name,'p_logging_entity_id',
65                                                           p_logging_entity_id);
66      wsh_debug_sv.log (l_module_name,'p_logging_entity_name',
67                                                          p_logging_entity_name);
68   END IF;
69   -- Check p_init_msg_list
70   IF FND_API.to_boolean(p_init_msg_list) THEN
71     FND_MSG_PUB.initialize;
72   END IF;
73 
74 
75   IF NOT FND_API.compatible_api_call (
76                           l_api_version,
77                           p_api_version,
78                           l_api_name,
79                           G_PKG_NAME) THEN
80     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
81   END IF;
82 
83 
84   x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
85 
86   WSH_EXCEPTIONS_GRP.Get_Exceptions (
87         p_api_version         => p_api_version,
88         p_init_msg_list       => FND_API.G_FALSE,
89         x_return_status       => x_return_status,
90         x_msg_count           => x_msg_count,
91         x_msg_data            => x_msg_data,
92         p_logging_entity_id   => p_logging_entity_id,
93         p_logging_entity_name => p_logging_entity_name,
94         x_exceptions_tab      => x_exceptions_tab);
95 
96   FND_MSG_PUB.Count_And_Get
97      ( p_count => x_msg_count
98      , p_data  => x_msg_data
99      ,p_encoded => FND_API.G_FALSE
100      );
101   IF l_debug_on THEN
102        WSH_DEBUG_SV.pop(l_module_name);
103   END IF;
104 
105   EXCEPTION
106     WHEN others THEN
107      FND_MSG_PUB.Count_And_Get
108           ( p_count => x_msg_count
109           , p_data  => x_msg_data
110           ,p_encoded => FND_API.G_FALSE
111           );
112       wsh_util_core.default_handler('WSH_EXCEPTIONS_PUB.GET_EXCEPTIONS');
113       x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
114       IF l_debug_on THEN
115          wsh_debug_sv.log (l_module_name,'Error', SUBSTR(SQLERRM,1,200));
116          WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
117       END IF;
118 
119 
120 END Get_Exceptions;
121 
122 ------------------------------------------------------------------------------
123 -- Procedure:   Exception_Action
124 --
125 -- Parameters:
126 --
127 -- Description:  This procedure calls the corresponding procedures to Log,
128 --               Purge and Change_Status of the exceptions based on the action
129 --               code it receives through the parameter p_action.
130 ------------------------------------------------------------------------------
131 
132 PROCEDURE Exception_Action (
133 	-- Standard parameters
134 	p_api_version	        IN	NUMBER,
135 	p_init_msg_list		IN      VARCHAR2  DEFAULT FND_API.G_FALSE,
136 	p_validation_level      IN      NUMBER    DEFAULT FND_API.G_VALID_LEVEL_FULL,
137 	p_commit                IN      VARCHAR2  DEFAULT FND_API.G_FALSE,
138 	x_msg_count             OUT NOCOPY      NUMBER,
139         x_msg_data              OUT NOCOPY      VARCHAR2,
140 	x_return_status         OUT NOCOPY      VARCHAR2,
141 
142 	-- Program specific parameters
143         p_exception_rec         IN OUT  NOCOPY WSH_EXCEPTIONS_PUB.XC_ACTION_REC_TYPE,
144 	p_action	   	 IN		VARCHAR2
145 	) IS
146 
147 
148 	-- Standard call to check for call compatibility
149   	l_api_version          CONSTANT        NUMBER  := 1.0;
150   	l_api_name             CONSTANT        VARCHAR2(30):= 'Exception_Action';
151 l_debug_on BOOLEAN;
152         l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME ||
153               '.' || 'Get_Exceptions';
154 --        l_in_rec                    WSH_EXCEPTIONS_PUB.ExpInRecType;
155 
156 BEGIN
157         --
158         l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
159         --
160 
161         IF l_debug_on IS NULL
162         THEN
163             l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
164         END IF;
165         --
166         IF l_debug_on THEN
167            wsh_debug_sv.push (l_module_name);
168            wsh_debug_sv.log (l_module_name,'p_api_version', p_api_version);
169            wsh_debug_sv.log (l_module_name,'p_init_msg_list', p_init_msg_list);
170            wsh_debug_sv.log (l_module_name,'p_validation_level',
171                                                           p_validation_level);
172            wsh_debug_sv.log (l_module_name,'p_commit', p_commit);
173            wsh_debug_sv.log (l_module_name,'p_action', p_action);
174         END IF;
175 
176   	-- Check p_init_msg_list
177   	IF FND_API.to_boolean(p_init_msg_list) THEN
178     		FND_MSG_PUB.initialize;
179   	END IF;
180 
181   	IF NOT FND_API.compatible_api_call (
182                           l_api_version,
183                           p_api_version,
184                           l_api_name,
185                           G_PKG_NAME) THEN
186     	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
187   	END IF;
188 
189         p_exception_rec.caller := 'WSH_PUB';
190  	x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
191 
192         -- For Public API, Exceptions are always manually logged
193         p_exception_rec.manually_logged := FND_API.G_TRUE;
194 
195         wsh_exceptions_grp.Exception_Action(
196               p_api_version               => p_api_version,
197               p_init_msg_list             => FND_API.G_FALSE,
198               p_commit              	  => p_commit,
199               p_validation_level          => p_validation_level,
200               x_msg_count                 => x_msg_count,
201               x_msg_data                  => x_msg_data,
202               x_return_status             => x_return_status,
203 	      p_exception_rec		  => p_exception_rec,
204 	      p_action			  => p_action
205         ) ;
206 
207         --bms original API is not calling FND_MSG_PUB.Count_And_Get
208        IF l_debug_on THEN
209             WSH_DEBUG_SV.pop(l_module_name);
210        END IF;
211 
212 EXCEPTION
213 	WHEN OTHERS THEN
214         	WSH_UTIL_CORE.default_handler('WSH_EXCEPTIONS_PUB.EXCEPTION_ACTION');
215 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
216                 IF l_debug_on THEN
217                    wsh_debug_sv.log (l_module_name,'Error', SUBSTR(SQLERRM,1,200));
218                    WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
219                 END IF;
220 
221 END Exception_Action;
222 
223 END WSH_EXCEPTIONS_PUB;