[Home] [Help]
PACKAGE BODY: APPS.OKC_TERMS_COPY_GRP
Source
1 PACKAGE BODY OKC_TERMS_COPY_GRP AS
2 /* $Header: OKCGDCPB.pls 120.6 2006/05/26 22:49:24 sasethi noship $ */
3
4 ---------------------------------------------------------------------------
5 -- GLOBAL MESSAGE CONSTANTS
6 ---------------------------------------------------------------------------
7 G_FND_APP CONSTANT VARCHAR2(200) := OKC_API.G_FND_APP;
8 ---------------------------------------------------------------------------
9 -- GLOBAL VARIABLES
10 ---------------------------------------------------------------------------
11 G_PKG_NAME CONSTANT VARCHAR2(200) := 'OKC_TERMS_COPY_GRP';
12 G_APP_NAME CONSTANT VARCHAR2(3) := OKC_API.G_APP_NAME;
13
14 ------------------------------------------------------------------------------
15 -- GLOBAL CONSTANTS
16 ------------------------------------------------------------------------------
17 g_module CONSTANT VARCHAR2(250) := 'okc.plsql.'||g_pkg_name||'.';
18 G_FALSE CONSTANT VARCHAR2(1) := FND_API.G_FALSE;
19 G_TRUE CONSTANT VARCHAR2(1) := FND_API.G_TRUE;
20
21 G_RET_STS_SUCCESS CONSTANT VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
22 G_RET_STS_ERROR CONSTANT VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
23 G_RET_STS_UNEXP_ERROR CONSTANT VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
24
25 G_UNEXPECTED_ERROR CONSTANT VARCHAR2(200) := 'OKC_UNEXPECTED_ERROR';
26 G_SQLERRM_TOKEN CONSTANT VARCHAR2(200) := 'ERROR_MESSAGE';
27 G_SQLCODE_TOKEN CONSTANT VARCHAR2(200) := 'ERROR_CODE';
28 G_UNABLE_TO_RESERVE_REC CONSTANT VARCHAR2(200) := OKC_API.G_UNABLE_TO_RESERVE_REC;
29 G_TEMPLATE_MISS_REC OKC_TERMS_TEMPLATES_PVT.template_rec_type;
30
31 /*
32 --To be used when copying/transitioning a document
33
34 --p_keep_version should be passed as 'Y' in case of document transition.
35 --p_keep_version should be passed as 'N' in case of document copy where target
36 --document is expected to have same version of article as source document .
37 --p_copy_for_amendment should be passed as 'Y' when making amendment in
38 --sourcing.All other systems should pass it as 'N'.
39 --p_copy_deliverable should be passed as 'Y' when deliverable also needs to be
40 --copied.
41 --p_copy_abstract_yn should be 'Y' if there is a need to carry forward the approval_abstract_text onto the new document. Default:N.
42 */
43
44 Procedure copy_doc (
45 p_api_version IN Number,
46 p_init_msg_list IN Varchar2 ,
47 p_commit IN Varchar2 ,
48 p_source_doc_type IN Varchar2,
49 p_source_doc_id IN Number,
50 p_target_doc_type IN OUT NOCOPY Varchar2,
51 p_target_doc_id IN OUT NOCOPY Number,
52 p_keep_version IN Varchar2 ,
53 p_article_effective_date IN Date ,
54 p_initialize_status_yn IN Varchar2 ,
55 p_reset_fixed_date_yn IN Varchar2 ,
56 p_internal_party_id IN Number ,
57 p_internal_contact_id IN Number ,
58 p_target_contractual_doctype IN Varchar2 ,
59 p_copy_del_attachments_yn IN Varchar2 ,
60 p_external_party_id IN Number ,
61 p_external_contact_id IN Number ,
62 p_copy_deliverables IN Varchar2 ,
63 p_document_number IN Varchar2 ,
64 p_copy_for_amendment IN Varchar2 ,
65 p_copy_doc_attachments IN Varchar2 ,
66 p_allow_duplicate_terms IN Varchar2,
67 p_copy_attachments_by_ref IN Varchar2,
68 x_return_status OUT NOCOPY VARCHAR2,
69 x_msg_data OUT NOCOPY VARCHAR2,
70 x_msg_count OUT NOCOPY Number,
71 p_external_party_site_id IN Number,
72 p_copy_abstract_yn IN Varchar2,
73 p_contract_admin_id IN NUMBER := NULL,
74 p_legal_contact_id IN NUMBER := NULL
75 )
76 IS
77 l_api_version CONSTANT NUMBER := 1;
78 l_api_name CONSTANT VARCHAR2(30) := 'copy_doc';
79 l_contract_source VARCHAR2(30);
80 l_copy_primary_doc_flag VARCHAR2(1) := 'N' ;
81
82 CURSOR target_response_cur IS
83 SELECT TARGET_RESPONSE_DOC_TYPE
84 FROM okc_bus_doc_types_b
85 WHERE document_type = p_target_doc_type
86 AND document_type_class = 'SOURCING';
87 l_target_response_doctype okc_bus_doc_types_b.TARGET_RESPONSE_DOC_TYPE%TYPE;
88 --11.5.10+ derive deliverables_enabled_yn flag from okc_bus_doc_types_b
89 -- do not use the p_copy_deliverables param bug#3984339
90 CURSOR DEL_COPY_CUR IS
91 SELECT enable_deliverables_yn
92 FROM okc_bus_doc_types_b
93 where document_type = p_target_doc_type;
94
95 l_deliverables_enabled VARCHAR2(1);
96 l_copy_deliverables VARCHAR2(1);
97
98
99 BEGIN
100
101
102
103 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
104 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Entered OKC_TERMS_COPY_GRP.copy_doc');
105 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Parameter List ');
106 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_api_version : '||p_api_version);
107 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_init_msg_list : '||p_init_msg_list);
108 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_commit : '||p_commit);
109 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_type : '||p_source_doc_type);
110 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_id : '||p_source_doc_id);
111 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_type : '||p_target_doc_type);
112 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_id : '||p_target_doc_id);
113 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_keep_version : '||p_keep_version);
114 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_article_effective_date : '||p_article_effective_date);
115 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_initialize_status_yn : '||p_initialize_status_yn);
116 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_reset_fixed_date_yn : '||p_reset_fixed_date_yn);
117 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_internal_party_id : '||p_internal_party_id);
118 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_internal_contact_id : '||p_internal_contact_id);
119 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_contractual_doctype : '||p_target_contractual_doctype);
120 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_del_attachments_yn : '||p_copy_del_attachments_yn);
121 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_external_party_id : '||p_external_party_id);
122 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_external_party_site_id : '||p_external_party_site_id);
123 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_external_contact_id : '||p_external_contact_id);
124 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_deliverables : '||p_copy_deliverables);
125 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_document_number : '||p_document_number);
126 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_for_amendment : '||p_copy_for_amendment);
127 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_doc_attachments : '||p_copy_doc_attachments);
128 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_allow_duplicate_terms : '||p_allow_duplicate_terms);
129 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_attachments_by_ref : '||p_copy_attachments_by_ref);
130 END IF;
131
132
133 -- Standard Start of API savepoint
134 SAVEPOINT g_copy_doc_GRP;
135
136 -- Standard call to check for call compatibility.
137 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
138 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
139 END IF;
140
141 -- Initialize message list if p_init_msg_list is set to TRUE.
142 IF FND_API.to_Boolean( p_init_msg_list ) THEN
143 FND_MSG_PUB.initialize;
144 END IF;
145
146 -- Initialize API return status to success
147 x_return_status := FND_API.G_RET_STS_SUCCESS;
148
149
150 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
151 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: calling OKC_TERMS_COPY_PVT.copy_tc');
152 END IF;
153
154 OKC_TERMS_COPY_PVT.copy_tc(
155 p_api_version => 1,
156 p_init_msg_list => FND_API.G_FALSE,
157 p_commit => FND_API.G_FALSE,
158 p_source_doc_type => p_source_doc_type,
159 p_source_doc_id => p_source_doc_id ,
160 p_target_doc_type => p_target_doc_type,
161 p_target_doc_id => p_target_doc_id,
162 p_keep_version => p_keep_version,
163 p_article_effective_date => p_article_effective_date,
164 p_target_template_rec => G_TEMPLATE_MISS_REC,
165 p_document_number => p_document_number,
166 p_allow_duplicates => p_allow_duplicate_terms,
167 x_return_status => x_return_status,
168 x_msg_data => x_msg_data,
169 x_msg_count => x_msg_count,
170 p_copy_abstract_yn => p_copy_abstract_yn,
171 p_copy_for_amendment => p_copy_for_amendment,
172 p_contract_admin_id => p_contract_admin_id,
173 p_legal_contact_id => p_legal_contact_id);
174 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
175 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: Finished OKC_TERMS_COPY_PVT.copy_tc, return status'||x_return_status);
176 END IF;
177
178 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
179 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
180 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
181 RAISE FND_API.G_EXC_ERROR ;
182 END IF;
183 -----------------------------------------------------
184
185 /* get the deliverables_enabled_yn flag before calling copy_deliverables bug#3984339 */
186
187
188 OPEN del_copy_cur;
189 FETCH del_copy_cur INTO l_deliverables_enabled;
190 IF del_copy_cur%NOTFOUND THEN
191 l_deliverables_enabled := null;
192 END IF;
193 CLOSE del_copy_cur;
194
195 If (l_deliverables_enabled = 'N') then
196 l_copy_deliverables := l_deliverables_enabled;
197 Elsif (l_deliverables_enabled = 'Y') then
198 l_copy_deliverables := p_copy_deliverables;
199 End If;
200
201 IF (l_copy_deliverables ='Y' AND p_copy_for_amendment='N') THEN
202
203 /* Call Deliverable API to copy Deliverables */
204 -- get the target response doctype if the target is a
205 -- Sourcing document (RFQ,RFI,AUCTION)Bug#3270742
206 OPEN target_response_cur;
207 FETCH target_response_cur INTO l_target_response_doctype;
208 IF target_response_cur%NOTFOUND THEN
209 l_target_response_doctype := null;
210 END IF;
211 CLOSE target_response_cur;
212
213
214 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
215 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:Entering OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables. ');
216 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:source busdoc id: '||to_char(p_source_doc_id));
217 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:target busdoc id: '||to_char(p_target_doc_id));
218 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:target busdoc type: '||p_target_doc_type);
219 END IF;
220
221
222 OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables (
223 p_api_version => 1,
224 p_init_msg_list => FND_API.G_FALSE,
225 p_source_doc_id => p_source_doc_id,
226 p_source_doc_type => p_source_doc_type,
227 p_target_doc_id => p_target_doc_id,
228 p_target_doc_type => p_target_doc_type,
229 p_initialize_status_yn => p_initialize_status_yn,
230 p_reset_fixed_date_yn => p_reset_fixed_date_yn,
231 p_target_contractual_doctype => p_target_contractual_doctype,
232 p_target_response_doctype => l_target_response_doctype,
233 p_target_doc_number => p_document_number,
234 p_copy_del_attachments_yn => p_copy_del_attachments_yn,
235 p_internal_party_id => p_internal_party_id,
236 p_internal_contact_id => p_internal_contact_id,
237 p_external_party_id => p_external_party_id,
238 p_external_party_site_id => p_external_party_site_id,
239 p_external_contact_id => p_external_contact_id,
240 x_msg_data => x_msg_data,
241 x_msg_count => x_msg_count,
242 x_return_status => x_return_status );
243
244 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
245 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:Finished OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables ');
246 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100: OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables x_return_status : '||x_return_status);
247 END IF;
248
249 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
250 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
251 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
252 RAISE FND_API.G_EXC_ERROR ;
253 END IF;
254
255 END IF;
256 -------------------------------------------------------
257
258 IF (l_copy_deliverables ='Y' AND p_copy_for_amendment='Y') THEN
259
260 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
261 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:Entering OKC_DELIVERABLE_PROCESS_PVT.copy_del_for_amendment.');
262 END IF;
263
264
265 OKC_DELIVERABLE_PROCESS_PVT.copy_del_for_amendment (
266 p_api_version => 1,
267 p_init_msg_list => FND_API.G_FALSE,
268 p_source_doc_id => p_source_doc_id,
269 p_source_doc_type => p_source_doc_type,
270 p_target_doc_id => p_target_doc_id,
271 p_target_doc_type => p_target_doc_type,
272 p_reset_fixed_date_yn => p_reset_fixed_date_yn,
273 p_target_doc_number => p_document_number,
274 x_msg_data => x_msg_data,
275 x_msg_count => x_msg_count,
276 x_return_status => x_return_status,
277 p_copy_del_attachments_yn => p_copy_del_attachments_yn,
278 p_target_contractual_doctype => p_target_contractual_doctype);
279
280 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
281 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:Finished OKC_DELIVERABLE_PROCESS_PVT.copy_del_for_amendment. ');
282 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:OKC_DELIVERABLE_PROCESS_PVT.copy_del_for_amendment x_return_status : '||x_return_status);
283 END IF;
284
285 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
286 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
287 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
288 RAISE FND_API.G_EXC_ERROR ;
289 END IF;
290
291 END IF;
292
293 --Added l_copy_primary_doc_flag for 10+ word integration
294 ---------------------------------------------------------
295 l_contract_source := OKC_TERMS_UTIL_GRP.Get_Contract_Source_code(
296 p_document_type => p_source_doc_type,
297 p_document_id => p_source_doc_id
298 );
299 IF (l_contract_source = 'E') THEN
300 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
301 END IF;
302
303 ---------------------------------------------------------
304
305 IF (p_copy_doc_attachments ='N' AND l_contract_source = 'ATTACHED') THEN
306 /* Copy only primary contract doc, p_copy_primary_doc_flag is set to 'Y'*/
307 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
308 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1150:Entering OKC_CONTRACT_DOCS_GRP.Copy_Attachments ');
309 END IF;
310
311 OKC_CONTRACT_DOCS_GRP.Copy_Attachments (
312 p_api_version =>1,
313 p_init_msg_list =>FND_API.G_FALSE,
314 x_msg_data => x_msg_data,
315 x_msg_count => x_msg_count,
316 x_return_status => x_return_status,
317 p_from_bus_doc_type => p_source_doc_type ,
318 p_from_bus_doc_id => p_source_doc_id,
319 p_from_bus_doc_version => -99,
320 p_to_bus_doc_type => p_target_doc_type,
321 p_to_bus_doc_id => p_target_doc_id,
322 p_to_bus_doc_version => -99,
323 p_copy_by_ref => p_copy_attachments_by_ref,
324 p_copy_primary_doc_flag => 'Y') ;
325
326 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
327 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1151:Finished OKC_CONTRACT_DOCS_GRP.Copy_Attachments ');
328 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1151:OKC_CONTRACT_DOCS_GRP.Copy_Attachments x_return_status : '||x_return_status);
329 END IF;
330
331 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
332 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
333 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
334 RAISE FND_API.G_EXC_ERROR ;
335 END IF;
336 ELSIF (p_copy_doc_attachments ='Y' ) THEN
337 /* Copy all attachments*/
338 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
339 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1156:Entering OKC_CONTRACT_DOCS_GRP.Copy_Attachments ');
340 END IF;
341
342 OKC_CONTRACT_DOCS_GRP.Copy_Attachments (
343 p_api_version =>1,
344 p_init_msg_list =>FND_API.G_FALSE,
345 x_msg_data => x_msg_data,
346 x_msg_count => x_msg_count,
347 x_return_status => x_return_status,
348 p_from_bus_doc_type => p_source_doc_type ,
349 p_from_bus_doc_id => p_source_doc_id,
350 p_from_bus_doc_version => -99,
351 p_to_bus_doc_type => p_target_doc_type,
352 p_to_bus_doc_id => p_target_doc_id,
353 p_to_bus_doc_version => -99,
354 p_copy_by_ref => p_copy_attachments_by_ref,
355 p_copy_primary_doc_flag => 'N',
356 p_copy_for_amendment => p_copy_for_amendment) ;
357
358 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
359 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1157:Finished OKC_CONTRACT_DOCS_GRP.Copy_Attachments ');
360 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1158:OKC_CONTRACT_DOCS_GRP.Copy_Attachments x_return_status : '||x_return_status);
361 END IF;
362
363 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
364 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
365 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
366 RAISE FND_API.G_EXC_ERROR ;
367 END IF;
368 END IF;
369
370 -------------------------------------------------------------
371
372 IF FND_API.To_Boolean( p_commit ) THEN
373 COMMIT WORK;
374 END IF;
375
376 -- Standard call to get message count and if count is 1, get message info.
377 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
378
379 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
380 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000: Leaving copy_doc');
381 END IF;
382
383 EXCEPTION
384
385 WHEN FND_API.G_EXC_ERROR THEN
386
387 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
388 FND_LOG.STRING( FND_LOG.LEVEL_ERROR ,g_module||l_api_name,'800: Leaving copy_doc: OKC_API.G_EXCEPTION_ERROR Exception');
389 END IF;
390
391 ROLLBACK TO g_copy_doc_grp;
392 x_return_status := G_RET_STS_ERROR ;
393 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
394
395 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
396 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
397 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'900: Leaving copy_doc: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
398 END IF;
399
400 ROLLBACK TO g_copy_doc_grp;
401 x_return_status := G_RET_STS_UNEXP_ERROR ;
402 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
403
404 WHEN OTHERS THEN
405 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
406 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'1000: Leaving copy_doc because of EXCEPTION: '||sqlerrm);
407 END IF;
408
409 ROLLBACK TO g_copy_doc_grp;
410 x_return_status := G_RET_STS_UNEXP_ERROR ;
411 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
412 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
413 END IF;
414 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
415 END copy_doc;
416
417 /*
418 --To be used when copying a terms template to make a new template or to make a
419 -- woring copy.
420
421 */
422
423 Procedure copy_terms_template (
424 p_api_version IN Number,
425 p_init_msg_list IN Varchar2,
426 p_commit IN Varchar2,
427 p_template_id IN Number,
428 p_tmpl_name IN Varchar2,
429 p_intent IN Varchar2,
430 p_start_date IN Date,
431 p_end_date IN Date,
432 p_instruction_text IN Varchar2,
433 p_description IN Varchar2,
434 p_print_Template_Id IN Number,
435 p_global_flag IN Varchar2,
436 p_contract_expert_enabled IN Varchar2,
437 p_xprt_clause_mandatory_flag IN VARCHAR2 := NULL,
438 p_xprt_scn_code IN VARCHAR2 := NULL,
439 p_attribute_category IN Varchar2,
440 p_attribute1 IN Varchar2,
441 p_attribute2 IN Varchar2,
442 p_attribute3 IN Varchar2,
443 p_attribute4 IN Varchar2,
444 p_attribute5 IN Varchar2,
445 p_attribute6 IN Varchar2,
446 p_attribute7 IN Varchar2,
447 p_attribute8 IN Varchar2,
448 p_attribute9 IN Varchar2,
449 p_attribute10 IN Varchar2,
450 p_attribute11 IN Varchar2,
451 p_attribute12 IN Varchar2,
452 p_attribute13 IN Varchar2,
453 p_attribute14 IN Varchar2,
454 p_attribute15 IN Varchar2,
455 p_copy_deliverables IN Varchar2,
456 p_translated_from_tmpl_id IN Number,
457 p_language IN Varchar2,
458 x_template_id OUT NOCOPY Number,
459 x_return_status OUT NOCOPY Varchar2,
460 x_msg_data OUT NOCOPY Varchar2,
461 x_msg_count OUT NOCOPY Number
462 )IS
463 l_api_version CONSTANT NUMBER := 1;
464 l_api_name CONSTANT VARCHAR2(30) := 'copy_terms_template';
465 l_template_rec OKC_TERMS_TEMPLATES_PVT.template_rec_type;
466 l_document_type OKC_BUS_DOC_TYPES_B.DOCUMENT_TYPE%TYPE := OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE;
467 l_dummy VARCHAR2(1) :='?';
468 l_deliverables_exist VARCHAR2(100);
469
470 CURSOR l_get_tmpl_csr IS
471 SELECT * FROM OKC_TERMS_TEMPLATES_ALL
472 WHERE template_id=p_template_id;
473
474 CURSOR l_check_tmpl_name_csr(b_org_id NUMBER) IS
475 SELECT 'x' FROM OKC_TERMS_TEMPLATES_ALL
476 WHERE org_id=b_org_id
477 AND template_name=p_tmpl_name;
478
479 l_tmpl_rec l_get_tmpl_csr%ROWTYPE;
480
481 l_article_effective_date DATE;
482
483 BEGIN
484
485 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
486 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Entered OKC_TERMS_COPY_GRP.copy_terms_template');
487 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Parameter List ');
488 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_api_version : '||p_api_version);
489 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_init_msg_list : '||p_init_msg_list);
490 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_commit : '||p_commit);
491 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_template_id : '||p_template_id);
492 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_tmpl_name : '||p_tmpl_name);
493 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_intent : '||p_intent);
494 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_start_date : '||p_start_date);
495 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_end_date : '||p_end_date);
496 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_print_Template_Id : '||p_print_Template_Id);
497 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_global_flag : '||p_global_flag);
498 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_contract_expert_enabled : '||p_contract_expert_enabled);
499 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_deliverables : '||p_copy_deliverables);
500 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_attribute_category : '||p_attribute_category);
501 END IF;
502
503
504 -- Standard Start of API savepoint
505 SAVEPOINT g_copy_terms_template_GRP;
506
507 -- Standard call to check for call compatibility.
508 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
509 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
510 END IF;
511
512 -- Initialize message list if p_init_msg_list is set to TRUE.
513 IF FND_API.to_Boolean( p_init_msg_list ) THEN
514 FND_MSG_PUB.initialize;
515 END IF;
516
517 -- Initialize API return status to success
518 x_return_status := FND_API.G_RET_STS_SUCCESS;
519
520 OPEN l_get_tmpl_csr;
521 FETCH l_get_tmpl_csr INTO l_tmpl_rec;
522 CLOSE l_get_tmpl_csr;
523
524 SELECT mo_global.get_current_org_id()
525 INTO l_template_rec.org_id from dual;
526
527 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
528 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'110: Current Org Id : '||l_template_rec.org_id);
529 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'110: Global Org Id : '||nvl(fnd_profile.value('OKC_GLOBAL_ORG_ID'),'-99'));
530 END IF;
531
532 -- check if copy from Global to Local Org
533 -- In that case make global_yn for Local Org template to N
534
535 IF nvl(fnd_profile.value('OKC_GLOBAL_ORG_ID'),'-99') <> l_template_rec.org_id THEN
536 l_template_rec.global_flag := 'N';
537 ELSE
538 -- keep flag as is as this is within the same org copy
539 l_template_rec.global_flag := p_global_flag;
540 END IF; -- check orgs
541
542
543 OPEN l_check_tmpl_name_csr(l_template_rec.org_id);
544 FETCH l_check_tmpl_name_csr INTO l_dummy;
545
546 IF l_check_tmpl_name_csr%FOUND THEN
547
548 okc_Api.Set_Message(p_app_name => G_APP_NAME,
549 p_msg_name => 'OKC_SAME_TMPL_NAME');
550 RAISE FND_API.G_EXC_ERROR ;
551
552 END IF;
553
554 CLOSE l_check_tmpl_name_csr;
555
556
557 l_template_rec.template_name := p_tmpl_name;
558 l_template_rec.working_copy_flag := 'N';
559 l_template_rec.parent_template_id := NULL;
560 l_template_rec.intent := p_intent;
561 l_template_rec.status_code := 'DRAFT';
562 l_template_rec.start_date := p_start_date;
563 l_template_rec.end_date := p_end_date;
564 -- l_template_rec.global_flag := p_global_flag;
565 l_template_rec.contract_expert_enabled := p_contract_expert_enabled;
566
567 l_template_rec.xprt_clause_mandatory_flag := p_xprt_clause_mandatory_flag;
568 l_template_rec.xprt_scn_code := p_xprt_scn_code;
569 l_template_rec.instruction_text := p_instruction_text;
570 l_template_rec.description := p_description;
571 l_template_rec.print_Template_Id := p_print_Template_Id;
572 l_template_rec.tmpl_numbering_scheme := l_tmpl_rec.tmpl_numbering_scheme;
573 l_template_rec.attribute_category := p_attribute_category;
574 l_template_rec.attribute1 := p_attribute1;
575 l_template_rec.attribute2 := p_attribute2;
576 l_template_rec.attribute3 := p_attribute3;
577 l_template_rec.attribute4 := p_attribute4;
578 l_template_rec.attribute5 := p_attribute5;
579 l_template_rec.attribute6 := p_attribute6;
580 l_template_rec.attribute7 := p_attribute7;
581 l_template_rec.attribute8 := p_attribute8;
582 l_template_rec.attribute9 := p_attribute9;
583 l_template_rec.attribute10 := p_attribute10;
584 l_template_rec.attribute11 := p_attribute11;
585 l_template_rec.attribute12 := p_attribute12;
586 l_template_rec.attribute13 := p_attribute13;
587 l_template_rec.attribute14 := p_attribute14;
588 l_template_rec.attribute15 := p_attribute15;
589 --MLS for templates
590 l_template_rec.language := p_language;
591
592
593 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
594 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: calling OKC_TERMS_COPY_PVT.copy_tc');
595 END IF;
596
597 /*
598 New Business Rules for p_article_effective_date in template to template copy
599 */
600 IF NVL(p_end_date,sysdate) >= sysdate THEN
601 IF p_start_date > sysdate THEN
602 l_article_effective_date := p_start_date;
603 ELSE
604 l_article_effective_date := sysdate;
605 END IF;
606 ELSE
607 l_article_effective_date := p_end_date;
608 END IF;
609
610 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
611 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: l_article_effective_date : '||l_article_effective_date);
612 END IF;
613
614
615 OKC_TERMS_COPY_PVT.copy_tc(
616 p_api_version => 1,
617 p_init_msg_list => FND_API.G_FALSE,
618 p_commit => FND_API.G_FALSE,
619 p_source_doc_type => OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE,
620 p_source_doc_id => p_template_id,
621 p_target_doc_type => l_document_type,
622 p_target_doc_id => x_template_id,
623 p_keep_version => 'N',
624 p_article_effective_date => l_article_effective_date,
625 p_target_template_rec => l_template_rec,
626 x_return_status => x_return_status,
627 x_msg_data => x_msg_data,
628 x_msg_count => x_msg_count);
629 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
630 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: Finished OKC_TERMS_COPY_PVT.copy_tc, return status : '||x_return_status);
631 END IF;
632
633 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
634 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
635 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
636 RAISE FND_API.G_EXC_ERROR ;
637 END IF;
638 -----------------------------------
639 /* Fix for the Bug# 4113678, check whether if the deliverables exist before copying deliverables */
640
641 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
642 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: calling okc_terms_util_grp.Is_Deliverable_Exist');
643 END IF;
644
645 l_deliverables_exist := okc_terms_util_grp.Is_Deliverable_Exist(
646 p_api_version => 1,
647 p_init_msg_list => FND_API.G_FALSE,
648 x_return_status => x_return_status,
649 x_msg_data => x_msg_data,
650 x_msg_count => x_msg_count,
651 p_doc_type => 'TEMPLATE',
652 p_doc_id => p_template_id);
653
654 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
655 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'700: Finished okc_terms_util_grp.Is_Deliverable_Exist, return status : '||x_return_status);
656 END IF;
657
658 l_deliverables_exist := UPPER(nvl(l_deliverables_exist,'NONE'));
659
660 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
661 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'700: l_deliverables_exist: ' || l_deliverables_exist);
662 END IF;
663
664 IF ( p_copy_deliverables='Y' AND l_deliverables_exist <> 'NONE') THEN
665
666 /* Call Deliverable API to copy Deliverables */
667
668 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
669 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:Entering OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables. ');
670 END IF;
671
672
673 OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables (
674 p_api_version => 1,
675 p_init_msg_list => FND_API.G_FALSE,
676 p_source_doc_type => OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE,
677 p_source_doc_id => p_template_id,
678 p_target_doc_type => l_document_type,
679 p_target_doc_id => x_template_id,
680 p_internal_party_id => l_template_rec.org_id, -- bug#4335441
681 p_internal_contact_id => Null,
682 p_external_party_id => Null,
683 p_external_contact_id => Null,
684 p_target_doc_number => x_template_id, -- bug#3722131
685 p_copy_del_attachments_yn => 'Y',
686 x_msg_data => x_msg_data,
687 x_msg_count => x_msg_count,
688 x_return_status => x_return_status );
689
690 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
691 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:Finished OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables ');
692 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables x_return_status : '||x_return_status);
693 END IF;
694
695 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
696 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
697 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
698 RAISE FND_API.G_EXC_ERROR ;
699 END IF;
700
701 END IF;
702
703
704
705
706 -----------------------------------
707 IF FND_API.To_Boolean( p_commit ) THEN
708 COMMIT WORK;
709 END IF;
710
711 -- Standard call to get message count and if count is 1, get message info.
712 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
713
714 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
715 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000: Leaving copy_terms_template');
716 END IF;
717
718 EXCEPTION
719
720 WHEN FND_API.G_EXC_ERROR THEN
721
722 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
723 FND_LOG.STRING( FND_LOG.LEVEL_ERROR ,g_module||l_api_name,'800: Leaving copy_terms_template: OKC_API.G_EXCEPTION_ERROR Exception');
724 END IF;
725
726 IF l_get_tmpl_csr%ISOPEN THEN
727 CLOSE l_get_tmpl_csr;
728 END IF;
729
730 IF l_check_tmpl_name_csr%ISOPEN THEN
731 CLOSE l_check_tmpl_name_csr;
732 END IF;
733
734 ROLLBACK TO g_copy_terms_template_grp;
735 x_return_status := G_RET_STS_ERROR ;
736 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
737
738 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
739 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
740 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'900: Leaving copy_terms_template: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
741 END IF;
742
743 IF l_get_tmpl_csr%ISOPEN THEN
744 CLOSE l_get_tmpl_csr;
745 END IF;
746
747 IF l_check_tmpl_name_csr%ISOPEN THEN
748 CLOSE l_check_tmpl_name_csr;
749 END IF;
750
751 ROLLBACK TO g_copy_terms_template_grp;
752 x_return_status := G_RET_STS_UNEXP_ERROR ;
753 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
754
755 WHEN OTHERS THEN
756 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
757 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'1000: Leaving copy_terms_template because of EXCEPTION: '||sqlerrm);
758 END IF;
759
760 IF l_get_tmpl_csr%ISOPEN THEN
761 CLOSE l_get_tmpl_csr;
762 END IF;
763
764 IF l_check_tmpl_name_csr%ISOPEN THEN
765 CLOSE l_check_tmpl_name_csr;
766 END IF;
767
768 ROLLBACK TO g_copy_terms_template_grp;
769 x_return_status := G_RET_STS_UNEXP_ERROR ;
770 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
771 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
772 END IF;
773 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
774 END copy_terms_template;
775
776 /*
777 --To be used when instantiating a term on a document.
778 */
779 Procedure copy_terms (
780 p_api_version IN Number,
781 p_init_msg_list IN Varchar2 ,
782 p_commit IN Varchar2 ,
783 p_template_id IN Number,
784 p_target_doc_type IN Varchar2,
785 p_target_doc_id IN Number,
786 p_article_effective_date IN Date ,
787 p_retain_deliverable IN Varchar2 ,
788 p_target_contractual_doctype IN Varchar2,
789 p_target_response_doctype IN Varchar2,
790 p_internal_party_id IN Number ,
791 p_internal_contact_id IN Number ,
792 p_external_party_id IN Number ,
793 p_external_party_site_id IN Number ,
794 p_external_contact_id IN Number ,
795 p_validate_commit IN Varchar2 ,
796 p_validation_string IN Varchar2,
797 p_document_number IN Varchar2 ,
798 x_return_status OUT NOCOPY Varchar2,
799 x_msg_data OUT NOCOPY Varchar2,
800 x_msg_count OUT NOCOPY Number,
801 p_contract_admin_id IN NUMBER := NULL,
802 p_legal_contact_id IN NUMBER := NULL
803 ) IS
804
805 l_api_version CONSTANT NUMBER := 1;
806 l_api_name CONSTANT VARCHAR2(30) := 'copy_terms';
807 l_ok_to_commit VARCHAR2(1);
808 l_document_id OKC_TEMPLATE_USAGES.DOCUMENT_ID%TYPE := p_target_doc_id;
809 l_document_type OKC_BUS_DOC_TYPES_B.DOCUMENT_TYPE%TYPE := p_target_doc_type;
810
811 CURSOR target_response_cur IS
812 SELECT TARGET_RESPONSE_DOC_TYPE
813 FROM okc_bus_doc_types_b
814 WHERE document_type = p_target_doc_type
815 AND document_type_class = 'SOURCING';
816
817 l_target_response_doctype okc_bus_doc_types_b.TARGET_RESPONSE_DOC_TYPE%TYPE;
818
819 CURSOR l_get_num_scheme_id(p_doc_type IN VARCHAR2, p_doc_id IN NUMBER) IS
820 SELECT doc_numbering_scheme
821 FROM okc_template_usages
822 WHERE document_type = p_doc_type
823 AND document_id = p_doc_id;
824
825 l_num_scheme_id NUMBER:=0;
826 -- bug#4113619
827 CURSOR enable_deliverables_cur IS
828 SELECT enable_deliverables_yn
829 FROM okc_bus_doc_types_b
830 WHERE document_type = p_target_doc_type;
831 l_enable_deliverables VARCHAR2(1);
832
833 BEGIN
834
835 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
836 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Entered OKC_TERMS_COPY_GRP.copy_terms');
837 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Parameter List ');
838 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_api_version : '||p_api_version);
839 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_init_msg_list : '||p_init_msg_list);
840 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_commit : '||p_commit);
841 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_template_id : '||p_template_id);
842 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_type : '||p_target_doc_type);
843 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_id : '||p_target_doc_id);
844 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_article_effective_date : '||p_article_effective_date);
845 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_retain_deliverable : '||p_retain_deliverable);
846 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_contractual_doctype : '||p_target_contractual_doctype);
847 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_response_doctype : '||p_target_response_doctype);
848 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_validate_commit : '||p_validate_commit);
849 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_validation_string : '||p_validation_string);
850 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_document_number : '||p_document_number);
851 END IF;
852
853
854 -- Standard Start of API savepoint
855 SAVEPOINT g_copy_terms_GRP;
856
857 -- Standard call to check for call compatibility.
858 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
859 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
860 END IF;
861
862 -- Initialize message list if p_init_msg_list is set to TRUE.
863 IF FND_API.to_Boolean( p_init_msg_list ) THEN
864 FND_MSG_PUB.initialize;
865 END IF;
866
867 IF FND_API.To_Boolean( p_validate_commit ) AND
868 NOT FND_API.To_Boolean(OKC_TERMS_UTIL_GRP.ok_to_commit (
869 p_api_version => l_api_version,
870 p_init_msg_list => FND_API.G_FALSE,
871 p_doc_type => p_target_doc_type,
872 p_doc_id => p_target_doc_id,
873 p_validation_string =>p_validation_string,
874 p_tmpl_change => 'Y',
875 x_return_status => x_return_status,
876 x_msg_data => x_msg_data,
877 x_msg_count => x_msg_count) ) THEN
878
879 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
880 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'700: Issue with document header Record.Cannot commit');
881 END IF;
882 RAISE FND_API.G_EXC_ERROR ;
883 END IF;
884
885 -- Initialize API return status to success
886 x_return_status := FND_API.G_RET_STS_SUCCESS;
887
888 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
889 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: calling OKC_TERMS_COPY_PVT.copy_tc');
890 END IF;
891
892 OKC_TERMS_COPY_PVT.copy_tc(
893 p_api_version => 1,
894 p_init_msg_list => FND_API.G_FALSE,
895 p_commit => FND_API.G_FALSE,
896 p_source_doc_type => OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE,
897 p_source_doc_id => p_template_id,
898 p_target_doc_type => l_document_type,
899 p_target_doc_id => l_document_id,
900 p_document_number => p_document_number,
901 p_keep_version => 'N',
902 p_article_effective_date => p_article_effective_date,
903 p_target_template_rec => G_TEMPLATE_MISS_REC,
904 p_retain_deliverable => p_retain_deliverable,
905 x_return_status => x_return_status,
906 x_msg_data => x_msg_data,
907 x_msg_count => x_msg_count,
908 p_contract_admin_id => p_contract_admin_id,
909 p_legal_contact_id => p_legal_contact_id);
910
911 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
912 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: returned from OKC_TERMS_COPY_PVT.copy_tc, return status : '||x_return_status);
913 END IF;
914
915 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
916 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
917 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
918 RAISE FND_API.G_EXC_ERROR ;
919 END IF;
920
921
922 ----------------------------------
923 /* Call Deliverable API to copy Deliverables */
924 -- check if deliverables are enables for this document bug#4113619
925 OPEN enable_deliverables_cur;
926 FETCH enable_deliverables_cur into l_enable_deliverables;
927 CLOSE enable_deliverables_cur;
928
929 IF l_enable_deliverables = 'Y' THEN
930
931 -- get the target response doctype if the target is a
932 -- Sourcing document (RFQ,RFI,AUCTION)Bug#3270742
933 OPEN target_response_cur;
934 FETCH target_response_cur INTO l_target_response_doctype;
935 CLOSE target_response_cur;
936
937 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
938 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:Entering OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables ');
939 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:l_target_response_doctype: '||l_target_response_doctype);
940 END IF;
941
942
943 OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables (
944 p_api_version => 1,
945 p_init_msg_list => FND_API.G_FALSE,
946 p_source_doc_type => OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE,
947 p_source_doc_id => p_template_id,
948 p_target_doc_type => l_document_type,
949 p_target_doc_id => l_document_id,
950 p_target_doc_number => p_document_number,
951 p_internal_party_id => p_internal_party_id,
952 p_internal_contact_id => p_internal_contact_id,
953 p_external_party_id => p_external_party_id,
954 p_external_party_site_id => p_external_party_site_id,
955 p_external_contact_id => p_external_contact_id,
956 p_target_contractual_doctype => p_target_contractual_doctype,
957 p_target_response_doctype => l_target_response_doctype,
958 p_copy_del_attachments_yn => 'Y',
959 x_msg_data => x_msg_data,
960 x_msg_count => x_msg_count,
961 x_return_status => x_return_status );
962
963 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
964 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:Finished OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables ');
965 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables x_return_status : '||x_return_status);
966 END IF;
967
968 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
969 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
970 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
971 RAISE FND_API.G_EXC_ERROR ;
972 END IF;
973
974 END IF; -- l_enable_deliverables = 'Y' THEN
975
976 -- Bug 3674173 : Call renumber after applying template on a document
977
978 OPEN l_get_num_scheme_id(p_doc_type => l_document_type, p_doc_id => l_document_id) ;
979 FETCH l_get_num_scheme_id INTO l_num_scheme_id;
980 CLOSE l_get_num_scheme_id;
981
982 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
983 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: l_num_scheme_id : '||l_num_scheme_id);
984 END IF;
985
986
987 IF NVL(l_num_scheme_id,0) <> 0 THEN
988
989 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
990 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: Calling apply_numbering_scheme for num_scheme_id : '||l_num_scheme_id);
991 END IF;
992
993 OKC_NUMBER_SCHEME_GRP.apply_numbering_scheme(
994 p_api_version => p_api_version,
995 p_init_msg_list => FND_API.G_FALSE,
996 x_return_status => x_return_status,
997 x_msg_count => x_msg_count,
998 x_msg_data => x_msg_data,
999 p_validate_commit => FND_API.G_FALSE,
1000 p_validation_string => p_validation_string,
1001 p_commit => FND_API.G_FALSE,
1002 p_doc_type => l_document_type,
1003 p_doc_id => l_document_id,
1004 p_num_scheme_id => l_num_scheme_id
1005 );
1006
1007
1008 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1009 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: returned from OKC_NUMBER_SCHEME_GRP.apply_numbering_scheme , return status : '||x_return_status);
1010 END IF;
1011
1012 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1013 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1014 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1015 RAISE FND_API.G_EXC_ERROR ;
1016 END IF;
1017
1018
1019 END IF; --l_num_scheme_id is not 0
1020
1021
1022
1023 -- End Bug 3674173
1024
1025
1026 ------------------------------------
1027 IF FND_API.To_Boolean( p_commit ) THEN
1028 COMMIT WORK;
1029 END IF;
1030
1031 -- Standard call to get message count and if count is 1, get message info.
1032 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1033
1034 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1035 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000: Leaving copy_terms');
1036 END IF;
1037
1038
1039
1040 EXCEPTION
1041
1042 WHEN FND_API.G_EXC_ERROR THEN
1043
1044 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1045 FND_LOG.STRING( FND_LOG.LEVEL_ERROR ,g_module||l_api_name,'800: Leaving copy_terms: OKC_API.G_EXCEPTION_ERROR Exception');
1046 END IF;
1047
1048 ROLLBACK TO g_copy_terms_grp;
1049 x_return_status := G_RET_STS_ERROR ;
1050 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1051
1052 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1053 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1054 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'900: Leaving copy_terms: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
1055 END IF;
1056
1057
1058 ROLLBACK TO g_copy_terms_grp;
1059 x_return_status := G_RET_STS_UNEXP_ERROR ;
1060 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1061
1062 WHEN OTHERS THEN
1063 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1064 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'1000: Leaving copy_terms because of EXCEPTION: '||sqlerrm);
1065 END IF;
1066
1067 ROLLBACK TO g_copy_terms_grp;
1068 x_return_status := G_RET_STS_UNEXP_ERROR ;
1069 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1070 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1071 END IF;
1072 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1073
1074
1075 END copy_terms;
1076
1077 /* To be used to create Revision of a Template */
1078
1079 Procedure create_template_revision (
1080 p_api_version IN Number,
1081 p_init_msg_list IN Varchar2 default FND_API.G_FALSE,
1082 p_commit IN Varchar2 default FND_API.G_FALSE,
1083 p_template_id IN Number,
1084 p_copy_deliverables IN Varchar2 default 'Y',
1085 x_template_id OUT NOCOPY Number,
1086 x_return_status OUT NOCOPY Varchar2,
1087 x_msg_data OUT NOCOPY Varchar2,
1088 x_msg_count OUT NOCOPY Number) IS
1089
1090 l_api_version CONSTANT NUMBER := 1;
1091 l_api_name CONSTANT VARCHAR2(30) := 'create_template_revision';
1092 l_template_rec OKC_TERMS_TEMPLATES_PVT.template_rec_type;
1093 l_document_type OKC_BUS_DOC_TYPES_B.DOCUMENT_TYPE%TYPE := OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE;
1094 l_copy_deliverables VARCHAR2(1);
1095
1096 CURSOR l_get_tmpl_csr IS
1097 SELECT * FROM OKC_TERMS_TEMPLATES_ALL
1098 WHERE template_id=p_template_id;
1099
1100 l_tmpl_rec l_get_tmpl_csr%ROWTYPE;
1101 BEGIN
1102
1103 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1104 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Entered OKC_TERMS_COPY_GRP.create_template_revision');
1105 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Parameter List ');
1106 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_api_version : '||p_api_version);
1107 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_init_msg_list : '||p_init_msg_list);
1108 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_commit : '||p_commit);
1109 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_template_id : '||p_template_id);
1110 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_deliverables : '||p_copy_deliverables);
1111 END IF;
1112
1113
1114 -- Standard Start of API savepoint
1115 SAVEPOINT g_create_template_revision_GRP;
1116
1117 -- Standard call to check for call compatibility.
1118 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1119 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1120 END IF;
1121
1122 -- Initialize message list if p_init_msg_list is set to TRUE.
1123 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1124 FND_MSG_PUB.initialize;
1125 END IF;
1126
1127 -- Initialize API return status to success
1128 x_return_status := FND_API.G_RET_STS_SUCCESS;
1129
1130 OPEN l_get_tmpl_csr;
1131 FETCH l_get_tmpl_csr INTO l_tmpl_rec;
1132 CLOSE l_get_tmpl_csr;
1133
1134 l_template_rec.template_name := l_tmpl_rec.template_name;
1135 l_template_rec.working_copy_flag := 'Y';
1136 l_template_rec.parent_template_id := p_template_id;
1137 l_template_rec.intent := l_tmpl_rec.intent;
1138 l_template_rec.status_code := 'REVISION';
1139 l_template_rec.start_date := l_tmpl_rec.start_date;
1140 l_template_rec.end_date := l_tmpl_rec.end_date;
1141 l_template_rec.global_flag := l_tmpl_rec.global_flag;
1142 l_template_rec.print_template_id := l_tmpl_rec.print_template_id;
1143 l_template_rec.contract_expert_enabled:= l_tmpl_rec.contract_expert_enabled;
1144 l_template_rec.instruction_text := l_tmpl_rec.instruction_text;
1145 l_template_rec.description := l_tmpl_rec.description;
1146 l_template_rec.org_id := l_tmpl_rec.org_id;
1147 l_template_rec.tmpl_numbering_scheme := l_tmpl_rec.tmpl_numbering_scheme;
1148 l_template_rec.template_model_id := l_tmpl_rec.template_model_id;
1149 l_template_rec.orig_system_reference_code:=l_tmpl_rec.orig_system_reference_code;
1150 l_template_rec.orig_system_reference_id1:=l_tmpl_rec.orig_system_reference_id1;
1151 l_template_rec.orig_system_reference_id2:=l_tmpl_rec.orig_system_reference_id2;
1152 l_template_rec.attribute_category := l_tmpl_rec.attribute_category;
1153 l_template_rec.attribute1 := l_tmpl_rec.attribute1;
1154 l_template_rec.attribute2 := l_tmpl_rec.attribute2;
1155 l_template_rec.attribute3 := l_tmpl_rec.attribute3;
1156 l_template_rec.attribute4 := l_tmpl_rec.attribute4;
1157 l_template_rec.attribute5 := l_tmpl_rec.attribute5;
1158 l_template_rec.attribute6 := l_tmpl_rec.attribute6;
1159 l_template_rec.attribute7 := l_tmpl_rec.attribute7;
1160 l_template_rec.attribute8 := l_tmpl_rec.attribute8;
1161 l_template_rec.attribute9 := l_tmpl_rec.attribute9;
1162 l_template_rec.attribute10 := l_tmpl_rec.attribute10;
1163 l_template_rec.attribute11 := l_tmpl_rec.attribute11;
1164 l_template_rec.attribute12 := l_tmpl_rec.attribute12;
1165 l_template_rec.attribute13 := l_tmpl_rec.attribute13;
1166 l_template_rec.attribute14 := l_tmpl_rec.attribute14;
1167 l_template_rec.attribute15 := l_tmpl_rec.attribute15;
1168 l_template_rec.cz_export_wf_key := l_tmpl_rec.cz_export_wf_key;
1169 l_template_rec.xprt_clause_mandatory_flag := l_tmpl_rec.xprt_clause_mandatory_flag;
1170 l_template_rec.xprt_scn_code := l_tmpl_rec.xprt_scn_code;
1171 l_template_rec.approval_wf_key := l_tmpl_rec.approval_wf_key;
1172 --MLS for templates
1173 l_template_rec.language := l_tmpl_rec.language;
1174 l_template_rec.translated_from_tmpl_id := l_tmpl_rec.translated_from_tmpl_id;
1175
1176 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1177 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: calling OKC_TERMS_COPY_PVT.copy_tc');
1178 END IF;
1179
1180 OKC_TERMS_COPY_PVT.copy_tc(
1181 p_api_version => 1,
1182 p_init_msg_list => FND_API.G_FALSE,
1183 p_commit => FND_API.G_FALSE,
1184 p_source_doc_type => OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE,
1185 p_source_doc_id => p_template_id,
1186 p_target_doc_type => l_document_type,
1187 p_target_doc_id => x_template_id,
1188 p_keep_version => 'N',
1189 p_article_effective_date => l_tmpl_rec.start_date,
1190 p_target_template_rec => l_template_rec,
1191 x_return_status => x_return_status,
1192 x_msg_data => x_msg_data,
1193 x_msg_count => x_msg_count);
1194 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1195 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: returned from OKC_TERMS_COPY_PVT.copy_tc, return status : '||x_return_status);
1196 END IF;
1197
1198 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1199 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1200 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1201 RAISE FND_API.G_EXC_ERROR ;
1202 END IF;
1203 ----------------------------------------------
1204 -- bug#4083525 do not invoke deliverables API for sell side
1205 -- to be removed when sell side deliverables are enabled.
1206 IF l_template_rec.intent = 'S' THEN
1207 l_copy_deliverables := 'N';
1208 ELSE
1209 l_copy_deliverables := p_copy_deliverables;
1210 END IF;
1211
1212 IF l_copy_deliverables='Y' THEN
1213
1214 /* Call Deliverable API to copy Deliverables */
1215
1216 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1217 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:Entering OKC_DELIVERABLE_PROCESS_PVT.CopyDelForTemplateRevision. ');
1218 END IF;
1219 -- bug#4075168 New API for Template Revision replacing copy_deliverables
1220
1221 OKC_DELIVERABLE_PROCESS_PVT.CopyDelForTemplateRevision(
1222 p_api_version => 1,
1223 p_init_msg_list => FND_API.G_FALSE,
1224 p_source_doc_type => OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE,
1225 p_source_doc_id => p_template_id,
1226 p_target_doc_type => l_document_type,
1227 p_target_doc_id => x_template_id,
1228 p_target_doc_number => l_tmpl_rec.template_name,
1229 p_copy_del_attachments_yn => 'Y',
1230 x_msg_data => x_msg_data,
1231 x_msg_count => x_msg_count,
1232 x_return_status => x_return_status );
1233
1234
1235 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1236 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:Finished OKC_DELIVERABLE_PROCESS_PVT.CopyDelForTemplateRevision');
1237 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:OKC_DELIVERABLE_PROCESS_PVT.CopyDelForTemplateRevision x_return_status : '||x_return_status);
1238 END IF;
1239
1240 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1241 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1242 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1243 RAISE FND_API.G_EXC_ERROR ;
1244 END IF;
1245
1246 END IF;-- l_copy_deliverables='Y'
1247
1248 -----------------------------------------------
1249 IF FND_API.To_Boolean( p_commit ) THEN
1250 COMMIT WORK;
1251 END IF;
1252
1253 -- Standard call to get message count and if count is 1, get message info.
1254 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1255
1256 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1257 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000: Leaving create_template_revision');
1258 END IF;
1259
1260 EXCEPTION
1261
1262 WHEN FND_API.G_EXC_ERROR THEN
1263
1264 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1265 FND_LOG.STRING( FND_LOG.LEVEL_ERROR ,g_module||l_api_name,'800: Leaving create_template_revision: OKC_API.G_EXCEPTION_ERROR Exception');
1266 END IF;
1267
1268 IF l_get_tmpl_csr%ISOPEN THEN
1269 CLOSE l_get_tmpl_csr;
1270 END IF;
1271
1272 ROLLBACK TO g_create_template_revision_grp;
1273 x_return_status := G_RET_STS_ERROR ;
1274 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1275
1276 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1277 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1278 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'900: Leaving create_template_revision: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
1279 END IF;
1280
1281 IF l_get_tmpl_csr%ISOPEN THEN
1282 CLOSE l_get_tmpl_csr;
1283 END IF;
1284
1285 ROLLBACK TO g_create_template_revision_grp;
1286 x_return_status := G_RET_STS_UNEXP_ERROR ;
1287 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1288
1289 WHEN OTHERS THEN
1290 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1291 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'1000: Leaving create_template_revision because of EXCEPTION: '||sqlerrm);
1292 END IF;
1293
1294
1295 IF l_get_tmpl_csr%ISOPEN THEN
1296 CLOSE l_get_tmpl_csr;
1297 END IF;
1298
1299 ROLLBACK TO g_create_template_revision_grp;
1300 x_return_status := G_RET_STS_UNEXP_ERROR ;
1301 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1302 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1303 END IF;
1304 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1305 END create_template_revision;
1306
1307 /*
1308 -- To be used while copying a document from archive to make a new document.
1309 -- This functionality is only supported in OM.
1310 */
1311
1312 Procedure copy_archived_doc (
1313 p_api_version IN Number,
1314 p_init_msg_list IN Varchar2,
1315 p_commit IN Varchar2,
1316 p_source_doc_type IN Varchar2,
1317 p_source_doc_id IN Number,
1318 p_source_version_number IN Number,
1319 p_target_doc_type IN Varchar2,
1320 p_target_doc_id IN Number,
1321 p_document_number IN Varchar2,
1322 p_allow_duplicate_terms IN Varchar2,
1323 x_return_status OUT NOCOPY Varchar2,
1324 x_msg_data OUT NOCOPY Varchar2,
1325 x_msg_count OUT NOCOPY Number
1326 ) IS
1327 l_api_version CONSTANT NUMBER := 1;
1328 l_api_name CONSTANT VARCHAR2(30) := 'copy_archived_doc';
1329 BEGIN
1330
1331 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1332 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Entered OKC_TERMS_COPY_GRP.copy_archived_doc');
1333 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Parameter List ');
1334 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_api_version : '||p_api_version);
1335 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_init_msg_list : '||p_init_msg_list);
1336 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_commit : '||p_commit);
1337 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_type : '||p_source_doc_type);
1338 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_id : '||p_source_doc_id);
1339 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_version_number : '||p_source_version_number);
1340 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_type : '||p_target_doc_type);
1341 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_id : '||p_target_doc_id);
1342 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_document_number : '||p_document_number);
1343 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_allow_duplicate_terms : '||p_allow_duplicate_terms);
1344 END IF;
1345
1346
1347 -- Standard Start of API savepoint
1348 SAVEPOINT g_copy_archived_doc_GRP;
1349
1350 -- Standard call to check for call compatibility.
1351 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1352 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1353 END IF;
1354
1355 -- Initialize message list if p_init_msg_list is set to TRUE.
1356 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1357 FND_MSG_PUB.initialize;
1358 END IF;
1359
1360 -- Initialize API return status to success
1361 x_return_status := FND_API.G_RET_STS_SUCCESS;
1362
1363
1364 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1365 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: calling OKC_TERMS_COPY_PVT.copy_archived_doc');
1366 END IF;
1367
1368 OKC_TERMS_COPY_PVT.copy_archived_doc(
1369 p_api_version => 1,
1370 p_init_msg_list => FND_API.G_FALSE,
1371 p_commit => FND_API.G_FALSE,
1372 p_source_doc_type => p_source_doc_type,
1373 p_source_doc_id => p_source_doc_id,
1374 p_target_doc_type => p_target_doc_type,
1375 p_target_doc_id => p_target_doc_id,
1376 p_source_version_number =>p_source_version_number,
1377 p_document_number => p_document_number,
1378 p_allow_duplicates => p_allow_duplicate_terms,
1379 x_return_status => x_return_status,
1380 x_msg_data => x_msg_data,
1381 x_msg_count => x_msg_count);
1382 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1383 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: returned from OKC_TERMS_COPY_PVT.copy_archived_doc return status : '||x_return_status);
1384 END IF;
1385
1386 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1387 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1388 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1389 RAISE FND_API.G_EXC_ERROR ;
1390 END IF;
1391
1392 IF FND_API.To_Boolean( p_commit ) THEN
1393 COMMIT WORK;
1394 END IF;
1395
1396 -- Standard call to get message count and if count is 1, get message info.
1397 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1398
1399 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1400 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000: Leaving copy_archived_doc');
1401 END IF;
1402
1403 EXCEPTION
1404
1405 WHEN FND_API.G_EXC_ERROR THEN
1406
1407 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1408 FND_LOG.STRING( FND_LOG.LEVEL_ERROR ,g_module||l_api_name,'800: Leaving copy_archived_doc: OKC_API.G_EXCEPTION_ERROR Exception');
1409 END IF;
1410
1411 ROLLBACK TO g_copy_archived_doc_grp;
1412 x_return_status := G_RET_STS_ERROR ;
1413 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1414
1415 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1416 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1417 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'900: Leaving copy_archived_doc: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
1418 END IF;
1419
1420 ROLLBACK TO g_copy_archived_doc_grp;
1421 x_return_status := G_RET_STS_UNEXP_ERROR ;
1422 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1423
1424 WHEN OTHERS THEN
1425 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1426 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'1000: Leaving copy_archived_doc because of EXCEPTION: '||sqlerrm);
1427 END IF;
1428
1429 ROLLBACK TO g_copy_archived_doc_grp;
1430 x_return_status := G_RET_STS_UNEXP_ERROR ;
1431 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1432 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1433 END IF;
1434 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1435 END copy_archived_doc;
1436
1437 /*************************************************************
1438 07-APR-2004 pnayani: bug#3524864 added copy_response_doc API |
1439 This API is used for copying terms, deliverables and document attachments from
1440 one response doc to another. Initially coded to support proxy bidding process in sourcing.
1441 p_source_doc_type - source document type,
1442 p_source_doc_id - source document id,
1443 p_target_doc_type - target document type,
1444 p_target_doc_id - target document id,
1445 p_target_doc_number - target document number,
1446 p_keep_version - passed as 'Y'
1447 - 'N' is not supported as this API is called to copy terms from
1448 - one doc to another keeping the original reference same as the source
1449 p_article_effective_date - article effective date,
1450 p_copy_doc_attachments - flag indicates if doc attachments should be copied, valid values Y/N,
1451 p_allow_duplicate_terms - flag with valid values Y/N,
1452 p_copy_attachments_by_ref - flag indicates if document attachments should be
1453 - physically copied or referenced, valid values Y/N,
1454
1455 *************************************************************/
1456
1457 Procedure copy_response_doc (
1458 p_api_version IN Number,
1459 p_init_msg_list IN Varchar2 ,
1460 p_commit IN Varchar2 ,
1461 p_source_doc_type IN Varchar2,
1462 p_source_doc_id IN Number,
1463 p_target_doc_type IN OUT NOCOPY Varchar2,
1464 p_target_doc_id IN OUT NOCOPY Number,
1465 p_target_doc_number IN Varchar2 ,
1466 p_keep_version IN Varchar2 ,
1467 p_article_effective_date IN Date ,
1468 p_copy_doc_attachments IN Varchar2 ,
1469 p_allow_duplicate_terms IN Varchar2,
1470 p_copy_attachments_by_ref IN Varchar2,
1471 x_return_status OUT NOCOPY VARCHAR2,
1472 x_msg_data OUT NOCOPY VARCHAR2,
1473 x_msg_count OUT NOCOPY Number
1474 )
1475 IS
1476 l_api_version CONSTANT NUMBER := 1;
1477 l_api_name CONSTANT VARCHAR2(30) := 'copy_response_doc';
1478
1479
1480
1481 BEGIN
1482
1483 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1484 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Entered OKC_TERMS_COPY_GRP.copy_response_doc');
1485 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Parameter List ');
1486 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_api_version : '||p_api_version);
1487 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_init_msg_list : '||p_init_msg_list);
1488 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_commit : '||p_commit);
1489 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_type : '||p_source_doc_type);
1490 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_id : '||p_source_doc_id);
1491 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_type : '||p_target_doc_type);
1492 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_id : '||p_target_doc_id);
1493 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_keep_version : '||p_keep_version);
1494 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_article_effective_date : '||p_article_effective_date);
1495 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_number : '||p_target_doc_number);
1496 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_doc_attachments : '||p_copy_doc_attachments);
1497 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_allow_duplicate_terms : '||p_allow_duplicate_terms);
1498 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_attachments_by_ref : '||p_copy_attachments_by_ref);
1499 END IF;
1500
1501
1502 -- Standard Start of API savepoint
1503 SAVEPOINT g_copy_doc_GRP;
1504
1505 -- Standard call to check for call compatibility.
1506 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1507 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1508 END IF;
1509
1510 -- Initialize message list if p_init_msg_list is set to TRUE.
1511 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1512 FND_MSG_PUB.initialize;
1513 END IF;
1514
1515 -- Initialize API return status to success
1516 x_return_status := FND_API.G_RET_STS_SUCCESS;
1517
1518
1519 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1520 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: calling OKC_TERMS_COPY_PVT.copy_tc');
1521 END IF;
1522 -- copy contract terms
1523 OKC_TERMS_COPY_PVT.copy_tc(
1524 p_api_version => 1,
1525 p_init_msg_list => FND_API.G_FALSE,
1526 p_commit => FND_API.G_FALSE,
1527 p_source_doc_type => p_source_doc_type,
1528 p_source_doc_id => p_source_doc_id ,
1529 p_target_doc_type => p_target_doc_type,
1530 p_target_doc_id => p_target_doc_id,
1531 p_keep_version => 'Y',
1532 p_article_effective_date => p_article_effective_date,
1533 p_target_template_rec => G_TEMPLATE_MISS_REC,
1534 p_document_number => p_target_doc_number,
1535 p_allow_duplicates => p_allow_duplicate_terms,
1536 p_keep_orig_ref => 'Y',
1537 x_return_status => x_return_status,
1538 x_msg_data => x_msg_data,
1539 x_msg_count => x_msg_count);
1540 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1541 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: Finished OKC_TERMS_COPY_PVT.copy_tc, return status'||x_return_status);
1542 END IF;
1543
1544 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1545 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1546 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1547 RAISE FND_API.G_EXC_ERROR ;
1548 END IF;
1549 -----------------------------------------------------
1550
1551
1552 /* Call Deliverable API to copy Deliverables */
1553
1554 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1555 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:Entering OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables.');
1556 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:source busdoc id: '||to_char(p_source_doc_id));
1557 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:target busdoc id: '||to_char(p_target_doc_id));
1558 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:target busdoc type: '||p_target_doc_type);
1559 END IF;
1560
1561
1562 OKC_DELIVERABLE_PROCESS_PVT.copy_response_deliverables (
1563 p_api_version => 1,
1564 p_init_msg_list => FND_API.G_FALSE,
1565 p_source_doc_id => p_source_doc_id,
1566 p_source_doc_type => p_source_doc_type,
1567 p_target_doc_id => p_target_doc_id,
1568 p_target_doc_type => p_target_doc_type,
1569 p_target_doc_number => p_target_doc_number,
1570 x_msg_data => x_msg_data,
1571 x_msg_count => x_msg_count,
1572 x_return_status => x_return_status );
1573
1574 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1575 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:Finished OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables ');
1576 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100: OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables x_return_status : '||x_return_status);
1577 END IF;
1578
1579 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1580 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1581 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1582 RAISE FND_API.G_EXC_ERROR ;
1583 END IF;
1584
1585 -- copy doc attachments if the flag is set to Y
1586 IF p_copy_doc_attachments ='Y' THEN
1587
1588 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1589 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1150:Entering OKC_CONTRACT_DOCS_GRP.Copy_Attachments ');
1590 END IF;
1591
1592 OKC_CONTRACT_DOCS_GRP.Copy_Attachments (
1593 p_api_version =>1,
1594 p_init_msg_list =>FND_API.G_FALSE,
1595 x_msg_data => x_msg_data,
1596 x_msg_count => x_msg_count,
1597 x_return_status => x_return_status,
1598 p_from_bus_doc_type => p_source_doc_type ,
1599 p_from_bus_doc_id => p_source_doc_id,
1600 p_from_bus_doc_version => -99,
1601 p_to_bus_doc_type => p_target_doc_type,
1602 p_to_bus_doc_id => p_target_doc_id,
1603 p_to_bus_doc_version => -99,
1604 p_copy_by_ref => p_copy_attachments_by_ref) ;
1605
1606 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1607 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1151:Finished OKC_CONTRACT_DOCS_GRP.Copy_Attachments ');
1608 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1151:OKC_CONTRACT_DOCS_GRP.Copy_Attachments x_return_status : '||x_return_status);
1609 END IF;
1610
1611 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1612 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1613 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1614 RAISE FND_API.G_EXC_ERROR ;
1615 END IF;
1616 END IF;
1617
1618 -------------------------------------------------------------
1619
1620 IF FND_API.To_Boolean( p_commit ) THEN
1621 COMMIT WORK;
1622 END IF;
1623
1624 -- Standard call to get message count and if count is 1, get message info.
1625 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1626
1627 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1628 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000: Leaving copy_response_doc');
1629 END IF;
1630
1631 EXCEPTION
1632
1633 WHEN FND_API.G_EXC_ERROR THEN
1634
1635 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1636 FND_LOG.STRING( FND_LOG.LEVEL_ERROR ,g_module||l_api_name,'800: Leaving copy_response_doc: OKC_API.G_EXCEPTION_ERROR Exception');
1637 END IF;
1638
1639 ROLLBACK TO g_copy_doc_grp;
1640 x_return_status := G_RET_STS_ERROR ;
1641 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1642
1643 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1644 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1645 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'900: Leaving copy_response_doc: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
1646 END IF;
1647
1648 ROLLBACK TO g_copy_doc_grp;
1649 x_return_status := G_RET_STS_UNEXP_ERROR ;
1650 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1651
1652 WHEN OTHERS THEN
1653 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1654 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'1000: Leaving copy_response_doc because of EXCEPTION: '||sqlerrm);
1655 END IF;
1656
1657 ROLLBACK TO g_copy_doc_grp;
1658 x_return_status := G_RET_STS_UNEXP_ERROR ;
1659 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1660 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1661 END IF;
1662 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1663 END copy_response_doc;
1664
1665
1666
1667 END OKC_TERMS_COPY_GRP;