DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_IMP_DOC_CON_PVT

Source


1 PACKAGE BODY AMS_Imp_Doc_Con_PVT as
2  /* $Header: amsvidcb.pls 115.4 2002/11/14 22:03:20 jieli noship $ */
3  -- ===============================================================
4  -- Start of Comments
5  -- Package name
6  --          AMS_Imp_Doc_Con_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):= 'AMS_Imp_Doc_Con_PVT';
21  G_FILE_NAME CONSTANT VARCHAR2(12) := 'amsvidcb.pls';
22 
23  -- G_USER_ID         NUMBER := FND_GLOBAL.USER_ID;
24  -- G_LOGIN_ID        NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
25 
26  -- Hint: Primary key needs to be returned.
27  --   ==============================================================================
28  --    Start of Comments
29  --   ==============================================================================
30  --   API Name
31  --           Create_Imp_Doc_Content
32  --   Type
33  --           Private
34  --   Pre-Req
35  --
36  --   Parameters
37  --
38  --   IN
39  --       p_api_version_number      IN   NUMBER     Required
40  --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
41  --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
42  --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
43  --       p_imp_doc_rec            IN   imp_doccon_rec_type  Required
44  --
45  --   OUT
46  --       x_return_status           OUT  VARCHAR2
47  --       x_msg_count               OUT  NUMBER
48  --       x_msg_data                OUT  VARCHAR2
49  --   Version : Current version 1.0
50  --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
51  --         and basic operation, developer must manually add parameters and business logic as necessary.
52  --
53  --   History
54  --
55  --   NOTE
56  --
57  --   End of Comments
58  --   ==============================================================================
59 
60  AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
61 AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
62 AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
63 
64 PROCEDURE Create_Imp_Doc_Content(
65      p_api_version_number         IN   NUMBER,
66      p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
67      p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
68      p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
69 
70      x_return_status              OUT NOCOPY  VARCHAR2,
71      x_msg_count                  OUT NOCOPY  NUMBER,
72      x_msg_data                   OUT NOCOPY  VARCHAR2,
73 
74      p_imp_doc_rec              IN   imp_doccon_rec_type  := g_miss_imp_doc_rec,
75      x_imp_doccontent_id              OUT NOCOPY  NUMBER
76       )
77 
78   IS
79  L_API_NAME                  CONSTANT VARCHAR2(30) := 'Create_Imp_Doc_Content';
80  L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
81     l_return_status_full        VARCHAR2(1);
82     l_object_version_number     NUMBER := 1;
83     l_org_id                    NUMBER := FND_API.G_MISS_NUM;
84     l_imp_document_id              NUMBER;
85     l_dummy                     NUMBER;
86 
87 
88     CURSOR c_id IS
89        SELECT ams_imp_doc_content_s.NEXTVAL
90        FROM dual;
91 
92     CURSOR c_id_exists (l_id IN NUMBER) IS
93        SELECT 1
94        FROM ams_imp_doc_content
95        WHERE imp_doc_content_id = l_id;
96 
97  BEGIN
98        -- Standard Start of API savepoint
99        SAVEPOINT create_imp_doc_pvt;
100 
101        -- Standard call to check for call compatibility.
102        IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
103                                             p_api_version_number,
104                                             l_api_name,
105                                             G_PKG_NAME)
106        THEN
107            RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
108        END IF;
109 
110 		--IF (AMS_DEBUG_HIGH_ON) THENAMS_UTILITY_PVT.debug_message( 'The header id is:' || p_imp_doc_rec.import_list_header_id );END IF;
111 
112        -- Initialize message list if p_init_msg_list is set to TRUE.
113        IF FND_API.to_Boolean( p_init_msg_list )
114        THEN
115           FND_MSG_PUB.initialize;
116        END IF;
117 
118 
119 
120        -- Debug Message
121        IF (AMS_DEBUG_HIGH_ON) THEN
122 
123        AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start and the header id:'
124 			|| p_imp_doc_rec.import_list_header_id);
125        END IF;
126 
127 
128 
129        -- Initialize API return status to SUCCESS
130        x_return_status := FND_API.G_RET_STS_SUCCESS;
131 
132     -- Local variable initialization
133 
134     IF p_imp_doc_rec.imp_doc_content_id IS NULL OR p_imp_doc_rec.imp_doc_content_id = FND_API.g_miss_num THEN
135        LOOP
136           l_dummy := NULL;
137           OPEN c_id;
138           FETCH c_id INTO l_imp_document_id;
139           CLOSE c_id;
140 
141           OPEN c_id_exists(l_imp_document_id);
142           FETCH c_id_exists INTO l_dummy;
143           CLOSE c_id_exists;
144           EXIT WHEN l_dummy IS NULL;
145        END LOOP;
146     ELSE
147           l_imp_document_id := p_imp_doc_rec.imp_doc_content_id;
148     END IF;
149 
150        -- =========================================================================
151        -- Validate Environment
152        -- =========================================================================
153 
154        IF FND_GLOBAL.USER_ID IS NULL
155        THEN
156           AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
157            RAISE FND_API.G_EXC_ERROR;
158        END IF;
159 
160        IF ( p_validation_level IS NULL OR
161 				P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
162        THEN
163            -- Debug message
164            IF (AMS_DEBUG_HIGH_ON) THEN
165 
166            AMS_UTILITY_PVT.debug_message('Private API: Validate_Imp_Doc');
167            END IF;
168 
169            -- Invoke validation procedures
170            --Validate_imp_doc(
171            --p_api_version_number     => 1.0,
172            --  p_init_msg_list    => FND_API.G_FALSE,
173            --  p_validation_level => p_validation_level,
174            --  p_validation_mode => JTF_PLSQL_API.g_create,
175            --  p_imp_doc_rec  =>  p_imp_doc_rec,
176            --  x_return_status    => x_return_status,
177            -- x_msg_count        => x_msg_count,
178            --  x_msg_data         => x_msg_data);
179 			  NULL;
180        END IF;
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 
187        -- Debug Message
188        IF (AMS_DEBUG_HIGH_ON) THEN
189 
190        AMS_UTILITY_PVT.debug_message( 'Private API: Calling create table handler and the id:'
191 			|| p_imp_doc_rec.import_list_header_id);
192        END IF;
193 
194        -- Invoke table handler(AMS_IMP_DOC_CON_PKG.Insert_Row)
195        AMS_IMP_DOC_CON_PKG.Insert_Row(
196            px_imp_doc_content_id  => l_imp_document_id,
197            p_last_updated_by  => FND_GLOBAL.USER_ID,
198            px_object_version_number  => l_object_version_number,
199            p_created_by  => FND_GLOBAL.USER_ID,
200            p_last_update_login  => FND_GLOBAL.conc_login_id,
201            p_last_update_date  => SYSDATE,
202            p_creation_date  => SYSDATE,
203            p_import_list_header_id  => p_imp_doc_rec.import_list_header_id,
204            p_file_id => p_imp_doc_rec.file_id,
205            p_file_name => p_imp_doc_rec.file_name
206  );
207 
208            x_imp_doccontent_id := l_imp_document_id;
209        IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
210            RAISE FND_API.G_EXC_ERROR;
211        END IF;
212  --
213  -- End of API body
214  --
215 
216        -- Standard check for p_commit
217        IF FND_API.to_Boolean( p_commit )
218        THEN
219           COMMIT WORK;
220        END IF;
221 
222 
223        -- Debug Message
224        IF (AMS_DEBUG_HIGH_ON) THEN
225 
226        AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
227        END IF;
228 
229 
230        -- Standard call to get message count and if count is 1, get message info.
231        FND_MSG_PUB.Count_And_Get
232          (p_count          =>   x_msg_count,
233           p_data           =>   x_msg_data
234        );
235  EXCEPTION
236 
237     WHEN AMS_Utility_PVT.resource_locked THEN
238       x_return_status := FND_API.g_ret_sts_error;
239           AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
240 
241     WHEN FND_API.G_EXC_ERROR THEN
242       ROLLBACK TO CREATE_Imp_Doc_PVT;
243       x_return_status := FND_API.G_RET_STS_ERROR;
244       -- Standard call to get message count and if count=1, get the message
245       FND_MSG_PUB.Count_And_Get (
246              p_encoded => FND_API.G_FALSE,
247              p_count   => x_msg_count,
248              p_data    => x_msg_data
249       );
250 
251     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
252       ROLLBACK TO CREATE_Imp_Doc_PVT;
253       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
254       -- Standard call to get message count and if count=1, get the message
255       FND_MSG_PUB.Count_And_Get (
256              p_encoded => FND_API.G_FALSE,
257              p_count => x_msg_count,
258              p_data  => x_msg_data
259       );
260 
261     WHEN OTHERS THEN
262       ROLLBACK TO CREATE_Imp_Doc_PVT;
263       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
264       IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
265       THEN
266          FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
267       END IF;
268       -- Standard call to get message count and if count=1, get the message
269       FND_MSG_PUB.Count_And_Get (
270              p_encoded => FND_API.G_FALSE,
271              p_count => x_msg_count,
272              p_data  => x_msg_data
273       );
274  End Create_Imp_Doc_Content;
275 
276 
277  --   ==============================================================================
278  --    Start of Comments
279  --   ==============================================================================
280  --   API Name
281  --           Update_Imp_Doc_Con
282  --   Type
283  --           Private
284  --   Pre-Req
285  --
286  --   Parameters
287  --
288  --   IN
289  --       p_api_version_number      IN   NUMBER     Required
290  --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
291  --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
292  --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
293  --       p_imp_doc_rec            IN   imp_doccon_rec_type  Required
294  --
295  --   OUT
296  --       x_return_status           OUT  VARCHAR2
297  --       x_msg_count               OUT  NUMBER
298  --       x_msg_data                OUT  VARCHAR2
299  --   Version : Current version 1.0
300  --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
301  --         and basic operation, developer must manually add parameters and business logic as necessary.
302  --
303  --   History
304  --
305  --   NOTE
306  --
307  --   End of Comments
308  --   ==============================================================================
309 
310  PROCEDURE Update_Imp_Doc_Con(
311      p_api_version_number         IN   NUMBER,
312      p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
313      p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
314      p_validation_level           IN  NUMBER       := FND_API.G_VALID_LEVEL_FULL,
315 
316      x_return_status              OUT NOCOPY  VARCHAR2,
317      x_msg_count                  OUT NOCOPY  NUMBER,
318      x_msg_data                   OUT NOCOPY  VARCHAR2,
319 
320      p_imp_doc_rec               IN    imp_doccon_rec_type,
321      x_object_version_number      OUT NOCOPY  NUMBER
322      )
323 
324   IS
325 
326 
327  CURSOR c_get_imp_doc(imp_doc_content_id NUMBER) IS
328      SELECT *
329      FROM  ams_imp_doc_content
330      WHERE  imp_doc_content_id = p_imp_doc_rec.imp_doc_content_id;
331      -- Hint: Developer need to provide Where clause
332 
333 
334  L_API_NAME                  CONSTANT VARCHAR2(30) := 'Update_Imp_Doc_Con';
335  L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
336  -- Local Variables
337  l_object_version_number     NUMBER;
338  l_imp_document_id    NUMBER;
339  l_ref_imp_doc_rec  c_get_Imp_Doc%ROWTYPE ;
343   BEGIN
340  l_tar_imp_doc_rec  imp_doccon_rec_type := P_imp_doc_rec;
341  l_rowid  ROWID;
342 
344        -- Standard Start of API savepoint
345        SAVEPOINT update_imp_doc_pvt;
346 
347        -- Standard call to check for call compatibility.
348        IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
349                                             p_api_version_number,
350                                             l_api_name,
351                                             G_PKG_NAME)
352        THEN
353            RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
354        END IF;
355 
356 
357        -- Initialize message list if p_init_msg_list is set to TRUE.
358        IF FND_API.to_Boolean( p_init_msg_list )
359        THEN
360           FND_MSG_PUB.initialize;
361        END IF;
362 
363 
364 
365        -- Debug Message
366        IF (AMS_DEBUG_HIGH_ON) THEN
367 
368        AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
369        END IF;
370 
371 
372 
373        -- Initialize API return status to SUCCESS
374        x_return_status := FND_API.G_RET_STS_SUCCESS;
375 
376        -- Debug Message
377        IF (AMS_DEBUG_HIGH_ON) THEN
378 
379        AMS_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
380        END IF;
381 
382        OPEN c_get_Imp_Doc( l_tar_imp_doc_rec.imp_doc_content_id);
383 
384        FETCH c_get_Imp_Doc INTO l_ref_imp_doc_rec  ;
385 
386         If ( c_get_Imp_Doc%NOTFOUND) THEN
387    AMS_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
388     p_token_name   => 'INFO',
389   p_token_value  => 'Imp_Doc') ;
390             RAISE FND_API.G_EXC_ERROR;
391         END IF;
392         -- Debug Message
393         IF (AMS_DEBUG_HIGH_ON) THEN
394 
395         AMS_UTILITY_PVT.debug_message('Private API: - Close Cursor');
396         END IF;
397         CLOSE     c_get_Imp_Doc;
398 
399 
400        If (l_tar_imp_doc_rec.object_version_number is NULL or
401            l_tar_imp_doc_rec.object_version_number = FND_API.G_MISS_NUM ) Then
402    AMS_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
403     p_token_name   => 'COLUMN',
404   p_token_value  => 'Last_Update_Date') ;
405            raise FND_API.G_EXC_ERROR;
406        End if;
407        -- Check Whether record has been changed by someone else
408        If (l_tar_imp_doc_rec.object_version_number <> l_ref_imp_doc_rec.object_version_number) Then
409    AMS_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
410     p_token_name   => 'INFO',
411   p_token_value  => 'Imp_Doc') ;
412            raise FND_API.G_EXC_ERROR;
413        End if;
414 
415 
416        IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
417        THEN
418            -- Debug message
419            IF (AMS_DEBUG_HIGH_ON) THEN
420 
421            AMS_UTILITY_PVT.debug_message('Private API: Validate_Imp_Doc');
422            END IF;
423 
424            -- Invoke validation procedures
425            Validate_imp_doc(
426              p_api_version_number     => 1.0,
427              p_init_msg_list    => FND_API.G_FALSE,
428              p_validation_level => p_validation_level,
429              p_validation_mode => JTF_PLSQL_API.g_update,
430              p_imp_doc_rec  =>  p_imp_doc_rec,
431              x_return_status    => x_return_status,
432              x_msg_count        => x_msg_count,
433              x_msg_data         => x_msg_data);
434        END IF;
435 
436        IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
437            RAISE FND_API.G_EXC_ERROR;
438        END IF;
439 
440 
441        -- Debug Message
442        IF (AMS_DEBUG_HIGH_ON) THEN
443 
444        AMS_UTILITY_PVT.debug_message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
445        END IF;
446 
447        -- Invoke table handler(AMS_IMP_DOC_CON_PKG.Update_Row)
448        AMS_IMP_DOC_CON_PKG.Update_Row(
449            p_imp_doc_content_id  => p_imp_doc_rec.imp_doc_content_id,
450            p_last_updated_by  => FND_GLOBAL.USER_ID,
451            px_object_version_number  => l_object_version_number,
452            p_last_update_login  => FND_GLOBAL.conc_login_id,
453            p_last_update_date  => SYSDATE,
454            p_import_list_header_id  => p_imp_doc_rec.import_list_header_id,
455            p_file_id  => p_imp_doc_rec.file_id,
456            p_file_name  => p_imp_doc_rec.file_name
457 		);
458        --
459        -- End of API body.
460        --
461 
462        -- Standard check for p_commit
463        IF FND_API.to_Boolean( p_commit )
464        THEN
465           COMMIT WORK;
466        END IF;
467 
468 
469        -- Debug Message
470        IF (AMS_DEBUG_HIGH_ON) THEN
471 
472        AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
473        END IF;
474 
475 
476        -- Standard call to get message count and if count is 1, get message info.
477        FND_MSG_PUB.Count_And_Get
478          (p_count          =>   x_msg_count,
479           p_data           =>   x_msg_data
480        );
481  EXCEPTION
482 
483     WHEN AMS_Utility_PVT.resource_locked THEN
484       x_return_status := FND_API.g_ret_sts_error;
485           AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
486 
487     WHEN FND_API.G_EXC_ERROR THEN
488       ROLLBACK TO UPDATE_Imp_Doc_PVT;
489       x_return_status := FND_API.G_RET_STS_ERROR;
490       -- Standard call to get message count and if count=1, get the message
491       FND_MSG_PUB.Count_And_Get (
495       );
492              p_encoded => FND_API.G_FALSE,
493              p_count   => x_msg_count,
494              p_data    => x_msg_data
496 
497     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
498       ROLLBACK TO UPDATE_Imp_Doc_PVT;
499       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
500       -- Standard call to get message count and if count=1, get the message
501       FND_MSG_PUB.Count_And_Get (
502              p_encoded => FND_API.G_FALSE,
503              p_count => x_msg_count,
504              p_data  => x_msg_data
505       );
506 
507     WHEN OTHERS THEN
508       ROLLBACK TO UPDATE_Imp_Doc_PVT;
509       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
510       IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
511       THEN
512          FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
513       END IF;
514       -- Standard call to get message count and if count=1, get the message
515       FND_MSG_PUB.Count_And_Get (
516              p_encoded => FND_API.G_FALSE,
517              p_count => x_msg_count,
518              p_data  => x_msg_data
519       );
520  End Update_Imp_Doc_Con;
521 
522 
523  --   ==============================================================================
524  --    Start of Comments
525  --   ==============================================================================
526  --   API Name
527  --           Delete_Imp_Doc_Con
528  --   Type
529  --           Private
530  --   Pre-Req
531  --
532  --   Parameters
533  --
534  --   IN
535  --       p_api_version_number      IN   NUMBER     Required
536  --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
537  --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
538  --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
539  --       p_imp_document_id                IN   NUMBER
540  --       p_object_version_number   IN   NUMBER     Optional  Default = NULL
541  --
542  --   OUT
543  --       x_return_status           OUT  VARCHAR2
544  --       x_msg_count               OUT  NUMBER
545  --       x_msg_data                OUT  VARCHAR2
546  --   Version : Current version 1.0
547  --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
548  --         and basic operation, developer must manually add parameters and business logic as necessary.
549  --
550  --   History
551  --
552  --   NOTE
553  --
554  --   End of Comments
555  --   ==============================================================================
556 
557  PROCEDURE Delete_Imp_Doc_Con(
558      p_api_version_number         IN   NUMBER,
559      p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
560      p_commit                     IN   VARCHAR2     := FND_API.G_FALSE,
561      p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
562      x_return_status              OUT NOCOPY  VARCHAR2,
563      x_msg_count                  OUT NOCOPY  NUMBER,
564      x_msg_data                   OUT NOCOPY  VARCHAR2,
565      p_imp_doccontent_id          IN  NUMBER,
566      p_object_version_number      IN   NUMBER
567      )
568 
569   IS
570  L_API_NAME                  CONSTANT VARCHAR2(30) := 'Delete_Imp_Doc_Con';
571  L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
572  l_object_version_number     NUMBER;
573 
574   BEGIN
575        -- Standard Start of API savepoint
576        SAVEPOINT delete_imp_doc_pvt;
577 
578        -- Standard call to check for call compatibility.
579        IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
580                                             p_api_version_number,
581                                             l_api_name,
582                                             G_PKG_NAME)
583        THEN
584            RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
585        END IF;
586 
587 
588        -- Initialize message list if p_init_msg_list is set to TRUE.
589        IF FND_API.to_Boolean( p_init_msg_list )
590        THEN
591           FND_MSG_PUB.initialize;
592        END IF;
593 
594 
595 
596        -- Debug Message
597        IF (AMS_DEBUG_HIGH_ON) THEN
598 
599        AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
600        END IF;
601 
602 
603 
604        -- Initialize API return status to SUCCESS
605        x_return_status := FND_API.G_RET_STS_SUCCESS;
606 
607        --
608        -- Api body
609        --
610        -- Debug Message
611        IF (AMS_DEBUG_HIGH_ON) THEN
612 
613        AMS_UTILITY_PVT.debug_message( 'Private API: Calling delete table handler');
614        END IF;
615 
616        -- Invoke table handler(AMS_IMP_DOC_CON_PKG.Delete_Row)
617        AMS_IMP_DOC_CON_PKG.Delete_Row(
618            p_imp_doc_content_id  => p_imp_doccontent_id,
619            p_object_version_number => p_object_version_number     );
620        --
621        -- End of API body
622        --
623 
624        -- Standard check for p_commit
625        IF FND_API.to_Boolean( p_commit )
626        THEN
627           COMMIT WORK;
628        END IF;
629 
630 
631        -- Debug Message
632        IF (AMS_DEBUG_HIGH_ON) THEN
633 
634        AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
635        END IF;
636 
637 
638        -- Standard call to get message count and if count is 1, get message info.
639        FND_MSG_PUB.Count_And_Get
640          (p_count          =>   x_msg_count,
641           p_data           =>   x_msg_data
642        );
643  EXCEPTION
647           AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
644 
645     WHEN AMS_Utility_PVT.resource_locked THEN
646       x_return_status := FND_API.g_ret_sts_error;
648 
649     WHEN FND_API.G_EXC_ERROR THEN
650       ROLLBACK TO DELETE_Imp_Doc_PVT;
651       x_return_status := FND_API.G_RET_STS_ERROR;
652       -- Standard call to get message count and if count=1, get the message
653       FND_MSG_PUB.Count_And_Get (
654              p_encoded => FND_API.G_FALSE,
655              p_count   => x_msg_count,
656              p_data    => x_msg_data
657       );
658 
659     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
660       ROLLBACK TO DELETE_Imp_Doc_PVT;
661       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
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 
669     WHEN OTHERS THEN
670       ROLLBACK TO DELETE_Imp_Doc_PVT;
671       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
672       IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
673       THEN
674          FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
675       END IF;
676       -- Standard call to get message count and if count=1, get the message
677       FND_MSG_PUB.Count_And_Get (
678              p_encoded => FND_API.G_FALSE,
679              p_count => x_msg_count,
680              p_data  => x_msg_data
681       );
682  End Delete_Imp_Doc_Con;
683 
684 
685 
686  -- Hint: Primary key needs to be returned.
687  --   ==============================================================================
688  --    Start of Comments
689  --   ==============================================================================
690  --   API Name
691  --           Lock_Imp_Doc_Con
692  --   Type
693  --           Private
694  --   Pre-Req
695  --
696  --   Parameters
697  --
698  --   IN
699  --       p_api_version_number      IN   NUMBER     Required
700  --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
701  --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
702  --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
703  --       p_imp_doc_rec            IN   imp_doccon_rec_type  Required
704  --
705  --   OUT
706  --       x_return_status           OUT  VARCHAR2
707  --       x_msg_count               OUT  NUMBER
708  --       x_msg_data                OUT  VARCHAR2
709  --   Version : Current version 1.0
710  --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
711  --         and basic operation, developer must manually add parameters and business logic as necessary.
712  --
713  --   History
714  --
715  --   NOTE
716  --
717  --   End of Comments
718  --   ==============================================================================
719 
720  PROCEDURE Lock_Imp_Doc_Con(
721      p_api_version_number         IN   NUMBER,
722      p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
723 
724      x_return_status              OUT NOCOPY  VARCHAR2,
725      x_msg_count                  OUT NOCOPY  NUMBER,
726      x_msg_data                   OUT NOCOPY  VARCHAR2,
727 
728      p_imp_doccontent_id                   IN  NUMBER,
729      p_object_version             IN  NUMBER
730      )
731 
732   IS
733  L_API_NAME                  CONSTANT VARCHAR2(30) := 'Lock_Imp_Doc_Con';
734  L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
735  L_FULL_NAME                 CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
736  l_imp_document_id                  NUMBER;
737 
738  CURSOR c_imp_doc IS
739     SELECT imp_doc_content_id
740     FROM ams_imp_doc_content
741     WHERE imp_doc_content_id = p_imp_doccontent_id
742     AND object_version_number = p_object_version
743     FOR UPDATE NOWAIT;
744 
745  BEGIN
746 
747        -- Debug Message
748        IF (AMS_DEBUG_HIGH_ON) THEN
749 
750        AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
751        END IF;
752 
753 
754        -- Initialize message list if p_init_msg_list is set to TRUE.
755        IF FND_API.to_Boolean( p_init_msg_list )
756        THEN
757           FND_MSG_PUB.initialize;
758        END IF;
759 
760 
761 
762        -- Standard call to check for call compatibility.
763        IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
764                                             p_api_version_number,
765                                             l_api_name,
766                                             G_PKG_NAME)
767        THEN
768            RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
769        END IF;
770 
771 
772 
773        -- Initialize API return status to SUCCESS
774        x_return_status := FND_API.G_RET_STS_SUCCESS;
775 
776 
777  ------------------------ lock -------------------------
778 
779    IF (AMS_DEBUG_HIGH_ON) THEN
780 
781 
782 
783    AMS_Utility_PVT.debug_message(l_full_name||': start');
784 
785    END IF;
786    OPEN c_imp_doc;
787 
788    FETCH c_imp_doc INTO l_imp_document_id;
789 
790    IF (c_imp_doc%NOTFOUND) THEN
791      CLOSE c_imp_doc;
792      IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
793         FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
794         FND_MSG_PUB.add;
795      END IF;
796      RAISE FND_API.g_exc_error;
800 
797    END IF;
798 
799    CLOSE c_imp_doc;
801   -------------------- finish --------------------------
802    FND_MSG_PUB.count_and_get(
803      p_encoded => FND_API.g_false,
804      p_count   => x_msg_count,
805      p_data    => x_msg_data);
806    IF (AMS_DEBUG_HIGH_ON) THEN
807 
808    AMS_Utility_PVT.debug_message(l_full_name ||': end');
809    END IF;
810  EXCEPTION
811 
812     WHEN AMS_Utility_PVT.resource_locked THEN
813       x_return_status := FND_API.g_ret_sts_error;
814           AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
815 
816     WHEN FND_API.G_EXC_ERROR THEN
817       ROLLBACK TO LOCK_Imp_Doc_PVT;
818       x_return_status := FND_API.G_RET_STS_ERROR;
819       -- Standard call to get message count and if count=1, get the message
820       FND_MSG_PUB.Count_And_Get (
821              p_encoded => FND_API.G_FALSE,
822              p_count   => x_msg_count,
823              p_data    => x_msg_data
824       );
825 
826     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
827       ROLLBACK TO LOCK_Imp_Doc_PVT;
828       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
829       -- Standard call to get message count and if count=1, get the message
830       FND_MSG_PUB.Count_And_Get (
831              p_encoded => FND_API.G_FALSE,
832              p_count => x_msg_count,
833              p_data  => x_msg_data
834       );
835 
836     WHEN OTHERS THEN
837       ROLLBACK TO LOCK_Imp_Doc_PVT;
838       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
839       IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
840       THEN
841          FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
842       END IF;
843       -- Standard call to get message count and if count=1, get the message
844       FND_MSG_PUB.Count_And_Get (
845              p_encoded => FND_API.G_FALSE,
846              p_count => x_msg_count,
847              p_data  => x_msg_data
848       );
849  End Lock_Imp_Doc_Con;
850 
851 
852  --   ==============================================================================
853  --    Start of Comments
854  --   ==============================================================================
855  --   API Name
856  --           add_language
857  --   Type
858  --           Private
859  --   History
860  --
861  --   NOTE
862  --
863  -- End of Comments
864  -- ===============================================================
865 
866 
867 
868  PROCEDURE check_Imp_Doc_Uk_Items(
869      p_imp_doc_rec               IN   imp_doccon_rec_type,
870      p_validation_mode            IN  VARCHAR2 := JTF_PLSQL_API.g_create,
871      x_return_status              OUT NOCOPY VARCHAR2)
872  IS
873  l_valid_flag  VARCHAR2(1);
874 
875  BEGIN
876        x_return_status := FND_API.g_ret_sts_success;
877        IF p_validation_mode = JTF_PLSQL_API.g_create THEN
878           l_valid_flag := AMS_Utility_PVT.check_uniqueness(
879           'ams_imp_doc_content',
880           'imp_doc_content_id = ''' || p_imp_doc_rec.imp_doc_content_id ||''''
881           );
882        ELSE
883           l_valid_flag := AMS_Utility_PVT.check_uniqueness(
884           'ams_imp_doc_content',
885           'imp_doc_content_id = ''' || p_imp_doc_rec.imp_doc_content_id ||
886           ''' AND imp_doc_content_id <> ' || p_imp_doc_rec.imp_doc_content_id
887           );
888        END IF;
889 
890        IF l_valid_flag = FND_API.g_false THEN
891           AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_imp_document_id_DUPLICATE');
892           x_return_status := FND_API.g_ret_sts_error;
893           RETURN;
894        END IF;
895 
896  END check_Imp_Doc_Uk_Items;
897 
898 
899 
900  PROCEDURE check_Imp_Doc_Req_Items(
901      p_imp_doc_rec               IN  imp_doccon_rec_type,
902      p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
903      x_return_status              OUT NOCOPY VARCHAR2
904  )
905  IS
906  BEGIN
907     x_return_status := FND_API.g_ret_sts_success;
908 
909     IF p_validation_mode = JTF_PLSQL_API.g_create THEN
910 
911 
912        IF p_imp_doc_rec.imp_doc_content_id = FND_API.G_MISS_NUM OR p_imp_doc_rec.imp_doc_content_id IS NULL THEN
913                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
914                 FND_MESSAGE.set_token('MISS_FIELD', 'imp_doc_content_id' );
915                 x_return_status := FND_API.g_ret_sts_error;
916        END IF;
917 
918 
919        IF p_imp_doc_rec.last_updated_by = FND_API.G_MISS_NUM OR p_imp_doc_rec.last_updated_by IS NULL THEN
920                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
921                 FND_MESSAGE.set_token('MISS_FIELD', 'LAST_UPDATED_BY' );
922                 x_return_status := FND_API.g_ret_sts_error;
923        END IF;
924 
925 
926        IF p_imp_doc_rec.created_by = FND_API.G_MISS_NUM OR p_imp_doc_rec.created_by IS NULL THEN
927                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
928                 FND_MESSAGE.set_token('MISS_FIELD', 'CREATED_BY' );
929                 x_return_status := FND_API.g_ret_sts_error;
930        END IF;
931 
932 
933        IF p_imp_doc_rec.last_update_login = FND_API.G_MISS_NUM OR p_imp_doc_rec.last_update_login IS NULL THEN
934                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
935                 FND_MESSAGE.set_token('MISS_FIELD', 'LAST_UPDATE_LOGIN' );
936                 x_return_status := FND_API.g_ret_sts_error;
937        END IF;
938 
939 
940        IF p_imp_doc_rec.last_update_date = FND_API.G_MISS_DATE OR p_imp_doc_rec.last_update_date IS NULL THEN
944        END IF;
941                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
942                 FND_MESSAGE.set_token('MISS_FIELD', 'LAST_UPDATE_DATE' );
943                 x_return_status := FND_API.g_ret_sts_error;
945 
946 
947        IF p_imp_doc_rec.creation_date = FND_API.G_MISS_DATE OR p_imp_doc_rec.creation_date IS NULL THEN
948                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
949                 FND_MESSAGE.set_token('MISS_FIELD', 'CREATION_DATE' );
950                 x_return_status := FND_API.g_ret_sts_error;
951        END IF;
952 
953 
954        IF p_imp_doc_rec.import_list_header_id = FND_API.G_MISS_NUM OR p_imp_doc_rec.import_list_header_id IS NULL THEN
955                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
956                 FND_MESSAGE.set_token('MISS_FIELD', 'IMPORT_LIST_HEADER_ID' );
957                 x_return_status := FND_API.g_ret_sts_error;
958        END IF;
959 
960 
961     ELSE
962 
963 
964        IF p_imp_doc_rec.imp_doc_content_id = FND_API.G_MISS_NUM THEN
965                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
966                 FND_MESSAGE.set_token('MISS_FIELD', 'imp_doc_content_id' );
967                 x_return_status := FND_API.g_ret_sts_error;
968           RETURN;
969        END IF;
970 
971 
972        IF p_imp_doc_rec.last_updated_by = FND_API.G_MISS_NUM THEN
973                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
974                 FND_MESSAGE.set_token('MISS_FIELD', 'LAST_UPDATED_BY' );
975                 x_return_status := FND_API.g_ret_sts_error;
976           RETURN;
977        END IF;
978 
979 
980        IF p_imp_doc_rec.created_by = FND_API.G_MISS_NUM THEN
981                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
982                 FND_MESSAGE.set_token('MISS_FIELD', 'CREATED_BY' );
983                 x_return_status := FND_API.g_ret_sts_error;
984           RETURN;
985        END IF;
986 
987 
988        IF p_imp_doc_rec.last_update_login = FND_API.G_MISS_NUM THEN
989                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
990                 FND_MESSAGE.set_token('MISS_FIELD', 'LAST_UPDATE_LOGIN' );
991                 x_return_status := FND_API.g_ret_sts_error;
992           RETURN;
993        END IF;
994 
995 
996        IF p_imp_doc_rec.last_update_date = FND_API.G_MISS_DATE THEN
997                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
998                 FND_MESSAGE.set_token('MISS_FIELD', 'LAST_UPDATE_DATE' );
999                 x_return_status := FND_API.g_ret_sts_error;
1000           RETURN;
1001        END IF;
1002 
1003 
1004        IF p_imp_doc_rec.creation_date = FND_API.G_MISS_DATE THEN
1005                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
1006                 FND_MESSAGE.set_token('MISS_FIELD', 'CREATION_DATE' );
1007                 x_return_status := FND_API.g_ret_sts_error;
1008           RETURN;
1009        END IF;
1010 
1011 
1012        IF p_imp_doc_rec.import_list_header_id = FND_API.G_MISS_NUM THEN
1013                 AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD');
1014                 FND_MESSAGE.set_token('MISS_FIELD', 'IMPORT_LIST_HEADER_ID' );
1015                 x_return_status := FND_API.g_ret_sts_error;
1016           RETURN;
1017        END IF;
1018     END IF;
1019 
1020  END check_Imp_Doc_Req_Items;
1021 
1022 
1023 
1024  PROCEDURE check_Imp_Doc_Fk_Items(
1025      p_imp_doc_rec IN imp_doccon_rec_type,
1026      x_return_status OUT NOCOPY VARCHAR2
1027  )
1028  IS
1029  BEGIN
1030     x_return_status := FND_API.g_ret_sts_success;
1031 
1032     -- Enter custom code here
1033 
1034  END check_Imp_Doc_Fk_Items;
1035 
1036 
1037 
1038  PROCEDURE check_Imp_Doc_Lookup_Items(
1039      p_imp_doc_rec IN imp_doccon_rec_type,
1040      x_return_status OUT NOCOPY VARCHAR2
1041  )
1042  IS
1043  BEGIN
1044     x_return_status := FND_API.g_ret_sts_success;
1045 
1046     -- Enter custom code here
1047 
1048  END check_Imp_Doc_Lookup_Items;
1049 
1050 
1051 
1052  PROCEDURE Check_Imp_Doc_Items (
1053      P_imp_doc_rec     IN    imp_doccon_rec_type,
1054      p_validation_mode  IN    VARCHAR2,
1055      x_return_status    OUT NOCOPY   VARCHAR2
1056      )
1057  IS
1058  BEGIN
1059 
1060     -- Check Items Uniqueness API calls
1061 
1062     check_Imp_doc_Uk_Items(
1063        p_imp_doc_rec => p_imp_doc_rec,
1064        p_validation_mode => p_validation_mode,
1065        x_return_status => x_return_status);
1066     IF x_return_status <> FND_API.g_ret_sts_success THEN
1067        RETURN;
1068     END IF;
1069 
1070     -- Check Items Required/NOT NULL API calls
1071 
1072     check_imp_doc_req_items(
1073        p_imp_doc_rec => p_imp_doc_rec,
1074        p_validation_mode => p_validation_mode,
1075        x_return_status => x_return_status);
1076     IF x_return_status <> FND_API.g_ret_sts_success THEN
1077        RETURN;
1078     END IF;
1079     -- Check Items Foreign Keys API calls
1080 
1081     check_imp_doc_FK_items(
1082        p_imp_doc_rec => p_imp_doc_rec,
1083        x_return_status => x_return_status);
1084     IF x_return_status <> FND_API.g_ret_sts_success THEN
1085        RETURN;
1086     END IF;
1087     -- Check Items Lookups
1088 
1089     check_imp_doc_Lookup_items(
1090        p_imp_doc_rec => p_imp_doc_rec,
1091        x_return_status => x_return_status);
1092     IF x_return_status <> FND_API.g_ret_sts_success THEN
1096  END Check_imp_doc_Items;
1093        RETURN;
1094     END IF;
1095 
1097 
1098 
1099 
1100 
1101 
1102  PROCEDURE Complete_Imp_Doc_Rec (
1103     p_imp_doc_rec IN imp_doccon_rec_type,
1104     x_complete_rec OUT NOCOPY imp_doccon_rec_type)
1105  IS
1106     l_return_status  VARCHAR2(1);
1107 
1108     CURSOR c_complete IS
1109        SELECT *
1110        FROM ams_imp_doc_content
1111        WHERE imp_doc_content_id = p_imp_doc_rec.imp_doc_content_id;
1112     l_imp_doc_rec c_complete%ROWTYPE;
1113  BEGIN
1114     x_complete_rec := p_imp_doc_rec;
1115 
1116 
1117     OPEN c_complete;
1118     FETCH c_complete INTO l_imp_doc_rec;
1119     CLOSE c_complete;
1120 
1121     -- imp_doc_content_id
1122     IF p_imp_doc_rec.imp_doc_content_id IS NULL THEN
1123        x_complete_rec.imp_doc_content_id := l_imp_doc_rec.imp_doc_content_id;
1124     END IF;
1125 
1126     -- imp_doc_content_id
1127     IF p_imp_doc_rec.imp_doc_content_id IS NULL THEN
1128        x_complete_rec.imp_doc_content_id := l_imp_doc_rec.imp_doc_content_id;
1129     END IF;
1130 
1131     -- last_updated_by
1132     IF p_imp_doc_rec.last_updated_by IS NULL THEN
1133        x_complete_rec.last_updated_by := l_imp_doc_rec.last_updated_by;
1134     END IF;
1135 
1136     -- last_update_date
1137     IF p_imp_doc_rec.last_update_date IS NULL THEN
1138        x_complete_rec.last_update_date := l_imp_doc_rec.last_update_date;
1139     END IF;
1140 
1141     -- object_version_number
1142     IF p_imp_doc_rec.object_version_number IS NULL THEN
1143        x_complete_rec.object_version_number := l_imp_doc_rec.object_version_number;
1144     END IF;
1145 
1146     -- last_update_by
1147     --IF p_imp_doc_rec.last_update_by IS NULL THEN
1148     --   x_complete_rec.last_update_by := l_imp_doc_rec.last_update_by;
1149     --END IF;
1150 
1151     -- created_by
1152     IF p_imp_doc_rec.created_by IS NULL THEN
1153        x_complete_rec.created_by := l_imp_doc_rec.created_by;
1154     END IF;
1155 
1156     -- creation_date
1157     IF p_imp_doc_rec.creation_date IS NULL THEN
1158        x_complete_rec.creation_date := l_imp_doc_rec.creation_date;
1159     END IF;
1160 
1161     -- last_update_login
1162     IF p_imp_doc_rec.last_update_login IS NULL THEN
1163        x_complete_rec.last_update_login := l_imp_doc_rec.last_update_login;
1164     END IF;
1165 
1166     -- created_by
1167     IF p_imp_doc_rec.created_by IS NULL THEN
1168        x_complete_rec.created_by := l_imp_doc_rec.created_by;
1169     END IF;
1170 
1171     -- last_update_date
1172     IF p_imp_doc_rec.last_update_date IS NULL THEN
1173        x_complete_rec.last_update_date := l_imp_doc_rec.last_update_date;
1174     END IF;
1175 
1176     -- last_update_login
1177     IF p_imp_doc_rec.last_update_login IS NULL THEN
1178        x_complete_rec.last_update_login := l_imp_doc_rec.last_update_login;
1179     END IF;
1180 
1181     -- creation_date
1182     IF p_imp_doc_rec.creation_date IS NULL THEN
1183        x_complete_rec.creation_date := l_imp_doc_rec.creation_date;
1184     END IF;
1185 
1186     -- object_version_number
1187     IF p_imp_doc_rec.object_version_number IS NULL THEN
1188        x_complete_rec.object_version_number := l_imp_doc_rec.object_version_number;
1189     END IF;
1190 
1191     -- import_list_header_id
1192     IF p_imp_doc_rec.import_list_header_id IS NULL THEN
1193        x_complete_rec.import_list_header_id := l_imp_doc_rec.import_list_header_id;
1194     END IF;
1195 
1196     -- import_list_header_id
1197     IF p_imp_doc_rec.import_list_header_id IS NULL THEN
1198        x_complete_rec.import_list_header_id := l_imp_doc_rec.import_list_header_id;
1199     END IF;
1200 
1201     -- file_id
1202     IF p_imp_doc_rec.file_id IS NULL THEN
1203        x_complete_rec.file_id := l_imp_doc_rec.file_id;
1204     END IF;
1205 
1206     -- file_name
1207     IF p_imp_doc_rec.file_name IS NULL THEN
1208        x_complete_rec.file_name := l_imp_doc_rec.file_name;
1209     END IF;
1210 
1211     -- last_updated_by
1212     IF p_imp_doc_rec.last_updated_by IS NULL THEN
1213        x_complete_rec.last_updated_by := l_imp_doc_rec.last_updated_by;
1214     END IF;
1215     -- Note: Developers need to modify the procedure
1216     -- to handle any business specific requirements.
1217  END Complete_Imp_Doc_Rec;
1218 
1219 
1220 
1221 
1222  PROCEDURE Default_Item_Attribute ( p_imp_doc_rec IN imp_doccon_rec_type ,
1223                                  x_imp_doc_rec OUT NOCOPY imp_doccon_rec_type )
1224  IS
1225     l_imp_doc_rec imp_doccon_rec_type := p_imp_doc_rec;
1226  BEGIN
1227     -- Developers should put their code to default the record type
1228     -- e.g. IF p_campaign_rec.status_code IS NULL
1229     --      OR p_campaign_rec.status_code = FND_API.G_MISS_CHAR THEN
1230     --         l_campaign_rec.status_code := 'NEW' ;
1231     --      END IF ;
1232     --
1233     NULL ;
1234  END;
1235 
1236 
1237 
1238 
1239  PROCEDURE Validate_Imp_Doc(
1240      p_api_version_number         IN   NUMBER,
1241      p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1242      p_validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
1243      p_imp_doc_rec               IN   imp_doccon_rec_type,
1244      p_validation_mode            IN    VARCHAR2,
1245      x_return_status              OUT NOCOPY  VARCHAR2,
1246      x_msg_count                  OUT NOCOPY  NUMBER,
1247      x_msg_data                   OUT NOCOPY  VARCHAR2
1248      )
1249   IS
1250  L_API_NAME                  CONSTANT VARCHAR2(30) := 'Validate_Imp_Doc';
1251  L_API_VERSION_NUMBER        CONSTANT NUMBER   := 1.0;
1252  l_object_version_number     NUMBER;
1256        -- Standard Start of API savepoint
1253  l_imp_doc_rec  imp_doccon_rec_type;
1254 
1255   BEGIN
1257        SAVEPOINT validate_imp_doc_;
1258 
1259        -- Standard call to check for call compatibility.
1260        IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1261                                             p_api_version_number,
1262                                             l_api_name,
1263                                             G_PKG_NAME)
1264        THEN
1265            RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1266        END IF;
1267 
1268 
1269        -- Initialize message list if p_init_msg_list is set to TRUE.
1270        IF FND_API.to_Boolean( p_init_msg_list )
1271        THEN
1272           FND_MSG_PUB.initialize;
1273        END IF;
1274 
1275 
1276        IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1277                Check_imp_doc_Items(
1278                   p_imp_doc_rec        => p_imp_doc_rec,
1279                   p_validation_mode   => p_validation_mode,
1280                   x_return_status     => x_return_status
1281                );
1282 
1283                IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1284                    RAISE FND_API.G_EXC_ERROR;
1285                ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1286                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1287                END IF;
1288        END IF;
1289 
1290        IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1291           Default_Item_Attribute(p_imp_doc_rec => p_imp_doc_rec ,
1292                                  x_imp_doc_rec => l_imp_doc_rec) ;
1293        END IF ;
1294 
1295 
1296        Complete_imp_doc_Rec(
1297           p_imp_doc_rec        => p_imp_doc_rec,
1298           x_complete_rec        => l_imp_doc_rec
1299        );
1300 
1301        IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1302           Validate_imp_doc_Rec(
1303             p_api_version_number     => 1.0,
1304             p_init_msg_list          => FND_API.G_FALSE,
1305             x_return_status          => x_return_status,
1306             x_msg_count              => x_msg_count,
1307             x_msg_data               => x_msg_data,
1308             p_imp_doc_rec           =>    l_imp_doc_rec);
1309 
1310                IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1311                   RAISE FND_API.G_EXC_ERROR;
1312                ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1313                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1314                END IF;
1315        END IF;
1316 
1317 
1318        -- Debug Message
1319        IF (AMS_DEBUG_HIGH_ON) THEN
1320 
1321        AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1322        END IF;
1323 
1324 
1325 
1326        -- Initialize API return status to SUCCESS
1327        x_return_status := FND_API.G_RET_STS_SUCCESS;
1328 
1329 
1330        -- Debug Message
1331        IF (AMS_DEBUG_HIGH_ON) THEN
1332 
1333        AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1334        END IF;
1335 
1336 
1337        -- Standard call to get message count and if count is 1, get message info.
1338        FND_MSG_PUB.Count_And_Get
1339          (p_count          =>   x_msg_count,
1340           p_data           =>   x_msg_data
1341        );
1342  EXCEPTION
1343 
1344     WHEN AMS_Utility_PVT.resource_locked THEN
1345       x_return_status := FND_API.g_ret_sts_error;
1346           AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1347 
1348     WHEN FND_API.G_EXC_ERROR THEN
1349       ROLLBACK TO VALIDATE_Imp_Doc_;
1350       x_return_status := FND_API.G_RET_STS_ERROR;
1351       -- Standard call to get message count and if count=1, get the message
1352       FND_MSG_PUB.Count_And_Get (
1353              p_encoded => FND_API.G_FALSE,
1354              p_count   => x_msg_count,
1355              p_data    => x_msg_data
1356       );
1357 
1358     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1359       ROLLBACK TO VALIDATE_Imp_Doc_;
1360       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1361       -- Standard call to get message count and if count=1, get the message
1362       FND_MSG_PUB.Count_And_Get (
1363              p_encoded => FND_API.G_FALSE,
1364              p_count => x_msg_count,
1365              p_data  => x_msg_data
1366       );
1367 
1368     WHEN OTHERS THEN
1369       ROLLBACK TO VALIDATE_Imp_Doc_;
1370       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1371       IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1372       THEN
1373          FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1374       END IF;
1375       -- Standard call to get message count and if count=1, get the message
1376       FND_MSG_PUB.Count_And_Get (
1377              p_encoded => FND_API.G_FALSE,
1378              p_count => x_msg_count,
1379              p_data  => x_msg_data
1380       );
1381  End Validate_Imp_Doc;
1382 
1383 
1384  PROCEDURE Validate_Imp_Doc_Rec (
1385      p_api_version_number         IN   NUMBER,
1386      p_init_msg_list              IN   VARCHAR2     := FND_API.G_FALSE,
1387      x_return_status              OUT NOCOPY  VARCHAR2,
1388      x_msg_count                  OUT NOCOPY  NUMBER,
1389      x_msg_data                   OUT NOCOPY  VARCHAR2,
1390      p_imp_doc_rec               IN    imp_doccon_rec_type
1391      )
1392  IS
1393  BEGIN
1394        -- Initialize message list if p_init_msg_list is set to TRUE.
1395        IF FND_API.to_Boolean( p_init_msg_list )
1396        THEN
1397           FND_MSG_PUB.initialize;
1398        END IF;
1399 
1400 
1401 
1402        -- Initialize API return status to SUCCESS
1403        x_return_status := FND_API.G_RET_STS_SUCCESS;
1404 
1405        -- Hint: Validate data
1406        -- If data not valid
1407        -- THEN
1408        -- x_return_status := FND_API.G_RET_STS_ERROR;
1409 
1410        -- Debug Message
1411        IF (AMS_DEBUG_HIGH_ON) THEN
1412 
1413        AMS_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1414        END IF;
1415        -- Standard call to get message count and if count is 1, get message info.
1416        FND_MSG_PUB.Count_And_Get
1417          (p_count          =>   x_msg_count,
1418           p_data           =>   x_msg_data
1419        );
1420  END Validate_imp_doc_Rec;
1421 
1422 
1423 
1424 END AMS_Imp_Doc_Con_PVT;