DBA Data[Home] [Help]

PACKAGE BODY: APPS.PO_MESSAGE_S

Source


1 PACKAGE BODY PO_MESSAGE_S AS
2 -- $Header: PO_MESSAGE_S.plb 120.6 2009/12/16 14:21:43 ssreekum ship $
3 
4 -- Read the profile option that enables/disables the debug log
5 g_debug_unexp BOOLEAN := PO_DEBUG.is_debug_unexp_on;
6 
7 
8 --------------------------------------------------------------------------------
9 --Start of Comments
10 --Name: sql_error
11 --Pre-reqs:
12 --    N/A
13 --Modifies:
14 --  FND_LOG_MESSAGES
15 --  FND Message Stack
16 --Locks:
17 --  N/A
18 --Function:
19 --  This procedure sets a message describing a SQL error onto the
20 --  server-side FND message stack
21 --  Additionally, if debug logging is enabled, a message is also
22 --  recorded in the FND_LOG_MESSAGES table
23 --Parameters:
24 --IN:
25 --routine
26 --  The name of the calling procedure
27 --  Used to identify the FND log record
28 --location
29 --  The location within the calling procedure at which the SQL error occured
30 --  Used to identify the FND log record
31 --error_code
32 --  The ORA code associated with a particular SQL exception
33 --Testing:
34 --
35 --End of Comments
36 -------------------------------------------------------------------------------
37 PROCEDURE SQL_ERROR(routine IN varchar2 ,
38                     location IN varchar2,
39                     error_code IN number) IS
40 BEGIN
41 
42 --<ENCUMBRANCE FPJ: refactored this procedure to call new sig of SQL_ERROR>
43         SQL_ERROR(
44            p_package  => 'po_message_s'
45         ,  p_routine  => routine
46         ,  p_location => location
47         ,  p_sqlcode  => error_code
48         ,  p_sqlerrm  => SQLERRM(error_code)
49         );
50 
51 EXCEPTION
52    WHEN OTHERS THEN RAISE;
53 END SQL_ERROR;
54 
55 
56 --------------------------------------------------------------------------------
57 --Start of Comments
58 --Name: sql_error
59 --Pre-reqs:
60 --    N/A
61 --Modifies:
62 --  FND_LOG_MESSAGES
63 --  FND Message Stack
64 --Locks:
65 --  N/A
66 --Function:
67 --  This procedure sets a message describing a SQL error onto the
68 --  server-side FND message stack
69 --  Additionally, if debug logging is enabled, a message is also
70 --  recorded in the FND_LOG_MESSAGES table
71 --Parameters:
72 --IN:
73 --p_package
74 --  The name of the calling package
75 --  Used to identify the FND log record
76 --p_procedure
77 --  The name of the calling procedure
78 --  Used to identify the FND log record
79 --p_location
80 --  The location within the calling procedure at which the SQL error occured
81 --  Used to identify the FND log record
82 --p_sqlcode
83 --  The ORA code associated with a particular SQL exception
84 --p_sqlerrm
85 --  The standard description associated with a particular SQL exception
86 --Testing:
87 --
88 --End of Comments
89 -------------------------------------------------------------------------------
90 PROCEDURE SQL_ERROR(
91   p_package  IN varchar2
92 , p_routine  IN varchar2
93 , p_location IN varchar2
94 , p_sqlcode  IN number
95 , p_sqlerrm  IN varchar
96 --<ENCUMBRANCE FPJ: created new, overloaded sig for this procedure>
97 )
98 IS
99    l_log_head  VARCHAR2(240) := substrb('po.plsql.' || p_package
100                                          || '.' || p_routine
101                                        , 1, 240);
102    l_error_msg VARCHAR2(240) := substrb(SQLERRM, 1, 240);
103 BEGIN
104 
105    IF (g_routine is NULL) THEN
106 
107       g_routine  := p_routine;
108       g_location := p_location;
109 
110       FND_MESSAGE.set_name('PO', PO_ALL_SQL_ERROR);
111       FND_MESSAGE.set_token(c_ROUTINE_token, p_routine);
112       FND_MESSAGE.set_token(c_ERR_NUMBER_token, p_location);
113       FND_MESSAGE.set_token(c_SQL_ERR_token, l_error_msg);
114       FND_MESSAGE.set_token(c_LSQL_ERR_token, SQLERRM);
115 
116    END IF;
117 
118    IF g_debug_unexp THEN
119       PO_DEBUG.debug_exc(l_log_head, p_location);
120    END IF;
121 
122 EXCEPTION
123    WHEN OTHERS THEN RAISE;
124 END SQL_ERROR;
125 
126 
127 PROCEDURE APP_ERROR(error_name IN varchar2) IS
128 BEGIN
129         IF (g_routine is NULL) THEN
130           g_routine  := 'ERROR';
131           FND_MESSAGE.set_name('PO',error_name);
132           APP_EXCEPTION.RAISE_EXCEPTION;
133         END IF;
134 
135 EXCEPTION
136   WHEN OTHERS THEN RAISE;
137 END APP_ERROR;
138 
139 PROCEDURE APP_ERROR(error_name IN varchar2,
140                     token1 IN varchar2,
141                     value1 IN varchar2) IS
142 BEGIN
143         IF (g_routine is NULL) THEN
144           g_routine  := 'ERROR';
145 
146           FND_MESSAGE.set_name('PO',error_name);
147 
148           IF (token1 is not NULL and value1 is not null) THEN
149             FND_MESSAGE.SET_TOKEN(token1,value1);
150           END IF;
151 
152           APP_EXCEPTION.RAISE_EXCEPTION;
153         END IF;
154 
155 EXCEPTION
156   WHEN OTHERS THEN RAISE;
157 END APP_ERROR;
158 
159 PROCEDURE APP_ERROR(error_name IN varchar2,
160                     token1 IN varchar2,
161                     value1 IN varchar2,
162                     token2 IN varchar2,
163                     value2 IN varchar2) IS
164 BEGIN
165         IF (g_routine is NULL) THEN
166           g_routine  := 'ERROR';
167 
168           FND_MESSAGE.set_name('PO',error_name);
169 
170           IF (token1 is not NULL and value1 is not null) THEN
171             FND_MESSAGE.SET_TOKEN(token1,value1);
172           END IF;
173 
174           IF (token2 is not NULL and value2 is not null) THEN
175             FND_MESSAGE.SET_TOKEN(token2,value2);
176           END IF;
177 
178           APP_EXCEPTION.RAISE_EXCEPTION;
179         END IF;
180 
181 EXCEPTION
182   WHEN OTHERS THEN RAISE;
183 END APP_ERROR;
184 
185 PROCEDURE APP_ERROR(error_name IN varchar2,
186                     token1 IN varchar2,
187                     value1 IN varchar2,
188                     token2 IN varchar2,
189                     value2 IN varchar2,
190                     token3 IN varchar2,
191                     value3 IN varchar2) IS
192 BEGIN
193         IF (g_routine is NULL) THEN
194           g_routine  := 'ERROR';
195 
196           FND_MESSAGE.set_name('PO',error_name);
197 
198           IF (token1 is not NULL and value1 is not null) THEN
199             FND_MESSAGE.SET_TOKEN(token1,value1);
200           END IF;
201 
202           IF (token2 is not NULL and value2 is not null) THEN
203             FND_MESSAGE.SET_TOKEN(token2,value2);
204           END IF;
205 
206           IF (token3 is not NULL and value3 is not null) THEN
207             FND_MESSAGE.SET_TOKEN(token3,value3);
208           END IF;
209 
210           APP_EXCEPTION.RAISE_EXCEPTION;
211         END IF;
212 
213 EXCEPTION
214   WHEN OTHERS THEN RAISE;
215 END APP_ERROR;
216 
217 PROCEDURE APP_ERROR(error_name IN varchar2,
218                     token1 IN varchar2,
219                     value1 IN varchar2,
220                     token2 IN varchar2,
221                     value2 IN varchar2,
222                     token3 IN varchar2,
223                     value3 IN varchar2,
224                     token4 IN varchar2,
225                     value4 IN varchar2) IS
226 BEGIN
227         IF (g_routine is NULL) THEN
228           g_routine  := 'ERROR';
229 
230           FND_MESSAGE.set_name('PO',error_name);
231 
232           IF (token1 is not NULL and value1 is not null) THEN
233             FND_MESSAGE.SET_TOKEN(token1,value1);
234           END IF;
235 
236           IF (token2 is not NULL and value2 is not null) THEN
237             FND_MESSAGE.SET_TOKEN(token2,value2);
238           END IF;
239 
240           IF (token3 is not NULL and value3 is not null) THEN
241             FND_MESSAGE.SET_TOKEN(token3,value3);
242           END IF;
243 
244           IF (token4 is not NULL and value4 is not null) THEN
245             FND_MESSAGE.SET_TOKEN(token4,value4);
246           END IF;
247 
248           APP_EXCEPTION.RAISE_EXCEPTION;
249         END IF;
250 
251 EXCEPTION
252   WHEN OTHERS THEN RAISE;
253 END APP_ERROR;
254 
255 PROCEDURE APP_SET_NAME(error_name IN varchar2) IS
256 BEGIN
257         IF (g_routine  is null) THEN
258           g_routine  := 'ERROR';
259           FND_MESSAGE.set_name('PO',error_name);
260         END IF;
261 
262 EXCEPTION
263   WHEN OTHERS THEN RAISE;
264 END APP_SET_NAME;
265 
266 PROCEDURE clear IS
267 BEGIN
268   g_routine  := NULL;
269   g_location := NULL;
270 
271 EXCEPTION
272   WHEN OTHERS THEN RAISE;
273 END CLEAR;
274 
275 PROCEDURE SQL_SHOW_ERROR IS
276 BEGIN
277     NULL;
278 /*
279 	dbms_output.put_line ('Error Occured in routine : ' ||
280 		g_routine || ' - Location : ' || g_location);
281 */
282 EXCEPTION
283   WHEN OTHERS THEN RAISE;
284 END SQL_SHOW_ERROR;
285 
286 
287 -- Bug 3516763: created function get_fnd_msg_pub_last
288 --------------------------------------------------------------------------------
289 --Start of Comments
290 --Name: get_fnd_msg_pub_last
291 --Pre-reqs:
292 --    N/A
293 --Modifies:
294 --    N/A
295 --Locks:
296 --  N/A
297 --Function:
298 --  This function gets the string value of the last message on the
299 --  API message list [fnd_msg_pub].
300 --Parameters:
301 --IN:
302 --  N/A
303 --Testing:
304 --
305 --End of Comments
306 -------------------------------------------------------------------------------
307 FUNCTION GET_FND_MSG_PUB_LAST RETURN varchar2
308 IS
309 BEGIN
310   return FND_MSG_PUB.get( p_encoded   => FND_API.G_FALSE
311                         , p_msg_index => FND_MSG_PUB.G_LAST
312                         );
313 EXCEPTION
314   WHEN OTHERS THEN RAISE;
315 END GET_FND_MSG_PUB_LAST;
316 
317 
318 
319 --------------------------------------------------------------------------------
320 --Start of Comments
321 --Name: add_exc_msg
322 --Pre-reqs:
323 --    N/A
324 --Modifies:
325 --    N/A
326 --Locks:
327 --  N/A
328 --Function:
329 --  Wrapper to FND_MSG_PUB.add_exc_msg. This procedure logs the same msg
330 --  we are putting to FND msg stack
331 --Parameters:
332 --IN:
333 --p_pkg_name
334 --  package name that logs this msg
335 --p_procedure_name
336 --  procedure name that logs this msg
337 --p_error_text
338 --  Error description
339 --Testing:
340 --
341 --End of Comments
342 -------------------------------------------------------------------------------
343 PROCEDURE add_exc_msg
344 (   p_pkg_name		IN VARCHAR2,
345     p_procedure_name	IN VARCHAR2,
346     p_error_text	IN VARCHAR2
347 ) IS
348 
349 d_module VARCHAR2(100) := p_pkg_name || '.' || p_procedure_name;
350 
351 l_msg FND_NEW_MESSAGES.message_text%TYPE;
352 
353 BEGIN
354 
355   FND_MSG_PUB.add_exc_msg
356   ( p_pkg_name => p_pkg_name
357   , p_procedure_name => p_procedure_name
358   , p_error_text => p_error_text
359   );
360 
361   -- get the message just inserted
362   l_msg := FND_MSG_PUB.get
363            ( p_msg_index => FND_MSG_PUB.count_msg
364              , p_encoded => FND_API.G_FALSE
365            );
366 
367   -- no need to specify progress because d_module should have included it
368   PO_LOG.exc(d_module, NULL, l_msg);
369 
370 
371 END add_exc_msg;
372 
373 
374 -- <PDOI Rewrite R12 START>
375 --------------------------------------------------------------------------------
376 --Start of Comments
377 --Name: concat_fnd_messages_in_stack
378 --Pre-reqs:
379 --    N/A
380 --Modifies:
381 --    N/A
382 --Locks:
383 --  N/A
384 --Function:
385 --  Concatenates all messages in FND_MSG_PUB stack with the max size specified
386 --  as parameter
387 --Parameters:
388 --IN:
389 --p_max_size
390 --  maximum size alloweded for the returning concatenated message text
391 --OUT:
392 --  result string to be returned
393 --Testing:
394 --
395 --End of Comments
396 -------------------------------------------------------------------------------
397 PROCEDURE concat_fnd_messages_in_stack
398 ( p_max_size IN NUMBER,
399   x_message_text OUT NOCOPY VARCHAR2
400 ) IS
401 
402 l_msg_temp VARCHAR2(2000);
403 
404 BEGIN
405   FOR i IN 1..FND_MSG_PUB.count_msg LOOP
406     l_msg_temp := FND_MSG_PUB.get
407                   ( p_msg_index => i,
408                     p_encoded => 'F'
409                   );
410 
411     x_message_text := SUBSTRB(x_message_text || l_msg_temp || '   ',
412                               p_max_size);
413   END LOOP;
414 END concat_fnd_messages_in_stack;
415 -- <PDOI Rewrite R12 START>
416 
417 END PO_MESSAGE_S;