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