DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_IMP_DOC_PVT

Source


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