DBA Data[Home] [Help]

PACKAGE BODY: APPS.OZF_OFFER_PERFORMANCE_PVT

Source


1 PACKAGE BODY OZF_Offer_Performance_PVT as
2 /* $Header: ozfvperb.pls 120.1 2005/09/07 19:20:29 appldev ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          OZF_Offer_Performance_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- End of Comments
14 -- ===============================================================
15 
16 
17 G_PKG_NAME CONSTANT VARCHAR2(30):= 'OZF_Offer_Performance_PVT';
18 G_FILE_NAME CONSTANT VARCHAR2(12) := 'ozfvperb.pls';
19 
20 -- Hint: Primary key needs to be returned.
21 PROCEDURE Create_Offer_Performance(
22     p_api_version_number         IN   NUMBER,
23     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
24     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
25     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
26 
27     x_return_status              OUT NOCOPY  VARCHAR2,
28     x_msg_count                  OUT NOCOPY  NUMBER,
29     x_msg_data                   OUT NOCOPY  VARCHAR2,
30 
31     p_offer_perf_rec               IN   offer_perf_rec_type  := g_miss_offer_perf_rec,
32     x_offer_performance_id                   OUT NOCOPY  NUMBER
33      )
34 
35  IS
36 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Create_Offer_Performance';
37 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
38    l_return_status_full        VARCHAR2(1);
39    l_object_version_number     NUMBER := 1;
40    l_org_id                    NUMBER := FND_API.G_MISS_NUM;
41    l_OFFER_PERFORMANCE_ID                  NUMBER;
42    l_dummy       NUMBER;
43 
44    CURSOR c_id IS
45       SELECT OZF_OFFER_PERFORMANCES_S.NEXTVAL
46       FROM dual;
47 
48    CURSOR c_id_exists (l_id IN NUMBER) IS
49       SELECT 1
50       FROM OZF_OFFER_PERFORMANCES
51       WHERE OFFER_PERFORMANCE_ID = l_id;
52 
53 BEGIN
54    --dbms_output.put_line('First message');
55       -- Standard Start of API savepoint
56       SAVEPOINT CREATE_Offer_Performance_PVT;
57 
58       ozf_utility_pvt.debug_message('inside create');
59       -- Standard call to check for call compatibility.
60       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
61                                            p_api_version_number,
62                                            l_api_name,
63                                            G_PKG_NAME)
64       THEN
65           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
66       END IF;
67 
68       -- Initialize message list if p_init_msg_list is set to TRUE.
69       IF FND_API.to_Boolean( p_init_msg_list )
70       THEN
71          FND_MSG_PUB.initialize;
72       END IF;
73 
74       -- Debug Message
75       ozf_utility_pvt.debug_message('Private API: ' || l_api_name || 'start');
76 
77 
78       -- Initialize API return status to SUCCESS
79       x_return_status := FND_API.G_RET_STS_SUCCESS;
80 
81    -- Local variable initialization
82 
83    IF p_offer_perf_rec.OFFER_PERFORMANCE_ID IS NULL OR p_offer_perf_rec.OFFER_PERFORMANCE_ID = FND_API.g_miss_num THEN
84       LOOP
85          l_dummy := NULL;
86          OPEN c_id;
87          FETCH c_id INTO l_OFFER_PERFORMANCE_ID;
88          CLOSE c_id;
89 
90          OPEN c_id_exists(l_OFFER_PERFORMANCE_ID);
91          FETCH c_id_exists INTO l_dummy;
92          CLOSE c_id_exists;
93          EXIT WHEN l_dummy IS NULL;
94 	  END LOOP;
95    ELSE
96           l_offer_performance_id := p_offer_perf_rec.offer_performance_id;
97 
98    END IF;
99 
100       -- =========================================================================
101       -- Validate Environment
102       -- =========================================================================
103 
104       IF FND_GLOBAL.User_Id IS NULL
105       THEN
106  ozf_utility_pvt.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
107           RAISE FND_API.G_EXC_ERROR;
108       END IF;
109 
110       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
111       THEN
112           -- Debug message
113           ozf_utility_pvt.debug_message('Private API: Validate_Offer_Performance');
114 
115           -- Invoke validation procedures
116           Validate_offer_performance(
117             p_api_version_number     => 1.0,
118             p_init_msg_list    => FND_API.G_FALSE,
119             p_validation_level => p_validation_level,
120             p_validation_mode => JTF_PLSQL_API.g_create,
121             p_offer_perf_rec  =>  p_offer_perf_rec,
122             x_return_status    => x_return_status,
123             x_msg_count        => x_msg_count,
124             x_msg_data         => x_msg_data);
125       END IF;
126 
127       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
128           RAISE FND_API.G_EXC_ERROR;
129       END IF;
130 
131 
132       -- Debug Message
133       ozf_utility_pvt.debug_message( 'Private API: Calling create table handler');
134 
135       -- Invoke table handler(OZF_OFFER_PERFORMANCES_PKG.Insert_Row)
136       OZF_OFFER_PERFORMANCES_PKG.Insert_Row(
137           px_offer_performance_id  => l_offer_performance_id,
138           p_list_header_id  => p_offer_perf_rec.list_header_id,
139           p_last_update_date  => SYSDATE,
140           p_last_updated_by  => FND_GLOBAL.USER_ID,
141           p_creation_date  => SYSDATE,
142           p_created_by  => FND_GLOBAL.USER_ID,
143           p_last_update_login  => FND_GLOBAL.CONC_LOGIN_ID,
144           px_object_version_number  => l_object_version_number,
145           p_product_attribute_context  => p_offer_perf_rec.product_attribute_context,
146           p_product_attribute  => p_offer_perf_rec.product_attribute,
147           p_product_attr_value  => p_offer_perf_rec.product_attr_value,
148           p_channel_id  => p_offer_perf_rec.channel_id,
149           p_start_date  => p_offer_perf_rec.start_date,
150           p_end_date  => p_offer_perf_rec.end_date,
151           p_estimated_value  => p_offer_perf_rec.estimated_value,
152           p_required_flag  => p_offer_perf_rec.required_flag,
153           p_attribute_category  => p_offer_perf_rec.attribute_category,
154           p_attribute1  => p_offer_perf_rec.attribute1,
155           p_attribute2  => p_offer_perf_rec.attribute2,
156           p_attribute3  => p_offer_perf_rec.attribute3,
157           p_attribute4  => p_offer_perf_rec.attribute4,
158           p_attribute5  => p_offer_perf_rec.attribute5,
159           p_attribute6  => p_offer_perf_rec.attribute6,
160           p_attribute7  => p_offer_perf_rec.attribute7,
161           p_attribute8  => p_offer_perf_rec.attribute8,
162           p_attribute9  => p_offer_perf_rec.attribute9,
163           p_attribute10  => p_offer_perf_rec.attribute10,
164           p_attribute11  => p_offer_perf_rec.attribute11,
165           p_attribute12  => p_offer_perf_rec.attribute12,
166           p_attribute13  => p_offer_perf_rec.attribute13,
167           p_attribute14  => p_offer_perf_rec.attribute14,
168           p_attribute15  => p_offer_perf_rec.attribute15,
169           p_security_group_id  => p_offer_perf_rec.security_group_id,
170           p_requirement_type => p_offer_perf_rec.requirement_type,
171           p_uom_code     => p_offer_perf_rec.uom_code,
172           p_description  => p_offer_perf_rec.description);
173 
174           x_offer_performance_id := l_offer_performance_id;
175       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
176           RAISE FND_API.G_EXC_ERROR;
177       END IF;
178 --
179 -- End of API body
180 --
181 
182       -- Standard check for p_commit
183       IF FND_API.to_Boolean( p_commit )
184       THEN
185          COMMIT WORK;
186       END IF;
187 
188 
189       -- Debug Message
190       ozf_utility_pvt.debug_message('Private API: ' || l_api_name || 'end');
191 
192       -- Standard call to get message count and if count is 1, get message info.
193       FND_MSG_PUB.Count_And_Get
194         (p_count          =>   x_msg_count,
195          p_data           =>   x_msg_data
196       );
197 EXCEPTION
198 
199    WHEN ozf_utility_pvt.resource_locked THEN
200      x_return_status := FND_API.g_ret_sts_error;
201  ozf_utility_pvt.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
202 
203    WHEN FND_API.G_EXC_ERROR THEN
204      ROLLBACK TO CREATE_Offer_Performance_PVT;
205      x_return_status := FND_API.G_RET_STS_ERROR;
206      -- Standard call to get message count and if count=1, get the message
207      FND_MSG_PUB.Count_And_Get (
208             p_encoded => FND_API.G_FALSE,
209             p_count   => x_msg_count,
210             p_data    => x_msg_data
211      );
212 
213    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
214      ROLLBACK TO CREATE_Offer_Performance_PVT;
215      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
216      -- Standard call to get message count and if count=1, get the message
217      FND_MSG_PUB.Count_And_Get (
218             p_encoded => FND_API.G_FALSE,
219             p_count => x_msg_count,
220             p_data  => x_msg_data
221      );
222 
223    WHEN OTHERS THEN
224      ROLLBACK TO CREATE_Offer_Performance_PVT;
225      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
226      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
227      THEN
228         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
229      END IF;
230      -- Standard call to get message count and if count=1, get the message
231      FND_MSG_PUB.Count_And_Get (
232             p_encoded => FND_API.G_FALSE,
233             p_count => x_msg_count,
234             p_data  => x_msg_data
235      );
236 End Create_Offer_Performance;
237 
238 
239 PROCEDURE Update_Offer_Performance(
240     p_api_version_number         IN   NUMBER,
241     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
242     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
243     p_validation_level           IN  NUMBER       := FND_API.G_VALID_LEVEL_FULL,
244 
245     x_return_status              OUT NOCOPY  VARCHAR2,
246     x_msg_count                  OUT NOCOPY  NUMBER,
247     x_msg_data                   OUT NOCOPY  VARCHAR2,
248 
249     p_offer_perf_rec               IN    offer_perf_rec_type,
250     x_object_version_number      OUT NOCOPY  NUMBER
251     )
252 
253  IS
254 
255 CURSOR c_get_offer_performance(l_offer_performance_id NUMBER) IS
256     SELECT *
257     FROM  OZF_OFFER_PERFORMANCES
258     where offer_performance_id = l_offer_performance_id;
259     -- Hint: Developer need to provide Where clause
260 
261 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Update_Offer_Performance';
262 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
263 -- Local Variables
264 l_object_version_number     NUMBER;
265 l_OFFER_PERFORMANCE_ID    NUMBER;
266 l_ref_offer_perf_rec  c_get_Offer_Performance%ROWTYPE ;
267 l_tar_offer_perf_rec  OZF_Offer_Performance_PVT.offer_perf_rec_type := P_offer_perf_rec;
268 l_rowid  ROWID;
269 
270  BEGIN
271     --dbms_output.put_line('second message');
272       -- Standard Start of API savepoint
273       SAVEPOINT UPDATE_Offer_Performance_PVT;
274        ozf_utility_pvt.debug_message('Inside update Private API: - Open Cursor to Select');
275        ozf_utility_pvt.debug_message('Inside update Private API: - Open Cursor to Select');
276       -- Standard call to check for call compatibility.
277         --  RAISE FND_API.G_EXC_ERROR;
278       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
279                                            p_api_version_number,
280                                            l_api_name,
281                                            G_PKG_NAME)
282       THEN
283           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
284       END IF;
285 
286       -- Initialize message list if p_init_msg_list is set to TRUE.
287       IF FND_API.to_Boolean( p_init_msg_list )
288       THEN
289          FND_MSG_PUB.initialize;
290       END IF;
291 
292       -- Debug Message
293       ozf_utility_pvt.debug_message('Private API: ' || l_api_name || 'start');
294 
295 
296       -- Initialize API return status to SUCCESS
297       x_return_status := FND_API.G_RET_STS_SUCCESS;
298 
299       -- Debug Message
300       ozf_utility_pvt.debug_message('Private API: - Open Cursor to Select');
301 
302 
303       OPEN c_get_Offer_Performance( l_tar_offer_perf_rec.offer_performance_id);
304 
305       FETCH c_get_Offer_Performance INTO l_ref_offer_perf_rec  ;
306 
307        If ( c_get_Offer_Performance%NOTFOUND) THEN
308   ozf_utility_pvt.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
309    p_token_name   => 'INFO',
310  p_token_value  => 'Offer_Performance') ;
311            RAISE FND_API.G_EXC_ERROR;
312        END IF;
313        -- Debug Message
314        ozf_utility_pvt.debug_message('Private API: - Close Cursor');
315        CLOSE     c_get_Offer_Performance;
316 
317 
318 
319       If (l_tar_offer_perf_rec.object_version_number is NULL or
320           l_tar_offer_perf_rec.object_version_number = FND_API.G_MISS_NUM ) Then
321   ozf_utility_pvt.Error_Message(p_message_name => 'API_VERSION_MISSING',
322    p_token_name   => 'COLUMN',
323  p_token_value  => 'Last_Update_Date') ;
324           raise FND_API.G_EXC_ERROR;
325       End if;
329    p_token_name   => 'INFO',
326       -- Check Whether record has been changed by someone else
327       If (l_tar_offer_perf_rec.object_version_number <> l_ref_offer_perf_rec.object_version_number) Then
328   ozf_utility_pvt.Error_Message(p_message_name => 'API_RECORD_CHANGED',
330  p_token_value  => 'Offer_Performance') ;
331           raise FND_API.G_EXC_ERROR;
332       End if;
333       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
334       THEN
335           -- Debug message
336           ozf_utility_pvt.debug_message('Private API: Validate_Offer_Performance');
337 
338           -- Invoke validation procedures
339           Validate_offer_performance(
340             p_api_version_number     => 1.0,
341             p_init_msg_list    => FND_API.G_FALSE,
342             p_validation_level => p_validation_level,
343             p_validation_mode => JTF_PLSQL_API.g_update,
344             p_offer_perf_rec  =>  p_offer_perf_rec,
345             x_return_status    => x_return_status,
346             x_msg_count        => x_msg_count,
347             x_msg_data         => x_msg_data);
348       END IF;
349 ozf_utility_pvt.debug_message('out of validate');
350 
351       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
352           RAISE FND_API.G_EXC_ERROR;
353       END IF;
354 
355 ozf_utility_pvt.debug_message('out OUT NOCOPY out of validate');
356       -- Debug Message
357       ozf_utility_pvt.debug_message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW||'Private API: Calling update table handler');
358       l_object_version_number := l_tar_offer_perf_rec.object_version_number + 1;
359       -- Invoke table handler(OZF_OFFER_PERFORMANCES_PKG.Update_Row)
360       OZF_OFFER_PERFORMANCES_PKG.Update_Row(
361           p_offer_performance_id  => p_offer_perf_rec.offer_performance_id,
362           p_list_header_id  => p_offer_perf_rec.list_header_id,
363           p_last_update_date  => SYSDATE,
364           p_last_updated_by  => FND_GLOBAL.USER_ID,
365 	  p_creation_date  => p_offer_perf_rec.creation_date,
366           p_created_by  => p_offer_perf_rec.created_by,
367           p_last_update_login  => FND_GLOBAL.CONC_LOGIN_ID,
368           p_object_version_number  => l_object_version_number,
369           p_product_attribute_context  => p_offer_perf_rec.product_attribute_context,
370           p_product_attribute  => p_offer_perf_rec.product_attribute,
371           p_product_attr_value  => p_offer_perf_rec.product_attr_value,
372           p_channel_id  => p_offer_perf_rec.channel_id,
373           p_start_date  => p_offer_perf_rec.start_date,
374           p_end_date  => p_offer_perf_rec.end_date,
375           p_estimated_value  => p_offer_perf_rec.estimated_value,
376          p_required_flag  => p_offer_perf_rec.required_flag,
377          p_attribute_category  => p_offer_perf_rec.attribute_category,
378           p_attribute1  => p_offer_perf_rec.attribute1,
379           p_attribute2  => p_offer_perf_rec.attribute2,
380           p_attribute3  => p_offer_perf_rec.attribute3,
381           p_attribute4  => p_offer_perf_rec.attribute4,
382           p_attribute5  => p_offer_perf_rec.attribute5,
383           p_attribute6  => p_offer_perf_rec.attribute6,
384           p_attribute7  => p_offer_perf_rec.attribute7,
385           p_attribute8  => p_offer_perf_rec.attribute8,
386           p_attribute9  => p_offer_perf_rec.attribute9,
387           p_attribute10  => p_offer_perf_rec.attribute10,
388           p_attribute11  => p_offer_perf_rec.attribute11,
389           p_attribute12  => p_offer_perf_rec.attribute12,
390           p_attribute13  => p_offer_perf_rec.attribute13,
391           p_attribute14  => p_offer_perf_rec.attribute14,
392           p_attribute15  => p_offer_perf_rec.attribute15,
393           p_security_group_id  => p_offer_perf_rec.security_group_id,
394           p_requirement_type => p_offer_perf_rec.requirement_type,
395           p_uom_code     => p_offer_perf_rec.uom_code,
396           p_description  => p_offer_perf_rec.description);
397 
398           x_object_version_number := p_offer_perf_rec.object_version_number + 1;
399 
400       --
401       -- End of API body.
402       --
403 
404       -- Standard check for p_commit
405       IF FND_API.to_Boolean( p_commit )
406       THEN
407          COMMIT WORK;
408       END IF;
409 
410 
411       -- Debug Message
412       ozf_utility_pvt.debug_message('Private API: ' || l_api_name || 'end');
413 
414       -- Standard call to get message count and if count is 1, get message info.
415       FND_MSG_PUB.Count_And_Get
416         (p_count          =>   x_msg_count,
417          p_data           =>   x_msg_data
418       );
419 EXCEPTION
420 
421    WHEN ozf_utility_pvt.resource_locked THEN
422      x_return_status := FND_API.g_ret_sts_error;
423  ozf_utility_pvt.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
424 
425    WHEN FND_API.G_EXC_ERROR THEN
426      ROLLBACK TO UPDATE_Offer_Performance_PVT;
427      x_return_status := FND_API.G_RET_STS_ERROR;
428      -- Standard call to get message count and if count=1, get the message
429      FND_MSG_PUB.Count_And_Get (
430             p_encoded => FND_API.G_FALSE,
431             p_count   => x_msg_count,
432             p_data    => x_msg_data
433      );
434 
435    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
436      ROLLBACK TO UPDATE_Offer_Performance_PVT;
440             p_encoded => FND_API.G_FALSE,
437      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
438      -- Standard call to get message count and if count=1, get the message
439      FND_MSG_PUB.Count_And_Get (
441             p_count => x_msg_count,
442             p_data  => x_msg_data
443      );
444 
445    WHEN OTHERS THEN
446      ROLLBACK TO UPDATE_Offer_Performance_PVT;
447      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
448      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
449      THEN
450         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
451      END IF;
452      -- Standard call to get message count and if count=1, get the message
453      FND_MSG_PUB.Count_And_Get (
454             p_encoded => FND_API.G_FALSE,
455             p_count => x_msg_count,
456             p_data  => x_msg_data
457      );
458 End Update_Offer_Performance;
459 
460 
461 PROCEDURE Delete_Offer_Performance(
462     p_api_version_number         IN   NUMBER,
463     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
464     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
465     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
466     x_return_status              OUT NOCOPY  VARCHAR2,
467     x_msg_count                  OUT NOCOPY  NUMBER,
468     x_msg_data                   OUT NOCOPY  VARCHAR2,
469     p_offer_performance_id                   IN  NUMBER,
470     p_object_version_number      IN   NUMBER
471     )
472 
473  IS
474 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Delete_Offer_Performance';
475 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
476 l_object_version_number     NUMBER;
477 
478  BEGIN
479     --dbms_output.put_line('Third message');
480       -- Standard Start of API savepoint
481       SAVEPOINT DELETE_Offer_Performance_PVT;
482 
483       -- Standard call to check for call compatibility.
484       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
485                                            p_api_version_number,
486                                            l_api_name,
487                                            G_PKG_NAME)
488       THEN
489           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
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 )
494       THEN
495          FND_MSG_PUB.initialize;
496       END IF;
497 
498       -- Debug Message
499       ozf_utility_pvt.debug_message('Private API: ' || l_api_name || 'start');
500 
501 
502       -- Initialize API return status to SUCCESS
503       x_return_status := FND_API.G_RET_STS_SUCCESS;
504 
505       --
506       -- Api body
507       --
508       -- Debug Message
509       ozf_utility_pvt.debug_message( 'Private API: Calling delete table handler');
510 
511       -- Invoke table handler(OZF_OFFER_PERFORMANCES_PKG.Delete_Row)
512       OZF_OFFER_PERFORMANCES_PKG.Delete_Row(
513           p_OFFER_PERFORMANCE_ID  => p_OFFER_PERFORMANCE_ID);
514       --
515       -- End of API body
516       --
517 
518       -- Standard check for p_commit
519       IF FND_API.to_Boolean( p_commit )
520       THEN
521          COMMIT WORK;
522       END IF;
523 
524 
525       -- Debug Message
526       ozf_utility_pvt.debug_message('Private API: ' || l_api_name || 'end');
527 
528       -- Standard call to get message count and if count is 1, get message info.
529       FND_MSG_PUB.Count_And_Get
530         (p_count          =>   x_msg_count,
531          p_data           =>   x_msg_data
532       );
533 EXCEPTION
534 
535    WHEN ozf_utility_pvt.resource_locked THEN
536      x_return_status := FND_API.g_ret_sts_error;
537  ozf_utility_pvt.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
538 
539    WHEN FND_API.G_EXC_ERROR THEN
540      ROLLBACK TO DELETE_Offer_Performance_PVT;
541      x_return_status := FND_API.G_RET_STS_ERROR;
542      -- Standard call to get message count and if count=1, get the message
543      FND_MSG_PUB.Count_And_Get (
544             p_encoded => FND_API.G_FALSE,
545             p_count   => x_msg_count,
546             p_data    => x_msg_data
547      );
548 
549    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
550      ROLLBACK TO DELETE_Offer_Performance_PVT;
551      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
552      -- Standard call to get message count and if count=1, get the message
553      FND_MSG_PUB.Count_And_Get (
554             p_encoded => FND_API.G_FALSE,
555             p_count => x_msg_count,
556             p_data  => x_msg_data
557      );
558 
559    WHEN OTHERS THEN
560      ROLLBACK TO DELETE_Offer_Performance_PVT;
561      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
562      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
563      THEN
564         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
565      END IF;
566      -- Standard call to get message count and if count=1, get the message
567      FND_MSG_PUB.Count_And_Get (
568             p_encoded => FND_API.G_FALSE,
569             p_count => x_msg_count,
570             p_data  => x_msg_data
571      );
575 
572 End Delete_Offer_Performance;
573 
574 
576 -- Hint: Primary key needs to be returned.
577 PROCEDURE Lock_Offer_Performance(
578     p_api_version_number         IN   NUMBER,
579     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
580 
581     x_return_status              OUT NOCOPY  VARCHAR2,
582     x_msg_count                  OUT NOCOPY  NUMBER,
583     x_msg_data                   OUT NOCOPY  VARCHAR2,
584 
585     p_offer_performance_id                   IN  NUMBER,
586     p_object_version             IN  NUMBER
587     )
588 
589  IS
590 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Lock_Offer_Performance';
591 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
592 L_FULL_NAME                 CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
593 l_OFFER_PERFORMANCE_ID                  NUMBER;
594 
595 CURSOR c_Offer_Performance IS
596    SELECT OFFER_PERFORMANCE_ID
597    FROM OZF_OFFER_PERFORMANCES
598    WHERE OFFER_PERFORMANCE_ID = p_OFFER_PERFORMANCE_ID
599    AND object_version_number = p_object_version
600    FOR UPDATE NOWAIT;
601 
602 BEGIN
603     --dbms_output.put_line('Fourth message');
604       -- Debug Message
605       ozf_utility_pvt.debug_message('Private API: ' || l_api_name || 'start');
606 
607       -- Initialize message list if p_init_msg_list is set to TRUE.
608       IF FND_API.to_Boolean( p_init_msg_list )
609       THEN
610          FND_MSG_PUB.initialize;
611       END IF;
612 
613       -- Standard call to check for call compatibility.
614       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
615                                            p_api_version_number,
616                                            l_api_name,
617                                            G_PKG_NAME)
618       THEN
619           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
620       END IF;
621 
622 
623       -- Initialize API return status to SUCCESS
624       x_return_status := FND_API.G_RET_STS_SUCCESS;
625 
626 
627 ------------------------ lock -------------------------
628 
629   ozf_utility_pvt.debug_message(l_full_name||': start');
630   OPEN c_Offer_Performance;
631 
632   FETCH c_Offer_Performance INTO l_OFFER_PERFORMANCE_ID;
633 
634   IF (c_Offer_Performance%NOTFOUND) THEN
635     CLOSE c_Offer_Performance;
636     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
637        FND_MESSAGE.set_name('OZF', 'OZF_API_RECORD_NOT_FOUND');
638        FND_MSG_PUB.add;
639     END IF;
640     RAISE FND_API.g_exc_error;
641   END IF;
642 
643   CLOSE c_Offer_Performance;
644 
645  -------------------- finish --------------------------
646   FND_MSG_PUB.count_and_get(
647     p_encoded => FND_API.g_false,
648     p_count   => x_msg_count,
649     p_data    => x_msg_data);
650   ozf_utility_pvt.debug_message(l_full_name ||': end');
651 EXCEPTION
652 
653    WHEN ozf_utility_pvt.resource_locked THEN
654      x_return_status := FND_API.g_ret_sts_error;
655  ozf_utility_pvt.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
656 
657    WHEN FND_API.G_EXC_ERROR THEN
658      ROLLBACK TO LOCK_Offer_Performance_PVT;
659      x_return_status := FND_API.G_RET_STS_ERROR;
660      -- Standard call to get message count and if count=1, get the message
661      FND_MSG_PUB.Count_And_Get (
662             p_encoded => FND_API.G_FALSE,
663             p_count   => x_msg_count,
664             p_data    => x_msg_data
665      );
666 
667    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
668      ROLLBACK TO LOCK_Offer_Performance_PVT;
669      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
670      -- Standard call to get message count and if count=1, get the message
671      FND_MSG_PUB.Count_And_Get (
672             p_encoded => FND_API.G_FALSE,
673             p_count => x_msg_count,
674             p_data  => x_msg_data
675      );
676 
677    WHEN OTHERS THEN
678      ROLLBACK TO LOCK_Offer_Performance_PVT;
679      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
680      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
681      THEN
682         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
683      END IF;
684      -- Standard call to get message count and if count=1, get the message
685      FND_MSG_PUB.Count_And_Get (
686             p_encoded => FND_API.G_FALSE,
687             p_count => x_msg_count,
688             p_data  => x_msg_data
689      );
690 End Lock_Offer_Performance;
691 
692 
693 PROCEDURE check_offer_perf_uk_items(
694     p_offer_perf_rec               IN   offer_perf_rec_type,
695     p_validation_mode            IN  VARCHAR2 := JTF_PLSQL_API.g_create,
696     x_return_status              OUT NOCOPY VARCHAR2)
697 IS
698 l_valid_flag  VARCHAR2(1);
699 
700 
701 BEGIN
702       x_return_status := FND_API.g_ret_sts_success;
703 
704       ozf_utility_pvt.debug_message('inside uk='||p_validation_mode||''||p_offer_perf_rec.OFFER_PERFORMANCE_ID);
705       ozf_utility_pvt.debug_message('ins'||p_offer_perf_rec.PRODUCT_ATTRIBUTE);
706       ozf_utility_pvt.debug_message('ins'||p_offer_perf_rec.PRODUCT_ATTR_VALUE);
707       ozf_utility_pvt.debug_message('ins'||p_offer_perf_rec.CHANNEL_ID);
711       IF p_validation_mode = JTF_PLSQL_API.g_create THEN
708 
709 
710 
712 	 l_valid_flag := ozf_utility_pvt.check_uniqueness(
713          'OZF_OFFER_PERFORMANCES',
714          ' PRODUCT_ATTRIBUTE  ='||' '||p_offer_perf_rec.PRODUCT_ATTRIBUTE ||''||
715 	 ' AND PRODUCT_ATTR_VALUE  ='||' '|| p_offer_perf_rec.PRODUCT_ATTR_VALUE||''||
716 	 ' AND CHANNEL_ID  = '||' '|| p_offer_perf_rec.CHANNEL_ID||' '||
717 	 ' AND LIST_HEADER_ID = '||' '|| p_offer_perf_rec.LIST_HEADER_ID
718 	 );
719 
720       ELSE
721 	-- l_valid_flag := ozf_utility_pvt.check_uniqueness('OZF_OFFER_PERFORMANCES','OFFER_PERFORMANCE_ID = '||' '||p_offer_perf_rec.offer_performance_id||' '||
722 	-- ' AND REQUIRED_FLAG  = '||' '|| p_offer_perf_rec.REQUIRED_FLAG||''||
723 	-- ' AND ESTIMATED_VALUE  = '||' '|| p_offer_perf_rec.ESTIMATED_VALUE||' '||
724 	-- ' AND START_DATE  = '||' '|| p_offer_perf_rec.START_DATE||' '||
725 	-- ' AND END_DATE  = '||' '|| p_offer_perf_rec.END_DATE||' '
726 	-- );
727 	l_valid_flag := FND_API.g_true;
728       END IF;
729      ozf_utility_pvt.debug_message('inside uk middle');
730       IF l_valid_flag = FND_API.g_false THEN
731         ozf_utility_pvt.Error_Message(p_message_name => 'OZF_PERFORMANCE_ID_DUPLICATE');
732          x_return_status := FND_API.g_ret_sts_error;
733          RETURN;
734       END IF;
735        ozf_utility_pvt.debug_message('inside uk end');
736 END check_offer_perf_uk_items;
737 
738 PROCEDURE check_offer_perf_req_items(
739     p_offer_perf_rec               IN  offer_perf_rec_type,
740     p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
741     x_return_status	         OUT NOCOPY VARCHAR2
742 )
743 IS
744 BEGIN
745    x_return_status := FND_API.g_ret_sts_success;
746 
747   -- IF p_validation_mode = JTF_PLSQL_API.g_create THEN
748   -- ELSE
749    --END IF;
750   IF p_offer_perf_rec.channel_id = -1 THEN
751     IF p_offer_perf_rec.requirement_type IS NULL OR p_offer_perf_rec.requirement_type = fnd_api.g_miss_char THEN
752       ozf_utility_pvt.Error_Message('OZF', 'OZF_PERF_NO_REQ_TYPE');
753       x_return_status := FND_API.g_ret_sts_error;
754     END IF;
755 
756     IF p_offer_perf_rec.estimated_value IS NULL OR p_offer_perf_rec.estimated_value = fnd_api.g_miss_num THEN
757       ozf_utility_pvt.Error_Message('OZF', 'OZF_PERF_NO_EST_VALUE');
758       x_return_status := FND_API.g_ret_sts_error;
759     END IF;
760   END IF;
761 
762   IF p_offer_perf_rec.requirement_type = 'VOLUME' THEN
763     IF p_offer_perf_rec.uom_code IS NULL OR p_offer_perf_rec.uom_code = fnd_api.g_miss_char THEN
764       ozf_utility_pvt.Error_Message('OZF', 'OZF_PERF_NO_UOM');
765       x_return_status := FND_API.g_ret_sts_error;
766     END IF;
767   END IF;
768 
769 END check_offer_perf_req_items;
770 
771 PROCEDURE check_offer_perf_FK_items(
772     p_offer_perf_rec IN offer_perf_rec_type,
773     x_return_status OUT NOCOPY VARCHAR2
774 )
775 IS
776 BEGIN
777    x_return_status := FND_API.g_ret_sts_success;
778 
779    -- Enter custom code here
780 
781 END check_offer_perf_FK_items;
782 
783 PROCEDURE check_offer_perf_Lookup_items(
784     p_offer_perf_rec IN offer_perf_rec_type,
785     x_return_status OUT NOCOPY VARCHAR2
786 )
787 IS
788 BEGIN
789    x_return_status := FND_API.g_ret_sts_success;
790 
791    -- Enter custom code here
792 
793 END check_offer_perf_Lookup_items;
794 
795 PROCEDURE Check_offer_perf_Items (
796     P_offer_perf_rec     IN    offer_perf_rec_type,
797     p_validation_mode  IN    VARCHAR2,
798     x_return_status    OUT NOCOPY   VARCHAR2
799     )
800 IS
801 BEGIN
802 
803    -- Check Items Uniqueness API calls
804 ozf_utility_pvt.debug_message('inside items validation mode='||p_validation_mode);
805 ozf_utility_pvt.debug_message('inside items validation mode='||p_validation_mode);
806 
807 
808    check_offer_perf_uk_items(
809       p_offer_perf_rec => p_offer_perf_rec,
810       p_validation_mode => p_validation_mode,
811       x_return_status => x_return_status);
812    IF x_return_status <> FND_API.g_ret_sts_success THEN
813       RETURN;
814    END IF;
815 
816    -- Check Items Required/NOT NULL API calls
817 
818    check_offer_perf_req_items(
819       p_offer_perf_rec => p_offer_perf_rec,
820       p_validation_mode => p_validation_mode,
821       x_return_status => x_return_status);
822    IF x_return_status <> FND_API.g_ret_sts_success THEN
823       RETURN;
824    END IF;
825    -- Check Items Foreign Keys API calls
826 
827    check_offer_perf_FK_items(
828       p_offer_perf_rec => p_offer_perf_rec,
829       x_return_status => x_return_status);
830    IF x_return_status <> FND_API.g_ret_sts_success THEN
831       RETURN;
832    END IF;
833    -- Check Items Lookups
834 
835    check_offer_perf_Lookup_items(
836       p_offer_perf_rec => p_offer_perf_rec,
837       x_return_status => x_return_status);
838    IF x_return_status <> FND_API.g_ret_sts_success THEN
839       RETURN;
840    END IF;
841 
842 END Check_offer_perf_Items;
843 
844 
845 
846 PROCEDURE Complete_offer_perf_Rec (
847    p_offer_perf_rec IN offer_perf_rec_type,
848    x_complete_rec OUT NOCOPY offer_perf_rec_type)
849 IS
850    l_return_status  VARCHAR2(1);
851 
855       WHERE offer_performance_id = p_offer_perf_rec.offer_performance_id;
852    CURSOR c_complete IS
853       SELECT *
854       FROM OZF_offer_performances
856    l_offer_perf_rec c_complete%ROWTYPE;
857 BEGIN
858    x_complete_rec := p_offer_perf_rec;
859 
860 
861    OPEN c_complete;
862    FETCH c_complete INTO l_offer_perf_rec;
863    CLOSE c_complete;
864 
865    -- offer_performance_id
866    IF p_offer_perf_rec.offer_performance_id = FND_API.g_miss_num THEN
867       x_complete_rec.offer_performance_id := l_offer_perf_rec.offer_performance_id;
868    END IF;
869 
870    -- list_header_id
871    IF p_offer_perf_rec.list_header_id = FND_API.g_miss_num THEN
872       x_complete_rec.list_header_id := l_offer_perf_rec.list_header_id;
873    END IF;
874 
875    -- last_update_date
876    IF p_offer_perf_rec.last_update_date = FND_API.g_miss_date THEN
877       x_complete_rec.last_update_date := l_offer_perf_rec.last_update_date;
878    END IF;
879 
880    -- last_updated_by
881    IF p_offer_perf_rec.last_updated_by = FND_API.g_miss_num THEN
882       x_complete_rec.last_updated_by := l_offer_perf_rec.last_updated_by;
883    END IF;
884 
885    -- creation_date
886    IF p_offer_perf_rec.creation_date = FND_API.g_miss_date THEN
887       x_complete_rec.creation_date := l_offer_perf_rec.creation_date;
888    END IF;
889 
890    -- created_by
891    IF p_offer_perf_rec.created_by = FND_API.g_miss_num THEN
892       x_complete_rec.created_by := l_offer_perf_rec.created_by;
893    END IF;
894 
895    -- last_update_login
896    IF p_offer_perf_rec.last_update_login = FND_API.g_miss_num THEN
897       x_complete_rec.last_update_login := l_offer_perf_rec.last_update_login;
898    END IF;
899 
900    -- object_version_number
901    IF p_offer_perf_rec.object_version_number = FND_API.g_miss_num THEN
902       x_complete_rec.object_version_number := l_offer_perf_rec.object_version_number;
903    END IF;
904 
905    -- product_attribute_context
906    IF p_offer_perf_rec.product_attribute_context = FND_API.g_miss_char THEN
907       x_complete_rec.product_attribute_context := l_offer_perf_rec.product_attribute_context;
908    END IF;
909 
910    -- product_attribute
911    IF p_offer_perf_rec.product_attribute = FND_API.g_miss_char THEN
912       x_complete_rec.product_attribute := l_offer_perf_rec.product_attribute;
913    END IF;
914 
915    -- product_attr_value
916    IF p_offer_perf_rec.product_attr_value = FND_API.g_miss_char THEN
917       x_complete_rec.product_attr_value := l_offer_perf_rec.product_attr_value;
918    END IF;
919 
920    -- channel_id
921    IF p_offer_perf_rec.channel_id = FND_API.g_miss_num THEN
922       x_complete_rec.channel_id := l_offer_perf_rec.channel_id;
923    END IF;
924 
925    -- start_date
926    IF p_offer_perf_rec.start_date = FND_API.g_miss_date THEN
927       x_complete_rec.start_date := l_offer_perf_rec.start_date;
928    END IF;
929 
930    -- end_date
931    IF p_offer_perf_rec.end_date = FND_API.g_miss_date THEN
932       x_complete_rec.end_date := l_offer_perf_rec.end_date;
933    END IF;
934 
935    -- estimated_value
936    IF p_offer_perf_rec.estimated_value = FND_API.g_miss_num THEN
937       x_complete_rec.estimated_value := l_offer_perf_rec.estimated_value;
938    END IF;
939 
940    -- required_flag
941    IF p_offer_perf_rec.required_flag = FND_API.g_miss_char THEN
942       x_complete_rec.required_flag := l_offer_perf_rec.required_flag;
943    END IF;
944 
945    -- attribute_category
946    IF p_offer_perf_rec.attribute_category = FND_API.g_miss_char THEN
947       x_complete_rec.attribute_category := l_offer_perf_rec.attribute_category;
948    END IF;
949 
950    -- attribute1
951    IF p_offer_perf_rec.attribute1 = FND_API.g_miss_char THEN
952       x_complete_rec.attribute1 := l_offer_perf_rec.attribute1;
953    END IF;
954 
955    -- attribute2
956    IF p_offer_perf_rec.attribute2 = FND_API.g_miss_char THEN
957       x_complete_rec.attribute2 := l_offer_perf_rec.attribute2;
958    END IF;
959 
960    -- attribute3
961    IF p_offer_perf_rec.attribute3 = FND_API.g_miss_char THEN
962       x_complete_rec.attribute3 := l_offer_perf_rec.attribute3;
963    END IF;
964 
965    -- attribute4
966    IF p_offer_perf_rec.attribute4 = FND_API.g_miss_char THEN
967       x_complete_rec.attribute4 := l_offer_perf_rec.attribute4;
968    END IF;
969 
970    -- attribute5
971    IF p_offer_perf_rec.attribute5 = FND_API.g_miss_char THEN
972       x_complete_rec.attribute5 := l_offer_perf_rec.attribute5;
973    END IF;
974 
975    -- attribute6
976    IF p_offer_perf_rec.attribute6 = FND_API.g_miss_char THEN
977       x_complete_rec.attribute6 := l_offer_perf_rec.attribute6;
978    END IF;
979 
980    -- attribute7
981    IF p_offer_perf_rec.attribute7 = FND_API.g_miss_char THEN
982       x_complete_rec.attribute7 := l_offer_perf_rec.attribute7;
983    END IF;
984 
985    -- attribute8
986    IF p_offer_perf_rec.attribute8 = FND_API.g_miss_char THEN
987       x_complete_rec.attribute8 := l_offer_perf_rec.attribute8;
988    END IF;
989 
990    -- attribute9
991    IF p_offer_perf_rec.attribute9 = FND_API.g_miss_char THEN
995    -- attribute10
992       x_complete_rec.attribute9 := l_offer_perf_rec.attribute9;
993    END IF;
994 
996    IF p_offer_perf_rec.attribute10 = FND_API.g_miss_char THEN
997       x_complete_rec.attribute10 := l_offer_perf_rec.attribute10;
998    END IF;
999 
1000    -- attribute11
1001    IF p_offer_perf_rec.attribute11 = FND_API.g_miss_char THEN
1002       x_complete_rec.attribute11 := l_offer_perf_rec.attribute11;
1003    END IF;
1004 
1005    -- attribute12
1006    IF p_offer_perf_rec.attribute12 = FND_API.g_miss_char THEN
1007       x_complete_rec.attribute12 := l_offer_perf_rec.attribute12;
1008    END IF;
1009 
1010    -- attribute13
1011    IF p_offer_perf_rec.attribute13 = FND_API.g_miss_char THEN
1012       x_complete_rec.attribute13 := l_offer_perf_rec.attribute13;
1013    END IF;
1014 
1015    -- attribute14
1016    IF p_offer_perf_rec.attribute14 = FND_API.g_miss_char THEN
1017       x_complete_rec.attribute14 := l_offer_perf_rec.attribute14;
1018    END IF;
1019 
1020    -- attribute15
1021    IF p_offer_perf_rec.attribute15 = FND_API.g_miss_char THEN
1022       x_complete_rec.attribute15 := l_offer_perf_rec.attribute15;
1023    END IF;
1024 
1025    -- security_group_id
1026    IF p_offer_perf_rec.security_group_id = FND_API.g_miss_num THEN
1027       x_complete_rec.security_group_id := l_offer_perf_rec.security_group_id;
1028    END IF;
1029    -- Note: Developers need to modify the procedure
1030    -- to handle any business specific requirements.
1031 END Complete_offer_perf_Rec;
1032 PROCEDURE Validate_offer_performance(
1033     p_api_version_number         IN   NUMBER,
1034     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1035     p_validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
1036     p_offer_perf_rec               IN   offer_perf_rec_type,
1037     p_validation_mode            IN    VARCHAR2,
1038     x_return_status              OUT NOCOPY  VARCHAR2,
1039     x_msg_count                  OUT NOCOPY  NUMBER,
1040     x_msg_data                   OUT NOCOPY  VARCHAR2
1041     )
1042  IS
1043 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Validate_Offer_Performance';
1044 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
1045 l_object_version_number     NUMBER;
1046 l_offer_perf_rec  OZF_Offer_Performance_PVT.offer_perf_rec_type;
1047 
1048  BEGIN
1049       -- Standard Start of API savepoint
1050       SAVEPOINT VALIDATE_Offer_Performance_;
1051 
1052       -- Standard call to check for call compatibility.
1053       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1054                                            p_api_version_number,
1055                                            l_api_name,
1056                                            G_PKG_NAME)
1057       THEN
1058           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1059       END IF;
1060 
1061       -- Initialize message list if p_init_msg_list is set to TRUE.
1062       IF FND_API.to_Boolean( p_init_msg_list )
1063       THEN
1064          FND_MSG_PUB.initialize;
1065       END IF;
1066       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1067               Check_offer_perf_Items(
1068                  p_offer_perf_rec        => p_offer_perf_rec,
1069                  p_validation_mode   => p_validation_mode,
1070                  x_return_status     => x_return_status
1071               );
1072 
1073               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1074                   RAISE FND_API.G_EXC_ERROR;
1075               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1076                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1077               END IF;
1078       END IF;
1079 
1080       Complete_offer_perf_Rec(
1081          p_offer_perf_rec        => p_offer_perf_rec,
1082          x_complete_rec        => l_offer_perf_rec
1083       );
1084 
1085       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1086          Validate_offer_perf_Rec(
1087            p_api_version_number     => 1.0,
1088            p_init_msg_list          => FND_API.G_FALSE,
1089            x_return_status          => x_return_status,
1090            x_msg_count              => x_msg_count,
1091            x_msg_data               => x_msg_data,
1092            p_offer_perf_rec           =>    l_offer_perf_rec);
1093 
1094               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1095                  RAISE FND_API.G_EXC_ERROR;
1096               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1097                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1098               END IF;
1099       END IF;
1100 
1101 
1102       -- Debug Message
1103       ozf_utility_pvt.debug_message('Private API: ' || l_api_name || 'start');
1104 
1105 
1106       -- Initialize API return status to SUCCESS
1107       x_return_status := FND_API.G_RET_STS_SUCCESS;
1108 
1109 
1110       -- Debug Message
1111       ozf_utility_pvt.debug_message('Private API: ' || l_api_name || 'end');
1112 
1113       -- Standard call to get message count and if count is 1, get message info.
1114       FND_MSG_PUB.Count_And_Get
1115         (p_count          =>   x_msg_count,
1116          p_data           =>   x_msg_data
1117       );
1118 EXCEPTION
1119 
1120    WHEN ozf_utility_pvt.resource_locked THEN
1121      x_return_status := FND_API.g_ret_sts_error;
1125      ROLLBACK TO VALIDATE_Offer_Performance_;
1122  ozf_utility_pvt.Error_Message(p_message_name => 'OZF_API_RESOURCE_LOCKED');
1123 
1124    WHEN FND_API.G_EXC_ERROR THEN
1126      x_return_status := FND_API.G_RET_STS_ERROR;
1127      -- Standard call to get message count and if count=1, get the message
1128      FND_MSG_PUB.Count_And_Get (
1129             p_encoded => FND_API.G_FALSE,
1130             p_count   => x_msg_count,
1131             p_data    => x_msg_data
1132      );
1133 
1134    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1135      ROLLBACK TO VALIDATE_Offer_Performance_;
1136      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1137      -- Standard call to get message count and if count=1, get the message
1138      FND_MSG_PUB.Count_And_Get (
1139             p_encoded => FND_API.G_FALSE,
1140             p_count => x_msg_count,
1141             p_data  => x_msg_data
1142      );
1143 
1144    WHEN OTHERS THEN
1145      ROLLBACK TO VALIDATE_Offer_Performance_;
1146      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1147      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1148      THEN
1149         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1150      END IF;
1151      -- Standard call to get message count and if count=1, get the message
1152      FND_MSG_PUB.Count_And_Get (
1153             p_encoded => FND_API.G_FALSE,
1154             p_count => x_msg_count,
1155             p_data  => x_msg_data
1156      );
1157 End Validate_Offer_Performance;
1158 
1159 
1160 PROCEDURE Validate_offer_perf_rec(
1161     p_api_version_number         IN   NUMBER,
1162     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1163     x_return_status              OUT NOCOPY  VARCHAR2,
1164     x_msg_count                  OUT NOCOPY  NUMBER,
1165     x_msg_data                   OUT NOCOPY  VARCHAR2,
1166     p_offer_perf_rec               IN    offer_perf_rec_type
1167     )
1168 IS
1169 BEGIN
1170       -- Initialize message list if p_init_msg_list is set to TRUE.
1171       IF FND_API.to_Boolean( p_init_msg_list )
1172       THEN
1173          FND_MSG_PUB.initialize;
1174       END IF;
1175 
1176       -- Initialize API return status to SUCCESS
1177       x_return_status := FND_API.G_RET_STS_SUCCESS;
1178 
1179       -- Hint: Validate data
1180       -- If data not valid
1181       -- THEN
1182       -- x_return_status := FND_API.G_RET_STS_ERROR;
1183 
1184       -- Debug Message
1185       ozf_utility_pvt.debug_message('Private API: Validate_dm_model_rec');
1186       -- Standard call to get message count and if count is 1, get message info.
1187       FND_MSG_PUB.Count_And_Get
1188         (p_count          =>   x_msg_count,
1189          p_data           =>   x_msg_data
1190       );
1191 END Validate_offer_perf_Rec;
1192 
1193 
1194 END OZF_Offer_Performance_PVT;