[Home] [Help]
PACKAGE BODY: APPS.CS_CONTRACT_TPL_PUB
Source
1 PACKAGE BODY CS_Contract_Tpl_Pub as
2 /* $Header: csctptpb.pls 115.2 99/07/16 08:53:30 porting ship $ */
3
4 PROCEDURE Contract_to_Template
5 (
6 p_api_version IN NUMBER,
7 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
8 p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
9 x_return_status OUT VARCHAR2,
10 x_msg_count OUT NUMBER,
11 x_msg_data OUT VARCHAR2,
12 p_contract_id IN NUMBER,
13 p_template_name IN VARCHAR2,
14 x_template_id OUT NUMBER
15 ) IS
16 CURSOR l_Contract_csr IS
17 SELECT *
18 FROM cs_contracts
19 WHERE contract_id = p_contract_id;
20 CURSOR l_Service_Csr IS
21 SELECT *
22 FROM cs_cp_services
23 WHERE contract_id = p_contract_id;
24
25
26 l_api_name CONSTANT VARCHAR2(30) := 'Contract_to_Template';
27 l_api_version CONSTANT NUMBER := 1.0;
28 l_ContractTmpl_Rec Cs_ContractTmpl_Pvt.ContractTmpl_Rec_Type;
29 l_ContractTmpl_Val_Rec Cs_ContractTmpl_Pvt.ContractTmpl_Val_Rec_Type;
30 l_object_version_number NUMBER;
31 l_contract_template_id NUMBER;
32 l_contract_line_template_id NUMBER;
33 l_Contract_rec l_Contract_Csr%ROWTYPE;
34 l_Service_Rec l_Service_Csr%ROWTYPE;
35 CONTRACT_NOT_FOUND EXCEPTION;
36 BEGIN
37 l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
38 G_PKG_NAME,
39 l_api_version,
40 p_api_version,
41 p_init_msg_list,
42 l_api_type,
43 x_return_status);
44 --dbms_output.put_line('l_return_status ' || l_return_status);
45 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
46 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
47 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
48 RAISE FND_API.G_EXC_ERROR;
49 END IF;
50 -- Get the contract details
51 Open l_Contract_Csr;
52 Fetch l_Contract_Csr into l_Contract_Rec;
53 if l_Contract_Csr%NOTFOUND THEN
54 RAISE CONTRACT_NOT_FOUND;
55 end if;
56
57 l_ContractTmpl_Rec.contract_template_id := NULL;
58 l_ContractTmpl_Rec.name := p_template_name;
59 l_ContractTmpl_Rec.contract_type_id := l_Contract_Rec.contract_type_id;
60 l_ContractTmpl_Rec.duration := l_Contract_Rec.duration;
61 l_ContractTmpl_Rec.period_code := l_Contract_Rec.period_code;
62 l_ContractTmpl_Rec.workflow := l_Contract_Rec.workflow;
63 l_ContractTmpl_Rec.price_list_id := l_Contract_Rec.price_list_id;
64 l_ContractTmpl_Rec.currency_code := l_Contract_Rec.currency_code;
65 l_ContractTmpl_Rec.conversion_type_code := l_Contract_Rec.conversion_type_code;
66 l_ContractTmpl_Rec.conversion_rate := l_Contract_Rec.conversion_rate;
67 l_ContractTmpl_Rec.conversion_date := l_Contract_Rec.conversion_date;
68 l_ContractTmpl_Rec.invoicing_rule_id := l_Contract_Rec.invoicing_rule_id;
69 l_ContractTmpl_Rec.accounting_rule_id := l_Contract_Rec.accounting_rule_id;
70 l_ContractTmpl_Rec.billing_frequency_period := l_Contract_Rec.billing_frequency_period;
71 l_ContractTmpl_Rec.create_sales_order := l_Contract_Rec.create_sales_order;
72 l_ContractTmpl_Rec.renewal_rule := l_Contract_Rec.renewal_rule;
73 l_ContractTmpl_Rec.termination_rule := l_Contract_Rec.termination_rule;
74 l_ContractTmpl_Rec.terms_id := l_Contract_Rec.terms_id;
75 l_ContractTmpl_Rec.tax_handling := l_Contract_Rec.tax_handling;
76 l_ContractTmpl_Rec.tax_exempt_num := l_Contract_Rec.tax_exempt_num;
77 l_ContractTmpl_Rec.tax_exempt_reason_code := l_Contract_Rec.tax_exempt_reason_code;
78 ---l_ContractTmpl_Rec.contract_amount := l_Contract_Rec.contract_amount;
79 l_ContractTmpl_Rec.discount_id := l_Contract_Rec.discount_id;
80 l_ContractTmpl_Rec.last_update_date := sysdate;
81 l_ContractTmpl_Rec.last_updated_by := FND_GLOBAL.user_id;
82 l_ContractTmpl_Rec.creation_date := sysdate;
83 l_ContractTmpl_Rec.created_by := FND_GLOBAL.user_id;
84 l_ContractTmpl_Rec.auto_renewal_flag := l_Contract_Rec.auto_renewal_flag;
85 l_ContractTmpl_Rec.last_update_login := FND_GLOBAL.login_id;
86 l_ContractTmpl_Rec.start_date_active := l_Contract_Rec.start_date_active;
87 l_ContractTmpl_Rec.end_date_active := l_Contract_Rec.end_date_active;
88 l_ContractTmpl_Rec.attribute1 := l_Contract_Rec.attribute1;
89 l_ContractTmpl_Rec.attribute2 := l_Contract_Rec.attribute2;
90 l_ContractTmpl_Rec.attribute3 := l_Contract_Rec.attribute3;
91 l_ContractTmpl_Rec.attribute4 := l_Contract_Rec.attribute4;
92 l_ContractTmpl_Rec.attribute5 := l_Contract_Rec.attribute5;
93 l_ContractTmpl_Rec.attribute6 := l_Contract_Rec.attribute6;
94 l_ContractTmpl_Rec.attribute7 := l_Contract_Rec.attribute7;
95 l_ContractTmpl_Rec.attribute8 := l_Contract_Rec.attribute8;
96 l_ContractTmpl_Rec.attribute9 := l_Contract_Rec.attribute9;
97 l_ContractTmpl_Rec.attribute10 := l_Contract_Rec.attribute10;
98 l_ContractTmpl_Rec.attribute11 := l_Contract_Rec.attribute11;
99 l_ContractTmpl_Rec.attribute12 := l_Contract_Rec.attribute12;
100 l_ContractTmpl_Rec.attribute13 := l_Contract_Rec.attribute13;
101 l_ContractTmpl_Rec.attribute14 := l_Contract_Rec.attribute14;
102 l_ContractTmpl_Rec.attribute15 := l_Contract_Rec.attribute15;
103 l_ContractTmpl_Rec.context := l_Contract_Rec.context;
104 l_ContractTmpl_Rec.object_version_number := 1;
105
106 --dbms_output.put_line('Before inserting template');
107 -- Call insert API for cs_contracts_template
108 CS_ContractTmpl_Pvt.Insert_Row
109 (
110 p_api_version => 1.0,
111 p_init_msg_list => TAPI_DEV_KIT.G_FALSE,
112 p_validation_level => 100,
113 p_commit => TAPI_DEV_KIT.G_FALSE,
114 x_return_status => l_return_status,
115 x_msg_count => l_msg_count,
116 x_msg_data => l_msg_data,
117 p_contracttmpl_rec => l_ContractTmpl_Rec,
118 x_contract_template_id => l_contract_template_id,
119 x_object_version_number => l_object_version_number
120 );
121 --dbms_output.put_line('After inserting template');
122 FOR l_Service_Rec in l_Service_Csr
123 LOOP
124 --- insert into cs_contract_line_tplts
125 CS_CONTRACTLTMPL_PVT.Insert_Row
126 (
127 p_api_version => 1.0,
128 p_init_msg_list => TAPI_DEV_KIT.G_FALSE,
129 p_validation_level => 100,
130 p_commit => TAPI_DEV_KIT.G_FALSE,
131 x_return_status => l_return_status,
132 x_msg_count => l_msg_count,
133 x_msg_data => l_msg_data,
134 p_contract_template_id => l_contract_template_id,
135 p_coverage_id => l_Service_Rec.coverage_schedule_id,
136 p_service_manufacturing_org_id => l_Service_Rec.service_manufacturing_org_id,
137 p_service_inventory_item_id => l_Service_Rec.service_inventory_item_id,
138 p_workflow => l_Service_Rec.workflow,
139 p_original_system_reference => l_Service_Rec.original_system_line_reference,
140 p_duration => l_Service_Rec.duration_quantity,
141 p_unit_of_measure_code => l_Service_Rec.unit_of_measure_code,
142 p_last_update_date => sysdate,
143 p_last_updated_by => FND_GLOBAL.user_id,
144 p_creation_date => sysdate,
145 p_created_by => FND_GLOBAL.user_id,
146 p_last_update_login => FND_GLOBAL.login_id,
147 p_start_date_active => NULL,
148 p_end_date_active => NULL,
149 p_attribute1 => l_Service_Rec.attribute1,
150 p_attribute2 => l_Service_Rec.attribute2,
151 p_attribute3 => l_Service_Rec.attribute3,
152 p_attribute4 => l_Service_Rec.attribute4,
153 p_attribute5 => l_Service_Rec.attribute5,
154 p_attribute6 => l_Service_Rec.attribute6,
155 p_attribute7 => l_Service_Rec.attribute7,
156 p_attribute8 => l_Service_Rec.attribute8,
157 p_attribute9 => l_Service_Rec.attribute9,
158 p_attribute10 => l_Service_Rec.attribute10,
159 p_attribute11 => l_Service_Rec.attribute11,
160 p_attribute12 => l_Service_Rec.attribute12,
161 p_attribute13 => l_Service_Rec.attribute13,
162 p_attribute14 => l_Service_Rec.attribute14,
163 p_attribute15 => l_Service_Rec.attribute15,
164 p_context => l_Service_Rec.context,
165 p_object_version_number => 1,
166 x_contract_line_template_id => l_contract_line_template_id,
167 x_object_version_number => l_object_version_number
168 );
169 END LOOP;
170
171 CLOSE l_Contract_Csr;
172
173 x_template_id := l_contract_template_id;
174
175 TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
176
177 --dbms_output.put_line('End act');
178
179 EXCEPTION
180 WHEN CONTRACT_NOT_FOUND THEN
181 IF (l_Contract_csr%ISOPEN) THEN
182 CLOSE l_Contract_csr;
183 ELSIF (l_Service_Csr%ISOPEN) THEN
184 CLOSE l_Service_Csr;
185 END IF;
186 --DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(l_api_name || l_api_type);
187 x_return_status := FND_API.G_RET_STS_ERROR;
188 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
189 FND_MESSAGE.SET_NAME('CS', 'CS_CONTRACT_NOT_FOUND');
190 FND_MSG_PUB.Add;
191 END IF;
192 FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
193 p_data => x_msg_data,
194 p_encoded => FND_API.G_FALSE );
195 WHEN FND_API.G_EXC_ERROR THEN
196 IF (l_Contract_csr%ISOPEN) THEN
197 CLOSE l_Contract_csr;
198 ELSIF (l_Service_Csr%ISOPEN) THEN
199 CLOSE l_Service_Csr;
200 END IF;
201 --DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(l_api_name || l_api_type);
202 x_return_status := FND_API.G_RET_STS_ERROR;
203 FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
204 p_data => x_msg_data,
205 p_encoded => FND_API.G_FALSE );
206
207 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
208 --dbms_output.put_line('UNEXP EXCEPTION');
209 IF (l_Contract_csr%ISOPEN) THEN
210 CLOSE l_Contract_csr;
211 ELSIF (l_Service_Csr%ISOPEN) THEN
212 CLOSE l_Service_Csr;
213 END IF;
214 --DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(l_api_name || l_api_type);
215 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
216 FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
217 p_data => x_msg_data,
218 p_encoded => FND_API.G_FALSE );
219 END Contract_to_template;
220
221
222 PROCEDURE Template_to_Contract
223 (
224 p_api_version IN NUMBER,
225 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
226 p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
227 x_return_status OUT VARCHAR2,
228 x_msg_count OUT NUMBER,
229 x_msg_data OUT VARCHAR2,
230 p_template_id IN NUMBER,
231 p_customer_id IN NUMBER,
232 p_contract_number IN NUMBER,
233 p_bill_to_site_use_id IN NUMBER,
234 p_ship_to_site_use_id IN NUMBER,
235 p_start_date IN DATE,
236 p_end_date IN DATE,
237 x_contract_id OUT NUMBER
238 )
239 IS
240 Cursor l_Contract_Tmpl_Csr is
241 Select * from cs_contract_templates
242 where contract_template_id = p_template_id;
243 Cursor l_Tmpl_Csr is
244 Select * from cs_contract_line_tplts
245 where contract_template_id = p_template_id;
246
247 l_api_name CONSTANT VARCHAR2(30) := 'Template_to_Contract';
248 l_api_version CONSTANT NUMBER := 1.0;
249 l_Contract_Tmpl_Rec l_Contract_Tmpl_Csr%ROWTYPE;
250 l_Tmpl_Rec l_Tmpl_Csr%ROWTYPE;
251 l_contract_rec CS_CONTRACT_PVT.Contract_Rec_Type;
252 l_object_version_number NUMBER;
253 l_contract_id NUMBER;
254 l_cp_service_id NUMBER;
255 template_not_found EXCEPTION;
256 BEGIN
257 l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
258 G_PKG_NAME,
259 l_api_version,
260 p_api_version,
261 p_init_msg_list,
262 l_api_type,
263 x_return_status);
264 --dbms_output.put_line('l_return_status ' || l_return_status);
265 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
266 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
267 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
268 RAISE FND_API.G_EXC_ERROR;
269 END IF;
270 -- Get the contract template details
271 Open l_Contract_Tmpl_Csr;
272 Fetch l_Contract_Tmpl_Csr into l_Contract_Tmpl_Rec;
273 if l_Contract_Tmpl_Csr%NOTFOUND THEN
274 raise TEMPLATE_NOT_FOUND;
275 end if;
276 Close l_Contract_Tmpl_Csr;
277 --dbms_output.put_line('Template Found');
278
279 l_contract_rec.contract_id := NULL;
280 l_contract_rec.contract_number := p_contract_number;
281 l_contract_rec.workflow := l_Contract_Tmpl_Rec.workflow;
282 l_contract_rec.workflow_process_id := NULL;
283 l_contract_rec.agreement_id := null;
284 l_contract_rec.price_list_id := l_Contract_Tmpl_Rec.price_list_id;
285 l_contract_rec.currency_code := l_Contract_Tmpl_Rec.currency_code;
286 l_contract_rec.conversion_type_code := l_Contract_Tmpl_Rec.conversion_type_code;
287 l_contract_rec.conversion_rate := l_Contract_Tmpl_Rec.conversion_rate;
288 l_contract_rec.conversion_date := l_Contract_Tmpl_Rec.conversion_date;
289 l_contract_rec.invoicing_rule_id := l_Contract_Tmpl_Rec.invoicing_rule_id;
290 l_contract_rec.accounting_rule_id := l_Contract_Tmpl_Rec.accounting_rule_id;
291 l_contract_rec.billing_frequency_period := l_Contract_Tmpl_Rec.billing_frequency_period;
292 l_contract_rec.first_bill_date := NULL;
293 l_contract_rec.next_bill_date := NULL;
294 l_contract_rec.create_sales_order := l_Contract_Tmpl_Rec.create_sales_order;
295 l_contract_rec.renewal_rule := l_Contract_Tmpl_Rec.renewal_rule;
296 l_contract_rec.termination_rule := l_Contract_Tmpl_Rec.termination_rule;
297 l_contract_rec.bill_to_site_use_id := p_bill_to_site_use_id;
298 l_contract_rec.contract_type_id := l_Contract_Tmpl_Rec.contract_type_id;
299 l_contract_rec.contract_status_id := FND_PROFILE.Value('CS_CONTRACTS_DEFAULT_HDR_STATUS');
300 l_contract_rec.contract_template_id := p_template_id;
301 l_contract_rec.contract_group_id := NULL;
302 l_contract_rec.customer_id := p_customer_id;
303 l_contract_rec.duration := l_Contract_Tmpl_Rec.duration;
304 l_contract_rec.period_code := l_Contract_Tmpl_Rec.period_code;
305 l_contract_rec.ship_to_site_use_id := p_ship_to_site_use_id;
306 l_contract_rec.salesperson_id := NULL;
307 l_contract_rec.ordered_by_contact_id := NULL;
308 l_contract_rec.source_code := NULL;
309 l_contract_rec.source_reference := NULL;
310 l_contract_rec.terms_id := l_Contract_Tmpl_Rec.terms_id;
311 l_contract_rec.po_number := NULL;
312 l_contract_rec.bill_on := NULL;
313 l_contract_rec.tax_handling := l_Contract_Tmpl_Rec.tax_handling;
314 l_contract_rec.tax_exempt_num := l_Contract_Tmpl_Rec.tax_exempt_num;
315 l_contract_rec.tax_exempt_reason_code := l_Contract_Tmpl_Rec.tax_exempt_reason_code;
316 --- l_contract_rec.contract_amount := l_Contract_Tmpl_Rec.contract_amount;
317 l_contract_rec.auto_renewal_flag := l_Contract_Tmpl_Rec.auto_renewal_flag;
318 l_contract_rec.original_end_date := p_end_date;
319 l_contract_rec.terminate_reason_code := NULL;
320 l_contract_rec.discount_id := l_Contract_Tmpl_Rec.discount_id;
321 l_contract_rec.po_required_to_service := NULL;
322 l_contract_rec.pre_payment_required := NULL;
323 l_contract_rec.last_update_date := sysdate;
324 l_contract_rec.last_updated_by := FND_GLOBAL.user_id;
325 l_contract_rec.creation_date := sysdate;
326 l_contract_rec.created_by := FND_GLOBAL.user_id;
327 l_contract_rec.last_update_login := FND_GLOBAL.login_id;
328 l_contract_rec.start_date_active := p_start_date;
329 l_contract_rec.end_date_active := p_end_date;
330 l_contract_rec.attribute1 := l_Contract_Tmpl_Rec.attribute1;
331 l_contract_rec.attribute2 := l_Contract_Tmpl_Rec.attribute2;
332 l_contract_rec.attribute3 := l_Contract_Tmpl_Rec.attribute3;
333 l_contract_rec.attribute4 := l_Contract_Tmpl_Rec.attribute4;
334 l_contract_rec.attribute5 := l_Contract_Tmpl_Rec.attribute5;
335 l_contract_rec.attribute6 := l_Contract_Tmpl_Rec.attribute6;
336 l_contract_rec.attribute7 := l_Contract_Tmpl_Rec.attribute7;
337 l_contract_rec.attribute8 := l_Contract_Tmpl_Rec.attribute8;
338 l_contract_rec.attribute9 := l_Contract_Tmpl_Rec.attribute9;
339 l_contract_rec.attribute10 := l_Contract_Tmpl_Rec.attribute10;
340 l_contract_rec.attribute11 := l_Contract_Tmpl_Rec.attribute11;
341 l_contract_rec.attribute12 := l_Contract_Tmpl_Rec.attribute12;
342 l_contract_rec.attribute13 := l_Contract_Tmpl_Rec.attribute13;
343 l_contract_rec.attribute14 := l_Contract_Tmpl_Rec.attribute14;
344 l_contract_rec.attribute15 := l_Contract_Tmpl_Rec.attribute15;
345 l_contract_rec.context := l_Contract_Tmpl_Rec.context;
346 l_contract_rec.object_version_number := 1;
347
348 --dbms_output.put_line('before insert');
349 CS_CONTRACT_PVT.insert_row
350 (
351 p_api_version => 1.0,
352 p_init_msg_list => TAPI_DEV_KIT.G_FALSE,
353 p_validation_level => 100,
354 p_commit => TAPI_DEV_KIT.G_FALSE,
355 x_return_status => l_return_status,
356 x_msg_count => l_msg_count,
357 x_msg_data => l_msg_data,
358 p_contract_rec => l_contract_rec,
359 x_contract_id => l_contract_id,
360 x_object_version_number => l_object_version_number
361 );
362
363 FOR l_Tmpl_Rec in l_Tmpl_Csr LOOP
364 --dbms_output.put_line('Inserted lines');
365 CS_SERVICES_PVT.Insert_Service
366 (
367 p_api_version => 1.0,
368 p_init_msg_list => TAPI_DEV_KIT.G_FALSE,
369 p_validation_level => 100,
370 p_commit => TAPI_DEV_KIT.G_FALSE,
371 x_return_status => l_return_status,
372 x_msg_count => l_msg_count,
373 x_msg_data => l_msg_data,
374 p_contract_line_template_id => l_Tmpl_Rec.contract_line_template_id,
375 p_contract_id => l_contract_id,
376 p_contract_line_status_id => FND_PROFILE.VALUE('CS_CONTRACTS_DEFAULT_LINE_STATUS'),
377 p_service_inventory_item_id => l_Tmpl_Rec.service_inventory_item_id,
378 p_service_manufacturing_org_id => l_Tmpl_Rec.service_manufacturing_org_id,
379 p_original_start_date => l_Tmpl_Rec.start_date_active,
380 p_original_end_date => l_Tmpl_Rec.end_date_active,
381 p_workflow => l_Tmpl_Rec.workflow,
382 p_riginl_systm_lin_rfrnc => l_Tmpl_Rec.original_system_reference,
383 p_duration_quantity => l_Tmpl_Rec.duration,
384 p_unit_of_measure_code => l_Tmpl_Rec.unit_of_measure_code,
385 p_creation_date => sysdate,
386 p_created_by => FND_GLOBAL.user_id,
387 p_last_update_date => sysdate,
388 p_last_updated_by => FND_GLOBAL.user_id,
389 p_last_update_login => FND_GLOBAL.login_id,
390 p_start_date_active => l_Tmpl_Rec.start_date_active,
391 p_end_date_active => l_Tmpl_Rec.end_date_active,
392 x_cp_service_id => l_cp_service_id
393 );
394 END LOOP;
395
396 x_contract_id := l_contract_id;
397
398 TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
399
400 --dbms_output.put_line('End act');
401
402 EXCEPTION
403 WHEN TEMPLATE_NOT_FOUND THEN
404 IF (l_Contract_Tmpl_csr%ISOPEN) THEN
405 CLOSE l_Contract_Tmpl_csr;
406 END IF;
407 --DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(l_api_name || l_api_type);
408 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
409 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
410 FND_MESSAGE.SET_NAME('CS', 'CS_TEMPLATE_NOT_FOUND');
411 FND_MSG_PUB.Add;
412 END IF;
413 FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
414 p_data => x_msg_data,
415 p_encoded => FND_API.G_FALSE );
416 WHEN FND_API.G_EXC_ERROR THEN
417 IF (l_Contract_Tmpl_csr%ISOPEN) THEN
418 CLOSE l_Contract_Tmpl_csr;
419 END IF;
420 --DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(l_api_name || l_api_type);
421 x_return_status := FND_API.G_RET_STS_ERROR;
422 FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
423 p_data => x_msg_data,
424 p_encoded => FND_API.G_FALSE );
425
426 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
427 --dbms_output.put_line('UNEXP EXCEPTION');
428 IF (l_Contract_Tmpl_csr%ISOPEN) THEN
429 CLOSE l_Contract_Tmpl_csr;
430 END IF;
431 --DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(l_api_name || l_api_type);
432 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
433 FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
434 p_data => x_msg_data,
435 p_encoded => FND_API.G_FALSE );
436 END Template_to_Contract;
437
438 END CS_Contract_Tpl_Pub;