DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_PS_STRATS_PVT

Source


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