DBA Data[Home] [Help]

PACKAGE BODY: APPS.PV_BATCH_CHG_PRTNR_PVT

Source


1 PACKAGE BODY PV_BATCH_CHG_PRTNR_PVT as
2 /* $Header: pvxvchpb.pls 120.1 2005/09/05 22:40:54 appldev ship $ */
3 -- ===============================================================
4 -- Start of Comments
5 -- Package name
6 --          PV_BTCH_Chg_Prtnrs_PVT
7 -- Purpose
8 --
9 -- History
10 --
11 -- NOTE
12 --
13 -- This Api is generated with Latest version of
14 -- Rosetta, where g_miss indicates NULL and
15 -- NULL indicates missing value. Rosetta Version 1.55
16 -- End of Comments
17 -- ===============================================================
18 
19 
20 G_PKG_NAME CONSTANT VARCHAR2(30):= 'PV_Batch_Chg_Prtnrs_PVT';
21 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvxvchpb.pls';
22 
23 PV_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
24 PV_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
25 PV_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
26 
27 -- G_USER_ID         NUMBER := FND_GLOBAL.USER_ID;
28 -- G_LOGIN_ID        NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
29 --
30 -- Foreward Procedure Declarations
31 --
32 
33 -- Hint: Primary key needs to be returned.
34 --   ==============================================================================
35 --    Start of Comments
36 --   ==============================================================================
37 --   API Name
38 --           Create_Batch_Chg_Partners
39 --   Type
40 --           Private
41 --   Pre-Req
42 --
43 --   Parameters
44 --
45 --   IN
46 --       p_api_version_number      IN   NUMBER     Required
47 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
48 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
49 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
50 --       p_batch_chg_prtnrs_rec    IN   Batch_Chg_Prtnrs_Rec_Type  Required
51 --
52 --   OUT
53 --       x_return_status           OUT  VARCHAR2
54 --       x_msg_count               OUT  NUMBER
55 --       x_msg_data                OUT  VARCHAR2
56 --   Version : Current version 1.0
57 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
58 --         and basic operation, developer must manually add parameters and business logic as necessary.
59 --
60 --   History
61 --
62 --   NOTE
63 --
64 --   End of Comments
65 --   ==============================================================================
66 
67 PROCEDURE Create_Batch_Chg_Partners(
68     p_api_version_number         IN   NUMBER,
69     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
70     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
71     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
72 
73     x_return_status              OUT NOCOPY  VARCHAR2,
74     x_msg_count                  OUT NOCOPY  NUMBER,
75     x_msg_data                   OUT NOCOPY  VARCHAR2,
76 
77     p_batch_chg_prtnrs_rec       IN   Batch_Chg_Prtnrs_Rec_Type  := g_miss_Batch_Chg_Prtnrs_rec,
78     x_partner_id              OUT NOCOPY  NUMBER
79      )
80 
81  IS
82 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Create_Batch_Chg_Partners';
83 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
84    l_return_status_full        VARCHAR2(1);
85    l_object_version_number     NUMBER := 1;
86    l_org_id                    NUMBER ;
87    l_partner_id              NUMBER;
88    l_dummy                     NUMBER;
89    l_err_msg                   VARCHAR2(2000);
90 
91 BEGIN
92       -- Standard Start of API savepoint
93       SAVEPOINT Create_Batch_Chg_Partners;
94 
95       -- Standard call to Chk for call compatibility.
96       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
97                                            p_api_version_number,
98                                            l_api_name,
99                                            G_PKG_NAME)
100       THEN
101           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
102       END IF;
103 
104 
105       -- Initialize message list if p_init_msg_list is set to TRUE.
106       IF FND_API.to_Boolean( p_init_msg_list )
107       THEN
108          FND_MSG_PUB.initialize;
109       END IF;
110 
111       -- Debug Message
112       IF (PV_DEBUG_HIGH_ON) THEN
113          PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
114       END IF;
115 
116       -- Initialize API return status to SUCCESS
117       x_return_status := FND_API.G_RET_STS_SUCCESS;
118 
119       -- =========================================================================
120       -- Validate Environment
121       -- =========================================================================
122 
123       IF FND_GLOBAL.USER_ID IS NULL
124       THEN
125          PVX_UTILITY_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
126           RAISE FND_API.G_EXC_ERROR;
127       END IF;
128 
129       -- Local variable initialization
130 
131       IF p_batch_chg_prtnrs_rec.partner_id IS NULL OR
132          p_batch_chg_prtnrs_rec.partner_id = FND_API.g_miss_num THEN
133          FND_MESSAGE.set_name('PV', 'PV_API_MISSING_REQ_COLUMN');
134          FND_MESSAGE.set_token('COLUMN', 'PARTNER_ID');
135 	 FND_MSG_PUB.add;
136          RAISE FND_API.G_EXC_ERROR;
137       ELSE
138          l_partner_id := p_batch_chg_prtnrs_rec.partner_id;
139       END IF;
140 
141 
142       -- Debug Message
143       IF (PV_DEBUG_HIGH_ON) THEN
144           PVX_UTILITY_PVT.debug_message( 'Private API: Calling create table handler');
145       END IF;
146 
147       -- Invoke table handler(Pv_BTCH_Chg_Prtnrs_Pkg.Insert_Row)
148       PV_BATCH_CHG_PRTNR_PKG.Insert_Row(
149              px_partner_id  => l_partner_id,
150              p_last_update_date  => SYSDATE,
151              p_last_update_by  => p_batch_chg_prtnrs_rec.last_update_by,
152              p_creation_date  => SYSDATE,
153              p_created_by  => FND_GLOBAL.USER_ID,
154              p_last_update_login  => FND_GLOBAL.conc_login_id,
155 	     p_object_version_number => p_batch_chg_prtnrs_rec.object_version_number,
156              p_request_id  => p_batch_chg_prtnrs_rec.request_id,
157              p_program_application_id  => p_batch_chg_prtnrs_rec.program_application_id,
158              p_program_id  => p_batch_chg_prtnrs_rec.program_id,
159              p_program_update_date  =>p_batch_chg_prtnrs_rec.program_update_date,
160              p_processed_flag  =>p_batch_chg_prtnrs_rec.processed_flag,
161 	     p_vad_partner_id => p_batch_chg_prtnrs_rec.vad_partner_id,
162 	     x_return_status => x_return_status  );
163 
164           IF x_return_status = FND_API.G_RET_STS_ERROR THEN
165 		RAISE FND_API.G_EXC_ERROR;
166 	  ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
167 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
168           END IF;
169 
170       x_partner_id := l_partner_id;
171 
172       --
173       -- End of API body
174       --
175 
176       -- Standard Chk for p_commit
177       IF FND_API.to_Boolean( p_commit )
178       THEN
179          COMMIT WORK;
180       END IF;
181 
182 
183       -- Debug Message
184       IF (PV_DEBUG_HIGH_ON) THEN
185           PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
186       END IF;
187 
188 
189       -- Standard call to get message count and if count is 1, get message info.
190       FND_MSG_PUB.Count_And_Get
191         (p_count          =>   x_msg_count,
192          p_data           =>   x_msg_data
193       );
194 EXCEPTION
195 
196    WHEN PVX_UTILITY_PVT.resource_locked THEN
197      x_return_status := FND_API.g_ret_sts_error;
198          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
199 
200    WHEN FND_API.G_EXC_ERROR THEN
201      ROLLBACK TO Create_Batch_Chg_Partners;
202      x_return_status := FND_API.G_RET_STS_ERROR;
203 
204      -- Standard call to get message count and if count=1, get the message
205      FND_MSG_PUB.Count_And_Get (
206             p_encoded => FND_API.G_FALSE,
207             p_count   => x_msg_count,
208             p_data    => x_msg_data
209      );
210 
211    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
212      ROLLBACK TO Create_Batch_Chg_Partners;
213      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
214 
215      -- Standard call to get message count and if count=1, get the message
216      FND_MSG_PUB.Count_And_Get (
217             p_encoded => FND_API.G_FALSE,
218             p_count => x_msg_count,
219             p_data  => x_msg_data
220      );
221 
222    WHEN OTHERS THEN
223      ROLLBACK TO Create_Batch_Chg_Partners;
224      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
225 
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 
231      -- Standard call to get message count and if count=1, get the message
232      FND_MSG_PUB.Count_And_Get (
233             p_encoded => FND_API.G_FALSE,
234             p_count => x_msg_count,
235             p_data  => x_msg_data
236      );
237 End Create_Batch_Chg_Partners;
238 
239 
240 --   ==============================================================================
241 --    Start of Comments
242 --   ==============================================================================
243 --   API Name
244 --           Update_Batch_Chg_Partners
245 --   Type
246 --           Private
247 --   Pre-Req
248 --
249 --   Parameters
250 --
251 --   IN
252 --       p_api_version_number      IN   NUMBER     Required
253 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
254 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
255 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
256 --       p_batch_chg_prtnrs_rec    IN   Batch_Chg_Prtnrs_Rec_Type  Required
257 --
258 --   OUT
259 --       x_return_status           OUT  VARCHAR2
260 --       x_msg_count               OUT  NUMBER
261 --       x_msg_data                OUT  VARCHAR2
262 --   Version : Current version 1.0
263 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
264 --         and basic operation, developer must manually add parameters and business logic as necessary.
265 --
266 --   History
267 --
268 --   NOTE
269 --
270 --   End of Comments
271 --   ==============================================================================
272 
273 PROCEDURE Update_Batch_Chg_Partners(
274      p_api_version_number         IN   NUMBER,
275     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
276     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
277     p_validation_level           IN  NUMBER       := FND_API.G_VALID_LEVEL_FULL,
278 
279     x_return_status              OUT NOCOPY  VARCHAR2,
280     x_msg_count                  OUT NOCOPY  NUMBER,
281     x_msg_data                   OUT NOCOPY  VARCHAR2,
282 
283     p_batch_chg_prtnrs_rec IN   Batch_Chg_Prtnrs_REC_TYPE
284     )
285 
286  IS
287 
288 
289 CURSOR c_get_BTCH_Chg_Prtnrs(partner_id NUMBER) IS
290     SELECT *
291     FROM  PV_TAP_BATCH_CHG_PARTNERS
292     WHERE  partner_id = p_batch_chg_prtnrs_rec.partner_id;
293 
294     -- Hint: Developer need to provide Where clause
295 
296 
297 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Update_Batch_Chg_Partners';
298 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
299 -- Local Variables
300 l_object_version_number     NUMBER;
301 l_partner_id    NUMBER;
302 l_ref_BTCH_Chg_Prtnrs_rec  c_get_BTCH_Chg_Prtnrs%ROWTYPE ;
303 l_tar_BTCH_Chg_Prtnrs_rec  Batch_Chg_Prtnrs_Rec_Type := p_batch_chg_prtnrs_rec;
304 l_rowid  ROWID;
305 l_err_msg                   VARCHAR2(2000);
306 
307  BEGIN
308       -- Standard Start of API savepoint
309       SAVEPOINT update_BTCH_Chg_Prtnrs_pvt;
310 
311       -- Standard call to Chk for call compatibility.
312       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
313                                            p_api_version_number,
314                                            l_api_name,
315                                            G_PKG_NAME)
316       THEN
317           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
318       END IF;
319 
320 
321       -- Initialize message list if p_init_msg_list is set to TRUE.
322       IF FND_API.to_Boolean( p_init_msg_list )
323       THEN
324          FND_MSG_PUB.initialize;
325       END IF;
326 
327 
328 
329       -- Debug Message
330       IF (PV_DEBUG_HIGH_ON) THEN
331          PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
332       END IF;
333 
334 
335 
336       -- Initialize API return status to SUCCESS
337       x_return_status := FND_API.G_RET_STS_SUCCESS;
338 
339       -- Debug Message
340       IF (PV_DEBUG_HIGH_ON) THEN
341           PVX_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
342       END IF;
343 
344       OPEN c_get_BTCH_Chg_Prtnrs( l_tar_BTCH_Chg_Prtnrs_rec.partner_id);
345 
346       FETCH c_get_BTCH_Chg_Prtnrs INTO l_ref_BTCH_Chg_Prtnrs_rec  ;
347 
348       IF ( c_get_BTCH_Chg_Prtnrs%NOTFOUND) THEN
349          PVX_UTILITY_PVT.Error_Message(
350              p_message_name => 'API_MISSING_UPDATE_TARGET',
351              p_token_name   => 'INFO',
352              p_token_value  => 'PV_TAP_BATCH_CHG_PARTNERS') ;
353          RAISE FND_API.G_EXC_ERROR;
354        END IF;
355 
356       -- Debug Message
357       IF (PV_DEBUG_HIGH_ON) THEN
358           PVX_UTILITY_PVT.debug_message('Private API: - Close Cursor');
359       END IF;
360 
361       CLOSE c_get_BTCH_Chg_Prtnrs;
362 
363 
364       If (l_tar_btch_Chg_Prtnrs_rec.object_version_number is NULL or
365           l_tar_btch_Chg_Prtnrs_rec.object_version_number = FND_API.G_MISS_NUM ) Then
366           PVX_UTILITY_PVT.Error_Message(
367 	      p_message_name => 'API_VERSION_MISSING',
368               p_token_name   => 'COLUMN',
369               p_token_value  => 'object_version_number') ;
370           raise FND_API.G_EXC_ERROR;
371       End if;
372 
373       -- Chk Whether record has been changed by someone else
374       IF (l_tar_BTCH_Chg_Prtnrs_rec.object_version_number <> l_ref_BTCH_Chg_Prtnrs_rec.object_version_number) THEN
375          PVX_UTILITY_PVT.Error_Message(
376              p_message_name => 'API_RECORD_CHANGED',
377              p_token_name   => 'INFO',
378              p_token_value  => 'BTCH_Chg_Prtnrs') ;
379           raise FND_API.G_EXC_ERROR;
380       END IF;
381 
382 
383       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
384       THEN
385 
386           -- Invoke validation procedures
387           Validate_Batch_Chg_Partners(
388             p_api_version_number   => 1.0,
389             p_init_msg_list        => FND_API.G_FALSE,
390             p_validation_level     => p_validation_level,
391             p_batch_chg_prtnrs_rec  =>  p_batch_chg_prtnrs_rec,
392 	    p_validation_mode      => JTF_PLSQL_API.g_update,
393             x_return_status        => x_return_status,
394             x_msg_count            => x_msg_count,
395             x_msg_data             => x_msg_data);
396 
397 
398          IF x_return_status = FND_API.G_RET_STS_ERROR THEN
399              RAISE FND_API.G_EXC_ERROR;
400 	 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
401 	     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
402 	 END IF;
403 
404       END IF;
405 
406       -- Debug Message
410 
407       IF (PV_DEBUG_HIGH_ON) THEN
408           PVX_UTILITY_PVT.debug_message('Private API: Calling update table handler');
409       END IF;
411       -- Invoke table handler(Pv_BTCH_Chg_Prtnrs_Pkg.Update_Row)
412       PV_BATCH_CHG_PRTNR_PKG.Update_Row(
413           p_partner_id  => p_batch_chg_prtnrs_rec.partner_id,
414           p_last_update_date  => SYSDATE,
415           p_last_update_by  => p_batch_chg_prtnrs_rec.last_update_by,
416           p_last_update_login  => p_batch_chg_prtnrs_rec.last_update_login,
417           p_object_version_number => p_batch_chg_prtnrs_rec.object_version_number,
418           p_request_id  => p_batch_chg_prtnrs_rec.request_id,
419           p_program_application_id  => p_batch_chg_prtnrs_rec.program_application_id,
420           p_program_id  => p_batch_chg_prtnrs_rec.program_id,
421           p_program_update_date  => p_batch_chg_prtnrs_rec.program_update_date,
422           p_processed_flag  => p_batch_chg_prtnrs_rec.processed_flag,
423 	  p_vad_partner_id =>  p_batch_chg_prtnrs_rec.vad_partner_id,
424 	  x_return_status => x_return_status );
425 
426       PVX_UTILITY_PVT.debug_message('+++++++++++++++++++++++++++++++++x_return_status =>'||x_return_status);
427 
428       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
429          RAISE FND_API.G_EXC_ERROR;
430       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
431 	 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
432       END IF;
433 
434 
435       --
436       -- End of API body.
437       --
438 
439       -- Standard Chk for p_commit
440       IF FND_API.to_Boolean( p_commit )
441       THEN
442          COMMIT WORK;
443       END IF;
444 
445       -- Debug Message
446       IF (PV_DEBUG_HIGH_ON) THEN
447          PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
448       END IF;
449 
450       -- Standard call to get message count and if count is 1, get message info.
451       FND_MSG_PUB.Count_And_Get
452         (p_count          =>   x_msg_count,
453          p_data           =>   x_msg_data
454       );
455 EXCEPTION
456 
457    WHEN PVX_UTILITY_PVT.resource_locked THEN
458      x_return_status := FND_API.g_ret_sts_error;
459          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
460 
461    WHEN FND_API.G_EXC_ERROR THEN
462      ROLLBACK TO UPDATE_BTCH_Chg_Prtnrs_PVT;
463      x_return_status := FND_API.G_RET_STS_ERROR;
464 
465      -- Standard call to get message count and if count=1, get the message
466      FND_MSG_PUB.Count_And_Get (
467             p_encoded => FND_API.G_FALSE,
468             p_count   => x_msg_count,
469             p_data    => x_msg_data
470      );
471 
472    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
473      ROLLBACK TO UPDATE_BTCH_Chg_Prtnrs_PVT;
474      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
475 
476      -- Standard call to get message count and if count=1, get the message
477      FND_MSG_PUB.Count_And_Get (
478             p_encoded => FND_API.G_FALSE,
479             p_count => x_msg_count,
480             p_data  => x_msg_data
481      );
482 
483    WHEN OTHERS THEN
484      ROLLBACK TO UPDATE_BTCH_Chg_Prtnrs_PVT;
485      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
486 
487      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
488      THEN
489         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
490      END IF;
491 
492      -- Standard call to get message count and if count=1, get the message
493      FND_MSG_PUB.Count_And_Get (
494             p_encoded => FND_API.G_FALSE,
495             p_count => x_msg_count,
496             p_data  => x_msg_data
497      );
498 End Update_Batch_Chg_Partners;
499 
500 
501 --   ==============================================================================
502 --    Start of Comments
503 --   ==============================================================================
504 --   API Name
505 --           Delete_Batch_Chg_Prtnrs
506 --   Type
507 --           Private
508 --   Pre-Req
509 --
510 --   Parameters
511 --
512 --   IN
513 --       p_api_version_number      IN   NUMBER     Required
514 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
515 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
516 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
517 --       p_partner_id                IN   NUMBER
518 --       p_object_version_number   IN   NUMBER     Optional  Default = NULL
519 --
520 --   OUT
521 --       x_return_status           OUT  VARCHAR2
522 --       x_msg_count               OUT  NUMBER
523 --       x_msg_data                OUT  VARCHAR2
524 --   Version : Current version 1.0
525 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
526 --         and basic operation, developer must manually add parameters and business logic as necessary.
527 --
528 --   History
529 --
530 --   NOTE
531 --
532 --   End of Comments
533 --   ==============================================================================
534 
535 PROCEDURE Delete_Batch_Chg_Prtnrs(
539     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
536     p_api_version_number         IN   NUMBER,
537     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
538     p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
540     x_return_status              OUT NOCOPY  VARCHAR2,
541     x_msg_count                  OUT NOCOPY  NUMBER,
542     x_msg_data                   OUT NOCOPY  VARCHAR2,
543     p_partner_id                   IN  NUMBER,
544     p_object_version_number      IN   NUMBER
545     )
546 
547  IS
548 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Delete_BTCH_Chg_Prtnrs';
549 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
550 l_object_version_number     NUMBER;
551 l_err_msg                   VARCHAR2(2000);
552 
553  BEGIN
554       -- Standard Start of API savepoint
555       SAVEPOINT delete_BTCH_Chg_Prtnrs_pvt;
556 
557       -- Standard call to Chk for call compatibility.
558       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
559                                            p_api_version_number,
560                                            l_api_name,
561                                            G_PKG_NAME)
562       THEN
563           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
564       END IF;
565 
566 
567       -- Initialize message list if p_init_msg_list is set to TRUE.
568       IF FND_API.to_Boolean( p_init_msg_list )
569       THEN
570          FND_MSG_PUB.initialize;
571       END IF;
572 
573 
574 
575       -- Debug Message
576       IF (PV_DEBUG_HIGH_ON) THEN
577           PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
578       END IF;
579 
580       -- Initialize API return status to SUCCESS
581       x_return_status := FND_API.G_RET_STS_SUCCESS;
582 
583       --
584       -- Api body
585       --
586 
587       -- Debug Message
588       IF (PV_DEBUG_HIGH_ON) THEN
589          PVX_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
590       END IF;
591 
592       -- Invoke table handler(Pv_BTCH_Chg_Prtnrs_Pkg.Delete_Row)
593       PV_BATCH_CHG_PRTNR_PKG.Delete_Row(
594           p_partner_id  => p_partner_id,
595           p_object_version_number => p_object_version_number ,
596 	  x_return_status => x_return_status);
597 
598       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
599          RAISE FND_API.G_EXC_ERROR;
600       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
601 	 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
602       END IF;
603 
604       --
605       -- End of API body
606       --
607 
608       -- Standard Chk for p_commit
609       IF FND_API.to_Boolean( p_commit )
610       THEN
611          COMMIT WORK;
612       END IF;
613 
614       -- Debug Message
615       IF (PV_DEBUG_HIGH_ON) THEN
616           PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
617       END IF;
618 
619       -- Standard call to get message count and if count is 1, get message info.
620       FND_MSG_PUB.Count_And_Get
621         (p_count          =>   x_msg_count,
622          p_data           =>   x_msg_data
623       );
624 
625 EXCEPTION
626 
627    WHEN PVX_UTILITY_PVT.resource_locked THEN
628      x_return_status := FND_API.g_ret_sts_error;
629          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
630 
631    WHEN FND_API.G_EXC_ERROR THEN
632      ROLLBACK TO DELETE_BTCH_Chg_Prtnrs_PVT;
633      x_return_status := FND_API.G_RET_STS_ERROR;
634 
635      -- Standard call to get message count and if count=1, get the message
636      FND_MSG_PUB.Count_And_Get (
637             p_encoded => FND_API.G_FALSE,
638             p_count   => x_msg_count,
639             p_data    => x_msg_data
640      );
641 
642    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
643      ROLLBACK TO DELETE_BTCH_Chg_Prtnrs_PVT;
644      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
645 
646      -- Standard call to get message count and if count=1, get the message
647      FND_MSG_PUB.Count_And_Get (
648             p_encoded => FND_API.G_FALSE,
649             p_count => x_msg_count,
650             p_data  => x_msg_data
651      );
652 
653    WHEN OTHERS THEN
654      ROLLBACK TO DELETE_BTCH_Chg_Prtnrs_PVT;
655      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
656 
657      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
658      THEN
659         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
660      END IF;
661 
662      -- Standard call to get message count and if count=1, get the message
663      FND_MSG_PUB.Count_And_Get (
664             p_encoded => FND_API.G_FALSE,
665             p_count => x_msg_count,
666             p_data  => x_msg_data
667      );
668 End Delete_Batch_Chg_Prtnrs;
669 
670 
671 
672 -- Hint: Primary key needs to be returned.
673 --   ==============================================================================
674 --    Start of Comments
675 --   ==============================================================================
676 --   API Name
680 --   Pre-Req
677 --           Lock_Batch_Chg_Prtnrs
678 --   Type
679 --           Private
681 --
682 --   Parameters
683 --
684 --   IN
685 --       p_api_version_number      IN   NUMBER     Required
686 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
687 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
688 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
689 --       p_batch_chg_prtnrs_rec            IN   Batch_Chg_Prtnrs_Rec_Type  Required
690 --
691 --   OUT
692 --       x_return_status           OUT  VARCHAR2
693 --       x_msg_count               OUT  NUMBER
694 --       x_msg_data                OUT  VARCHAR2
695 --   Version : Current version 1.0
696 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
697 --         and basic operation, developer must manually add parameters and business logic as necessary.
698 --
699 --   History
700 --
701 --   NOTE
702 --
703 --   End of Comments
704 --   ==============================================================================
705 
706 PROCEDURE Lock_Batch_Chg_Prtnrs(
707     p_api_version_number         IN   NUMBER,
708     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
709 
710     x_return_status              OUT NOCOPY  VARCHAR2,
711     x_msg_count                  OUT NOCOPY  NUMBER,
712     x_msg_data                   OUT NOCOPY  VARCHAR2,
713 
714     p_partner_id                   IN  NUMBER,
715     p_object_version             IN  NUMBER
716     )
717 
718  IS
719 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Lock_BTCH_Chg_Prtnrs';
720 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
721 L_FULL_NAME                 CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
722 l_partner_id                  NUMBER;
723 l_err_msg                   VARCHAR2(2000);
724 
725 BEGIN
726 
727       -- Debug Message
728       IF (PV_DEBUG_HIGH_ON) THEN
729          PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
730       END IF;
731 
732 
733       -- Initialize message list if p_init_msg_list is set to TRUE.
734       IF FND_API.to_Boolean( p_init_msg_list )
735       THEN
736          FND_MSG_PUB.initialize;
737       END IF;
738 
739 
740 
741       -- Standard call to Chk for call compatibility.
742       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
743                                            p_api_version_number,
744                                            l_api_name,
745                                            G_PKG_NAME)
746       THEN
747           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
748       END IF;
749 
750 
751 
752       -- Initialize API return status to SUCCESS
753       x_return_status := FND_API.G_RET_STS_SUCCESS;
754 
755       PV_BATCH_CHG_PRTNR_PKG.Lock_Row(l_partner_id,p_object_version,x_return_status);
756 
757       IF x_return_status = FND_API.G_RET_STS_ERROR THEN
758          RAISE FND_API.G_EXC_ERROR;
759       ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
760 	 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
761       END IF;
762 
763       FND_MSG_PUB.count_and_get(
764           p_encoded => FND_API.g_false,
765           p_count   => x_msg_count,
766           p_data    => x_msg_data);
767 
768       -- Debug Message
769       IF (PV_DEBUG_HIGH_ON) THEN
770          PVX_UTILITY_PVT.debug_message(l_full_name ||': end');
771       END IF;
772 
773 EXCEPTION
774 
775    WHEN PVX_UTILITY_PVT.resource_locked THEN
776      x_return_status := FND_API.g_ret_sts_error;
777          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
778 
779    WHEN FND_API.G_EXC_ERROR THEN
780      ROLLBACK TO LOCK_BTCH_Chg_Prtnrs_PVT;
781      x_return_status := FND_API.G_RET_STS_ERROR;
782 
783      -- Standard call to get message count and if count=1, get the message
784      FND_MSG_PUB.Count_And_Get (
785             p_encoded => FND_API.G_FALSE,
786             p_count   => x_msg_count,
787             p_data    => x_msg_data
788      );
789 
790    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
791      ROLLBACK TO LOCK_BTCH_Chg_Prtnrs_PVT;
792      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
793 
794      -- Standard call to get message count and if count=1, get the message
795      FND_MSG_PUB.Count_And_Get (
796             p_encoded => FND_API.G_FALSE,
797             p_count => x_msg_count,
798             p_data  => x_msg_data
799      );
800 
801    WHEN OTHERS THEN
802      ROLLBACK TO LOCK_BTCH_Chg_Prtnrs_PVT;
803      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
804 
805      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
806      THEN
807         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
808      END IF;
809 
810      -- Standard call to get message count and if count=1, get the message
811      FND_MSG_PUB.Count_And_Get (
812             p_encoded => FND_API.G_FALSE,
813             p_count => x_msg_count,
814             p_data  => x_msg_data
815      );
819 
816 End Lock_Batch_Chg_Prtnrs;
817 
818 
820 
821 PROCEDURE Chk_BTCH_Chg_Prtnrs_Uk_Items(
822     p_batch_chg_prtnrs_rec       IN   Batch_Chg_Prtnrs_Rec_Type,
823     p_validation_mode            IN  VARCHAR2 := JTF_PLSQL_API.g_create,
824     x_return_status              OUT NOCOPY VARCHAR2)
825 IS
826 l_valid_flag  VARCHAR2(1);
827 
828 BEGIN
829       x_return_status := FND_API.g_ret_sts_success;
830       IF p_validation_mode = JTF_PLSQL_API.g_create
831       AND p_batch_chg_prtnrs_rec.partner_id IS NOT NULL
832       THEN
833          l_valid_flag := PVX_UTILITY_PVT.Check_uniqueness(
834          'pv_tap_batch_chg_partners',
835          'partner_id = ''' || p_batch_chg_prtnrs_rec.partner_id ||''''
836          );
837       END IF;
838 
839       IF l_valid_flag = FND_API.g_false THEN
840          x_return_status := FND_API.g_ret_sts_error;
841       END IF;
842 
843 END Chk_BTCH_Chg_Prtnrs_Uk_Items;
844 
845 
846 
847 PROCEDURE Chk_BTCH_Chg_Prtnrs_Req_Items(
848     p_batch_chg_prtnrs_rec IN  Batch_Chg_Prtnrs_Rec_Type,
849     p_validation_mode      IN VARCHAR2 := JTF_PLSQL_API.g_create,
850     x_return_status        OUT NOCOPY VARCHAR2
851 )
852 IS
853 BEGIN
854    x_return_status := FND_API.g_ret_sts_success;
855 
856 
857    IF p_validation_mode = JTF_PLSQL_API.g_create THEN
858 
859       -- Check for required column PARTNER_ID
860       IF p_batch_chg_prtnrs_rec.partner_id = FND_API.G_MISS_NUM OR p_batch_chg_prtnrs_rec.partner_id IS NULL THEN
861          PVX_UTILITY_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'PARTNER_ID' );
862          x_return_status := FND_API.g_ret_sts_error;
863       END IF;
864 
865    ELSE
866 
867       -- Check for required column PARTNER_ID
868       IF p_batch_chg_prtnrs_rec.partner_id = FND_API.G_MISS_NUM THEN
869          PVX_UTILITY_PVT.Error_Message('PV_API_MISSING_REQ_COLUMN', 'COLUMN', 'PARTNER_ID' );
870          x_return_status := FND_API.g_ret_sts_error;
871       END IF;
872 
873    END IF;
874 
875 END Chk_BTCH_Chg_Prtnrs_Req_Items;
876 
877 PROCEDURE Chk_BTCH_Chg_Prtnrs_Fk_Items(
878     p_batch_chg_prtnrs_rec IN Batch_Chg_Prtnrs_Rec_Type,
879     x_return_status OUT NOCOPY VARCHAR2
880 )
881 IS
882   -- check, the supplied partner in the PV_PARTNER_PROFILES table is ACTIVE and EXISTS.
883   CURSOR l_chk_partner_active_csr(cv_partner_id IN NUMBER) IS
884      SELECT 'Y'
885      FROM pv_partner_profiles
886      WHERE partner_id = cv_partner_id
887      AND   status = 'A';
888 
889   -- Local variale declaration.
890   l_partner_active      VARCHAR2(1) := 'N';
891 
892 BEGIN
893    x_return_status := FND_API.g_ret_sts_success;
894 
895   -- check, the supplied partner is an ACTIVE partner.
896   OPEN l_chk_partner_active_csr(p_batch_chg_prtnrs_rec.partner_id);
897   FETCH l_chk_partner_active_csr INTO l_partner_active;
898 
899   IF l_chk_partner_active_csr%NOTFOUND THEN
900        CLOSE l_chk_partner_active_csr ;
901        PVX_UTILITY_PVT.Error_Message('PV_PARTNER_NOT_ACTIVE');
902        x_return_status := FND_API.g_ret_sts_error;
903   ELSE
904        CLOSE l_chk_partner_active_csr ;
905   END IF;
906 
907 END Chk_BTCH_Chg_Prtnrs_Fk_Items;
908 
909 PROCEDURE Check_Batch_Chg_Prtnrs_Items (
910     p_batch_chg_prtnrs_rec     IN    Batch_Chg_Prtnrs_REC_TYPE,
911     p_validation_mode  IN    VARCHAR2,
912     x_return_status    OUT NOCOPY   VARCHAR2
913     )
914 IS
915    l_return_status   VARCHAR2(1);
916 BEGIN
917 
918     l_return_status := FND_API.g_ret_sts_success;
919 
920    -- Chk Items Uniqueness API calls
921 
922    Chk_BTCH_Chg_Prtnrs_Uk_Items(
923       p_batch_chg_prtnrs_rec => p_batch_chg_prtnrs_rec,
924       p_validation_mode => p_validation_mode,
925       x_return_status => x_return_status);
926    IF x_return_status <> FND_API.g_ret_sts_success THEN
927       l_return_status := FND_API.g_ret_sts_error;
928    END IF;
929 
930    -- Chk Items Required/NOT NULL API calls
931 
932    Chk_BTCH_Chg_Prtnrs_req_items(
933       p_batch_chg_prtnrs_rec => p_batch_chg_prtnrs_rec,
934       p_validation_mode => p_validation_mode,
935       x_return_status => x_return_status);
936    IF x_return_status <> FND_API.g_ret_sts_success THEN
937       l_return_status := FND_API.g_ret_sts_error;
938    END IF;
939    -- Chk Items Foreign Keys API calls
940 
941    Chk_BTCH_Chg_Prtnrs_FK_items(
942       p_batch_chg_prtnrs_rec => p_batch_chg_prtnrs_rec,
943       x_return_status => x_return_status);
944    IF x_return_status <> FND_API.g_ret_sts_success THEN
945       l_return_status := FND_API.g_ret_sts_error;
946    END IF;
947 
948    x_return_status := l_return_status;
949 
950 END Check_Batch_Chg_Prtnrs_Items;
951 
952 PROCEDURE Complete_BTCH_Chg_Prtnrs_Rec (
953    p_batch_chg_prtnrs_rec IN Batch_Chg_Prtnrs_Rec_Type,
954    x_complete_rec OUT NOCOPY Batch_Chg_Prtnrs_Rec_Type)
955 IS
956    l_return_status  VARCHAR2(1);
957 
958    CURSOR c_complete IS
959       SELECT *
960       FROM PV_TAP_BATCH_CHG_PARTNERS
961       WHERE partner_id = p_batch_chg_prtnrs_rec.partner_id;
962 
966 
963    l_btch_chg_prtnrs_rec c_complete%ROWTYPE;
964 BEGIN
965    x_complete_rec := p_batch_chg_prtnrs_rec;
967 
968    OPEN c_complete;
969    FETCH c_complete INTO l_btch_chg_prtnrs_rec;
970    CLOSE c_complete;
971 
972    -- partner_id
973    IF p_batch_chg_prtnrs_rec.partner_id IS NULL THEN
974       x_complete_rec.partner_id := l_btch_chg_prtnrs_rec.partner_id;
975    END IF;
976 
977    -- last_update_date
978    IF p_batch_chg_prtnrs_rec.last_update_date IS NULL THEN
979       x_complete_rec.last_update_date := l_btch_chg_prtnrs_rec.last_update_date;
980    END IF;
981 
982    -- last_update_by
983    IF p_batch_chg_prtnrs_rec.last_update_by IS NULL THEN
984       x_complete_rec.last_update_by := l_btch_chg_prtnrs_rec.last_update_by;
985    END IF;
986 
987    -- creation_date
988    IF p_batch_chg_prtnrs_rec.creation_date IS NULL THEN
989       x_complete_rec.creation_date := l_btch_chg_prtnrs_rec.creation_date;
990    END IF;
991 
992    -- created_by
993    IF p_batch_chg_prtnrs_rec.created_by IS NULL THEN
994       x_complete_rec.created_by := l_btch_chg_prtnrs_rec.created_by;
995    END IF;
996 
997    -- last_update_login
998    IF p_batch_chg_prtnrs_rec.last_update_login IS NULL THEN
999       x_complete_rec.last_update_login := l_btch_chg_prtnrs_rec.last_update_login;
1000    END IF;
1001 
1002    -- request_id
1003    IF p_batch_chg_prtnrs_rec.request_id IS NULL THEN
1004       x_complete_rec.request_id := l_btch_chg_prtnrs_rec.request_id;
1005    END IF;
1006 
1007    -- program_application_id
1008    IF p_batch_chg_prtnrs_rec.program_application_id IS NULL THEN
1009       x_complete_rec.program_application_id := l_btch_chg_prtnrs_rec.program_application_id;
1010    END IF;
1011 
1012    -- program_id
1013    IF p_batch_chg_prtnrs_rec.program_id IS NULL THEN
1014       x_complete_rec.program_id := l_btch_chg_prtnrs_rec.program_id;
1015    END IF;
1016 
1017    -- program_update_date
1018    IF p_batch_chg_prtnrs_rec.program_update_date IS NULL THEN
1019       x_complete_rec.program_update_date := l_btch_chg_prtnrs_rec.program_update_date;
1020    END IF;
1021 
1022    -- processed_flag
1023    IF p_batch_chg_prtnrs_rec.processed_flag IS NULL THEN
1024       x_complete_rec.processed_flag := l_btch_chg_prtnrs_rec.processed_flag;
1025    END IF;
1026 
1027       -- processed_flag
1028    IF p_batch_chg_prtnrs_rec.vad_partner_id IS NULL THEN
1029       x_complete_rec.vad_partner_id := l_btch_chg_prtnrs_rec.vad_partner_id;
1030    END IF;
1031 
1032    -- Note: Developers need to modify the procedure
1033    -- to handle any business specific requirements.
1034 END Complete_BTCH_Chg_Prtnrs_Rec;
1035 
1036 PROCEDURE Default_BTCH_Chg_Prtnrs_Items ( p_batch_chg_prtnrs_rec IN Batch_Chg_Prtnrs_Rec_Type ,
1037                                 x_btch_chg_prtnrs_rec OUT NOCOPY Batch_Chg_Prtnrs_Rec_Type )
1038 IS
1039    l_btch_chg_prtnrs_rec Batch_Chg_Prtnrs_Rec_Type := p_batch_chg_prtnrs_rec;
1040 BEGIN
1041    IF p_batch_chg_prtnrs_rec.last_update_date IS NULL OR
1042       p_batch_chg_prtnrs_rec.last_update_date = FND_API.G_MISS_DATE THEN
1043 
1044             l_btch_chg_prtnrs_rec.last_update_date := sysdate ;
1045 
1046    END IF ;
1047 
1048    IF p_batch_chg_prtnrs_rec.last_update_by IS NULL OR
1049       p_batch_chg_prtnrs_rec.last_update_by = FND_API.G_MISS_NUM THEN
1050 
1051             l_btch_chg_prtnrs_rec.last_update_by := FND_GLOBAL.user_id ;
1052 
1053    END IF ;
1054 
1055    IF p_batch_chg_prtnrs_rec.creation_date IS NULL OR
1056       p_batch_chg_prtnrs_rec.creation_date = FND_API.G_MISS_DATE THEN
1057 
1058             l_btch_chg_prtnrs_rec.creation_date := sysdate ;
1059 
1060    END IF ;
1061 
1062    IF p_batch_chg_prtnrs_rec.created_by IS NULL OR
1063       p_batch_chg_prtnrs_rec.created_by = FND_API.G_MISS_NUM THEN
1064 
1065             l_btch_chg_prtnrs_rec.created_by := FND_GLOBAL.user_id ;
1066 
1067    END IF ;
1068 
1069    IF p_batch_chg_prtnrs_rec.last_update_login IS NULL OR
1070       p_batch_chg_prtnrs_rec.last_update_login = FND_API.G_MISS_NUM THEN
1071 
1072             l_btch_chg_prtnrs_rec.last_update_login := FND_GLOBAL.user_id ;
1073 
1074    END IF ;
1075 
1076    IF p_batch_chg_prtnrs_rec.processed_flag  IS NULL OR
1077       p_batch_chg_prtnrs_rec.processed_flag  = FND_API.G_MISS_CHAR THEN
1078             l_btch_Chg_Prtnrs_rec.processed_flag := 'P' ;
1079    END IF ;
1080 
1081    x_btch_chg_prtnrs_rec := l_btch_chg_prtnrs_rec;
1082 END;
1083 
1084 PROCEDURE Validate_Batch_Chg_Partners(
1085     p_api_version_number         IN   NUMBER,
1086     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1087     p_validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
1088     p_batch_chg_prtnrs_rec        IN   Batch_Chg_Prtnrs_Rec_Type,
1089     p_validation_mode            IN    VARCHAR2,
1090     x_return_status              OUT NOCOPY  VARCHAR2,
1091     x_msg_count                  OUT NOCOPY  NUMBER,
1092     x_msg_data                   OUT NOCOPY  VARCHAR2
1093     )
1094  IS
1095 L_API_NAME                  CONSTANT VARCHAR2(30) := 'Validate_Batch_Chg_Partners';
1096 L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
1097 l_object_version_number     NUMBER;
1101  BEGIN
1098 l_batch_chg_prtnrs_rec  Batch_Chg_Prtnrs_Rec_Type ;
1099 ld_batch_chg_prtnrs_rec  Batch_Chg_Prtnrs_Rec_Type ;
1100 l_complete_rec   Batch_Chg_Prtnrs_Rec_Type;
1102       -- Standard Start of API savepoint
1103       SAVEPOINT validate_BTCH_Chg_Prtnrs_;
1104 
1105       -- Standard call to Chk for call compatibility.
1106       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1107                                            p_api_version_number,
1108                                            l_api_name,
1109                                            G_PKG_NAME)
1110       THEN
1111           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1112       END IF;
1113 
1114       -- Debug Message
1115       IF (PV_DEBUG_HIGH_ON) THEN
1116           PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'Start');
1117       END IF;
1118 
1119       -- Initialize message list if p_init_msg_list is set to TRUE.
1120       IF FND_API.to_Boolean( p_init_msg_list )
1121       THEN
1122          FND_MSG_PUB.initialize;
1123       END IF;
1124 
1125       -- Initialize API return status to SUCCESS
1126       x_return_status := FND_API.G_RET_STS_SUCCESS;
1127 
1128       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1129               Check_Batch_Chg_Prtnrs_Items(
1130                  p_batch_chg_prtnrs_rec => p_batch_chg_prtnrs_rec,
1131                  p_validation_mode      => p_validation_mode,
1132                  x_return_status        => x_return_status
1133               );
1134 
1135               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1136                   RAISE FND_API.G_EXC_ERROR;
1137               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1138                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1139               END IF;
1140       END IF;
1141 
1142       IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1143          Default_BTCH_Chg_Prtnrs_Items(
1144 	         p_batch_chg_prtnrs_rec => p_batch_chg_prtnrs_rec,
1145                  x_BTCH_Chg_Prtnrs_rec => ld_batch_chg_prtnrs_rec) ;
1146       END IF ;
1147 
1148 
1149       Complete_BTCH_Chg_Prtnrs_Rec(
1150         p_batch_chg_prtnrs_rec => ld_batch_chg_prtnrs_rec,
1151          x_complete_rec        => l_batch_chg_prtnrs_rec
1152       );
1153 
1154       IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1155          Validate_Batch_Chg_Prtnrs_Rec(
1156            p_api_version_number     => 1.0,
1157            p_init_msg_list          => FND_API.G_FALSE,
1158            x_return_status          => x_return_status,
1159            x_msg_count              => x_msg_count,
1160            x_msg_data               => x_msg_data,
1161            p_batch_chg_prtnrs_rec   =>    l_batch_chg_prtnrs_rec);
1162 
1163               IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1164                  RAISE FND_API.G_EXC_ERROR;
1165               ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1166                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1167               END IF;
1168       END IF;
1169 
1170       -- Debug Message
1171       IF (PV_DEBUG_HIGH_ON) THEN
1172           PVX_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1173       END IF;
1174 
1175 
1176       -- Standard call to get message count and if count is 1, get message info.
1177       FND_MSG_PUB.Count_And_Get
1178         (p_count          =>   x_msg_count,
1179          p_data           =>   x_msg_data
1180       );
1181 EXCEPTION
1182 
1183    WHEN PVX_UTILITY_PVT.resource_locked THEN
1184      x_return_status := FND_API.g_ret_sts_error;
1185          PVX_UTILITY_PVT.Error_Message(p_message_name => 'PV_API_RESOURCE_LOCKED');
1186 
1187    WHEN FND_API.G_EXC_ERROR THEN
1188      ROLLBACK TO VALIDATE_BTCH_Chg_Prtnrs_;
1189      x_return_status := FND_API.G_RET_STS_ERROR;
1190 
1191      -- Standard call to get message count and if count=1, get the message
1192      FND_MSG_PUB.Count_And_Get (
1193             p_encoded => FND_API.G_FALSE,
1194             p_count   => x_msg_count,
1195             p_data    => x_msg_data
1196      );
1197 
1198    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1199      ROLLBACK TO VALIDATE_BTCH_Chg_Prtnrs_;
1200      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1201 
1202      -- Standard call to get message count and if count=1, get the message
1203      FND_MSG_PUB.Count_And_Get (
1204             p_encoded => FND_API.G_FALSE,
1205             p_count => x_msg_count,
1206             p_data  => x_msg_data
1207      );
1208 
1209    WHEN OTHERS THEN
1210      ROLLBACK TO VALIDATE_BTCH_Chg_Prtnrs_;
1211      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1212 
1213      IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1214      THEN
1215         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1216      END IF;
1217 
1218      -- Standard call to get message count and if count=1, get the message
1219      FND_MSG_PUB.Count_And_Get (
1220             p_encoded => FND_API.G_FALSE,
1221             p_count => x_msg_count,
1222             p_data  => x_msg_data
1223      );
1224 End Validate_Batch_Chg_Partners;
1225 
1226 
1227 PROCEDURE Validate_Batch_Chg_Prtnrs_Rec (
1228     p_api_version_number         IN   NUMBER,
1229     p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1233     p_batch_chg_prtnrs_rec       IN    Batch_Chg_Prtnrs_Rec_Type
1230     x_return_status              OUT NOCOPY  VARCHAR2,
1231     x_msg_count                  OUT NOCOPY  NUMBER,
1232     x_msg_data                   OUT NOCOPY  VARCHAR2,
1234     )
1235 IS
1236 BEGIN
1237       -- Initialize message list if p_init_msg_list is set to TRUE.
1238       IF FND_API.to_Boolean( p_init_msg_list )
1239       THEN
1240          FND_MSG_PUB.initialize;
1241       END IF;
1242 
1243       -- Initialize API return status to SUCCESS
1244       x_return_status := FND_API.G_RET_STS_SUCCESS;
1245 
1246       -- Hint: Validate data
1247       -- If data not valid
1248       -- THEN
1249       -- x_return_status := FND_API.G_RET_STS_ERROR;
1250 
1251       IF ( NOT( p_batch_chg_prtnrs_rec.processed_flag = 'P' OR
1252            p_batch_chg_prtnrs_rec.processed_flag = 'S')) THEN
1253            PVX_UTILITY_PVT.Error_Message('PV_INVALID_FLAG');
1254            x_return_status := FND_API.G_RET_STS_ERROR;
1255       END IF;
1256 
1257       -- Debug Message
1258       IF (PV_DEBUG_HIGH_ON) THEN
1259           PVX_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1260       END IF;
1261 
1262       -- Standard call to get message count and if count is 1, get message info.
1263       FND_MSG_PUB.Count_And_Get
1264         (p_count          =>   x_msg_count,
1265          p_data           =>   x_msg_data
1266       );
1267 END Validate_Batch_Chg_Prtnrs_Rec;
1268 
1269 END PV_BATCH_CHG_PRTNR_PVT;