[Home] [Help]
PACKAGE BODY: APPS.ASO_NOTES_INT
Source
1 PACKAGE BODY ASO_NOTES_INT AS
2 /* $Header: asoinotb.pls 120.1 2005/06/29 12:34:02 appldev ship $ */
3
4 -- Start of Comments
5 -- Package name : ASO_NOTES_INT
6 -- Purpose :
7 -- History :
8 -- 10/07/2002 - hyang: 2611381, performance fix for 1158.
9 -- 28-JAN-2003 - subha madapusi : ER 2732010.
10 -- 01-MAY-2003 Subha Madapusi : bug - 2915604.
11 -- NOTE :
12 -- End of Comments
13
14 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ASO_NOTES_INT';
15 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asoinotb.pls';
16
17
18 /*
19 * A quote can have multiple JTF notes attached to it. When a
20 * new version of quote is created from an existing quote, all the JTF
21 * notes attached to the existing quote should be attached to the new
22 * version of quote, too.
23 *
24 * This procedure is called when a new version of quote is created from an
25 * existing quote.
26 *
27 * param p_old_quote_header_id: quote header ID of the existing quote.
28 * param p_new_quote_header_id: quote header ID of the new version.
29 */
30
31 PROCEDURE Copy_Notes
32 (
33 p_api_version IN NUMBER ,
34 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
35 p_commit IN VARCHAR2 := FND_API.G_FALSE,
36 p_old_object_id IN NUMBER ,
37 p_new_object_id IN NUMBER ,
38 p_old_object_type_code IN VARCHAR2 ,
39 p_new_object_type_code IN VARCHAR2 ,
40 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2 ,
41 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER ,
42 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
43 )
44 IS
45
46 L_API_NAME CONSTANT VARCHAR2(30) := 'Copy_Notes';
47 L_API_VERSION CONSTANT NUMBER := 1.0;
48
49 l_sysdate DATE := SYSDATE;
50 lx_jtf_note_context_id NUMBER;
51
52 /*
53 * This cursor gets information about all the JTF notes attached
54 * to the existing quote.
55 *
56 * 2611381 fix: using base tables instead of view.
57 * 2915604 Fix : removed the JTF context part both cursor and for loop for table
58 * population in order to avoid duplicate notes.
59 */
60 CURSOR l_notes_csr(p_object_id NUMBER, p_object_type_code VARCHAR2) IS
61 select b.jtf_note_id
62 FROM jtf_notes_b b
63 WHERE b.source_object_id IN
64 (select quote_header_id from aso_quote_headers_all
65 where quote_number = (select quote_number from aso_quote_headers_all
66 where quote_header_id = p_object_id))
67 AND b.source_object_code = 'ASO_QUOTE';
68
69 BEGIN
70
71 -- Standard Start of API savepoint
72 SAVEPOINT Copy_Notes_int;
73
74 -- Standard call to check for call compatibility.
75 IF NOT FND_API.Compatible_API_Call(
76 L_API_VERSION,
77 p_api_version,
78 L_API_NAME ,
79 G_PKG_NAME
80 )
81 THEN
82 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
83 END IF;
84
85 -- Initialize message list if p_init_msg_list is set to TRUE.
86 IF FND_API.To_Boolean(p_init_msg_list) THEN
87 FND_Msg_Pub.initialize;
88 END IF;
89
90 -- Initialize API return status to success
91 x_return_status := FND_API.G_RET_STS_SUCCESS;
92
93 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
94 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes: Begin Copy_Notes()', 1, 'Y');
95 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes: old_object_id: ' || p_old_object_id, 1, 'N');
96 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes: old_object_type_code: ' || p_old_object_type_code, 1, 'N');
97 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes: new_object_id: ' || p_new_object_id, 1, 'N');
98 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes: new_object_type_code: ' || p_new_object_type_code, 1, 'N');
99 END IF;
100
101 FOR l_note_rec IN l_notes_csr(p_old_object_id, p_old_object_type_code) LOOP
102
103 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
104 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes: l_note_rec.jtf_note_id: ' || l_note_rec.jtf_note_id, 1, 'N');
105 END IF;
106
107
108 JTF_NOTES_PUB.Create_Note_Context(
109 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
110 x_return_status => x_return_status ,
111 p_jtf_note_id => l_note_rec.jtf_note_id ,
112 p_last_update_date => l_sysdate ,
113 p_last_updated_by => FND_Global.USER_ID ,
114 p_creation_date => l_sysdate ,
115 p_created_by => FND_Global.USER_ID ,
116 p_last_update_login => FND_GLOBAL.LOGIN_ID ,
117 p_note_context_type_id => p_new_object_id ,
118 p_note_context_type => p_new_object_type_code ,
119 x_note_context_id => lx_jtf_note_context_id
120 );
121
122
123 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
124 RAISE FND_API.G_EXC_ERROR;
125 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
126 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
127 END IF;
128
129 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
130 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes: lx_jtf_note_context_id :' || lx_jtf_note_context_id, 1, 'N');
131 END IF;
132
133 END LOOP;
134
135 -- End of API body.
136 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
137 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes: End Copy_Notes()', 1, 'Y');
138 END IF;
139
140 -- Standard check of p_commit.
141 IF FND_API.To_Boolean(p_commit) THEN
142 COMMIT WORK;
143 END IF;
144
145 -- Standard call to get message count and if count is 1, get message info.
146 FND_Msg_Pub.Count_And_Get(
147 p_encoded => FND_API.G_FALSE,
148 p_count => x_msg_count ,
149 p_data => x_msg_data
150 );
151
152 EXCEPTION
153 WHEN FND_API.G_EXC_ERROR THEN
154 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
155 P_API_NAME => L_API_NAME,
156 P_PKG_NAME => G_PKG_NAME,
157 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
158 P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT,
159 P_SQLCODE => SQLCODE,
160 P_SQLERRM => SQLERRM,
161 X_MSG_COUNT => X_MSG_COUNT,
162 X_MSG_DATA => X_MSG_DATA,
163 X_RETURN_STATUS => X_RETURN_STATUS
164 );
165
166 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
167 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
168 P_API_NAME => L_API_NAME,
169 P_PKG_NAME => G_PKG_NAME,
170 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
171 P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT,
172 P_SQLCODE => SQLCODE,
173 P_SQLERRM => SQLERRM,
174 X_MSG_COUNT => X_MSG_COUNT,
175 X_MSG_DATA => X_MSG_DATA,
176 X_RETURN_STATUS => X_RETURN_STATUS
177 );
178
179 WHEN OTHERS THEN
180 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
181 P_API_NAME => L_API_NAME,
182 P_PKG_NAME => G_PKG_NAME,
183 P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS,
184 P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT,
185 P_SQLCODE => SQLCODE,
186 P_SQLERRM => SQLERRM,
187 X_MSG_COUNT => X_MSG_COUNT,
188 X_MSG_DATA => X_MSG_DATA,
189 X_RETURN_STATUS => X_RETURN_STATUS
190 );
191
192 END Copy_Notes;
193
194
195 -- As per the ER 2732010. While creating opportunity to quote in Telesales
196 -- certain types of notes should NOT be copied over to the quote.
197 -- Those note types are to be visible only in telesales.
198 -- Hence the new Api is needed to accomplish this requirement.
199 -- The types of notes that are copied over to quote from an Opportunity are :
200 -- 1. Notes types that are not linked to any source objects.
201 -- 2. Notes types that are Specifically linked to Quoting.
202
203 -- This procedure is called only when creating a quote from an opportunity.
204 -- Bug 2915604. In order to avoid duplicates notes creation removed the context
205 -- creation part. Removed the code for the context cursor and for loop.
206
207 PROCEDURE Copy_Opp_Notes_To_Qte
208 (
209 p_api_version IN NUMBER ,
210 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
211 p_commit IN VARCHAR2 := FND_API.G_FALSE,
212 p_old_object_id IN NUMBER ,
213 p_new_object_id IN NUMBER ,
214 p_old_object_type_code IN VARCHAR2 ,
215 p_new_object_type_code IN VARCHAR2 ,
216 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2 ,
217 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER ,
218 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
219 )
220 IS
221
222 L_API_NAME CONSTANT VARCHAR2(30) := 'Copy_Opp_Notes_To_Qte';
223 L_API_VERSION CONSTANT NUMBER := 1.0;
224
225 l_sysdate DATE := SYSDATE;
226 lx_jtf_note_context_id NUMBER;
227
228 CURSOR l_notes_csr(p_object_id NUMBER, p_object_type_code VARCHAR2) IS
229 select b.jtf_note_id
230 FROM jtf_notes_b b, jtf_notes_tl t
231 WHERE b.source_object_id = p_object_id
232 AND b.source_object_code = p_object_type_code
233 AND b.jtf_note_id = t.jtf_note_id
234 AND t.language = USERENV('LANG')
235 AND ( EXISTS ( SELECT o.object_id
236 FROM jtf_object_mappings o
237 WHERE o.object_id = b.note_type
238 AND o.source_object_code = 'ASO_QUOTE' )
239
240 OR NOT EXISTS ( SELECT om.object_id
241 FROM JTF_OBJECT_MAPPINGS om
242 WHERE om.object_id = b.note_type )
243 );
244
245
246 BEGIN
247
248 -- Standard Start of API savepoint
249 SAVEPOINT Copy_Opp_Notes_To_Qte_int;
250
251 -- Standard call to check for call compatibility.
252 IF NOT FND_API.Compatible_API_Call(
253 L_API_VERSION,
254 p_api_version,
255 L_API_NAME ,
256 G_PKG_NAME
257 )
258 THEN
259 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
260 END IF;
261
262 -- Initialize message list if p_init_msg_list is set to TRUE.
263 IF FND_API.To_Boolean(p_init_msg_list) THEN
264 FND_Msg_Pub.initialize;
265 END IF;
266
267 -- Initialize API return status to success
268 x_return_status := FND_API.G_RET_STS_SUCCESS;
269
270 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
271 aso_debug_pub.add('ASO_NOTES_INT: Copy_Opp_Notes_To_Qte: Begin Copy_Notes()', 1, 'Y');
272 aso_debug_pub.add('ASO_NOTES_INT: Copy_Opp_Notes_To_Qte: old_object_id: ' || p_old_object_id, 1, 'N');
273 aso_debug_pub.add('ASO_NOTES_INT: Copy_Opp_Notes_To_Qte: old_object_type_code: ' || p_old_object_type_code, 1, 'N');
274 aso_debug_pub.add('ASO_NOTES_INT: Copy_Opp_Notes_To_Qte: new_object_id: ' || p_new_object_id, 1, 'N');
275 aso_debug_pub.add('ASO_NOTES_INT: Copy_Opp_Notes_To_Qte: new_object_type_code: ' || p_new_object_type_code, 1, 'N');
276 END IF;
277
278 FOR l_note_rec IN l_notes_csr(p_old_object_id, p_old_object_type_code) LOOP
279
280 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
281 aso_debug_pub.add('ASO_NOTES_INT: Copy_Opp_Notes_To_Qte: l_note_rec.jtf_note_id: ' || l_note_rec.jtf_note_id, 1, 'N');
282 END IF;
283
284
285 JTF_NOTES_PUB.Create_Note_Context(
286 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
287 x_return_status => x_return_status ,
288 p_jtf_note_id => l_note_rec.jtf_note_id ,
289 p_last_update_date => l_sysdate ,
290 p_last_updated_by => FND_Global.USER_ID ,
291 p_creation_date => l_sysdate ,
292 p_created_by => FND_Global.USER_ID ,
293 p_last_update_login => FND_GLOBAL.LOGIN_ID ,
294 p_note_context_type_id => p_new_object_id ,
295 p_note_context_type => p_new_object_type_code ,
296 x_note_context_id => lx_jtf_note_context_id
297 );
298
299
300 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
301 RAISE FND_API.G_EXC_ERROR;
302 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
303 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
304 END IF;
305
306 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
307 aso_debug_pub.add('ASO_NOTES_INT: Copy_Opp_Notes_To_Qte: lx_jtf_note_context_id: ' || lx_jtf_note_context_id, 1, 'N');
308 END IF;
309
310 END LOOP;
311
312 -- End of API body.
313 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
314 aso_debug_pub.add('ASO_NOTES_INT: Copy_Opp_Notes_To_Qte: End Copy_Opp_Notes_To_Qte()', 1, 'Y');
315 END IF;
316
317 -- Standard check of p_commit.
318 IF FND_API.To_Boolean(p_commit) THEN
319 COMMIT WORK;
320 END IF;
321
322 -- Standard call to get message count and if count is 1, get message info.
323 FND_Msg_Pub.Count_And_Get(
324 p_encoded => FND_API.G_FALSE,
325 p_count => x_msg_count ,
326 p_data => x_msg_data
327 );
328
329 EXCEPTION
330 WHEN FND_API.G_EXC_ERROR THEN
331 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
332 P_API_NAME => L_API_NAME,
333 P_PKG_NAME => G_PKG_NAME,
334 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
335 P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT,
336 P_SQLCODE => SQLCODE,
337 P_SQLERRM => SQLERRM,
338 X_MSG_COUNT => X_MSG_COUNT,
339 X_MSG_DATA => X_MSG_DATA,
340 X_RETURN_STATUS => X_RETURN_STATUS
341 );
342
343 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
344 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
345 P_API_NAME => L_API_NAME,
346 P_PKG_NAME => G_PKG_NAME,
347 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
348 P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT,
349 P_SQLCODE => SQLCODE,
350 P_SQLERRM => SQLERRM,
351 X_MSG_COUNT => X_MSG_COUNT,
352 X_MSG_DATA => X_MSG_DATA,
353 X_RETURN_STATUS => X_RETURN_STATUS
354 );
355
356 WHEN OTHERS THEN
357 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
358 P_API_NAME => L_API_NAME,
359 P_PKG_NAME => G_PKG_NAME,
360 P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS,
361 P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT,
362 P_SQLCODE => SQLCODE,
363 P_SQLERRM => SQLERRM,
364 X_MSG_COUNT => X_MSG_COUNT,
365 X_MSG_DATA => X_MSG_DATA,
366 X_RETURN_STATUS => X_RETURN_STATUS
367 );
368
369 END Copy_Opp_Notes_To_Qte;
370
371
372 PROCEDURE Copy_Notes_copy_quote
373 (
374 p_api_version IN NUMBER ,
375 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE ,
376 p_commit IN VARCHAR2 := FND_API.G_FALSE,
377 p_old_object_id IN NUMBER ,
378 p_new_object_id IN NUMBER ,
379 p_old_object_type_code IN VARCHAR2 ,
380 p_new_object_type_code IN VARCHAR2 ,
381 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2 ,
382 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER ,
383 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
384 )
385 IS
386
387 L_API_NAME CONSTANT VARCHAR2(30) := 'Copy_Notes_copy_quote';
388 L_API_VERSION CONSTANT NUMBER := 1.0;
389
390 l_notes_detail VARCHAR2(32767) := NULL;
391 l_jtf_note_id NUMBER;
392 l_jtf_note_contexts_tab JTF_NOTES_PUB.jtf_note_contexts_tbl_type;
393 l_sysdate DATE := SYSDATE;
394 i NUMBER := 1;
395
396 /*
397 * This cursor gets information about all the JTF notes attached
398 * to the existing quote.
399 *
400 * 2611381 fix: using base tables instead of view.
401 * 2915604 Fix : removed the JTF context part both cursor and for loop for table
402 * population in order to avoid duplicate notes.
403 */
404 CURSOR l_notes_csr(p_object_id NUMBER, p_object_type_code VARCHAR2) IS
405 SELECT b.parent_note_id,
406 b.jtf_note_id ,
407 t.notes ,
408 b.note_status ,
409 b.attribute1 ,
410 b.attribute2 ,
411 b.attribute3 ,
412 b.attribute4 ,
413 b.attribute5 ,
414 b.attribute6 ,
415 b.attribute7 ,
416 b.attribute8 ,
417 b.attribute9 ,
418 b.attribute10 ,
419 b.attribute11 ,
420 b.attribute12 ,
421 b.attribute13 ,
422 b.attribute14 ,
426 FROM jtf_notes_b b, jtf_notes_tl t
423 b.attribute15 ,
424 b.context ,
425 b.note_type
427 WHERE b.source_object_id IN
428 (select quote_header_id from aso_quote_headers_all
429 where quote_number = (select quote_number from aso_quote_headers_all
430 where quote_header_id = p_object_id))
431 AND b.source_object_code = p_object_type_code
432 AND b.jtf_note_id = t.jtf_note_id
433 AND t.language = USERENV('LANG');
434
435 BEGIN
436
437 -- Standard Start of API savepoint
438 SAVEPOINT Copy_Notes_int;
439
440 -- Standard call to check for call compatibility.
441 IF NOT FND_API.Compatible_API_Call(
442 L_API_VERSION,
443 p_api_version,
444 L_API_NAME ,
445 G_PKG_NAME
446 )
447 THEN
448 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
449 END IF;
450
451 -- Initialize message list if p_init_msg_list is set to TRUE.
452 IF FND_API.To_Boolean(p_init_msg_list) THEN
453 FND_Msg_Pub.initialize;
454 END IF;
455
456 -- Initialize API return status to success
457 x_return_status := FND_API.G_RET_STS_SUCCESS;
458
459 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
460 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes_copy_quote: Begin Copy_Notes()', 1, 'Y');
461 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes_copy_quote: old_object_id: ' || p_old_object_id, 1, 'N');
462 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes_copy_quote: old_object_type_code: ' || p_old_object_type_code, 1, 'N');
463 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes_copy_quote: new_object_id: ' || p_new_object_id, 1, 'N');
464 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes_copy_quote: new_object_type_code: ' || p_new_object_type_code, 1, 'N');
465 END IF;
466
467 FOR l_note_rec IN l_notes_csr(p_old_object_id, p_old_object_type_code) LOOP
468
469 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
470 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes_copy_quote: l_note_rec.jtf_note_id: ' || l_note_rec.jtf_note_id, 1, 'N');
471 END IF;
472
473 l_notes_detail := NULL;
474 JTF_Notes_Pub.WriteLobToData(l_note_rec.jtf_note_id, l_notes_detail);
475
476 l_jtf_note_contexts_tab := JTF_NOTES_PUB.jtf_note_contexts_tab_dflt;
477 i:=1;
478
479
480 JTF_NOTES_PUB.Create_Note(
481 p_parent_note_id => l_note_rec.parent_note_id ,
482 p_api_version => 1.0 ,
483 p_init_msg_list => FND_API.G_FALSE ,
484 p_commit => FND_API.G_FALSE ,
485 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
486 x_return_status => x_return_status ,
487 x_msg_count => x_msg_count ,
488 x_msg_data => x_msg_data ,
489 p_source_object_id => p_new_object_id ,
490 p_source_object_code => p_new_object_type_code ,
491 p_notes => l_note_rec.notes ,
492 p_notes_detail => l_notes_detail ,
493 p_note_status => l_note_rec.note_status ,
494 p_entered_by => FND_Global.USER_ID ,
495 p_entered_date => l_sysdate ,
496 x_jtf_note_id => l_jtf_note_id ,
497 p_last_update_date => l_sysdate ,
498 p_last_updated_by => FND_Global.USER_ID ,
499 p_creation_date => l_sysdate ,
500 p_attribute1 => l_note_rec.attribute1 ,
501 p_attribute2 => l_note_rec.attribute2 ,
502 p_attribute3 => l_note_rec.attribute3 ,
503 p_attribute4 => l_note_rec.attribute4 ,
504 p_attribute5 => l_note_rec.attribute5 ,
505 p_attribute6 => l_note_rec.attribute6 ,
506 p_attribute7 => l_note_rec.attribute7 ,
507 p_attribute8 => l_note_rec.attribute8 ,
508 p_attribute9 => l_note_rec.attribute9 ,
509 p_attribute10 => l_note_rec.attribute10 ,
510 p_attribute11 => l_note_rec.attribute11 ,
511 p_attribute12 => l_note_rec.attribute12 ,
512 p_attribute13 => l_note_rec.attribute13 ,
513 p_attribute14 => l_note_rec.attribute14 ,
514 p_attribute15 => l_note_rec.attribute15 ,
515 p_context => l_note_rec.context ,
516 p_note_type => l_note_rec.note_type ,
517 p_jtf_note_contexts_tab => l_jtf_note_contexts_tab
518 );
519
520 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
521 RAISE FND_API.G_EXC_ERROR;
522 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
523 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
524 END IF;
525
526 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
527 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes_copy_quote: l_jtf_note_id: ' || l_jtf_note_id, 1, 'N');
528 END IF;
529
530 END LOOP;
531
532 -- End of API body.
533 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
534 aso_debug_pub.add('ASO_NOTES_INT: Copy_Notes_copy_quote: End Copy_Notes_copy_quote()', 1, 'Y');
535 END IF;
536
537 -- Standard check of p_commit.
538 IF FND_API.To_Boolean(p_commit) THEN
539 COMMIT WORK;
540 END IF;
541
542 -- Standard call to get message count and if count is 1, get message info.
543 FND_Msg_Pub.Count_And_Get(
544 p_encoded => FND_API.G_FALSE,
545 p_count => x_msg_count ,
546 p_data => x_msg_data
547 );
548
549 EXCEPTION
550 WHEN FND_API.G_EXC_ERROR THEN
551 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
552 P_API_NAME => L_API_NAME,
553 P_PKG_NAME => G_PKG_NAME,
554 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
555 P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT,
556 P_SQLCODE => SQLCODE,
557 P_SQLERRM => SQLERRM,
558 X_MSG_COUNT => X_MSG_COUNT,
559 X_MSG_DATA => X_MSG_DATA,
560 X_RETURN_STATUS => X_RETURN_STATUS
561 );
562
563 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
564 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
565 P_API_NAME => L_API_NAME,
566 P_PKG_NAME => G_PKG_NAME,
567 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
568 P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT,
569 P_SQLCODE => SQLCODE,
570 P_SQLERRM => SQLERRM,
571 X_MSG_COUNT => X_MSG_COUNT,
572 X_MSG_DATA => X_MSG_DATA,
573 X_RETURN_STATUS => X_RETURN_STATUS
574 );
575
576 WHEN OTHERS THEN
577 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
578 P_API_NAME => L_API_NAME,
579 P_PKG_NAME => G_PKG_NAME,
580 P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS,
581 P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT,
582 P_SQLCODE => SQLCODE,
583 P_SQLERRM => SQLERRM,
584 X_MSG_COUNT => X_MSG_COUNT,
585 X_MSG_DATA => X_MSG_DATA,
586 X_RETURN_STATUS => X_RETURN_STATUS
587 );
588
589 END Copy_Notes_copy_quote;
590
591
592 END ASO_NOTES_INT;