[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;