26: ----------------------------------------------------------------------
27:
28: PROCEDURE Create_Formattedoutput
29: (p_api_version IN NUMBER,
30: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
31: p_commit IN VARCHAR2 := FND_API.G_FALSE,
32: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
33: x_return_status OUT NOCOPY VARCHAR2,
34: x_msg_count OUT NOCOPY NUMBER,
27:
28: PROCEDURE Create_Formattedoutput
29: (p_api_version IN NUMBER,
30: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
31: p_commit IN VARCHAR2 := FND_API.G_FALSE,
32: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
33: x_return_status OUT NOCOPY VARCHAR2,
34: x_msg_count OUT NOCOPY NUMBER,
35: x_msg_data OUT NOCOPY VARCHAR2,
28: PROCEDURE Create_Formattedoutput
29: (p_api_version IN NUMBER,
30: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
31: p_commit IN VARCHAR2 := FND_API.G_FALSE,
32: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
33: x_return_status OUT NOCOPY VARCHAR2,
34: x_msg_count OUT NOCOPY NUMBER,
35: x_msg_data OUT NOCOPY VARCHAR2,
36: p_execution_detail_id IN NUMBER,
66:
67: -- Standard begin of API savepoint
68: SAVEPOINT Create_FormattedOutput_PVT;
69: -- Standard call to check for call compatibility.
70: IF NOT FND_API.Compatible_API_Call ( l_api_version,
71: p_api_version,
72: l_api_name,
73: G_PKG_NAME)
74: THEN
71: p_api_version,
72: l_api_name,
73: G_PKG_NAME)
74: THEN
75: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
76: END IF;
77: -- Initialize message list if p_init_msg_list is set to TRUE.
78: IF FND_API.to_Boolean( p_init_msg_list )
79: THEN
74: THEN
75: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
76: END IF;
77: -- Initialize message list if p_init_msg_list is set to TRUE.
78: IF FND_API.to_Boolean( p_init_msg_list )
79: THEN
80: FND_MSG_PUB.initialize;
81: END IF;
82:
83: -- Debug Message
84: DPP_UTILITY_PVT.debug_message(FND_LOG.LEVEL_PROCEDURE, l_module, 'Private API: ' || l_api_name || 'start');
85:
86: -- Initialize API return status to sucess
87: l_return_status := FND_API.G_RET_STS_SUCCESS;
88:
89: --
90: -- API body
91: --
93: IF p_user_id IS NULL THEN
94: FND_MESSAGE.set_name('DPP', 'DPP_API_INPUT_ID_MISSING');
95: FND_MESSAGE.set_token('ID', 'User ID');
96: FND_MSG_PUB.add;
97: RAISE FND_API.G_EXC_ERROR;
98: ELSIF p_process_code IS NULL THEN
99: FND_MESSAGE.set_name('DPP', 'DPP_API_INPUT_ID_MISSING');
100: FND_MESSAGE.set_token('ID', 'Process Code');
101: FND_MSG_PUB.add;
98: ELSIF p_process_code IS NULL THEN
99: FND_MESSAGE.set_name('DPP', 'DPP_API_INPUT_ID_MISSING');
100: FND_MESSAGE.set_token('ID', 'Process Code');
101: FND_MSG_PUB.add;
102: RAISE FND_API.G_EXC_ERROR;
103: ELSIF p_execution_detail_id IS NULL THEN
104: FND_MESSAGE.set_name('DPP', 'DPP_API_INPUT_ID_MISSING');
105: FND_MESSAGE.set_token('ID', 'Execution Detail ID');
106: FND_MSG_PUB.add;
103: ELSIF p_execution_detail_id IS NULL THEN
104: FND_MESSAGE.set_name('DPP', 'DPP_API_INPUT_ID_MISSING');
105: FND_MESSAGE.set_token('ID', 'Execution Detail ID');
106: FND_MSG_PUB.add;
107: RAISE FND_API.G_EXC_ERROR;
108: END IF;
109:
110: BEGIN
111: SELECT u.RESPONSIBILITY_ID,
120: AND ROWNUM = 1;
121: EXCEPTION
122: WHEN NO_DATA_FOUND THEN
123: DPP_UTILITY_PVT.debug_message(FND_LOG.LEVEL_EXCEPTION, l_module, 'Price Protection responsibility not available for User');
124: RAISE FND_API.G_EXC_ERROR;
125: END;
126:
127: FND_GLOBAL.APPS_INITIALIZE(p_user_id,l_responsibility_id,l_application_id);
128:
166: WHEN NO_DATA_FOUND THEN
167: FND_MESSAGE.set_name('DPP', 'DPP_API_INPUT_ID_MISSING');
168: FND_MESSAGE.set_token('ID', 'Language Code');
169: FND_MSG_PUB.add;
170: RAISE FND_API.G_EXC_ERROR;
171: WHEN OTHERS THEN
172: fnd_message.set_name('FND', 'SQL_PLSQL_ERROR');
173: fnd_message.set_token('ROUTINE', 'DPP_NOTIFICATION_PVT');
174: fnd_message.set_token('ERRNO', sqlcode);
173: fnd_message.set_token('ROUTINE', 'DPP_NOTIFICATION_PVT');
174: fnd_message.set_token('ERRNO', sqlcode);
175: fnd_message.set_token('REASON', sqlerrm);
176: FND_MSG_PUB.add;
177: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
178: END;
179: END IF;
180:
181: l_req_id := FND_REQUEST.submit_request(
196:
197: IF l_req_id = 0 THEN
198:
199: DPP_UTILITY_PVT.debug_message(FND_LOG.LEVEL_EXCEPTION, l_module, 'Error in Conc Request Submission');
200: RAISE FND_API.G_EXC_ERROR;
201:
202: END IF;
203:
204:
204:
205: x_return_status := l_return_status;
206:
207: -- Standard check for p_commit
208: IF FND_API.to_Boolean( p_commit )
209: THEN
210: COMMIT WORK;
211: END IF;
212:
221:
222:
223: --Exception Handling
224: EXCEPTION
225: WHEN FND_API.G_EXC_ERROR THEN
226: x_return_status := FND_API.G_RET_STS_ERROR;
227: -- Standard call to get message count and if count=1, get the message
228: FND_MSG_PUB.Count_And_Get (
229: p_encoded => FND_API.G_FALSE,
222:
223: --Exception Handling
224: EXCEPTION
225: WHEN FND_API.G_EXC_ERROR THEN
226: x_return_status := FND_API.G_RET_STS_ERROR;
227: -- Standard call to get message count and if count=1, get the message
228: FND_MSG_PUB.Count_And_Get (
229: p_encoded => FND_API.G_FALSE,
230: p_count => x_msg_count,
225: WHEN FND_API.G_EXC_ERROR THEN
226: x_return_status := FND_API.G_RET_STS_ERROR;
227: -- Standard call to get message count and if count=1, get the message
228: FND_MSG_PUB.Count_And_Get (
229: p_encoded => FND_API.G_FALSE,
230: p_count => x_msg_count,
231: p_data => x_msg_data
232: );
233: IF x_msg_count > 1 THEN
234: FOR I IN 1..x_msg_count LOOP
235: x_msg_data := SUBSTR((x_msg_data||' '|| FND_MSG_PUB.GET(P_MSG_INDEX => I, P_ENCODED => 'F')), 1, 4000);
236: END LOOP;
237: END IF;
238: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
239:
240: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
241: -- Standard call to get message count and if count=1, get the message
242: FND_MSG_PUB.Count_And_Get (
236: END LOOP;
237: END IF;
238: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
239:
240: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
241: -- Standard call to get message count and if count=1, get the message
242: FND_MSG_PUB.Count_And_Get (
243: p_encoded => FND_API.G_FALSE,
244: p_count => x_msg_count,
239:
240: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
241: -- Standard call to get message count and if count=1, get the message
242: FND_MSG_PUB.Count_And_Get (
243: p_encoded => FND_API.G_FALSE,
244: p_count => x_msg_count,
245: p_data => x_msg_data
246: );
247: IF x_msg_count > 1 THEN
250: END LOOP;
251: END IF;
252: WHEN OTHERS THEN
253:
254: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
255: fnd_message.set_name('FND', 'SQL_PLSQL_ERROR');
256: fnd_message.set_token('ROUTINE', 'DPP_NOTIFICATION_PVT.Create_FormattedOutput');
257: fnd_message.set_token('ERRNO', sqlcode);
258: fnd_message.set_token('REASON', sqlerrm);
260: DPP_UTILITY_PVT.debug_message(FND_LOG.LEVEL_EXCEPTION, l_module, substr(('Error in DPP_NOTIFICATION_PVT.Create_FormattedOutput: '||SQLERRM),1,4000));
261:
262: -- Standard call to get message count and if count=1, get the message
263: FND_MSG_PUB.Count_And_Get (
264: p_encoded => FND_API.G_FALSE,
265: p_count => x_msg_count,
266: p_data => x_msg_data
267: );
268: IF x_msg_count > 1 THEN
314: -- Debug Message
315: DPP_UTILITY_PVT.debug_message(FND_LOG.LEVEL_PROCEDURE, l_module, 'Private API: ' || l_api_name || 'start');
316:
317: -- Initialize API return status to sucess
318: l_return_status := FND_API.G_RET_STS_SUCCESS;
319:
320: IF p_message_name IS NULL THEN
321: FND_MESSAGE.set_name('DPP', 'DPP_API_INPUT_ID_MISSING');
322: FND_MESSAGE.set_token('ID', 'Message Name');
320: IF p_message_name IS NULL THEN
321: FND_MESSAGE.set_name('DPP', 'DPP_API_INPUT_ID_MISSING');
322: FND_MESSAGE.set_token('ID', 'Message Name');
323: FND_MSG_PUB.add;
324: RAISE FND_API.G_EXC_ERROR;
325: ELSIF p_application_short_name IS NULL THEN
326: FND_MESSAGE.set_name('DPP', 'DPP_API_INPUT_ID_MISSING');
327: FND_MESSAGE.set_token('ID', 'Application Short Name');
328: FND_MSG_PUB.add;
325: ELSIF p_application_short_name IS NULL THEN
326: FND_MESSAGE.set_name('DPP', 'DPP_API_INPUT_ID_MISSING');
327: FND_MESSAGE.set_token('ID', 'Application Short Name');
328: FND_MSG_PUB.add;
329: RAISE FND_API.G_EXC_ERROR;
330: END IF;
331:
332: IF p_language_code IS NOT NULL THEN
333: BEGIN
349: WHEN NO_DATA_FOUND THEN
350: FND_MESSAGE.set_name('DPP', 'DPP_API_INPUT_ID_MISSING');
351: FND_MESSAGE.set_token('ID', 'Language Code');
352: FND_MSG_PUB.add;
353: RAISE FND_API.G_EXC_ERROR;
354: WHEN OTHERS THEN
355: fnd_message.set_name('FND', 'SQL_PLSQL_ERROR');
356: fnd_message.set_token('ROUTINE', 'DPP_NOTIFICATION_PVT');
357: fnd_message.set_token('ERRNO', sqlcode);
356: fnd_message.set_token('ROUTINE', 'DPP_NOTIFICATION_PVT');
357: fnd_message.set_token('ERRNO', sqlcode);
358: fnd_message.set_token('REASON', sqlerrm);
359: FND_MSG_PUB.add;
360: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
361: END;
362: WHEN OTHERS THEN
363: fnd_message.set_name('FND', 'SQL_PLSQL_ERROR');
364: fnd_message.set_token('ROUTINE', 'DPP_NOTIFICATION_PVT');
364: fnd_message.set_token('ROUTINE', 'DPP_NOTIFICATION_PVT');
365: fnd_message.set_token('ERRNO', sqlcode);
366: fnd_message.set_token('REASON', sqlerrm);
367: FND_MSG_PUB.add;
368: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
369: END;
370: --FND_GLOBAL.set_nls(p_nls_language => l_language_code);
371: fnd_global.set_nls_context(p_nls_language => l_language_code);
372: END IF;
394: DPP_UTILITY_PVT.debug_message(FND_LOG.LEVEL_PROCEDURE, l_module, 'Private API: ' || l_api_name || 'end');
395:
396: --Exception Handling
397: EXCEPTION
398: WHEN FND_API.G_EXC_ERROR THEN
399: x_return_status := FND_API.G_RET_STS_ERROR;
400: -- Standard call to get message count and if count=1, get the message
401: FND_MSG_PUB.Count_And_Get (
402: p_encoded => FND_API.G_FALSE,
395:
396: --Exception Handling
397: EXCEPTION
398: WHEN FND_API.G_EXC_ERROR THEN
399: x_return_status := FND_API.G_RET_STS_ERROR;
400: -- Standard call to get message count and if count=1, get the message
401: FND_MSG_PUB.Count_And_Get (
402: p_encoded => FND_API.G_FALSE,
403: p_count => x_msg_count,
398: WHEN FND_API.G_EXC_ERROR THEN
399: x_return_status := FND_API.G_RET_STS_ERROR;
400: -- Standard call to get message count and if count=1, get the message
401: FND_MSG_PUB.Count_And_Get (
402: p_encoded => FND_API.G_FALSE,
403: p_count => x_msg_count,
404: p_data => x_msg_data
405: );
406: IF x_msg_count > 1 THEN
407: FOR I IN 1..x_msg_count LOOP
408: x_msg_data := SUBSTR((x_msg_data||' '|| FND_MSG_PUB.GET(P_MSG_INDEX => I, P_ENCODED => 'F')), 1, 2000);
409: END LOOP;
410: END IF;
411: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
412:
413: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
414: -- Standard call to get message count and if count=1, get the message
415: FND_MSG_PUB.Count_And_Get (
409: END LOOP;
410: END IF;
411: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
412:
413: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
414: -- Standard call to get message count and if count=1, get the message
415: FND_MSG_PUB.Count_And_Get (
416: p_encoded => FND_API.G_FALSE,
417: p_count => x_msg_count,
412:
413: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
414: -- Standard call to get message count and if count=1, get the message
415: FND_MSG_PUB.Count_And_Get (
416: p_encoded => FND_API.G_FALSE,
417: p_count => x_msg_count,
418: p_data => x_msg_data
419: );
420: IF x_msg_count > 1 THEN
423: END LOOP;
424: END IF;
425: WHEN OTHERS THEN
426:
427: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
428: fnd_message.set_name('FND', 'SQL_PLSQL_ERROR');
429: fnd_message.set_token('ROUTINE', 'DPP_NOTIFICATION_PVT.Select_Message_Text');
430: fnd_message.set_token('ERRNO', sqlcode);
431: fnd_message.set_token('REASON', sqlerrm);
433: DPP_UTILITY_PVT.debug_message(FND_LOG.LEVEL_EXCEPTION, l_module, substr(('Error in DPP_NOTIFICATION_PVT.Select_Message_Text: '||SQLERRM),1,2000));
434:
435: -- Standard call to get message count and if count=1, get the message
436: FND_MSG_PUB.Count_And_Get (
437: p_encoded => FND_API.G_FALSE,
438: p_count => x_msg_count,
439: p_data => x_msg_data
440: );
441: IF x_msg_count > 1 THEN
460: ----------------------------------------------------------------------
461:
462: PROCEDURE Get_FormattedOutput
463: (p_api_version IN NUMBER,
464: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
465: p_commit IN VARCHAR2 := FND_API.G_FALSE,
466: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
467: x_return_status OUT NOCOPY VARCHAR2,
468: x_msg_count OUT NOCOPY NUMBER,
461:
462: PROCEDURE Get_FormattedOutput
463: (p_api_version IN NUMBER,
464: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
465: p_commit IN VARCHAR2 := FND_API.G_FALSE,
466: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
467: x_return_status OUT NOCOPY VARCHAR2,
468: x_msg_count OUT NOCOPY NUMBER,
469: x_msg_data OUT NOCOPY VARCHAR2,
462: PROCEDURE Get_FormattedOutput
463: (p_api_version IN NUMBER,
464: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
465: p_commit IN VARCHAR2 := FND_API.G_FALSE,
466: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
467: x_return_status OUT NOCOPY VARCHAR2,
468: x_msg_count OUT NOCOPY NUMBER,
469: x_msg_data OUT NOCOPY VARCHAR2,
470: p_execution_detail_id IN NUMBER,
483: -- Debug Message
484: DPP_UTILITY_PVT.debug_message(FND_LOG.LEVEL_PROCEDURE, l_module, 'Private API: ' || l_api_name || 'start');
485:
486: -- Initialize API return status to sucess
487: l_return_status := FND_API.G_RET_STS_SUCCESS;
488:
489: IF p_execution_detail_id IS NULL THEN
490: FND_MESSAGE.set_name('DPP', 'DPP_API_INPUT_ID_MISSING');
491: FND_MESSAGE.set_token('ID', 'Execution Detail ID');
489: IF p_execution_detail_id IS NULL THEN
490: FND_MESSAGE.set_name('DPP', 'DPP_API_INPUT_ID_MISSING');
491: FND_MESSAGE.set_token('ID', 'Execution Detail ID');
492: FND_MSG_PUB.add;
493: RAISE FND_API.G_EXC_ERROR;
494: END IF;
495:
496: -- x_output_type := fnd_profile.VALUE('DPP_NOTIFICATION_REPORT_TYPE');
497:
506: FND_MSG_PUB.add;
507: -- Debug Message
508: DPP_UTILITY_PVT.debug_message(FND_LOG.LEVEL_STATEMENT, l_module, 'Formatted Output was not created by Request');
509:
510: RAISE FND_API.G_EXC_ERROR;
511: END IF;
512:
513: x_return_status := l_return_status;
514:
516: DPP_UTILITY_PVT.debug_message(FND_LOG.LEVEL_PROCEDURE, l_module, 'Private API: ' || l_api_name || 'end');
517:
518: --Exception Handling
519: EXCEPTION
520: WHEN FND_API.G_EXC_ERROR THEN
521: x_return_status := FND_API.G_RET_STS_ERROR;
522: -- Standard call to get message count and if count=1, get the message
523: FND_MSG_PUB.Count_And_Get (
524: p_encoded => FND_API.G_FALSE,
517:
518: --Exception Handling
519: EXCEPTION
520: WHEN FND_API.G_EXC_ERROR THEN
521: x_return_status := FND_API.G_RET_STS_ERROR;
522: -- Standard call to get message count and if count=1, get the message
523: FND_MSG_PUB.Count_And_Get (
524: p_encoded => FND_API.G_FALSE,
525: p_count => x_msg_count,
520: WHEN FND_API.G_EXC_ERROR THEN
521: x_return_status := FND_API.G_RET_STS_ERROR;
522: -- Standard call to get message count and if count=1, get the message
523: FND_MSG_PUB.Count_And_Get (
524: p_encoded => FND_API.G_FALSE,
525: p_count => x_msg_count,
526: p_data => x_msg_data
527: );
528: IF x_msg_count > 1 THEN
529: FOR I IN 1..x_msg_count LOOP
530: x_msg_data := SUBSTR((x_msg_data||' '|| FND_MSG_PUB.GET(P_MSG_INDEX => I, P_ENCODED => 'F')), 1, 2000);
531: END LOOP;
532: END IF;
533: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
534:
535: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
536: -- Standard call to get message count and if count=1, get the message
537: FND_MSG_PUB.Count_And_Get (
531: END LOOP;
532: END IF;
533: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
534:
535: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
536: -- Standard call to get message count and if count=1, get the message
537: FND_MSG_PUB.Count_And_Get (
538: p_encoded => FND_API.G_FALSE,
539: p_count => x_msg_count,
534:
535: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
536: -- Standard call to get message count and if count=1, get the message
537: FND_MSG_PUB.Count_And_Get (
538: p_encoded => FND_API.G_FALSE,
539: p_count => x_msg_count,
540: p_data => x_msg_data
541: );
542: IF x_msg_count > 1 THEN
545: END LOOP;
546: END IF;
547: WHEN OTHERS THEN
548:
549: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
550: fnd_message.set_name('FND', 'SQL_PLSQL_ERROR');
551: fnd_message.set_token('ROUTINE', 'DPP_NOTIFICATION_PVT.Get_FormattedOutput');
552: fnd_message.set_token('ERRNO', sqlcode);
553: fnd_message.set_token('REASON', sqlerrm);
554: FND_MSG_PUB.ADD;
555: DPP_UTILITY_PVT.debug_message(FND_LOG.LEVEL_EXCEPTION, l_module, substr(('Error in DPP_NOTIFICATION_PVT.Get_FormattedOutput: '||SQLERRM),1,2000));
556: -- Standard call to get message count and if count=1, get the message
557: FND_MSG_PUB.Count_And_Get (
558: p_encoded => FND_API.G_FALSE,
559: p_count => x_msg_count,
560: p_data => x_msg_data
561: );
562: IF x_msg_count > 1 THEN