DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_TERMS_VERSION_GRP

Source


1 PACKAGE BODY OKC_TERMS_VERSION_GRP AS
2 /* $Header: OKCGDVRB.pls 120.0 2005/05/26 09:52:14 appldev noship $ */
3 
4 
5   ---------------------------------------------------------------------------
6   -- GLOBAL CONSTANTS
7   ---------------------------------------------------------------------------
8   G_PKG_NAME                   CONSTANT   VARCHAR2(200) := 'OKC_TERMS_VERSION_GRP';
9   G_MODULE                     CONSTANT   VARCHAR2(200) := 'okc.plsql.'||G_PKG_NAME||'.';
10   ------------------------------------------------------------------------------
11   -- GLOBAL CONSTANTS
12   ------------------------------------------------------------------------------
13   G_FALSE                      CONSTANT   VARCHAR2(1) := FND_API.G_FALSE;
14   G_TRUE                       CONSTANT   VARCHAR2(1) := FND_API.G_TRUE;
15 
16   G_RET_STS_SUCCESS            CONSTANT   varchar2(1) := FND_API.G_RET_STS_SUCCESS;
17   G_RET_STS_ERROR              CONSTANT   varchar2(1) := FND_API.G_RET_STS_ERROR;
18   G_RET_STS_UNEXP_ERROR        CONSTANT   varchar2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
19 
20 --<<<<<<<<<<<<<<<<<<<<<<<<<<< EXTERNAL PROCEDURES <<<<<<<<<<<<<<<<<<<<<<<<<<<
21 /*
22 -- This API will be used to version terms whenever a document is versioned.
23 */
24   PROCEDURE Version_Doc (
25     p_api_version      IN  NUMBER,
26     p_init_msg_list    IN  VARCHAR2 DEFAULT FND_API.G_FALSE,
27     p_commit           IN  VARCHAR2 DEFAULT FND_API.G_FALSE,
28 
29     x_return_status    OUT NOCOPY VARCHAR2,
30     x_msg_data         OUT NOCOPY VARCHAR2,
31     x_msg_count        OUT NOCOPY NUMBER,
32 
33     p_doc_type         IN  VARCHAR2,
34     p_doc_id           IN  NUMBER,
35     p_version_number   IN  NUMBER,
36     p_clear_amendment  IN  VARCHAR2,
37     p_include_gen_attach IN VARCHAR2 DEFAULT 'Y'
38   ) IS
39     l_api_version       CONSTANT NUMBER := 1;
40     l_api_name          CONSTANT VARCHAR2(30) := 'Version_Doc';
41     l_contract_source   VARCHAR2(30);
42 
43    BEGIN
44     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
45        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'100: Entered Version_Doc');
46        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'110: p_init_msg_list='||p_init_msg_list);
47        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'120: p_commit='||p_commit);
48        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'130: p_doc_type='||p_doc_type);
49        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'140: p_doc_id='||p_doc_id);
50        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'150: p_version_number='||p_version_number);
51        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'160: p_clear_amendment='||p_clear_amendment);
52        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'170: p_include_gen_attach='||p_include_gen_attach);
53     END IF;
54     -- Standard Start of API savepoint
55     SAVEPOINT g_Version_Doc;
56     -- Standard call to check for call compatibility.
57     IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
58       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
59     END IF;
60     -- Initialize message list if p_init_msg_list is set to TRUE.
61     IF FND_API.to_Boolean( p_init_msg_list ) THEN
62       FND_MSG_PUB.initialize;
63     END IF;
64     --  Initialize API return status to success
65     x_return_status := G_RET_STS_SUCCESS;
66 
67 
68 -- Added for 10+ word integration
69     l_contract_source := OKC_TERMS_UTIL_GRP.Get_Contract_Source_Code(
70                             p_document_type    => p_doc_type,
71                             p_document_id      => p_doc_id
72                          );
73     IF l_contract_source = 'STRUCTURED' THEN
74 
75       --------------------------------------------
76       -- Call internal Version_Doc
77       --------------------------------------------
78       IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
79        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'200: Call Private Version_Doc ');
80       END IF;
81 
82       OKC_TERMS_VERSION_PVT.Version_Doc(
83         x_return_status    => x_return_status,
84 
85         p_doc_type         => p_doc_type,
86         p_doc_id           => p_doc_id,
87         p_version_number   => p_version_number
88       );
89       --------------------------------------------
90       IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
91         RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
92       ELSIF (x_return_status = G_RET_STS_ERROR) THEN
93         RAISE FND_API.G_EXC_ERROR ;
94       END IF;
95 
96     ELSIF l_contract_source = 'ATTACHED' THEN
97 
98 --Only need to version usages record in case of offline authoring
99       --------------------------------------------
100       -- Call Create_Version for template usages
101       --------------------------------------------
102       IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
103          FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'300: Call Create_Version for template usages');
104       END IF;
105 
106       x_return_status := OKC_TEMPLATE_USAGES_PVT.Create_Version(
107         p_doc_type         => p_doc_type,
108         p_doc_id           => p_doc_id,
109         p_major_version    => p_version_number
110       );
111       --------------------------------------------
112       IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
113         RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
114       ELSIF (x_return_status = G_RET_STS_ERROR) THEN
115         RAISE FND_API.G_EXC_ERROR ;
116       END IF;
117 
118     END IF;
119 
120     --------------------------------------------
121     -- Call private version_deliverables
122     --------------------------------------------
123     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
124      FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'200: Call Private Version_Doc ');
125     END IF;
126     OKC_DELIVERABLE_PROCESS_PVT.Version_Deliverables (
127       p_api_version      => p_api_version,
128       p_init_msg_list    => p_init_msg_list,
129       x_return_status    => x_return_status,
130       x_msg_data         => x_msg_data,
131       x_msg_count        => x_msg_count,
132 
133       p_doc_type         => p_doc_type,
134       p_doc_id           => p_doc_id,
135       p_doc_version      => p_version_number
136     );
137     --------------------------------------------
138     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
139       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
140     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
141       RAISE FND_API.G_EXC_ERROR ;
142     END IF;
143     --------------------------------------------
144     --------------------------------------------
145     -- Call private version_attachements
146     --------------------------------------------
147     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
148      FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'200: Call Private version_Attachments ');
149     END IF;
150     OKC_CONTRACT_DOCS_GRP.version_Attachments (
151       p_api_version      => p_api_version,
152       p_init_msg_list    => p_init_msg_list,
153       p_validation_level => FND_API.G_VALID_LEVEL_FULL,
154       p_commit           => FND_API.G_FALSE,
155       x_return_status    => x_return_status,
156       x_msg_data         => x_msg_data,
157       x_msg_count        => x_msg_count,
158 
159       p_business_document_type   => p_doc_type,
160       p_business_document_id     => p_doc_id,
161       p_business_document_version=> p_version_number,
162       p_include_gen_attach => p_include_gen_attach
163     );
164     --------------------------------------------
165     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
166       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
167     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
168       RAISE FND_API.G_EXC_ERROR ;
169     END IF;
170 
171 
172    IF p_clear_amendment='Y' THEN
173     clear_amendment (
174                p_api_version =>1,
175                p_commit      => FND_API.G_FALSE,
176                x_return_status    => x_return_status,
177                x_msg_data         => x_msg_data,
178                x_msg_count        => x_msg_count,
179                p_doc_type         => p_doc_type,
180                p_doc_id           => p_doc_id
181                      );
182         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
183             RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
184         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
185             RAISE FND_API.G_EXC_ERROR ;
186         END IF;
187    END IF;
188 
189     -- commit changes if asked
190     IF FND_API.to_Boolean( p_commit ) THEN
191       COMMIT;
192     END IF;
193     -- Standard call to get message count and if count is 1, get message info.
194     FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
195     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
196      FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'300: Leaving Version_Doc');
197     END IF;
198 
199    EXCEPTION
200     WHEN FND_API.G_EXC_ERROR THEN
201       ROLLBACK TO g_Version_Doc;
202       IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
203          FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, G_MODULE||l_api_name,'400: Leaving Version_Doc : OKC_API.G_EXCEPTION_ERROR Exception');
204       END IF;
205       x_return_status := G_RET_STS_ERROR ;
206       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
207 
208     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
209       ROLLBACK TO g_Version_Doc;
210       IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
211          FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, G_MODULE||l_api_name,'500: Leaving Version_Doc : OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
212       END IF;
213       x_return_status := G_RET_STS_UNEXP_ERROR ;
214       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
215 
216     WHEN OTHERS THEN
217       ROLLBACK TO g_Version_Doc;
218       IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
219         FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, G_MODULE||l_api_name,'600: Leaving Version_Doc because of EXCEPTION: '||sqlerrm);
220       END IF;
221 
222       x_return_status := G_RET_STS_UNEXP_ERROR ;
223       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
224         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
225       END IF;
226       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
227   END Version_Doc ;
228 
229 /*
230 --This API will be used to restore a version terms whenever a version of
231 -- document is restored.It is a very OKS/OKC/OKO specific functionality
232 */
233   PROCEDURE Restore_Doc_Version (
234     p_api_version      IN  NUMBER,
235     p_init_msg_list    IN  VARCHAR2 DEFAULT FND_API.G_FALSE,
236     p_commit           IN  VARCHAR2 DEFAULT FND_API.G_FALSE,
237 
238     x_return_status    OUT NOCOPY VARCHAR2,
239     x_msg_data         OUT NOCOPY VARCHAR2,
240     x_msg_count        OUT NOCOPY NUMBER,
241 
242     p_doc_type         IN  VARCHAR2,
243     p_doc_id           IN  NUMBER,
244     p_version_number   IN  NUMBER
245   ) IS
246     l_api_version       CONSTANT NUMBER := 1;
247     l_api_name          CONSTANT VARCHAR2(30) := 'Restore_Doc_Version';
248    BEGIN
249     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
250        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'100: Entered Restore_Doc_Version');
251     END IF;
252     -- Standard Start of API savepoint
253     SAVEPOINT g_Restore_Doc_Version;
254     -- Standard call to check for call compatibility.
255     IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
256       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
257     END IF;
258     -- Initialize message list if p_init_msg_list is set to TRUE.
259     IF FND_API.to_Boolean( p_init_msg_list ) THEN
260       FND_MSG_PUB.initialize;
261     END IF;
262     --  Initialize API return status to success
263     x_return_status := G_RET_STS_SUCCESS;
264 
265     --------------------------------------------
266     -- Delete current document terms
267     --------------------------------------------
268     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
269        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'100: Delete current document terms');
270     END IF;
271     OKC_TERMS_UTIL_PVT.Delete_Doc(
272       x_return_status    => x_return_status,
273 
274       p_doc_type         => p_doc_type,
275       p_doc_id           => p_doc_id
276     );
277     --------------------------------------------
278     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
279       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
280     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
281       RAISE FND_API.G_EXC_ERROR ;
282     END IF;
283     --------------------------------------------
284 
285     --------------------------------------------
286     -- Call internal Restore_Doc_Version
287     --------------------------------------------
288     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
289      FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'200: Call Private Restore_Doc_Version ');
290     END IF;
291 
292     OKC_TERMS_VERSION_PVT.Restore_Doc_Version(
293       x_return_status    => x_return_status,
294 
295       p_doc_type         => p_doc_type,
296       p_doc_id           => p_doc_id,
297       p_version_number   => p_version_number
298     );
299     --------------------------------------------
300     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
301       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
302     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
303       RAISE FND_API.G_EXC_ERROR ;
304     END IF;
305     --------------------------------------------
306 
307     -- commit changes if asked
308     IF FND_API.to_Boolean( p_commit ) THEN
309       COMMIT;
310     END IF;
311     -- Standard call to get message count and if count is 1, get message info.
312     FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
313     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
314      FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'300: Leaving Restore_Doc_Version');
315     END IF;
316    EXCEPTION
317     WHEN FND_API.G_EXC_ERROR THEN
318       ROLLBACK TO g_Restore_Doc_Version;
319       IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
320          FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, G_MODULE||l_api_name,'400: Leaving Restore_Doc_Version : OKC_API.G_EXCEPTION_ERROR Exception');
321       END IF;
322       x_return_status := G_RET_STS_ERROR ;
323       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
324 
325     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
326       ROLLBACK TO g_Restore_Doc_Version;
327       IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
328          FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, G_MODULE||l_api_name,'500: Leaving Restore_Doc_Version : OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
329       END IF;
330       x_return_status := G_RET_STS_UNEXP_ERROR ;
331       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
332 
333     WHEN OTHERS THEN
334       ROLLBACK TO g_Restore_Doc_Version;
335       IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
336         FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, G_MODULE||l_api_name,'600: Leaving Restore_Doc_Version because of EXCEPTION: '||sqlerrm);
337       END IF;
338 
339       x_return_status := G_RET_STS_UNEXP_ERROR ;
340       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
341         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
342       END IF;
343       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
344   END Restore_Doc_Version ;
345 
346 /*
347 --This API will be used to delete terms whenever a version of document is deleted.
348 */
349   Procedure Delete_Doc_Version (
350     p_api_version      IN  NUMBER,
351     p_init_msg_list    IN  VARCHAR2 DEFAULT FND_API.G_FALSE,
352     p_commit           IN  VARCHAR2 DEFAULT FND_API.G_FALSE,
353 
354     x_return_status    OUT NOCOPY VARCHAR2,
355     x_msg_data         OUT NOCOPY VARCHAR2,
356     x_msg_count        OUT NOCOPY NUMBER,
357 
358     p_doc_type         IN  VARCHAR2,
359     p_doc_id           IN  NUMBER,
360     p_version_number   IN  NUMBER
361   ) IS
362     l_api_version       CONSTANT NUMBER := 1;
363     l_api_name          CONSTANT VARCHAR2(30) := 'Delete_Doc_Version';
364    BEGIN
365     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
366        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'100: Entered Delete_Doc_Version');
367     END IF;
368     -- Standard Start of API savepoint
369     SAVEPOINT g_Delete_Doc_Version;
370     -- Standard call to check for call compatibility.
371     IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
372       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
373     END IF;
374     -- Initialize message list if p_init_msg_list is set to TRUE.
375     IF FND_API.to_Boolean( p_init_msg_list ) THEN
376       FND_MSG_PUB.initialize;
377     END IF;
378     --  Initialize API return status to success
379     x_return_status := G_RET_STS_SUCCESS;
380 
381     --------------------------------------------
382     -- Call internal Delete_Doc_Version
383     --------------------------------------------
384     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
385      FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'200: Call Private Delete_Doc_Version ');
386     END IF;
387 
388     OKC_TERMS_VERSION_PVT.Delete_Doc_Version(
389       x_return_status    => x_return_status,
390 
391       p_doc_type         => p_doc_type,
392       p_doc_id           => p_doc_id,
393       p_version_number   => p_version_number
394     );
395     --------------------------------------------
396     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
397       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
398     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
399       RAISE FND_API.G_EXC_ERROR ;
400     END IF;
401     --------------------------------------------
402     --  Call Deliverable API to delete delevirable from the document.
403     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
404      FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'3900: Delete delevirable for the doc version');
405     END IF;
406     OKC_DELIVERABLE_PROCESS_PVT.Delete_Deliverables(
407       p_api_version    => l_api_version,
408       p_init_msg_list  => FND_API.G_FALSE,
409       p_doc_type       => p_doc_type,
410       p_doc_id         => p_doc_id,
411       p_doc_version    => p_version_number,
412       x_msg_data       => x_msg_data,
413       x_msg_count      => x_msg_count,
414       x_return_status  => x_return_status
415     );
416     --------------------------------------------
417     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
418       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
419     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
420       RAISE FND_API.G_EXC_ERROR ;
421     END IF;
422     --------------------------------------------
423     --------------------------------------------
424     -- Call private Delete_All_Version_Attach
425     --------------------------------------------
426     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
427      FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'200: Call Private version_Attachments ');
428     END IF;
429     OKC_CONTRACT_DOCS_GRP.Delete_Ver_Attachments(
430       p_api_version      => p_api_version,
431       p_init_msg_list    => p_init_msg_list,
432       p_validation_level => FND_API.G_VALID_LEVEL_FULL,
433       p_commit           => FND_API.G_FALSE,
434       x_return_status    => x_return_status,
435       x_msg_data         => x_msg_data,
436       x_msg_count        => x_msg_count,
437 
438       p_business_document_type   => p_doc_type,
439       p_business_document_id     => p_doc_id,
440       p_business_document_version=> p_version_number
441     );
442     --------------------------------------------
443     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
444       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
445     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
446       RAISE FND_API.G_EXC_ERROR ;
447     END IF;
448 
449     -- commit changes if asked
450     IF FND_API.to_Boolean( p_commit ) THEN
451       COMMIT;
452     END IF;
453     -- Standard call to get message count and if count is 1, get message info.
454     FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
455     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
456      FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'300: Leaving Delete_Doc_Version');
457     END IF;
458    EXCEPTION
459     WHEN FND_API.G_EXC_ERROR THEN
460       ROLLBACK TO g_Delete_Doc_Version;
461       IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
462          FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, G_MODULE||l_api_name,'400: Leaving Delete_Doc_Version : OKC_API.G_EXCEPTION_ERROR Exception');
463       END IF;
464       x_return_status := G_RET_STS_ERROR ;
465       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
466 
467     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
468       ROLLBACK TO g_Delete_Doc_Version;
469       IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
470          FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, G_MODULE||l_api_name,'500: Leaving Delete_Doc_Version : OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
471       END IF;
472       x_return_status := G_RET_STS_UNEXP_ERROR ;
473       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
474 
475     WHEN OTHERS THEN
476       ROLLBACK TO g_Delete_Doc_Version;
477       IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
478         FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, G_MODULE||l_api_name,'600: Leaving Delete_Doc_Version because of EXCEPTION: '||sqlerrm);
479       END IF;
480 
481       x_return_status := G_RET_STS_UNEXP_ERROR ;
482       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
483         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
484       END IF;
485       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
486   END Delete_Doc_Version ;
487 /* This API will be used to clear amendment related columns */
488 
489   Procedure clear_amendment (
490     p_api_version      IN  NUMBER,
491     p_init_msg_list    IN  VARCHAR2 DEFAULT FND_API.G_FALSE,
492     p_commit           IN  VARCHAR2 DEFAULT FND_API.G_FALSE,
493 
494     x_return_status    OUT NOCOPY VARCHAR2,
495     x_msg_data         OUT NOCOPY VARCHAR2,
496     x_msg_count        OUT NOCOPY NUMBER,
497 
498     p_doc_type         IN  VARCHAR2,
499     p_doc_id           IN  NUMBER,
500     p_keep_summary     IN  VARCHAR2
501   ) IS
502     l_api_version       CONSTANT NUMBER := 1;
503     l_api_name          CONSTANT VARCHAR2(30) := 'clear_amendment';
504    BEGIN
505     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
506        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'100: Entered clear_amendment');
507        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'110: p_init_msg_list='||p_init_msg_list);
508        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'120: p_commit='||p_commit);
509        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'130: p_doc_type='||p_doc_type);
510        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'140: p_doc_id='||p_doc_id);
511        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'150: p_keep_summary='||p_keep_summary);
512     END IF;
513     -- Standard Start of API savepoint
514     SAVEPOINT g_clear_amendment;
515     -- Standard call to check for call compatibility.
516     IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
517       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
518     END IF;
519     -- Initialize message list if p_init_msg_list is set to TRUE.
520     IF FND_API.to_Boolean( p_init_msg_list ) THEN
521       FND_MSG_PUB.initialize;
522     END IF;
523     --  Initialize API return status to success
524     x_return_status := G_RET_STS_SUCCESS;
525     --------------------------------------------
526     -- Call internal clear_amendment
527     --------------------------------------------
528     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
529      FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'200: Call Private clear_amendment ');
530     END IF;
531 
532     OKC_TERMS_VERSION_PVT.clear_amendment(
533       x_return_status    => x_return_status,
534       p_doc_type         => p_doc_type,
535       p_doc_id           => p_doc_id,
536       p_keep_summary     => p_keep_summary
537     );
538 
539     --------------------------------------------
540     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
541       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
542     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
543       RAISE FND_API.G_EXC_ERROR ;
544     END IF;
545     --------------------------------------------
546 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
547      FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'300: calling deliverables clear_amendment_operation');
548 END IF;
549 
550 OKC_DELIVERABLE_PROCESS_PVT.clear_amendment_operation (
551         p_api_version   => 1,
552         p_init_msg_list => FND_API.G_FALSE,
553         p_doc_id        => p_doc_id,
554         p_doc_type      => p_doc_type,
555         p_keep_summary  => p_keep_summary,
556         x_msg_data      => x_msg_data,
557         x_msg_count     => x_msg_count,
558         x_return_status => x_return_status);
559 
560  --------------------------------------------
561  IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
562        RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
563  ELSIF (x_return_status = G_RET_STS_ERROR) THEN
564        RAISE FND_API.G_EXC_ERROR ;
565  END IF;
566  --------------------------------------------
567 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
568      FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'300: leaving deliverables clear_amendment_operation');
569 END IF;
570 
571     -- commit changes if asked
572     IF FND_API.to_Boolean( p_commit ) THEN
573       COMMIT;
574     END IF;
575     -- Standard call to get message count and if count is 1, get message info.
576     FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
577     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
578      FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'300: Leaving clear_amendment');
579     END IF;
580 
581 
582 EXCEPTION
583  WHEN FND_API.G_EXC_ERROR THEN
584       ROLLBACK TO g_clear_amendment;
585       IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
586          FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, G_MODULE||l_api_name,'400: Leaving clear_amendment : OKC_API.G_EXCEPTION_ERROR Exception');
587       END IF;
588       x_return_status := G_RET_STS_ERROR ;
589       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
590 
591  WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
592       ROLLBACK TO g_clear_amendment;
593       IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
594          FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, G_MODULE||l_api_name,'500: Leaving clear_amendment : OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
595       END IF;
596       x_return_status := G_RET_STS_UNEXP_ERROR ;
597       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
598 
599  WHEN OTHERS THEN
600       ROLLBACK TO g_clear_amendment;
601       IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
602         FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, G_MODULE||l_api_name,'600: Leaving clear_amendment because of EXCEPTION: '||sqlerrm);
603       END IF;
604 
605       x_return_status := G_RET_STS_UNEXP_ERROR ;
606       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
607         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
608       END IF;
609       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
610 END clear_amendment;
611 
612 -->>>>>>>>>>>>>>>>>>>>>>>>>>> EXTERNAL PROCEDURES >>>>>>>>>>>>>>>>>>>>>>>>>>>
613 
614 END OKC_TERMS_VERSION_GRP;