DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_STYLE_FMT_VARIATION_V2PUB

Source


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