DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_STYLE_V2PUB

Source


1 PACKAGE BODY HZ_STYLE_V2PUB AS
2 /*$Header: ARH2STSB.pls 115.3 2003/12/22 14:34:38 rchanamo noship $ */
3 
4   --------------------------------------
5   -- declaration of private global varibles
6   --------------------------------------
7   g_debug_count                     NUMBER := 0;
8   --g_debug                           BOOLEAN := FALSE;
9 
10   --------------------------------------
11   -- declaration of private procedures and functions
12   --------------------------------------
13   /*PROCEDURE enable_debug;
14 
15   PROCEDURE disable_debug;
16   */
17 
18 
19   PROCEDURE do_create_style(
20     p_style_rec                  IN OUT  NOCOPY style_rec_type,
21     x_return_status              IN OUT NOCOPY  VARCHAR2
22   );
23 
24   PROCEDURE do_update_style(
25     p_style_rec                  IN OUT  NOCOPY style_rec_type,
26     p_object_version_number      IN OUT NOCOPY  NUMBER,
27     x_return_status              IN OUT NOCOPY  VARCHAR2
28   );
29 
30 
31   --------------------------------------
32   -- private procedures and functions
33   --------------------------------------
34 
35   /**
36    * PRIVATE PROCEDURE enable_debug
37    *
38    * DESCRIPTION
39    *     Turn on debug mode.
40    *
41    * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
42    *     HZ_UTILITY_V2PUB.enable_debug
43    *
44    * MODIFICATION HISTORY
45    *
46    *   18-Jul-2001    Kate Shan      o Created.
47    *
48    */
49 
50   /*PROCEDURE enable_debug IS
51   BEGIN
52     g_debug_count := g_debug_count + 1;
53 
54     IF g_debug_count = 1 THEN
55       IF fnd_profile.value('HZ_API_FILE_DEBUG_ON') = 'Y' OR
56          fnd_profile.value('HZ_API_DBMS_DEBUG_ON') = 'Y'
57       THEN
58         hz_utility_v2pub.enable_debug;
59         g_debug := TRUE;
60       END IF;
61     END IF;
62   END enable_debug;
63   */
64 
65   /**
66    * PRIVATE PROCEDURE disable_debug
67    *
68    * DESCRIPTION
69    *     Turn off debug mode.
70    *
71    * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
72    *     HZ_UTILITY_V2PUB.disable_debug
73    *
74    * MODIFICATION HISTORY
75    *
76    *   18-Jul-2001    Kate Shan      o Created.
77    *
78    */
79 
80   /*PROCEDURE disable_debug IS
81   BEGIN
82     IF g_debug THEN
83       g_debug_count := g_debug_count - 1;
84       IF g_debug_count = 0 THEN
85         hz_utility_v2pub.disable_debug;
86         g_debug := FALSE;
87       END IF;
88     END IF;
89   END disable_debug;
90   */
91 
92 
93   /**
94    * PRIVATE PROCEDURE do_create_style
95    *
96    * DESCRIPTION
97    *     create style
98 
99    *   07-23-2001    Kate Shan      o Created.
100    *
101    */
102 
103   PROCEDURE do_create_style(
104     p_style_rec                  IN OUT  NOCOPY style_rec_type,
105     x_return_status              IN OUT NOCOPY  VARCHAR2
106   ) IS
107     l_rowid           ROWID := null;
108     l_debug_prefix    VARCHAR2(30) := '';
109   BEGIN
110 
111     -- Debug info.
112     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
113 	hz_utility_v2pub.debug(p_message=>'do_create_style (+)',
114 	                       p_prefix=>l_debug_prefix,
115 			       p_msg_level=>fnd_log.level_procedure);
116     END IF;
117 
118     -- validate the input record
119     HZ_NAME_ADDRESS_FMT_VALIDATE.validate_style(
120       'C',
121       p_style_rec,
122       l_rowid,
123       x_return_status
124     );
125 
126     IF x_return_status = fnd_api.g_ret_sts_error THEN
127       RAISE fnd_api.g_exc_error;
128     END IF;
129 
130     -- Debug info.
131     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
132 	hz_utility_v2pub.debug(p_message=>'hz_styles_pkg.insert_row (+)',
133 	                       p_prefix=>l_debug_prefix,
134 			       p_msg_level=>fnd_log.level_procedure);
135     END IF;
136 
137     hz_styles_pkg.insert_row (
138       X_ROWID                 => l_rowid,
139       X_STYLE_CODE            => p_style_rec.style_code,
140       X_DATABASE_OBJECT_NAME  => p_style_rec.database_object_name,
141       X_STYLE_NAME            => p_style_rec.style_name,
142       X_DESCRIPTION           => p_style_rec.description,
143       x_object_version_number => 1
144     );
145 
146     -- Debug info.
147     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
148 	hz_utility_v2pub.debug(p_message=>'hz_styles_pkg.insert_row (-) ' ||
149                                  'p_style_rec.style_code = ' || p_style_rec.style_code,
150 	                       p_prefix=>l_debug_prefix,
151 			       p_msg_level=>fnd_log.level_procedure);
152     END IF;
153   END do_create_style;
154 
155   /**
156    * PRIVATE PROCEDURE do_update_style
157    *
158    * DESCRIPTION
159    *     update style
160 
161    *   07-23-2001    Kate Shan      o Created.
162    *
163    */
164 
165 
166   PROCEDURE do_update_style(
167     p_style_rec                  IN OUT  NOCOPY style_rec_type,
168     p_object_version_number      IN OUT NOCOPY  NUMBER,
169     x_return_status              IN OUT NOCOPY  VARCHAR2
170   ) IS
171     l_object_version_number NUMBER;
172     l_debug_prefix          VARCHAR2(30) := '';
173     l_rowid                 ROWID;
174 
175   BEGIN
176 
177     -- Debug info.
178     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
179 	hz_utility_v2pub.debug(p_message=>'do_update_style (+)',
180 	                       p_prefix=>l_debug_prefix,
181 			       p_msg_level=>fnd_log.level_procedure);
182     END IF;
183 
184     -- check whether record has been updated by another user
185     BEGIN
186         -- check last update date.
187         SELECT object_version_number, rowid
188         INTO l_object_version_number, l_rowid
189         FROM HZ_STYLES_B
190         WHERE style_code = p_style_rec.style_code
191         FOR UPDATE of  style_code NOWAIT;
192 
193         IF NOT (
194             ( p_object_version_number IS NULL AND l_object_version_number IS NULL ) OR
195             ( p_object_version_number IS NOT NULL AND
196               l_object_version_number IS NOT NULL AND
197               p_object_version_number = l_object_version_number ) )
198         THEN
199             FND_MESSAGE.SET_NAME('AR', 'HZ_API_RECORD_CHANGED');
200             FND_MESSAGE.SET_TOKEN('TABLE', 'hz_styles');
201             FND_MSG_PUB.ADD;
202             RAISE FND_API.G_EXC_ERROR;
203         END IF;
204 
205         p_object_version_number := nvl(l_object_version_number, 1) + 1;
206 
207     EXCEPTION WHEN NO_DATA_FOUND THEN
208         FND_MESSAGE.SET_NAME('AR', 'HZ_API_NO_RECORD');
209         FND_MESSAGE.SET_TOKEN('RECORD', 'style');
210         FND_MESSAGE.SET_TOKEN('VALUE', NVL(( p_style_rec.style_code), 'null'));
211         FND_MSG_PUB.ADD;
212         RAISE FND_API.G_EXC_ERROR;
213     END;
214 
215     -- validate  style record
216     HZ_NAME_ADDRESS_FMT_VALIDATE.validate_style(
217         'U',
218         p_style_rec,
219 	l_rowid,
220         x_return_status);
221 
222     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
223         RAISE FND_API.G_EXC_ERROR;
224     END IF;
225 
226     -- Debug info.
227     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
228 	hz_utility_v2pub.debug(p_message=>'HZ_STYLES_PKG.Update_Row (+)',
229 	                       p_prefix=>l_debug_prefix,
230 			       p_msg_level=>fnd_log.level_procedure);
231     END IF;
232 
233     -- call table handler to update a row
234     HZ_STYLES_PKG.Update_Row (
235       x_style_code            => p_style_rec.style_code,
236       x_database_object_name  => p_style_rec.database_object_name,
237       x_style_name            => p_style_rec.style_name,
238       x_description           => p_style_rec.description,
239       x_object_version_number => p_object_version_number
240     );
241 
242     -- Debug info.
243     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
244 	hz_utility_v2pub.debug(p_message=>'HZ_STYLES_PKG.Update_Row (-)',
245 	                       p_prefix=>l_debug_prefix,
246 			       p_msg_level=>fnd_log.level_procedure);
247     END IF;
248 
249     -- Debug info.
250     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
251 	hz_utility_v2pub.debug(p_message=>'do_update_style (-)',
252 	                       p_prefix=>l_debug_prefix,
253 			       p_msg_level=>fnd_log.level_procedure);
254     END IF;
255 
256 END do_update_style;
257 
258 
259 --------------------------------------
260 -- public procedures and functions
261 --------------------------------------
262 
263 /**
264  * PROCEDURE create_style
265  *
266  * DESCRIPTION
267  *     Creates style.
268  *
269  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
270  *
271  * ARGUMENTS
272  *   IN:
273  *     p_init_msg_list                Initialize message stack if it is set to
274  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
275  *     p_style_rec                    Style record.
276  *   IN/OUT:
277  *   OUT:
278  *     x_return_status                Return status after the call. The status can
279  *                                    be FND_API.G_RET_STS_SUCCESS (success),
280  *                                    FND_API.G_RET_STS_ERROR (error),
281  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
282  *     x_msg_count                    Number of messages in message stack.
283  *     x_msg_data                     Message text if x_msg_count is 1.
284  *
285  * NOTES
286  *
287  * MODIFICATION HISTORY
288  *
289  *   17-Jul-2002    Kate Shan        o Created.
290  *
291  */
292 
293 PROCEDURE create_style (
294     p_init_msg_list                    IN      VARCHAR2 := FND_API.G_FALSE,
295     p_style_rec                        IN      STYLE_REC_TYPE,
296     x_return_status                    OUT NOCOPY     VARCHAR2,
297     x_msg_count                        OUT NOCOPY     NUMBER,
298     x_msg_data                         OUT NOCOPY     VARCHAR2
299 ) IS
300     l_style_rec        STYLE_REC_TYPE := p_style_rec;
301     l_debug_prefix     VARCHAR2(30) := '';
302 
303 BEGIN
304 
305     -- standard start of API savepoint
306     SAVEPOINT create_style;
307 
308     -- Check if API is called in debug mode. If yes, enable debug.
309     --enable_debug;
310 
311     -- Debug info.
312     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
313 	hz_utility_v2pub.debug(p_message=>'create_style (+)',
314 	                       p_prefix=>l_debug_prefix,
315 			       p_msg_level=>fnd_log.level_procedure);
316     END IF;
317 
318     -- initialize message list if p_init_msg_list is set to TRUE.
319     IF FND_API.to_Boolean(p_init_msg_list) THEN
320         FND_MSG_PUB.initialize;
321     END IF;
322 
323     -- initialize API return status to success.
324     x_return_status := FND_API.G_RET_STS_SUCCESS;
325 
326     -- call to business logic.
327     do_create_style(
328                        l_style_rec,
329                        x_return_status);
330 
331     -- standard call to get message count and if count is 1, get message info.
332     FND_MSG_PUB.Count_And_Get(
333                 p_encoded => FND_API.G_FALSE,
334                 p_count => x_msg_count,
335                 p_data  => x_msg_data);
336     -- Debug info.
337     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
338 	 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
339 	                       p_msg_data=>x_msg_data,
340 			       p_msg_type=>'WARNING',
341 			       p_msg_level=>fnd_log.level_exception);
342     END IF;
343     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
344 	hz_utility_v2pub.debug(p_message=>'create_style (-)',
345 	                       p_prefix=>l_debug_prefix,
346 			       p_msg_level=>fnd_log.level_procedure);
347     END IF;
348 
349     -- Check if API is called in debug mode. If yes, disable debug.
350     --disable_debug;
351 
352 EXCEPTION
353     WHEN FND_API.G_EXC_ERROR THEN
354         ROLLBACK TO create_style;
355         x_return_status := FND_API.G_RET_STS_ERROR;
356         FND_MSG_PUB.Count_And_Get(
357                         p_encoded => FND_API.G_FALSE,
358                         p_count => x_msg_count,
359                         p_data  => x_msg_data);
360 
361         -- Debug info.
362 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
363 		 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
364 	                       p_msg_data=>x_msg_data,
365 			       p_msg_type=>'ERROR',
366 			       p_msg_level=>fnd_log.level_error);
367         END IF;
368         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
369 	    hz_utility_v2pub.debug(p_message=>'create_style (-)',
370 	                       p_prefix=>l_debug_prefix,
371 			       p_msg_level=>fnd_log.level_procedure);
372         END IF;
373 
374         -- Check if API is called in debug mode. If yes, disable debug.
375         --disable_debug;
376 
377     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
378         ROLLBACK TO create_style;
379         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
380         FND_MSG_PUB.Count_And_Get(
381                         p_encoded => FND_API.G_FALSE,
382                         p_count => x_msg_count,
383                         p_data  => x_msg_data);
384 
385         -- Debug info.
386 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
387             hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
388 	                       p_msg_data=>x_msg_data,
389 			       p_msg_type=>'UNEXPECTED ERROR',
390 			       p_msg_level=>fnd_log.level_error);
391         END IF;
392         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
393 	   hz_utility_v2pub.debug(p_message=>'create_style (-)',
394 	                       p_prefix=>l_debug_prefix,
395 			       p_msg_level=>fnd_log.level_procedure);
396         END IF;
397 
398         -- Check if API is called in debug mode. If yes, disable debug.
399         --disable_debug;
400 
401     WHEN OTHERS THEN
402         ROLLBACK TO create_style;
403         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
404 
405         FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
406         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
407         FND_MSG_PUB.ADD;
408 
409         FND_MSG_PUB.Count_And_Get(
410                         p_encoded => FND_API.G_FALSE,
411                         p_count => x_msg_count,
412                         p_data  => x_msg_data);
413 
414         -- Debug info.
415 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
416              hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
417 	                       p_msg_data=>x_msg_data,
418 			       p_msg_type=>'SQL ERROR',
419 			       p_msg_level=>fnd_log.level_error);
420         END IF;
421         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
422 	    hz_utility_v2pub.debug(p_message=>'create_style (-)',
423 	                       p_prefix=>l_debug_prefix,
424 			       p_msg_level=>fnd_log.level_procedure);
425         END IF;
426 
427         -- Check if API is called in debug mode. If yes, disable debug.
428         --disable_debug;
429 
430 
431 END create_style;
432 
433 /**
434  * PROCEDURE update_style
435  *
436  * DESCRIPTION
437  *     Updates style.
438  *
439  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
440  *
441  * ARGUMENTS
442  *   IN:
443  *     p_init_msg_list                Initialize message stack if it is set to
444  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
445  *     p_style_rec                 Style record.
446  *   IN/OUT:
447  *     p_object_version_number        Used for locking the being updated record.
448  *   OUT:
449  *     x_return_status                Return status after the call. The status can
450  *                                    be FND_API.G_RET_STS_SUCCESS (success),
451  *                                    FND_API.G_RET_STS_ERROR (error),
452  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
453  *     x_msg_count                    Number of messages in message stack.
454  *     x_msg_data                     Message text if x_msg_count is 1.
455  *
456  * NOTES
457  *
458  * MODIFICATION HISTORY
459  *
460  *   17-Jul-2002    Kate Shan        o Created.
461  *
462  */
463 
464 PROCEDURE update_style (
465     p_init_msg_list         IN         VARCHAR2 :=FND_API.G_FALSE,
466     p_style_rec             IN         STYLE_REC_TYPE,
467     p_object_version_number IN OUT NOCOPY     NUMBER,
468     x_return_status         OUT NOCOPY        VARCHAR2,
469     x_msg_count             OUT NOCOPY        NUMBER,
470     x_msg_data              OUT NOCOPY        VARCHAR2
471 )IS
472 
473     l_style_rec           STYLE_REC_TYPE := p_style_rec;
474     l_old_style_rec       STYLE_REC_TYPE;
475     l_debug_prefix        VARCHAR2(30) := '';
476 
477 BEGIN
478 
479     -- standard start of API savepoint
480     SAVEPOINT update_style;
481 
482     -- Check if API is called in debug mode. If yes, enable debug.
483     --enable_debug;
484 
485     -- Debug info.
486     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
487 	hz_utility_v2pub.debug(p_message=>'update_style (+)',
488 	                       p_prefix=>l_debug_prefix,
489 			       p_msg_level=>fnd_log.level_procedure);
490     END IF;
491 
492     -- initialize message list if p_init_msg_list is set to TRUE.
493     IF FND_API.to_Boolean(p_init_msg_list) THEN
494         FND_MSG_PUB.initialize;
495     END IF;
496 
497     -- initialize API return status to success.
498     x_return_status := FND_API.G_RET_STS_SUCCESS;
499 
500     -- call to business logic.
501     do_update_style(
502                        l_style_rec,
503                        p_object_version_number,
504                        x_return_status);
505 
506     -- standard call to get message count and if count is 1, get message info.
507     FND_MSG_PUB.Count_And_Get(
508                               p_encoded => FND_API.G_FALSE,
509                               p_count => x_msg_count,
510                               p_data  => x_msg_data);
511 
512     -- Debug info.
513     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
514 	 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
515 	                       p_msg_data=>x_msg_data,
516 			       p_msg_type=>'WARNING',
517 			       p_msg_level=>fnd_log.level_exception);
518     END IF;
519     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
520 	hz_utility_v2pub.debug(p_message=>'update_style (-)',
521 	                       p_prefix=>l_debug_prefix,
522 			       p_msg_level=>fnd_log.level_procedure);
523     END IF;
524 
525     -- Check if API is called in debug mode. If yes, disable debug.
526     --disable_debug;
527 
528 EXCEPTION
529     WHEN FND_API.G_EXC_ERROR THEN
530         ROLLBACK TO update_style;
531         x_return_status := FND_API.G_RET_STS_ERROR;
532         FND_MSG_PUB.Count_And_Get(
533                         p_encoded => FND_API.G_FALSE,
534                         p_count => x_msg_count,
535                         p_data  => x_msg_data);
536 
537         -- Debug info.
538 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
539 		 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
540 	                       p_msg_data=>x_msg_data,
541 			       p_msg_type=>'ERROR',
542 			       p_msg_level=>fnd_log.level_error);
543         END IF;
544         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
545 	    hz_utility_v2pub.debug(p_message=>'update_style (-)',
546 	                       p_prefix=>l_debug_prefix,
547 			       p_msg_level=>fnd_log.level_procedure);
548         END IF;
549 
550         -- Check if API is called in debug mode. If yes, disable debug.
551         --disable_debug;
552 
553     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
554         ROLLBACK TO update_style;
555         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
556         FND_MSG_PUB.Count_And_Get(
557                         p_encoded => FND_API.G_FALSE,
558                         p_count => x_msg_count,
559                         p_data  => x_msg_data);
560 
561         -- Debug info.
562 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
563             hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
564 	                       p_msg_data=>x_msg_data,
565 			       p_msg_type=>'UNEXPECTED ERROR',
566 			       p_msg_level=>fnd_log.level_error);
567         END IF;
568         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
569 	   hz_utility_v2pub.debug(p_message=>'update_style (-)',
570 	                       p_prefix=>l_debug_prefix,
571 			       p_msg_level=>fnd_log.level_procedure);
572         END IF;
573 
574         -- Check if API is called in debug mode. If yes, disable debug.
575         --disable_debug;
576 
577     WHEN OTHERS THEN
578         ROLLBACK TO update_style;
579         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
580 
581         FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
582         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
583         FND_MSG_PUB.ADD;
584 
585         FND_MSG_PUB.Count_And_Get(
586                         p_encoded => FND_API.G_FALSE,
587                         p_count => x_msg_count,
588                         p_data  => x_msg_data);
589 
590         -- Debug info.
591 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
592              hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
593 	                       p_msg_data=>x_msg_data,
594 			       p_msg_type=>'SQL ERROR',
595 			       p_msg_level=>fnd_log.level_error);
596         END IF;
597         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
598 	    hz_utility_v2pub.debug(p_message=>'update_style (-)',
599 	                       p_prefix=>l_debug_prefix,
600 			       p_msg_level=>fnd_log.level_procedure);
601         END IF;
602 
603         -- Check if API is called in debug mode. If yes, disable debug.
604         --disable_debug;
605 
606 
607 END update_style;
608 
609 /**
610  * PROCEDURE get_style_rec
611  *
612  * DESCRIPTION
613  *     Gets style record.
614  *
615  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
616  *
617  * ARGUMENTS
618  *   IN:
619  *     p_init_msg_list                Initialize message stack if it is set to
620  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
621  *     p_style_code                   Style Code.
622  *   IN/OUT:
623  *   OUT:
624  *     x_style_rec                 Style record.
625  *     x_return_status                Return status after the call. The status can
626  *                                    be FND_API.G_RET_STS_SUCCESS (success),
627  *                                    FND_API.G_RET_STS_ERROR (error),
628  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
629  *     x_msg_count                    Number of messages in message stack.
630  *     x_msg_data                     Message text if x_msg_count is 1.
631  *
632  * NOTES
633  *
634  * MODIFICATION HISTORY
635  *
636  *   17-Jul-2002    Kate Shan        o Created.
637  *
638  */
639 
640  PROCEDURE get_style_rec (
641     p_init_msg_list      IN          VARCHAR2 := FND_API.G_FALSE,
642     p_style_code         IN          VARCHAR2,
643     x_style_rec          OUT  NOCOPY STYLE_REC_TYPE,
644     x_return_status      OUT NOCOPY         VARCHAR2,
645     x_msg_count          OUT NOCOPY         NUMBER,
646     x_msg_data           OUT NOCOPY         VARCHAR2
647 )IS
648   l_debug_prefix     VARCHAR2(30) := '';
649   BEGIN
650     -- Check if API is called in debug mode. If yes, enable debug.
651     --enable_debug;
652 
653     -- Debug info.
654     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
655 	hz_utility_v2pub.debug(p_message=>'get_style_rec (+)',
656 	                       p_prefix=>l_debug_prefix,
657 			       p_msg_level=>fnd_log.level_procedure);
658     END IF;
659 
660     -- Initialize message list if p_init_msg_list is set to TRUE.
661     IF fnd_api.to_boolean(p_init_msg_list) THEN
662       fnd_msg_pub.initialize;
663     END IF;
664 
665     -- Initialize API return status to success.
666     x_return_status := fnd_api.g_ret_sts_success;
667 
668     -- Check whether primary key has been passed in.
669     IF p_style_code IS NULL OR
670        p_style_code = fnd_api.g_miss_char THEN
671       fnd_message.set_name('AR', 'HZ_API_MISSING_COLUMN');
672       fnd_message.set_token('COLUMN', 'style_code');
673       fnd_msg_pub.add;
674       RAISE fnd_api.g_exc_error;
675     END IF;
676 
677     x_style_rec.style_code := p_style_code;
678 
679     -- Debug info.
680     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
681 	hz_utility_v2pub.debug(p_message=>'hz_styles_pkg.Select_Row (+)',
682 	                       p_prefix=>l_debug_prefix,
683 			       p_msg_level=>fnd_log.level_procedure);
684     END IF;
685 
686     hz_styles_pkg.select_row (
687       x_style_code            => x_style_rec.style_code,
688       x_database_object_name  => x_style_rec.database_object_name,
689       x_style_name            => x_style_rec.style_name,
690       x_description           => x_style_rec.description
691     );
692 
693     -- Debug info.
694     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
695 	hz_utility_v2pub.debug(p_message=>'hz_styles_pkg.select_row (-)',
696 	                       p_prefix=>l_debug_prefix,
697 			       p_msg_level=>fnd_log.level_procedure);
698     END IF;
699 
700     --Standard call to get message count and if count is 1, get message info.
701     fnd_msg_pub.count_and_get(
702       p_encoded => fnd_api.g_false,
703       p_count   => x_msg_count,
704       p_data    => x_msg_data
705     );
706 
707     -- Debug info.
708     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
709 	 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
710 	                       p_msg_data=>x_msg_data,
711 			       p_msg_type=>'WARNING',
712 			       p_msg_level=>fnd_log.level_exception);
713     END IF;
714     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
715 	hz_utility_v2pub.debug(p_message=>'get_style_rec (-)',
716 	                       p_prefix=>l_debug_prefix,
717 			       p_msg_level=>fnd_log.level_procedure);
718     END IF;
719 
720     -- Check if API is called in debug mode. If yes, disable debug.
721     --disable_debug;
722   EXCEPTION
723     WHEN fnd_api.g_exc_error THEN
724       x_return_status := fnd_api.g_ret_sts_error;
725       fnd_msg_pub.count_and_get(
726         p_encoded => fnd_api.g_false,
727         p_count => x_msg_count,
728         p_data  => x_msg_data
729       );
730 
731       -- Debug info.
732       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
733 		 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
734 	                       p_msg_data=>x_msg_data,
735 			       p_msg_type=>'ERROR',
736 			       p_msg_level=>fnd_log.level_error);
737         END IF;
738         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
739 	    hz_utility_v2pub.debug(p_message=>'get_style_rec (-)',
740 	                       p_prefix=>l_debug_prefix,
741 			       p_msg_level=>fnd_log.level_procedure);
742         END IF;
743 
744       -- Check if API is called in debug mode. If yes, disable debug.
745       --disable_debug;
746 
747     WHEN fnd_api.g_exc_unexpected_error THEN
748       x_return_status := fnd_api.g_ret_sts_unexp_error;
749 
750       fnd_msg_pub.count_and_get(
751         p_encoded => fnd_api.g_false,
752         p_count => x_msg_count,
753         p_data  => x_msg_data
754       );
755 
756       -- Debug info.
757       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
758             hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
759 	                       p_msg_data=>x_msg_data,
760 			       p_msg_type=>'UNEXPECTED ERROR',
761 			       p_msg_level=>fnd_log.level_error);
762         END IF;
763         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
764 	   hz_utility_v2pub.debug(p_message=>'get_style_rec (-)',
765 	                       p_prefix=>l_debug_prefix,
766 			       p_msg_level=>fnd_log.level_procedure);
767         END IF;
768 
769       -- Check if API is called in debug mode. If yes, disable debug.
770       --disable_debug;
771 
772     WHEN OTHERS THEN
773       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
774 
775       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
776       fnd_message.set_token('ERROR' ,SQLERRM);
777       fnd_msg_pub.add;
778 
779       fnd_msg_pub.count_and_get(
780         p_encoded => fnd_api.g_false,
781         p_count => x_msg_count,
782         p_data  => x_msg_data
783       );
784 
785       -- Debug info.
786       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
787              hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
788 	                       p_msg_data=>x_msg_data,
789 			       p_msg_type=>'SQL ERROR',
790 			       p_msg_level=>fnd_log.level_error);
791       END IF;
792       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
793 	    hz_utility_v2pub.debug(p_message=>'get_style_rec (-)',
794 	                       p_prefix=>l_debug_prefix,
795 			       p_msg_level=>fnd_log.level_procedure);
796       END IF;
797 
798       -- Check if API is called in debug mode. If yes, disable debug.
799       --disable_debug;
800 
801   END get_style_rec;
802 
803 
804 END HZ_STYLE_V2PUB;