[Home] [Help]
PACKAGE BODY: APPS.OKC_TERMS_COPY_GRP
Source
1 PACKAGE BODY OKC_TERMS_COPY_GRP AS
2 /* $Header: OKCGDCPB.pls 120.10.12020000.5 2013/04/12 14:10:54 serukull ship $ */
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 -- Conc Mod Changes Start
76 ,p_retain_lock_terms_yn IN VARCHAR2 := 'N'
77 ,p_retain_lock_xprt_yn IN VARCHAR2 := 'N'
78 , p_add_only_amend_deliverables IN VARCHAR2 := 'N'
79 , P_RETAIN_LOCK_DELIVERABLES_YN IN VARCHAR2 := 'N'
80 ,p_rebuild_locks IN VARCHAR2 := 'N'
81 -- Conc Mod Changes End
82
83 )
84 IS
85 l_api_version CONSTANT NUMBER := 1;
86 l_api_name CONSTANT VARCHAR2(30) := 'copy_doc';
87 l_contract_source VARCHAR2(30);
88 l_copy_primary_doc_flag VARCHAR2(1) := 'N' ;
89
90 CURSOR target_response_cur IS
91 SELECT TARGET_RESPONSE_DOC_TYPE
92 FROM okc_bus_doc_types_b
93 WHERE document_type = p_target_doc_type
94 AND document_type_class = 'SOURCING';
95 l_target_response_doctype okc_bus_doc_types_b.TARGET_RESPONSE_DOC_TYPE%TYPE;
96 --11.5.10+ derive deliverables_enabled_yn flag from okc_bus_doc_types_b
97 -- do not use the p_copy_deliverables param bug#3984339
98 CURSOR DEL_COPY_CUR IS
99 SELECT enable_deliverables_yn
100 FROM okc_bus_doc_types_b
101 where document_type = p_target_doc_type;
102
103 -- CLM changes Begins
104 CURSOR l_get_num_scheme_id(p_doc_type IN VARCHAR2, p_doc_id IN NUMBER) IS
105 SELECT doc_numbering_scheme
106 FROM okc_template_usages
107 WHERE document_type = p_doc_type
108 AND document_id = p_doc_id;
109
110 l_num_scheme_id NUMBER:=0;
111 -- CLM changes Ends
112
113
114 l_deliverables_enabled VARCHAR2(1);
115 l_copy_deliverables VARCHAR2(1);
116
117
118 BEGIN
119
120
121
122 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
123 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Entered OKC_TERMS_COPY_GRP.copy_doc');
124 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Parameter List ');
125 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_api_version : '||p_api_version);
126 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_init_msg_list : '||p_init_msg_list);
127 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_commit : '||p_commit);
128 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_type : '||p_source_doc_type);
129 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_id : '||p_source_doc_id);
130 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_type : '||p_target_doc_type);
131 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_id : '||p_target_doc_id);
132 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_keep_version : '||p_keep_version);
133 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_article_effective_date : '||p_article_effective_date);
134 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_initialize_status_yn : '||p_initialize_status_yn);
135 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_reset_fixed_date_yn : '||p_reset_fixed_date_yn);
136 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_internal_party_id : '||p_internal_party_id);
137 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_internal_contact_id : '||p_internal_contact_id);
138 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_contractual_doctype : '||p_target_contractual_doctype);
139 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_del_attachments_yn : '||p_copy_del_attachments_yn);
140 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_external_party_id : '||p_external_party_id);
141 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_external_party_site_id : '||p_external_party_site_id);
142 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_external_contact_id : '||p_external_contact_id);
143 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_deliverables : '||p_copy_deliverables);
144 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_document_number : '||p_document_number);
145 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_for_amendment : '||p_copy_for_amendment);
146 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_doc_attachments : '||p_copy_doc_attachments);
147 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_allow_duplicate_terms : '||p_allow_duplicate_terms);
148 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_attachments_by_ref : '||p_copy_attachments_by_ref);
149 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_retain_lock_terms_yn : '||p_retain_lock_terms_yn);
150 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_retain_lock_xprt_yn : '||p_retain_lock_xprt_yn);
151 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_retain_lock_deliverables_yn : '||p_retain_lock_deliverables_yn);
152 --FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_add_only_amend_deliverables : '||p_add_only_amend_deliverables);
153 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_rebuild_locks : '||p_rebuild_locks);
154 END IF;
155
156
157 -- Standard Start of API savepoint
158 SAVEPOINT g_copy_doc_GRP;
159
160 -- Standard call to check for call compatibility.
161 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
162 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
163 END IF;
164
165 -- Initialize message list if p_init_msg_list is set to TRUE.
166 IF FND_API.to_Boolean( p_init_msg_list ) THEN
167 FND_MSG_PUB.initialize;
168 END IF;
169
170 -- Initialize API return status to success
171 x_return_status := FND_API.G_RET_STS_SUCCESS;
172
173
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: calling OKC_TERMS_COPY_PVT.copy_tc');
176 END IF;
177
178 OKC_TERMS_COPY_PVT.copy_tc(
179 p_api_version => 1,
180 p_init_msg_list => FND_API.G_FALSE,
181 p_commit => FND_API.G_FALSE,
182 p_source_doc_type => p_source_doc_type,
183 p_source_doc_id => p_source_doc_id ,
184 p_target_doc_type => p_target_doc_type,
185 p_target_doc_id => p_target_doc_id,
186 p_keep_version => p_keep_version,
187 p_article_effective_date => p_article_effective_date,
188 p_target_template_rec => G_TEMPLATE_MISS_REC,
189 p_document_number => p_document_number,
190 p_allow_duplicates => p_allow_duplicate_terms,
191 x_return_status => x_return_status,
192 x_msg_data => x_msg_data,
193 x_msg_count => x_msg_count,
194 p_copy_abstract_yn => p_copy_abstract_yn,
195 p_copy_for_amendment => p_copy_for_amendment,
196 p_contract_admin_id => p_contract_admin_id,
197 p_legal_contact_id => p_legal_contact_id
198 -- Conc Mod changes start
199 ,p_retain_lock_terms_yn => p_retain_lock_terms_yn
200 ,p_retain_lock_xprt_yn => p_retain_lock_xprt_yn
201 -- Conc Mod changes end
202 );
203 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
204 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);
205 END IF;
206
207 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
208 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
209 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
210 RAISE FND_API.G_EXC_ERROR ;
211 END IF;
212
213 IF p_rebuild_locks = 'Y' THEN
214 /*
215 When merging the data from mod to award
216 Source doc type is mod and target doc type is award.
217 After merge we will get new ids on the Award.
218 Earlier we used to re-build the locks table.
219 Now we stamp the old ids on Award entities(s)
220
221 */
222 okc_k_entity_locks_grp.rebuild_ids
223 ( p_api_version => 1,
224 p_update_from_doc_type => p_source_doc_type,
225 p_update_from_doc_id => p_source_doc_id,
226 p_update_to_doc_type => p_target_doc_type,
227 p_update_to_doc_id => p_target_doc_id,
228 X_RETURN_STATUS => x_return_status,
229 X_MSG_COUNT => X_MSG_COUNT,
230 X_MSG_DATA => X_MSG_DATA
231 );
232 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
233 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: Finished okc_k_entity_locks_grp.rebuild_locks , return status '||x_return_status);
234 END IF;
235
236
237 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
238 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
239 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
240 RAISE FND_API.G_EXC_ERROR ;
241 END IF;
242
243
244 END IF;
245
246
247
248
249 -----------------------------------------------------
250
251 /* get the deliverables_enabled_yn flag before calling copy_deliverables bug#3984339 */
252
253
254 OPEN del_copy_cur;
255 FETCH del_copy_cur INTO l_deliverables_enabled;
256 IF del_copy_cur%NOTFOUND THEN
257 l_deliverables_enabled := null;
258 END IF;
259 CLOSE del_copy_cur;
260
261 If (l_deliverables_enabled = 'N') then
262 l_copy_deliverables := l_deliverables_enabled;
263 Elsif (l_deliverables_enabled = 'Y') then
264 l_copy_deliverables := p_copy_deliverables;
265 End If;
266
267 IF (l_copy_deliverables ='Y' AND p_copy_for_amendment='N') THEN
268
269 /* Call Deliverable API to copy Deliverables */
270 -- get the target response doctype if the target is a
271 -- Sourcing document (RFQ,RFI,AUCTION)Bug#3270742
272 OPEN target_response_cur;
273 FETCH target_response_cur INTO l_target_response_doctype;
274 IF target_response_cur%NOTFOUND THEN
275 l_target_response_doctype := null;
276 END IF;
277 CLOSE target_response_cur;
278
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,'1000:Entering OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables. ');
282 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:source busdoc id: '||to_char(p_source_doc_id));
283 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:target busdoc id: '||to_char(p_target_doc_id));
284 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:target busdoc type: '||p_target_doc_type);
285 END IF;
286
287
288 OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables (
289 p_api_version => 1,
290 p_init_msg_list => FND_API.G_FALSE,
291 p_source_doc_id => p_source_doc_id,
292 p_source_doc_type => p_source_doc_type,
293 p_target_doc_id => p_target_doc_id,
294 p_target_doc_type => p_target_doc_type,
295 p_initialize_status_yn => p_initialize_status_yn,
296 p_reset_fixed_date_yn => p_reset_fixed_date_yn,
297 p_target_contractual_doctype => p_target_contractual_doctype,
298 p_target_response_doctype => l_target_response_doctype,
299 p_target_doc_number => p_document_number,
300 p_copy_del_attachments_yn => p_copy_del_attachments_yn,
301 p_internal_party_id => p_internal_party_id,
302 p_internal_contact_id => p_internal_contact_id,
303 p_external_party_id => p_external_party_id,
304 p_external_party_site_id => p_external_party_site_id,
305 p_external_contact_id => p_external_contact_id,
306 x_msg_data => x_msg_data,
307 x_msg_count => x_msg_count,
308 x_return_status => x_return_status
309 -- ,p_add_only_amend_deliverables => p_add_only_amend_deliverables
310 , P_RETAIN_LOCK_DELIVERABLES_YN => P_RETAIN_LOCK_DELIVERABLES_YN
311 );
312
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,'1100:Finished OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables ');
315 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);
316 END IF;
317
318 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
319 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
320 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
321 RAISE FND_API.G_EXC_ERROR ;
322 END IF;
323
324 END IF;
325 -------------------------------------------------------
326
327 IF (l_copy_deliverables ='Y' AND p_copy_for_amendment='Y') THEN
328
329 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
330 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:Entering OKC_DELIVERABLE_PROCESS_PVT.copy_del_for_amendment.');
331 END IF;
332
333
334 OKC_DELIVERABLE_PROCESS_PVT.copy_del_for_amendment (
335 p_api_version => 1,
336 p_init_msg_list => FND_API.G_FALSE,
337 p_source_doc_id => p_source_doc_id,
338 p_source_doc_type => p_source_doc_type,
339 p_target_doc_id => p_target_doc_id,
340 p_target_doc_type => p_target_doc_type,
341 p_reset_fixed_date_yn => p_reset_fixed_date_yn,
342 p_target_doc_number => p_document_number,
343 x_msg_data => x_msg_data,
344 x_msg_count => x_msg_count,
345 x_return_status => x_return_status,
346 p_copy_del_attachments_yn => p_copy_del_attachments_yn,
347 p_target_contractual_doctype => p_target_contractual_doctype);
348
349 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
350 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:Finished OKC_DELIVERABLE_PROCESS_PVT.copy_del_for_amendment. ');
351 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);
352 END IF;
353
354 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
355 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
356 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
357 RAISE FND_API.G_EXC_ERROR ;
358 END IF;
359
360 END IF;
361
362 --Added l_copy_primary_doc_flag for 10+ word integration
363 ---------------------------------------------------------
364 l_contract_source := OKC_TERMS_UTIL_GRP.Get_Contract_Source_code(
365 p_document_type => p_source_doc_type,
366 p_document_id => p_source_doc_id
367 );
368 IF (l_contract_source = 'E') THEN
369 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
370 END IF;
371
372 ---------------------------------------------------------
373
374 IF (p_copy_doc_attachments ='N' AND l_contract_source = 'ATTACHED') THEN
375 /* Copy only primary contract doc, p_copy_primary_doc_flag is set to 'Y'*/
376 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
377 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1150:Entering OKC_CONTRACT_DOCS_GRP.Copy_Attachments ');
378 END IF;
379
380 OKC_CONTRACT_DOCS_GRP.Copy_Attachments (
381 p_api_version =>1,
382 p_init_msg_list =>FND_API.G_FALSE,
383 x_msg_data => x_msg_data,
384 x_msg_count => x_msg_count,
385 x_return_status => x_return_status,
386 p_from_bus_doc_type => p_source_doc_type ,
387 p_from_bus_doc_id => p_source_doc_id,
388 p_from_bus_doc_version => -99,
389 p_to_bus_doc_type => p_target_doc_type,
390 p_to_bus_doc_id => p_target_doc_id,
391 p_to_bus_doc_version => -99,
392 p_copy_by_ref => p_copy_attachments_by_ref,
393 p_copy_primary_doc_flag => 'Y') ;
394
395 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
396 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1151:Finished OKC_CONTRACT_DOCS_GRP.Copy_Attachments ');
397 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);
398 END IF;
399
400 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
401 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
402 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
403 RAISE FND_API.G_EXC_ERROR ;
404 END IF;
405 ELSIF (p_copy_doc_attachments ='Y' ) THEN
406 /* Copy all attachments*/
407 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
408 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1156:Entering OKC_CONTRACT_DOCS_GRP.Copy_Attachments ');
409 END IF;
410
411 OKC_CONTRACT_DOCS_GRP.Copy_Attachments (
412 p_api_version =>1,
413 p_init_msg_list =>FND_API.G_FALSE,
414 x_msg_data => x_msg_data,
415 x_msg_count => x_msg_count,
416 x_return_status => x_return_status,
417 p_from_bus_doc_type => p_source_doc_type ,
418 p_from_bus_doc_id => p_source_doc_id,
419 p_from_bus_doc_version => -99,
420 p_to_bus_doc_type => p_target_doc_type,
421 p_to_bus_doc_id => p_target_doc_id,
422 p_to_bus_doc_version => -99,
423 p_copy_by_ref => p_copy_attachments_by_ref,
424 p_copy_primary_doc_flag => 'N',
425 p_copy_for_amendment => p_copy_for_amendment) ;
426
427 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
428 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1157:Finished OKC_CONTRACT_DOCS_GRP.Copy_Attachments ');
429 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);
430 END IF;
431
432 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
433 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
434 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
435 RAISE FND_API.G_EXC_ERROR ;
436 END IF;
437 END IF;
438
439 -------------------------------------------------------------
440
441
442 -- CLM changes Begins Call renumber after applying template on a document
443
444 OPEN l_get_num_scheme_id(p_doc_type => p_target_doc_type, p_doc_id => p_target_doc_id) ;
445 FETCH l_get_num_scheme_id INTO l_num_scheme_id;
446 CLOSE l_get_num_scheme_id;
447
448 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
449 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: l_num_scheme_id : '||l_num_scheme_id);
450 END IF;
451
452
453 IF NVL(l_num_scheme_id,0) <> 0 THEN
454
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,'600: Calling apply_numbering_scheme for num_scheme_id : '||l_num_scheme_id);
457 END IF;
458
459 OKC_NUMBER_SCHEME_GRP.apply_numbering_scheme(
460 p_api_version => p_api_version,
461 p_init_msg_list => FND_API.G_FALSE,
462 x_return_status => x_return_status,
463 x_msg_count => x_msg_count,
464 x_msg_data => x_msg_data,
465 p_validate_commit => FND_API.G_FALSE,
466 p_validation_string => null,
467 p_commit => FND_API.G_FALSE,
468 p_doc_type => p_target_doc_type,
469 p_doc_id => p_target_doc_id,
470 p_num_scheme_id => l_num_scheme_id
471 );
472
473
474 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
475 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);
476 END IF;
477
478 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
479 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
480 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
481 RAISE FND_API.G_EXC_ERROR ;
482 END IF;
483
484
485 END IF; --l_num_scheme_id is not 0
486
487 -- CLM changes Ends
488
489 IF FND_API.To_Boolean( p_commit ) THEN
490 COMMIT WORK;
491 END IF;
492
493 -- Standard call to get message count and if count is 1, get message info.
494 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
495
496 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
497 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000: Leaving copy_doc');
498 END IF;
499
500 EXCEPTION
501
502 WHEN FND_API.G_EXC_ERROR THEN
503
504 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
505 FND_LOG.STRING( FND_LOG.LEVEL_ERROR ,g_module||l_api_name,'800: Leaving copy_doc: OKC_API.G_EXCEPTION_ERROR Exception');
506 END IF;
507
508 ROLLBACK TO g_copy_doc_grp;
509 x_return_status := G_RET_STS_ERROR ;
510 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
511
512 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
513 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
514 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'900: Leaving copy_doc: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
515 END IF;
516
517 ROLLBACK TO g_copy_doc_grp;
518 x_return_status := G_RET_STS_UNEXP_ERROR ;
519 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
520
521 WHEN OTHERS THEN
522 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
523 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'1000: Leaving copy_doc because of EXCEPTION: '||sqlerrm);
524 END IF;
525
526 ROLLBACK TO g_copy_doc_grp;
527 x_return_status := G_RET_STS_UNEXP_ERROR ;
528 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
529 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
530 END IF;
531 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
532 END copy_doc;
533
534 /*
535 --To be used when copying a terms template to make a new template or to make a
536 -- woring copy.
537
538 */
539
540 Procedure copy_terms_template (
541 p_api_version IN Number,
542 p_init_msg_list IN Varchar2,
543 p_commit IN Varchar2,
544 p_template_id IN Number,
545 p_tmpl_name IN Varchar2,
546 p_intent IN Varchar2,
547 p_start_date IN Date,
548 p_end_date IN Date,
549 p_instruction_text IN Varchar2,
550 p_description IN Varchar2,
551 p_print_Template_Id IN Number,
552 p_global_flag IN Varchar2,
553 p_contract_expert_enabled IN Varchar2,
554 p_cls_enabled IN Varchar2 default 'N',
555 p_xprt_clause_mandatory_flag IN VARCHAR2 := NULL,
556 p_xprt_scn_code IN VARCHAR2 := NULL,
557 p_attribute_category IN Varchar2,
558 p_attribute1 IN Varchar2,
559 p_attribute2 IN Varchar2,
560 p_attribute3 IN Varchar2,
561 p_attribute4 IN Varchar2,
562 p_attribute5 IN Varchar2,
563 p_attribute6 IN Varchar2,
564 p_attribute7 IN Varchar2,
565 p_attribute8 IN Varchar2,
566 p_attribute9 IN Varchar2,
567 p_attribute10 IN Varchar2,
568 p_attribute11 IN Varchar2,
569 p_attribute12 IN Varchar2,
570 p_attribute13 IN Varchar2,
571 p_attribute14 IN Varchar2,
572 p_attribute15 IN Varchar2,
573 p_copy_deliverables IN Varchar2,
574 p_translated_from_tmpl_id IN Number,
575 p_language IN Varchar2,
576 x_template_id OUT NOCOPY Number,
577 x_return_status OUT NOCOPY Varchar2,
578 x_msg_data OUT NOCOPY Varchar2,
579 x_msg_count OUT NOCOPY Number
580 )IS
581 l_api_version CONSTANT NUMBER := 1;
582 l_api_name CONSTANT VARCHAR2(30) := 'copy_terms_template';
583 l_template_rec OKC_TERMS_TEMPLATES_PVT.template_rec_type;
584 l_document_type OKC_BUS_DOC_TYPES_B.DOCUMENT_TYPE%TYPE := OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE;
585 l_dummy VARCHAR2(1) :='?';
586 l_deliverables_exist VARCHAR2(100);
587
588 CURSOR l_get_tmpl_csr IS
589 SELECT * FROM OKC_TERMS_TEMPLATES_ALL
590 WHERE template_id=p_template_id;
591
592 CURSOR l_check_tmpl_name_csr(b_org_id NUMBER) IS
593 SELECT 'x' FROM OKC_TERMS_TEMPLATES_ALL
594 WHERE org_id=b_org_id
595 AND template_name=p_tmpl_name;
596
597 l_tmpl_rec l_get_tmpl_csr%ROWTYPE;
598
599 l_article_effective_date DATE;
600
601 BEGIN
602
603 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
604 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Entered OKC_TERMS_COPY_GRP.copy_terms_template');
605 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Parameter List ');
606 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_api_version : '||p_api_version);
607 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_init_msg_list : '||p_init_msg_list);
608 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_commit : '||p_commit);
609 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_template_id : '||p_template_id);
610 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_tmpl_name : '||p_tmpl_name);
611 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_intent : '||p_intent);
612 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_start_date : '||p_start_date);
613 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_end_date : '||p_end_date);
614 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_print_Template_Id : '||p_print_Template_Id);
615 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_global_flag : '||p_global_flag);
616 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_contract_expert_enabled : '||p_contract_expert_enabled);
617 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_deliverables : '||p_copy_deliverables);
618 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_attribute_category : '||p_attribute_category);
619 END IF;
620
621
622 -- Standard Start of API savepoint
623 SAVEPOINT g_copy_terms_template_GRP;
624
625 -- Standard call to check for call compatibility.
626 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
627 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
628 END IF;
629
630 -- Initialize message list if p_init_msg_list is set to TRUE.
631 IF FND_API.to_Boolean( p_init_msg_list ) THEN
632 FND_MSG_PUB.initialize;
633 END IF;
634
635 -- Initialize API return status to success
636 x_return_status := FND_API.G_RET_STS_SUCCESS;
637
638 OPEN l_get_tmpl_csr;
639 FETCH l_get_tmpl_csr INTO l_tmpl_rec;
640 CLOSE l_get_tmpl_csr;
641
642 SELECT mo_global.get_current_org_id()
643 INTO l_template_rec.org_id from dual;
644
645 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
646 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'110: Current Org Id : '||l_template_rec.org_id);
647 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'));
648 END IF;
649
650 -- check if copy from Global to Local Org
651 -- In that case make global_yn for Local Org template to N
652
653 IF nvl(fnd_profile.value('OKC_GLOBAL_ORG_ID'),'-99') <> l_template_rec.org_id THEN
654 l_template_rec.global_flag := 'N';
655 ELSE
656 -- keep flag as is as this is within the same org copy
657 l_template_rec.global_flag := p_global_flag;
658 END IF; -- check orgs
659
660
661 OPEN l_check_tmpl_name_csr(l_template_rec.org_id);
662 FETCH l_check_tmpl_name_csr INTO l_dummy;
663
664 IF l_check_tmpl_name_csr%FOUND THEN
665
666 okc_Api.Set_Message(p_app_name => G_APP_NAME,
667 p_msg_name => 'OKC_SAME_TMPL_NAME');
668 RAISE FND_API.G_EXC_ERROR ;
669
670 END IF;
671
672 CLOSE l_check_tmpl_name_csr;
673
674
675 l_template_rec.template_name := p_tmpl_name;
676 l_template_rec.working_copy_flag := 'N';
677 l_template_rec.parent_template_id := NULL;
678 l_template_rec.intent := p_intent;
679 l_template_rec.status_code := 'DRAFT';
680 l_template_rec.start_date := p_start_date;
681 l_template_rec.end_date := p_end_date;
682 -- l_template_rec.global_flag := p_global_flag;
683 l_template_rec.contract_expert_enabled := p_contract_expert_enabled;
684 l_template_rec.cls_enabled := p_cls_enabled;
685 l_template_rec.xprt_clause_mandatory_flag := p_xprt_clause_mandatory_flag;
686 l_template_rec.xprt_scn_code := p_xprt_scn_code;
687 l_template_rec.instruction_text := p_instruction_text;
688 l_template_rec.description := p_description;
689 l_template_rec.print_Template_Id := p_print_Template_Id;
690 l_template_rec.tmpl_numbering_scheme := l_tmpl_rec.tmpl_numbering_scheme;
691 l_template_rec.attribute_category := p_attribute_category;
692 l_template_rec.attribute1 := p_attribute1;
693 l_template_rec.attribute2 := p_attribute2;
694 l_template_rec.attribute3 := p_attribute3;
695 l_template_rec.attribute4 := p_attribute4;
696 l_template_rec.attribute5 := p_attribute5;
697 l_template_rec.attribute6 := p_attribute6;
698 l_template_rec.attribute7 := p_attribute7;
699 l_template_rec.attribute8 := p_attribute8;
700 l_template_rec.attribute9 := p_attribute9;
701 l_template_rec.attribute10 := p_attribute10;
702 l_template_rec.attribute11 := p_attribute11;
703 l_template_rec.attribute12 := p_attribute12;
704 l_template_rec.attribute13 := p_attribute13;
705 l_template_rec.attribute14 := p_attribute14;
706 l_template_rec.attribute15 := p_attribute15;
707 --MLS for templates
708 l_template_rec.language := p_language;
709
710
711 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
712 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: calling OKC_TERMS_COPY_PVT.copy_tc');
713 END IF;
714
715 /*
716 New Business Rules for p_article_effective_date in template to template copy
717 */
718 IF NVL(p_end_date,sysdate) >= sysdate THEN
719 IF p_start_date > sysdate THEN
720 l_article_effective_date := p_start_date;
721 ELSE
722 l_article_effective_date := sysdate;
723 END IF;
724 ELSE
725 l_article_effective_date := p_end_date;
726 END IF;
727
728 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
729 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: l_article_effective_date : '||l_article_effective_date);
730 END IF;
731
732
733 OKC_TERMS_COPY_PVT.copy_tc(
734 p_api_version => 1,
735 p_init_msg_list => FND_API.G_FALSE,
736 p_commit => FND_API.G_FALSE,
737 p_source_doc_type => OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE,
738 p_source_doc_id => p_template_id,
739 p_target_doc_type => l_document_type,
740 p_target_doc_id => x_template_id,
741 p_keep_version => 'N',
742 p_article_effective_date => l_article_effective_date,
743 p_target_template_rec => l_template_rec,
744 x_return_status => x_return_status,
745 x_msg_data => x_msg_data,
746 x_msg_count => x_msg_count);
747 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
748 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);
749 END IF;
750
751 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
752 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
753 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
754 RAISE FND_API.G_EXC_ERROR ;
755 END IF;
756 -----------------------------------
757 /* Fix for the Bug# 4113678, check whether if the deliverables exist before copying deliverables */
758
759 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
760 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: calling okc_terms_util_grp.Is_Deliverable_Exist');
761 END IF;
762
763 l_deliverables_exist := okc_terms_util_grp.Is_Deliverable_Exist(
764 p_api_version => 1,
765 p_init_msg_list => FND_API.G_FALSE,
766 x_return_status => x_return_status,
767 x_msg_data => x_msg_data,
768 x_msg_count => x_msg_count,
769 p_doc_type => 'TEMPLATE',
770 p_doc_id => p_template_id);
771
772 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
773 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);
774 END IF;
775
776 l_deliverables_exist := UPPER(nvl(l_deliverables_exist,'NONE'));
777
778 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
779 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'700: l_deliverables_exist: ' || l_deliverables_exist);
780 END IF;
781
782 IF ( p_copy_deliverables='Y' AND l_deliverables_exist <> 'NONE') THEN
783
784 /* Call Deliverable API to copy Deliverables */
785
786 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
787 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:Entering OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables. ');
788 END IF;
789
790
791 OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables (
792 p_api_version => 1,
793 p_init_msg_list => FND_API.G_FALSE,
794 p_source_doc_type => OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE,
795 p_source_doc_id => p_template_id,
796 p_target_doc_type => l_document_type,
797 p_target_doc_id => x_template_id,
798 p_internal_party_id => l_template_rec.org_id, -- bug#4335441
799 p_internal_contact_id => Null,
800 p_external_party_id => Null,
801 p_external_contact_id => Null,
802 p_target_doc_number => x_template_id, -- bug#3722131
803 p_copy_del_attachments_yn => 'Y',
804 x_msg_data => x_msg_data,
805 x_msg_count => x_msg_count,
806 x_return_status => x_return_status );
807
808 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
809 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:Finished OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables ');
810 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);
811 END IF;
812
813 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
814 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
815 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
816 RAISE FND_API.G_EXC_ERROR ;
817 END IF;
818
819 END IF;
820
821
822
823
824 -----------------------------------
825 IF FND_API.To_Boolean( p_commit ) THEN
826 COMMIT WORK;
827 END IF;
828
829 -- Standard call to get message count and if count is 1, get message info.
830 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
831
832 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
833 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000: Leaving copy_terms_template');
834 END IF;
835
836 EXCEPTION
837
838 WHEN FND_API.G_EXC_ERROR THEN
839
840 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
841 FND_LOG.STRING( FND_LOG.LEVEL_ERROR ,g_module||l_api_name,'800: Leaving copy_terms_template: OKC_API.G_EXCEPTION_ERROR Exception');
842 END IF;
843
844 IF l_get_tmpl_csr%ISOPEN THEN
845 CLOSE l_get_tmpl_csr;
846 END IF;
847
848 IF l_check_tmpl_name_csr%ISOPEN THEN
849 CLOSE l_check_tmpl_name_csr;
850 END IF;
851
852 ROLLBACK TO g_copy_terms_template_grp;
853 x_return_status := G_RET_STS_ERROR ;
854 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
855
856 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
857 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
858 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'900: Leaving copy_terms_template: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
859 END IF;
860
861 IF l_get_tmpl_csr%ISOPEN THEN
862 CLOSE l_get_tmpl_csr;
863 END IF;
864
865 IF l_check_tmpl_name_csr%ISOPEN THEN
866 CLOSE l_check_tmpl_name_csr;
867 END IF;
868
869 ROLLBACK TO g_copy_terms_template_grp;
870 x_return_status := G_RET_STS_UNEXP_ERROR ;
871 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
872
873 WHEN OTHERS THEN
874 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
875 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'1000: Leaving copy_terms_template because of EXCEPTION: '||sqlerrm);
876 END IF;
877
878 IF l_get_tmpl_csr%ISOPEN THEN
879 CLOSE l_get_tmpl_csr;
880 END IF;
881
882 IF l_check_tmpl_name_csr%ISOPEN THEN
883 CLOSE l_check_tmpl_name_csr;
884 END IF;
885
886 ROLLBACK TO g_copy_terms_template_grp;
887 x_return_status := G_RET_STS_UNEXP_ERROR ;
888 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
889 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
890 END IF;
891 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
892 END copy_terms_template;
893
894 /*
895 --To be used when instantiating a term on a document.
896 */
897 Procedure copy_terms (
898 p_api_version IN Number,
899 p_init_msg_list IN Varchar2 ,
900 p_commit IN Varchar2 ,
901 p_template_id IN Number,
902 p_target_doc_type IN Varchar2,
903 p_target_doc_id IN Number,
904 p_article_effective_date IN Date ,
905 p_retain_deliverable IN Varchar2 ,
906 p_target_contractual_doctype IN Varchar2,
907 p_target_response_doctype IN Varchar2,
908 p_internal_party_id IN Number ,
909 p_internal_contact_id IN Number ,
910 p_external_party_id IN Number ,
911 p_external_party_site_id IN Number ,
912 p_external_contact_id IN Number ,
913 p_validate_commit IN Varchar2 ,
914 p_validation_string IN Varchar2,
915 p_document_number IN Varchar2 ,
916 x_return_status OUT NOCOPY Varchar2,
917 x_msg_data OUT NOCOPY Varchar2,
918 x_msg_count OUT NOCOPY Number,
919 p_retain_clauses IN Varchar2 , --kkolukul: clm changes
920 p_contract_admin_id IN NUMBER := NULL,
921 p_legal_contact_id IN NUMBER := NULL
922 ) IS
923
924 l_api_version CONSTANT NUMBER := 1;
925 l_api_name CONSTANT VARCHAR2(30) := 'copy_terms';
926 l_ok_to_commit VARCHAR2(1);
927 l_document_id OKC_TEMPLATE_USAGES.DOCUMENT_ID%TYPE := p_target_doc_id;
928 l_document_type OKC_BUS_DOC_TYPES_B.DOCUMENT_TYPE%TYPE := p_target_doc_type;
929 l_template_exists VARCHAR2(1);
930
931 CURSOR target_response_cur IS
932 SELECT TARGET_RESPONSE_DOC_TYPE
933 FROM okc_bus_doc_types_b
934 WHERE document_type = p_target_doc_type
935 AND document_type_class = 'SOURCING';
936
937 l_target_response_doctype okc_bus_doc_types_b.TARGET_RESPONSE_DOC_TYPE%TYPE;
938
939 CURSOR l_get_num_scheme_id(p_doc_type IN VARCHAR2, p_doc_id IN NUMBER) IS
940 SELECT doc_numbering_scheme
941 FROM okc_template_usages
942 WHERE document_type = p_doc_type
943 AND document_id = p_doc_id;
944
945 l_num_scheme_id NUMBER:=0;
946 -- bug#4113619
947 CURSOR enable_deliverables_cur IS
948 SELECT enable_deliverables_yn
949 FROM okc_bus_doc_types_b
950 WHERE document_type = p_target_doc_type;
951 l_enable_deliverables VARCHAR2(1);
952
953 BEGIN
954
955 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
956 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Entered OKC_TERMS_COPY_GRP.copy_terms');
957 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Parameter List ');
958 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_api_version : '||p_api_version);
959 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_init_msg_list : '||p_init_msg_list);
960 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_commit : '||p_commit);
961 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_template_id : '||p_template_id);
962 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_type : '||p_target_doc_type);
963 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_id : '||p_target_doc_id);
964 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_article_effective_date : '||p_article_effective_date);
965 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_retain_deliverable : '||p_retain_deliverable);
966 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_contractual_doctype : '||p_target_contractual_doctype);
967 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_response_doctype : '||p_target_response_doctype);
968 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_validate_commit : '||p_validate_commit);
969 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_validation_string : '||p_validation_string);
970 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_document_number : '||p_document_number);
971 END IF;
972
973
974 -- Standard Start of API savepoint
975 SAVEPOINT g_copy_terms_GRP;
976
977 -- Standard call to check for call compatibility.
978 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
979 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
980 END IF;
981
982 -- Initialize message list if p_init_msg_list is set to TRUE.
983 IF FND_API.to_Boolean( p_init_msg_list ) THEN
984 FND_MSG_PUB.initialize;
985 END IF;
986
987 IF FND_API.To_Boolean( p_validate_commit ) AND
988 NOT FND_API.To_Boolean(OKC_TERMS_UTIL_GRP.ok_to_commit (
989 p_api_version => l_api_version,
990 p_init_msg_list => FND_API.G_FALSE,
991 p_doc_type => p_target_doc_type,
992 p_doc_id => p_target_doc_id,
993 p_validation_string =>p_validation_string,
994 p_tmpl_change => 'Y',
995 x_return_status => x_return_status,
996 x_msg_data => x_msg_data,
997 x_msg_count => x_msg_count) ) THEN
998
999 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1000 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'700: Issue with document header Record.Cannot commit');
1001 END IF;
1002 RAISE FND_API.G_EXC_ERROR ;
1003 END IF;
1004
1005 /*Clm Changes : Donot apply multiple templates if the template is already applied on the doc. */
1006 IF (p_retain_clauses = 'Y') THEN
1007 l_template_exists := OKC_CLM_PKG.check_dup_templates(p_document_type => p_target_doc_type,
1008 p_document_id =>p_target_doc_id,
1009 p_template_id => p_template_id);
1010
1011 IF l_template_exists = 'Y' THEN
1012 okc_Api.Set_Message(p_app_name => G_APP_NAME,
1013 p_msg_name => 'OKC_SAME_TMPL_NAME');
1014 RAISE FND_API.G_EXC_ERROR ;
1015 END IF;
1016 END IF;
1017 -- end CLM Changes
1018
1019 -- Initialize API return status to success
1020 x_return_status := FND_API.G_RET_STS_SUCCESS;
1021
1022 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1023 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: calling OKC_TERMS_COPY_PVT.copy_tc');
1024 END IF;
1025
1026 OKC_TERMS_COPY_PVT.copy_tc(
1027 p_api_version => 1,
1028 p_init_msg_list => FND_API.G_FALSE,
1029 p_commit => FND_API.G_FALSE,
1030 p_source_doc_type => OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE,
1031 p_source_doc_id => p_template_id,
1032 p_target_doc_type => l_document_type,
1033 p_target_doc_id => l_document_id,
1034 p_document_number => p_document_number,
1035 p_keep_version => 'N',
1036 p_article_effective_date => p_article_effective_date,
1037 p_target_template_rec => G_TEMPLATE_MISS_REC,
1038 p_retain_deliverable => p_retain_deliverable,
1039 x_return_status => x_return_status,
1040 x_msg_data => x_msg_data,
1041 x_msg_count => x_msg_count,
1042 p_contract_admin_id => p_contract_admin_id,
1043 p_legal_contact_id => p_legal_contact_id,
1044 p_retain_clauses => p_retain_clauses);
1045
1046 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1047 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);
1048 END IF;
1049
1050 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1051 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1052 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1053 RAISE FND_API.G_EXC_ERROR ;
1054 END IF;
1055
1056
1057 ----------------------------------
1058 /* Call Deliverable API to copy Deliverables */
1059 -- check if deliverables are enables for this document bug#4113619
1060 OPEN enable_deliverables_cur;
1061 FETCH enable_deliverables_cur into l_enable_deliverables;
1062 CLOSE enable_deliverables_cur;
1063
1064 IF l_enable_deliverables = 'Y' THEN
1065
1066 -- get the target response doctype if the target is a
1067 -- Sourcing document (RFQ,RFI,AUCTION)Bug#3270742
1068 OPEN target_response_cur;
1069 FETCH target_response_cur INTO l_target_response_doctype;
1070 CLOSE target_response_cur;
1071
1072 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1073 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:Entering OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables ');
1074 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:l_target_response_doctype: '||l_target_response_doctype);
1075 END IF;
1076
1077
1078 OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables (
1079 p_api_version => 1,
1080 p_init_msg_list => FND_API.G_FALSE,
1081 p_source_doc_type => OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE,
1082 p_source_doc_id => p_template_id,
1083 p_target_doc_type => l_document_type,
1084 p_target_doc_id => l_document_id,
1085 p_target_doc_number => p_document_number,
1086 p_internal_party_id => p_internal_party_id,
1087 p_internal_contact_id => p_internal_contact_id,
1088 p_external_party_id => p_external_party_id,
1089 p_external_party_site_id => p_external_party_site_id,
1090 p_external_contact_id => p_external_contact_id,
1091 p_target_contractual_doctype => p_target_contractual_doctype,
1092 p_target_response_doctype => l_target_response_doctype,
1093 p_copy_del_attachments_yn => 'Y',
1094 x_msg_data => x_msg_data,
1095 x_msg_count => x_msg_count,
1096 x_return_status => x_return_status );
1097
1098 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1099 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:Finished OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables ');
1100 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);
1101 END IF;
1102
1103 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1104 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1105 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1106 RAISE FND_API.G_EXC_ERROR ;
1107 END IF;
1108
1109 END IF; -- l_enable_deliverables = 'Y' THEN
1110
1111 -- Bug 3674173 : Call renumber after applying template on a document
1112
1113 OPEN l_get_num_scheme_id(p_doc_type => l_document_type, p_doc_id => l_document_id) ;
1114 FETCH l_get_num_scheme_id INTO l_num_scheme_id;
1115 CLOSE l_get_num_scheme_id;
1116
1117 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1118 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: l_num_scheme_id : '||l_num_scheme_id);
1119 END IF;
1120
1121 --kkolukul: clm changes: to re-apply empty numbering scheme
1122 IF (NVL(l_num_scheme_id,0) <> 0 OR p_retain_clauses = 'Y') THEN
1123
1124 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1125 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);
1126 END IF;
1127
1128 OKC_NUMBER_SCHEME_GRP.apply_numbering_scheme(
1129 p_api_version => p_api_version,
1130 p_init_msg_list => FND_API.G_FALSE,
1131 x_return_status => x_return_status,
1132 x_msg_count => x_msg_count,
1133 x_msg_data => x_msg_data,
1134 p_validate_commit => FND_API.G_FALSE,
1135 p_validation_string => p_validation_string,
1136 p_commit => FND_API.G_FALSE,
1137 p_doc_type => l_document_type,
1138 p_doc_id => l_document_id,
1139 p_num_scheme_id => l_num_scheme_id
1140 );
1141
1142
1143 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1144 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);
1145 END IF;
1146
1147 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1148 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1149 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1150 RAISE FND_API.G_EXC_ERROR ;
1151 END IF;
1152
1153
1154 END IF; --l_num_scheme_id is not 0
1155
1156
1157
1158 -- End Bug 3674173
1159
1160
1161 ------------------------------------
1162 IF FND_API.To_Boolean( p_commit ) THEN
1163 COMMIT WORK;
1164 END IF;
1165
1166 -- Standard call to get message count and if count is 1, get message info.
1167 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1168
1169 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1170 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000: Leaving copy_terms');
1171 END IF;
1172
1173
1174
1175 EXCEPTION
1176
1177 WHEN FND_API.G_EXC_ERROR THEN
1178
1179 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1180 FND_LOG.STRING( FND_LOG.LEVEL_ERROR ,g_module||l_api_name,'800: Leaving copy_terms: OKC_API.G_EXCEPTION_ERROR Exception');
1181 END IF;
1182
1183 ROLLBACK TO g_copy_terms_grp;
1184 x_return_status := G_RET_STS_ERROR ;
1185 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1186
1187 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1188 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1189 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'900: Leaving copy_terms: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
1190 END IF;
1191
1192
1193 ROLLBACK TO g_copy_terms_grp;
1194 x_return_status := G_RET_STS_UNEXP_ERROR ;
1195 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1196
1197 WHEN OTHERS THEN
1198 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1199 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'1000: Leaving copy_terms because of EXCEPTION: '||sqlerrm);
1200 END IF;
1201
1202 ROLLBACK TO g_copy_terms_grp;
1203 x_return_status := G_RET_STS_UNEXP_ERROR ;
1204 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1205 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1206 END IF;
1207 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1208
1209
1210 END copy_terms;
1211
1212 /* To be used to create Revision of a Template */
1213
1214 Procedure create_template_revision (
1215 p_api_version IN Number,
1216 p_init_msg_list IN Varchar2 default FND_API.G_FALSE,
1217 p_commit IN Varchar2 default FND_API.G_FALSE,
1218 p_template_id IN Number,
1219 p_copy_deliverables IN Varchar2 default 'Y',
1220 x_template_id OUT NOCOPY Number,
1221 x_return_status OUT NOCOPY Varchar2,
1222 x_msg_data OUT NOCOPY Varchar2,
1223 x_msg_count OUT NOCOPY Number) IS
1224
1225 l_api_version CONSTANT NUMBER := 1;
1226 l_api_name CONSTANT VARCHAR2(30) := 'create_template_revision';
1227 l_template_rec OKC_TERMS_TEMPLATES_PVT.template_rec_type;
1228 l_document_type OKC_BUS_DOC_TYPES_B.DOCUMENT_TYPE%TYPE := OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE;
1229 l_copy_deliverables VARCHAR2(1);
1230
1231 CURSOR l_get_tmpl_csr IS
1232 SELECT * FROM OKC_TERMS_TEMPLATES_ALL
1233 WHERE template_id=p_template_id;
1234
1235 l_tmpl_rec l_get_tmpl_csr%ROWTYPE;
1236 BEGIN
1237
1238 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1239 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Entered OKC_TERMS_COPY_GRP.create_template_revision');
1240 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Parameter List ');
1241 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_api_version : '||p_api_version);
1242 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_init_msg_list : '||p_init_msg_list);
1243 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_commit : '||p_commit);
1244 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_template_id : '||p_template_id);
1245 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_deliverables : '||p_copy_deliverables);
1246 END IF;
1247
1248
1249 -- Standard Start of API savepoint
1250 SAVEPOINT g_create_template_revision_GRP;
1251
1252 -- Standard call to check for call compatibility.
1253 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1254 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1255 END IF;
1256
1257 -- Initialize message list if p_init_msg_list is set to TRUE.
1258 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1259 FND_MSG_PUB.initialize;
1260 END IF;
1261
1262 -- Initialize API return status to success
1263 x_return_status := FND_API.G_RET_STS_SUCCESS;
1264
1265 OPEN l_get_tmpl_csr;
1266 FETCH l_get_tmpl_csr INTO l_tmpl_rec;
1267 CLOSE l_get_tmpl_csr;
1268
1269 l_template_rec.template_name := l_tmpl_rec.template_name;
1270 l_template_rec.working_copy_flag := 'Y';
1271 l_template_rec.parent_template_id := p_template_id;
1272 l_template_rec.intent := l_tmpl_rec.intent;
1273 l_template_rec.status_code := 'REVISION';
1274 l_template_rec.start_date := l_tmpl_rec.start_date;
1275 l_template_rec.end_date := l_tmpl_rec.end_date;
1276 l_template_rec.global_flag := l_tmpl_rec.global_flag;
1277 l_template_rec.print_template_id := l_tmpl_rec.print_template_id;
1278 l_template_rec.contract_expert_enabled:= l_tmpl_rec.contract_expert_enabled;
1279 l_template_rec.cls_enabled := l_tmpl_rec.cls_enabled;
1280 l_template_rec.instruction_text := l_tmpl_rec.instruction_text;
1281 l_template_rec.description := l_tmpl_rec.description;
1282 l_template_rec.org_id := l_tmpl_rec.org_id;
1283 l_template_rec.tmpl_numbering_scheme := l_tmpl_rec.tmpl_numbering_scheme;
1284 l_template_rec.template_model_id := l_tmpl_rec.template_model_id;
1285 l_template_rec.orig_system_reference_code:=l_tmpl_rec.orig_system_reference_code;
1286 l_template_rec.orig_system_reference_id1:=l_tmpl_rec.orig_system_reference_id1;
1287 l_template_rec.orig_system_reference_id2:=l_tmpl_rec.orig_system_reference_id2;
1288 l_template_rec.attribute_category := l_tmpl_rec.attribute_category;
1289 l_template_rec.attribute1 := l_tmpl_rec.attribute1;
1290 l_template_rec.attribute2 := l_tmpl_rec.attribute2;
1291 l_template_rec.attribute3 := l_tmpl_rec.attribute3;
1292 l_template_rec.attribute4 := l_tmpl_rec.attribute4;
1293 l_template_rec.attribute5 := l_tmpl_rec.attribute5;
1294 l_template_rec.attribute6 := l_tmpl_rec.attribute6;
1295 l_template_rec.attribute7 := l_tmpl_rec.attribute7;
1296 l_template_rec.attribute8 := l_tmpl_rec.attribute8;
1297 l_template_rec.attribute9 := l_tmpl_rec.attribute9;
1298 l_template_rec.attribute10 := l_tmpl_rec.attribute10;
1299 l_template_rec.attribute11 := l_tmpl_rec.attribute11;
1300 l_template_rec.attribute12 := l_tmpl_rec.attribute12;
1301 l_template_rec.attribute13 := l_tmpl_rec.attribute13;
1302 l_template_rec.attribute14 := l_tmpl_rec.attribute14;
1303 l_template_rec.attribute15 := l_tmpl_rec.attribute15;
1304 l_template_rec.cz_export_wf_key := l_tmpl_rec.cz_export_wf_key;
1305 l_template_rec.xprt_clause_mandatory_flag := l_tmpl_rec.xprt_clause_mandatory_flag;
1306 l_template_rec.xprt_scn_code := l_tmpl_rec.xprt_scn_code;
1307 l_template_rec.approval_wf_key := l_tmpl_rec.approval_wf_key;
1308 --MLS for templates
1309 l_template_rec.language := l_tmpl_rec.language;
1310 l_template_rec.translated_from_tmpl_id := l_tmpl_rec.translated_from_tmpl_id;
1311
1312 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1313 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: calling OKC_TERMS_COPY_PVT.copy_tc');
1314 END IF;
1315
1316 OKC_TERMS_COPY_PVT.copy_tc(
1317 p_api_version => 1,
1318 p_init_msg_list => FND_API.G_FALSE,
1319 p_commit => FND_API.G_FALSE,
1320 p_source_doc_type => OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE,
1321 p_source_doc_id => p_template_id,
1322 p_target_doc_type => l_document_type,
1323 p_target_doc_id => x_template_id,
1324 p_keep_version => 'N',
1325 p_article_effective_date => l_tmpl_rec.start_date,
1326 p_target_template_rec => l_template_rec,
1327 x_return_status => x_return_status,
1328 x_msg_data => x_msg_data,
1329 x_msg_count => x_msg_count);
1330 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1331 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);
1332 END IF;
1333
1334 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1335 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1336 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1337 RAISE FND_API.G_EXC_ERROR ;
1338 END IF;
1339 ----------------------------------------------
1340 -- bug#4083525 do not invoke deliverables API for sell side
1341 -- to be removed when sell side deliverables are enabled.
1342 IF l_template_rec.intent = 'S' THEN
1343 l_copy_deliverables := 'N';
1344 ELSE
1345 l_copy_deliverables := p_copy_deliverables;
1346 END IF;
1347
1348 IF l_copy_deliverables='Y' THEN
1349
1350 /* Call Deliverable API to copy Deliverables */
1351
1352 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1353 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:Entering OKC_DELIVERABLE_PROCESS_PVT.CopyDelForTemplateRevision. ');
1354 END IF;
1355 -- bug#4075168 New API for Template Revision replacing copy_deliverables
1356
1357 OKC_DELIVERABLE_PROCESS_PVT.CopyDelForTemplateRevision(
1358 p_api_version => 1,
1359 p_init_msg_list => FND_API.G_FALSE,
1360 p_source_doc_type => OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE,
1361 p_source_doc_id => p_template_id,
1362 p_target_doc_type => l_document_type,
1363 p_target_doc_id => x_template_id,
1364 p_target_doc_number => l_tmpl_rec.template_name,
1365 p_copy_del_attachments_yn => 'Y',
1366 x_msg_data => x_msg_data,
1367 x_msg_count => x_msg_count,
1368 x_return_status => x_return_status );
1369
1370
1371 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1372 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:Finished OKC_DELIVERABLE_PROCESS_PVT.CopyDelForTemplateRevision');
1373 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:OKC_DELIVERABLE_PROCESS_PVT.CopyDelForTemplateRevision x_return_status : '||x_return_status);
1374 END IF;
1375
1376 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1377 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1378 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1379 RAISE FND_API.G_EXC_ERROR ;
1380 END IF;
1381
1382 END IF;-- l_copy_deliverables='Y'
1383
1384 -----------------------------------------------
1385 IF FND_API.To_Boolean( p_commit ) THEN
1386 COMMIT WORK;
1387 END IF;
1388
1389 -- Standard call to get message count and if count is 1, get message info.
1390 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1391
1392 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1393 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000: Leaving create_template_revision');
1394 END IF;
1395
1396 EXCEPTION
1397
1398 WHEN FND_API.G_EXC_ERROR THEN
1399
1400 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1401 FND_LOG.STRING( FND_LOG.LEVEL_ERROR ,g_module||l_api_name,'800: Leaving create_template_revision: OKC_API.G_EXCEPTION_ERROR Exception');
1402 END IF;
1403
1404 IF l_get_tmpl_csr%ISOPEN THEN
1405 CLOSE l_get_tmpl_csr;
1406 END IF;
1407
1408 ROLLBACK TO g_create_template_revision_grp;
1409 x_return_status := G_RET_STS_ERROR ;
1410 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1411
1412 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1413 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1414 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'900: Leaving create_template_revision: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
1415 END IF;
1416
1417 IF l_get_tmpl_csr%ISOPEN THEN
1418 CLOSE l_get_tmpl_csr;
1419 END IF;
1420
1421 ROLLBACK TO g_create_template_revision_grp;
1422 x_return_status := G_RET_STS_UNEXP_ERROR ;
1423 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1424
1425 WHEN OTHERS THEN
1426 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1427 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'1000: Leaving create_template_revision because of EXCEPTION: '||sqlerrm);
1428 END IF;
1429
1430
1431 IF l_get_tmpl_csr%ISOPEN THEN
1432 CLOSE l_get_tmpl_csr;
1433 END IF;
1434
1435 ROLLBACK TO g_create_template_revision_grp;
1436 x_return_status := G_RET_STS_UNEXP_ERROR ;
1437 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1438 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1439 END IF;
1440 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1441 END create_template_revision;
1442
1443 /*
1444 -- To be used while copying a document from archive to make a new document.
1445 -- This functionality is only supported in OM.
1446 */
1447
1448 Procedure copy_archived_doc (
1449 p_api_version IN Number,
1450 p_init_msg_list IN Varchar2,
1451 p_commit IN Varchar2,
1452 p_source_doc_type IN Varchar2,
1453 p_source_doc_id IN Number,
1454 p_source_version_number IN Number,
1455 p_target_doc_type IN Varchar2,
1456 p_target_doc_id IN Number,
1457 p_document_number IN Varchar2,
1458 p_allow_duplicate_terms IN Varchar2,
1459 x_return_status OUT NOCOPY Varchar2,
1460 x_msg_data OUT NOCOPY Varchar2,
1461 x_msg_count OUT NOCOPY Number
1462 ) IS
1463 l_api_version CONSTANT NUMBER := 1;
1464 l_api_name CONSTANT VARCHAR2(30) := 'copy_archived_doc';
1465 BEGIN
1466
1467 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1468 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Entered OKC_TERMS_COPY_GRP.copy_archived_doc');
1469 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Parameter List ');
1470 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_api_version : '||p_api_version);
1471 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_init_msg_list : '||p_init_msg_list);
1472 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_commit : '||p_commit);
1473 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_type : '||p_source_doc_type);
1474 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_id : '||p_source_doc_id);
1475 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_version_number : '||p_source_version_number);
1476 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_type : '||p_target_doc_type);
1477 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_id : '||p_target_doc_id);
1478 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_document_number : '||p_document_number);
1479 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_allow_duplicate_terms : '||p_allow_duplicate_terms);
1480 END IF;
1481
1482
1483 -- Standard Start of API savepoint
1484 SAVEPOINT g_copy_archived_doc_GRP;
1485
1486 -- Standard call to check for call compatibility.
1487 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1488 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1489 END IF;
1490
1491 -- Initialize message list if p_init_msg_list is set to TRUE.
1492 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1493 FND_MSG_PUB.initialize;
1494 END IF;
1495
1496 -- Initialize API return status to success
1497 x_return_status := FND_API.G_RET_STS_SUCCESS;
1498
1499
1500 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1501 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: calling OKC_TERMS_COPY_PVT.copy_archived_doc');
1502 END IF;
1503
1504 OKC_TERMS_COPY_PVT.copy_archived_doc(
1505 p_api_version => 1,
1506 p_init_msg_list => FND_API.G_FALSE,
1507 p_commit => FND_API.G_FALSE,
1508 p_source_doc_type => p_source_doc_type,
1509 p_source_doc_id => p_source_doc_id,
1510 p_target_doc_type => p_target_doc_type,
1511 p_target_doc_id => p_target_doc_id,
1512 p_source_version_number =>p_source_version_number,
1513 p_document_number => p_document_number,
1514 p_allow_duplicates => p_allow_duplicate_terms,
1515 x_return_status => x_return_status,
1516 x_msg_data => x_msg_data,
1517 x_msg_count => x_msg_count);
1518 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1519 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);
1520 END IF;
1521
1522 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1523 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1524 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1525 RAISE FND_API.G_EXC_ERROR ;
1526 END IF;
1527
1528 IF FND_API.To_Boolean( p_commit ) THEN
1529 COMMIT WORK;
1530 END IF;
1531
1532 -- Standard call to get message count and if count is 1, get message info.
1533 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1534
1535 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1536 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000: Leaving copy_archived_doc');
1537 END IF;
1538
1539 EXCEPTION
1540
1541 WHEN FND_API.G_EXC_ERROR THEN
1542
1543 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1544 FND_LOG.STRING( FND_LOG.LEVEL_ERROR ,g_module||l_api_name,'800: Leaving copy_archived_doc: OKC_API.G_EXCEPTION_ERROR Exception');
1545 END IF;
1546
1547 ROLLBACK TO g_copy_archived_doc_grp;
1548 x_return_status := G_RET_STS_ERROR ;
1549 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1550
1551 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1552 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1553 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'900: Leaving copy_archived_doc: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
1554 END IF;
1555
1556 ROLLBACK TO g_copy_archived_doc_grp;
1557 x_return_status := G_RET_STS_UNEXP_ERROR ;
1558 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1559
1560 WHEN OTHERS THEN
1561 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1562 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'1000: Leaving copy_archived_doc because of EXCEPTION: '||sqlerrm);
1563 END IF;
1564
1565 ROLLBACK TO g_copy_archived_doc_grp;
1566 x_return_status := G_RET_STS_UNEXP_ERROR ;
1567 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1568 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1569 END IF;
1570 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1571 END copy_archived_doc;
1572
1573 /*************************************************************
1574 07-APR-2004 pnayani: bug#3524864 added copy_response_doc API |
1575 This API is used for copying terms, deliverables and document attachments from
1576 one response doc to another. Initially coded to support proxy bidding process in sourcing.
1577 p_source_doc_type - source document type,
1578 p_source_doc_id - source document id,
1579 p_target_doc_type - target document type,
1580 p_target_doc_id - target document id,
1581 p_target_doc_number - target document number,
1582 p_keep_version - passed as 'Y'
1583 - 'N' is not supported as this API is called to copy terms from
1584 - one doc to another keeping the original reference same as the source
1585 p_article_effective_date - article effective date,
1586 p_copy_doc_attachments - flag indicates if doc attachments should be copied, valid values Y/N,
1587 p_allow_duplicate_terms - flag with valid values Y/N,
1588 p_copy_attachments_by_ref - flag indicates if document attachments should be
1589 - physically copied or referenced, valid values Y/N,
1590
1591 *************************************************************/
1592
1593 Procedure copy_response_doc (
1594 p_api_version IN Number,
1595 p_init_msg_list IN Varchar2 ,
1596 p_commit IN Varchar2 ,
1597 p_source_doc_type IN Varchar2,
1598 p_source_doc_id IN Number,
1599 p_target_doc_type IN OUT NOCOPY Varchar2,
1600 p_target_doc_id IN OUT NOCOPY Number,
1601 p_target_doc_number IN Varchar2 ,
1602 p_keep_version IN Varchar2 ,
1603 p_article_effective_date IN Date ,
1604 p_copy_doc_attachments IN Varchar2 ,
1605 p_allow_duplicate_terms IN Varchar2,
1606 p_copy_attachments_by_ref IN Varchar2,
1607 x_return_status OUT NOCOPY VARCHAR2,
1608 x_msg_data OUT NOCOPY VARCHAR2,
1609 x_msg_count OUT NOCOPY Number
1610 )
1611 IS
1612 l_api_version CONSTANT NUMBER := 1;
1613 l_api_name CONSTANT VARCHAR2(30) := 'copy_response_doc';
1614
1615
1616
1617 BEGIN
1618
1619 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1620 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Entered OKC_TERMS_COPY_GRP.copy_response_doc');
1621 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Parameter List ');
1622 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_api_version : '||p_api_version);
1623 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_init_msg_list : '||p_init_msg_list);
1624 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_commit : '||p_commit);
1625 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_type : '||p_source_doc_type);
1626 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_id : '||p_source_doc_id);
1627 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_type : '||p_target_doc_type);
1628 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_id : '||p_target_doc_id);
1629 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_keep_version : '||p_keep_version);
1630 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_article_effective_date : '||p_article_effective_date);
1631 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_number : '||p_target_doc_number);
1632 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_doc_attachments : '||p_copy_doc_attachments);
1633 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_allow_duplicate_terms : '||p_allow_duplicate_terms);
1634 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_copy_attachments_by_ref : '||p_copy_attachments_by_ref);
1635 END IF;
1636
1637
1638 -- Standard Start of API savepoint
1639 SAVEPOINT g_copy_doc_GRP;
1640
1641 -- Standard call to check for call compatibility.
1642 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1643 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1644 END IF;
1645
1646 -- Initialize message list if p_init_msg_list is set to TRUE.
1647 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1648 FND_MSG_PUB.initialize;
1649 END IF;
1650
1651 -- Initialize API return status to success
1652 x_return_status := FND_API.G_RET_STS_SUCCESS;
1653
1654
1655 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1656 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'600: calling OKC_TERMS_COPY_PVT.copy_tc');
1657 END IF;
1658 -- copy contract terms
1659 OKC_TERMS_COPY_PVT.copy_tc(
1660 p_api_version => 1,
1661 p_init_msg_list => FND_API.G_FALSE,
1662 p_commit => FND_API.G_FALSE,
1663 p_source_doc_type => p_source_doc_type,
1664 p_source_doc_id => p_source_doc_id ,
1665 p_target_doc_type => p_target_doc_type,
1666 p_target_doc_id => p_target_doc_id,
1667 p_keep_version => 'Y',
1668 p_article_effective_date => p_article_effective_date,
1669 p_target_template_rec => G_TEMPLATE_MISS_REC,
1670 p_document_number => p_target_doc_number,
1671 p_allow_duplicates => p_allow_duplicate_terms,
1672 p_keep_orig_ref => 'Y',
1673 x_return_status => x_return_status,
1674 x_msg_data => x_msg_data,
1675 x_msg_count => x_msg_count);
1676 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1677 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);
1678 END IF;
1679
1680 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1681 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1682 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1683 RAISE FND_API.G_EXC_ERROR ;
1684 END IF;
1685 -----------------------------------------------------
1686
1687
1688 /* Call Deliverable API to copy Deliverables */
1689
1690 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1691 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:Entering OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables.');
1692 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:source busdoc id: '||to_char(p_source_doc_id));
1693 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:target busdoc id: '||to_char(p_target_doc_id));
1694 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000:target busdoc type: '||p_target_doc_type);
1695 END IF;
1696
1697
1698 OKC_DELIVERABLE_PROCESS_PVT.copy_response_deliverables (
1699 p_api_version => 1,
1700 p_init_msg_list => FND_API.G_FALSE,
1701 p_source_doc_id => p_source_doc_id,
1702 p_source_doc_type => p_source_doc_type,
1703 p_target_doc_id => p_target_doc_id,
1704 p_target_doc_type => p_target_doc_type,
1705 p_target_doc_number => p_target_doc_number,
1706 x_msg_data => x_msg_data,
1707 x_msg_count => x_msg_count,
1708 x_return_status => x_return_status );
1709
1710 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1711 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1100:Finished OKC_DELIVERABLE_PROCESS_PVT.copy_deliverables ');
1712 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);
1713 END IF;
1714
1715 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1716 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1717 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1718 RAISE FND_API.G_EXC_ERROR ;
1719 END IF;
1720
1721 -- copy doc attachments if the flag is set to Y
1722 IF p_copy_doc_attachments ='Y' THEN
1723
1724 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1725 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1150:Entering OKC_CONTRACT_DOCS_GRP.Copy_Attachments ');
1726 END IF;
1727
1728 OKC_CONTRACT_DOCS_GRP.Copy_Attachments (
1729 p_api_version =>1,
1730 p_init_msg_list =>FND_API.G_FALSE,
1731 x_msg_data => x_msg_data,
1732 x_msg_count => x_msg_count,
1733 x_return_status => x_return_status,
1734 p_from_bus_doc_type => p_source_doc_type ,
1735 p_from_bus_doc_id => p_source_doc_id,
1736 p_from_bus_doc_version => -99,
1737 p_to_bus_doc_type => p_target_doc_type,
1738 p_to_bus_doc_id => p_target_doc_id,
1739 p_to_bus_doc_version => -99,
1740 p_copy_by_ref => p_copy_attachments_by_ref) ;
1741
1742 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1743 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1151:Finished OKC_CONTRACT_DOCS_GRP.Copy_Attachments ');
1744 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);
1745 END IF;
1746
1747 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1748 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1749 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1750 RAISE FND_API.G_EXC_ERROR ;
1751 END IF;
1752 END IF;
1753
1754 -------------------------------------------------------------
1755
1756 IF FND_API.To_Boolean( p_commit ) THEN
1757 COMMIT WORK;
1758 END IF;
1759
1760 -- Standard call to get message count and if count is 1, get message info.
1761 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1762
1763 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1764 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000: Leaving copy_response_doc');
1765 END IF;
1766
1767 EXCEPTION
1768
1769 WHEN FND_API.G_EXC_ERROR THEN
1770
1771 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1772 FND_LOG.STRING( FND_LOG.LEVEL_ERROR ,g_module||l_api_name,'800: Leaving copy_response_doc: OKC_API.G_EXCEPTION_ERROR Exception');
1773 END IF;
1774
1775 ROLLBACK TO g_copy_doc_grp;
1776 x_return_status := G_RET_STS_ERROR ;
1777 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1778
1779 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1780 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1781 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'900: Leaving copy_response_doc: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
1782 END IF;
1783
1784 ROLLBACK TO g_copy_doc_grp;
1785 x_return_status := G_RET_STS_UNEXP_ERROR ;
1786 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1787
1788 WHEN OTHERS THEN
1789 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1790 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'1000: Leaving copy_response_doc because of EXCEPTION: '||sqlerrm);
1791 END IF;
1792
1793 ROLLBACK TO g_copy_doc_grp;
1794 x_return_status := G_RET_STS_UNEXP_ERROR ;
1795 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1796 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1797 END IF;
1798 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1799 END copy_response_doc;
1800
1801
1802 PROCEDURE process_mod_terms (
1803 p_api_version IN Number,
1804 p_init_msg_list IN Varchar2 default FND_API.G_FALSE,
1805 p_commit IN Varchar2 default fnd_api.g_false,
1806
1807 p_process IN VARCHAR2,
1808
1809 p_source_doc_type IN Varchar2,
1810 p_source_doc_id IN Number,
1811 p_target_doc_type IN OUT NOCOPY Varchar2,
1812 p_target_doc_id IN OUT NOCOPY Number,
1813
1814 p_target_document_number IN Varchar2 default Null,
1815
1816
1817 x_return_status OUT NOCOPY Varchar2,
1818 x_msg_data OUT NOCOPY Varchar2,
1819 x_msg_count OUT NOCOPY Number
1820 )
1821 IS
1822
1823 l_api_version CONSTANT NUMBER := 1;
1824 l_api_name CONSTANT VARCHAR2(30) := 'process_mod_terms';
1825
1826 l_validate_commit VARCHAR2(240);
1827
1828 l_retain_lock_terms_yn VARCHAR2(1);
1829 l_retain_lock_xprt_yn VARCHAR2(1);
1830 l_retain_lock_deliverables_yn VARCHAR2(1);
1831
1832
1833
1834 l_keep_version VARCHAR2(1) :='Y';
1835 l_article_effective_date DATE := SYSDATE;
1836
1837 l_initialize_status_yn VARCHAR2(1) := 'N';
1838 l_reset_Fixed_Date_yn VARCHAR2(1) := 'N';
1839 l_copy_del_attachments_yn VARCHAR2(1) := 'Y';
1840 l_copy_deliverables VARCHAR2(1):= 'Y';
1841 l_copy_abstract_yn VARCHAR2(1):= 'Y';
1842
1843
1844 l_rebuild_locks VARCHAR2(1);
1845
1846 l_return_status VARCHAR2(1);
1847 l_msg_data VARCHAR2(2000);
1848 l_msg_count NUMBER;
1849
1850 l_retain_exhibits VARCHAR2(1);
1851 BEGIN
1852
1853 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1854 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Entered OKC_TERMS_COPY_GRP.process_mod_terms');
1855 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: Parameter List ');
1856 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_api_version : '||p_api_version);
1857 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_init_msg_list : '||p_init_msg_list);
1858 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_commit : '||p_commit);
1859 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_process : '||p_process);
1860
1861 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_type : '||p_source_doc_type);
1862 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_source_doc_id : '||p_source_doc_id);
1863 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_type : '||p_target_doc_type);
1864 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_doc_id : '||p_target_doc_id);
1865
1866 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'100: p_target_document_number : '||p_target_document_number);
1867
1868 END IF;
1869
1870
1871 -- Standard Start of API savepoint
1872 SAVEPOINT g_process_mod_terms_GRP;
1873
1874 -- Standard call to check for call compatibility.
1875 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1876 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1877 END IF;
1878
1879 -- Initialize message list if p_init_msg_list is set to TRUE.
1880 IF FND_API.to_Boolean( p_init_msg_list ) THEN
1881 FND_MSG_PUB.initialize;
1882 END IF;
1883
1884 -- Initialize API return status to success
1885 x_return_status := FND_API.G_RET_STS_SUCCESS;
1886
1887 IF p_process = 'CREATE' THEN
1888
1889 l_retain_lock_terms_yn := 'N';
1890 l_retain_lock_xprt_yn := 'N';
1891 l_retain_lock_deliverables_yn := 'N';
1892 l_rebuild_locks := 'N';
1893
1894 l_retain_exhibits := 'N';
1895
1896 ELSIF p_process = 'SYNC' THEN
1897
1898 l_retain_lock_terms_yn := 'Y';
1899 l_retain_lock_xprt_yn := 'Y';
1900 l_retain_lock_deliverables_yn := 'Y';
1901 l_rebuild_locks := 'N';
1902 l_retain_exhibits := 'Y';
1903
1904 ELSIF p_process = 'MERGE' THEN
1905
1906 l_retain_lock_terms_yn := 'N';
1907 l_retain_lock_xprt_yn := 'N';
1908 l_retain_lock_deliverables_yn := 'N';
1909 l_rebuild_locks := 'Y';
1910 l_retain_exhibits := 'Y';
1911
1912 ELSIF p_process = 'PAR_MERGE' THEN
1913
1914 l_retain_exhibits := 'Y';
1915
1916 IF okc_k_entity_locks_grp.has_amended_terms(p_source_doc_type,p_source_doc_id ) = 'Y' THEN
1917 IF okc_k_entity_locks_grp.has_conflicting_locks(p_source_doc_type,p_source_doc_id) = 'Y' THEN
1918 okc_api.set_message
1919 (p_app_name => g_app_name,
1920 p_msg_name => 'OKC_PAR_CONFLICT_LOCKS'
1921 );
1922 x_return_status := g_ret_sts_error;
1923 RAISE fnd_api.g_exc_error;
1924 END IF;
1925 okc_k_entity_locks_grp.merge_changes( p_api_version => 1.0,
1926 p_init_msg_list => p_init_msg_list,
1927 p_commit => p_commit,
1928 p_src_doc_type => p_source_doc_type , -- PAR document
1929 p_src_doc_id => p_source_doc_id, -- PAR document
1930 p_target_doc_type => p_target_doc_type, -- MOD document
1931 p_target_doc_id => p_target_doc_id, -- MOD document
1932 X_RETURN_STATUS => x_return_status,
1933 X_MSG_COUNT => X_MSG_COUNT,
1934 X_MSG_DATA => X_MSG_DATA
1935 );
1936 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1937 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'130: okc_k_entity_locks_grp.merge_changes l_return_status : '||x_return_status);
1938 END IF;
1939
1940 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1941 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1942 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1943 RAISE FND_API.G_EXC_ERROR ;
1944 END IF;
1945 END IF;
1946
1947 IF FND_API.To_Boolean( p_commit ) THEN
1948 COMMIT WORK;
1949 END IF;
1950
1951 -- Standard call to get message count and if count is 1, get message info.
1952 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1953
1954 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1955 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'900: Leaving process_mod_terms');
1956 END IF;
1957
1958 RETURN;
1959
1960 ELSE
1961 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1962 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'200: Invalid mode is passed ');
1963 END IF;
1964
1965 OKC_API.set_message(G_APP_NAME, OKC_API.G_INVALID_VALUE,OKC_API.G_COL_NAME_TOKEN,'p_process');
1966 RAISE FND_API.G_EXC_ERROR;
1967 END IF;
1968
1969
1970 -- Mod creation no need to copy terms.
1971 IF p_process <> 'CREATE' THEN
1972
1973 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1974 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'140: calling OKC_TERMS_UTIL_GRP.delete_doc');
1975 END IF;
1976
1977
1978 OKC_TERMS_UTIL_GRP.delete_doc
1979 (
1980 p_api_version => 1.0
1981 , p_init_msg_list => FND_API.G_TRUE
1982 , p_commit => FND_API.G_FALSE
1983 , p_doc_id => p_target_doc_id
1984 , p_doc_type => p_target_doc_type
1985 , p_validate_commit => FND_API.G_FALSE
1986
1987
1988
1989 , p_retain_lock_terms_yn => l_retain_lock_terms_yn
1990 , p_retain_lock_xprt_yn => l_retain_lock_xprt_yn
1991 , p_retain_lock_deliverables_yn => l_retain_lock_deliverables_yn
1992
1993
1994 , x_return_status => x_return_status
1995 , x_msg_data => l_msg_data
1996 , x_msg_count => l_msg_count
1997 , p_retain_exhibits => l_retain_exhibits
1998
1999 );
2000
2001 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2002 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'130: OKC_TERMS_UTIL_GRP.delete_doc l_return_status : '||x_return_status);
2003
2004 END IF;
2005
2006 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
2007 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
2008 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
2009 RAISE FND_API.G_EXC_ERROR ;
2010 END IF;
2011
2012
2013 END IF;
2014
2015 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2016 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'140: calling OKC_TERMS_COPY_PVT.copy_tc');
2017 END IF;
2018
2019
2020 OKC_TERMS_COPY_GRP.copy_doc(
2021 p_api_version => 1.0,
2022 p_source_doc_type => p_source_doc_type,
2023 p_source_doc_id => p_source_doc_id,
2024 p_target_doc_type => p_target_doc_type,
2025 p_target_doc_id => p_target_doc_id,
2026
2027 p_keep_version => l_keep_version,
2028
2029 p_article_effective_date=> l_article_effective_date,
2030 p_initialize_status_yn => l_initialize_status_yn,
2031 p_reset_Fixed_Date_yn => l_reset_Fixed_Date_yn,
2032 p_copy_del_attachments_yn=> l_copy_del_attachments_yn ,
2033 p_copy_deliverables => l_copy_deliverables,
2034 p_document_number => p_target_document_number, -- TBD Doc Number
2035 p_copy_abstract_yn => l_copy_abstract_yn,
2036
2037 p_retain_lock_terms_yn => l_retain_lock_terms_yn,
2038 p_retain_lock_xprt_yn => l_retain_lock_xprt_yn,
2039
2040 p_rebuild_locks => l_rebuild_locks,
2041
2042 x_return_status => x_return_status,
2043 x_msg_data => l_msg_data,
2044 x_msg_count => l_msg_count);
2045
2046
2047 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2048 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE, G_MODULE||l_api_name,'130: OKC_TERMS_COPY_GRP.copy_doc l_return_status : '||x_return_status);
2049
2050 END IF;
2051
2052 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
2053 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
2054 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
2055 RAISE FND_API.G_EXC_ERROR ;
2056 END IF;
2057
2058
2059 IF FND_API.To_Boolean( p_commit ) THEN
2060 COMMIT WORK;
2061 END IF;
2062
2063 -- Standard call to get message count and if count is 1, get message info.
2064 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
2065
2066 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2067 FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,g_module||l_api_name,'1000: Leaving process_mod_terms');
2068 END IF;
2069
2070
2071 EXCEPTION
2072 WHEN FND_API.G_EXC_ERROR THEN
2073
2074 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2075 FND_LOG.STRING( FND_LOG.LEVEL_ERROR ,g_module||l_api_name,'800: Leaving process_mod_terms: OKC_API.G_EXCEPTION_ERROR Exception');
2076 END IF;
2077
2078 ROLLBACK TO g_process_mod_terms_GRP;
2079 x_return_status := G_RET_STS_ERROR ;
2080 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
2081
2082 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2083 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2084 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'900: Leaving process_mod_terms: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
2085 END IF;
2086
2087 ROLLBACK TO g_process_mod_terms_GRP;
2088 x_return_status := G_RET_STS_UNEXP_ERROR ;
2089 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
2090
2091 WHEN OTHERS THEN
2092 IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2093 FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,g_module||l_api_name,'1000: Leaving process_mod_terms because of EXCEPTION: '||sqlerrm);
2094 END IF;
2095
2096 ROLLBACK TO g_process_mod_terms_GRP;
2097 x_return_status := G_RET_STS_UNEXP_ERROR ;
2098 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
2099 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
2100 END IF;
2101 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
2102
2103 END process_mod_terms;
2104
2105
2106 END OKC_TERMS_COPY_GRP;