DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_PS_POSTING_PVT

Source


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