39:
40: BEGIN
41: l_progress := '010';
42:
43: x_return_status := FND_API.G_RET_STS_SUCCESS ;
44:
45: IF p_test_id IS NULL THEN
46: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_ID_CODE_NULL');
47: FND_MSG_PUB.ADD;
44:
45: IF p_test_id IS NULL THEN
46: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_ID_CODE_NULL');
47: FND_MSG_PUB.ADD;
48: RAISE FND_API.G_EXC_ERROR;
49: END IF;
50:
51: l_progress := '020';
52:
68: IF NVL(l_min,-999999999.999999999) <= NVL(l_prev_max,999999999.999999999) THEN
69: CLOSE CR_TEST_VALUES ;
70: FND_MESSAGE.SET_NAME('GMD','GMD_RANGES_MAY_NOT_OVERLAP');
71: FND_MSG_PUB.ADD;
72: RAISE FND_API.G_EXC_ERROR;
73: END IF;
74: ELSIF l_counter = 1 THEN
75: x_min_range := l_min;
76: END IF;
77: l_prev_max := l_max;
78: END LOOP;
79:
80: EXCEPTION
81: WHEN FND_API.G_EXC_ERROR THEN
82: x_return_status := FND_API.G_RET_STS_ERROR ;
83: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
84: WHEN OTHERS
85: THEN
78: END LOOP;
79:
80: EXCEPTION
81: WHEN FND_API.G_EXC_ERROR THEN
82: x_return_status := FND_API.G_RET_STS_ERROR ;
83: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
84: WHEN OTHERS
85: THEN
86: IF CR_TEST_VALUES%ISOPEN THEN
79:
80: EXCEPTION
81: WHEN FND_API.G_EXC_ERROR THEN
82: x_return_status := FND_API.G_RET_STS_ERROR ;
83: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
84: WHEN OTHERS
85: THEN
86: IF CR_TEST_VALUES%ISOPEN THEN
87: CLOSE CR_TEST_VALUES ;
90: FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.CHECK_RANGE_OVERLAP' );
91: FND_MESSAGE.Set_Token('ERROR', SUBSTR(SQLERRM,1,100));
92: FND_MESSAGE.Set_Token('POSITION',l_progress );
93: FND_MSG_PUB.ADD;
94: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
95: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
96: END CHECK_RANGE_OVERLAP;
97:
98:
91: FND_MESSAGE.Set_Token('ERROR', SUBSTR(SQLERRM,1,100));
92: FND_MESSAGE.Set_Token('POSITION',l_progress );
93: FND_MSG_PUB.ADD;
94: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
95: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
96: END CHECK_RANGE_OVERLAP;
97:
98:
99: FUNCTION get_test_value_desc (
176:
177: BEGIN
178: l_progress := '010';
179:
180: x_return_status := FND_API.G_RET_STS_SUCCESS ;
181:
182: IF p_test_id IS NULL THEN
183: FND_MESSAGE.SET_NAME('GMD','TEST_ID_CODE_NULL');
184: FND_MSG_PUB.ADD;
181:
182: IF p_test_id IS NULL THEN
183: FND_MESSAGE.SET_NAME('GMD','TEST_ID_CODE_NULL');
184: FND_MSG_PUB.ADD;
185: RAISE FND_API.G_EXC_ERROR;
186: END IF;
187:
188: OPEN cr_get_test_type(p_test_id);
189: FETCH cr_get_test_type INTO x_test_type,x_display_precision,l_delete_mark;
191: CLOSE cr_get_test_type;
192: FND_MESSAGE.SET_NAME('GMD','GMD_INVALID_TEST');
193: FND_MESSAGE.SET_TOKEN('TEST', TO_CHAR(p_test_id));
194: FND_MSG_PUB.ADD;
195: RAISE FND_API.G_EXC_ERROR;
196: END IF;
197: CLOSE cr_get_test_type ;
198:
199: l_progress := '020';
201: IF l_delete_mark = 1 THEN
202: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_DELETED');
203: FND_MESSAGE.SET_TOKEN('TEST',TO_CHAR(p_test_id));
204: FND_MSG_PUB.ADD;
205: RAISE FND_API.G_EXC_ERROR;
206: END IF;
207: IF GMD_QC_TESTS_GRP.test_exist_in_spec(p_test_id => p_test_id) THEN
208: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_USED_IN_SPEC');
209: FND_MESSAGE.SET_TOKEN('TEST',TO_CHAR(p_test_id));
207: IF GMD_QC_TESTS_GRP.test_exist_in_spec(p_test_id => p_test_id) THEN
208: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_USED_IN_SPEC');
209: FND_MESSAGE.SET_TOKEN('TEST',TO_CHAR(p_test_id));
210: FND_MSG_PUB.ADD;
211: RAISE FND_API.G_EXC_ERROR;
212: END IF;
213:
214: EXCEPTION
215: WHEN FND_API.G_EXC_ERROR THEN
211: RAISE FND_API.G_EXC_ERROR;
212: END IF;
213:
214: EXCEPTION
215: WHEN FND_API.G_EXC_ERROR THEN
216: x_return_status := FND_API.G_RET_STS_ERROR ;
217: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
218:
219: WHEN OTHERS THEN
212: END IF;
213:
214: EXCEPTION
215: WHEN FND_API.G_EXC_ERROR THEN
216: x_return_status := FND_API.G_RET_STS_ERROR ;
217: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
218:
219: WHEN OTHERS THEN
220: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
213:
214: EXCEPTION
215: WHEN FND_API.G_EXC_ERROR THEN
216: x_return_status := FND_API.G_RET_STS_ERROR ;
217: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
218:
219: WHEN OTHERS THEN
220: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
221: FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.CHECK_VALID_TEST');
221: FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.CHECK_VALID_TEST');
222: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
223: FND_MESSAGE.Set_Token('POSITION',l_progress );
224: FND_MSG_PUB.ADD;
225: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
226: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
227:
228: END CHECK_VALID_TEST;
229:
222: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
223: FND_MESSAGE.Set_Token('POSITION',l_progress );
224: FND_MSG_PUB.ADD;
225: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
226: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
227:
228: END CHECK_VALID_TEST;
229:
230:
240:
241: BEGIN
242: l_progress := '010';
243:
244: x_return_status := FND_API.G_RET_STS_SUCCESS ;
245:
246: x_qc_test_values_rec := p_qc_test_values_rec ;
247:
248: -- There should be no test values for p_test_type IN ('U','N','E').. Do that validation in PUBLIC API's
249:
250: IF x_qc_test_values_rec.EXPRESSION_REF_TEST_ID IS NOT NULL THEN
251: FND_MESSAGE.SET_NAME('GMD','GMD_EXP_TEST_ID_NOT_REQD');
252: FND_MSG_PUB.ADD;
253: RAISE FND_API.G_EXC_ERROR;
254: END IF;
255:
256: IF p_test_type = 'L' THEN -- numeric range with label.
257: IF x_qc_test_values_rec.min_num IS NULL AND x_qc_test_values_rec.max_num IS NULL
257: IF x_qc_test_values_rec.min_num IS NULL AND x_qc_test_values_rec.max_num IS NULL
258: THEN
259: FND_MESSAGE.SET_NAME('GMD', 'GMD_MIN_MAX_REQ');
260: FND_MSG_PUB.ADD;
261: RAISE FND_API.G_EXC_ERROR;
262: END IF;
263:
264: IF LTRIM(RTRIM(x_qc_test_values_rec.display_label_numeric_range)) IS NULL THEN
265: FND_MESSAGE.SET_NAME('GMD', 'GMD_DISPLAY_LABEL_REQ');
263:
264: IF LTRIM(RTRIM(x_qc_test_values_rec.display_label_numeric_range)) IS NULL THEN
265: FND_MESSAGE.SET_NAME('GMD', 'GMD_DISPLAY_LABEL_REQ');
266: FND_MSG_PUB.ADD;
267: RAISE FND_API.G_EXC_ERROR;
268: END IF;
269:
270: IF x_qc_test_values_rec.value_char IS NOT NULL THEN
271: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_VALUE_CHAR_NOT_REQD');
269:
270: IF x_qc_test_values_rec.value_char IS NOT NULL THEN
271: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_VALUE_CHAR_NOT_REQD');
272: FND_MSG_PUB.ADD;
273: RAISE FND_API.G_EXC_ERROR;
274: END IF;
275:
276: IF x_qc_test_values_rec.test_value_desc IS NOT NULL THEN
277: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_VALUE_DESC_NOT_REQD');
275:
276: IF x_qc_test_values_rec.test_value_desc IS NOT NULL THEN
277: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_VALUE_DESC_NOT_REQD');
278: FND_MSG_PUB.ADD;
279: RAISE FND_API.G_EXC_ERROR;
280: END IF;
281:
282: x_qc_test_values_rec.min_num := ROUND(x_qc_test_values_rec.min_num,p_display_precision);
283: x_qc_test_values_rec.max_num := ROUND(x_qc_test_values_rec.max_num,p_display_precision);
286: THEN
287: IF x_qc_test_values_rec.min_num > x_qc_test_values_rec.max_num THEN
288: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_MIN_MAX_ERROR');
289: FND_MSG_PUB.ADD;
290: RAISE FND_API.G_EXC_ERROR;
291: END IF;
292: END IF;
293: ELSE
294: IF x_qc_test_values_rec.min_num IS NOT NULL OR x_qc_test_values_rec.max_num IS NOT NULL THEN
293: ELSE
294: IF x_qc_test_values_rec.min_num IS NOT NULL OR x_qc_test_values_rec.max_num IS NOT NULL THEN
295: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_RANGE_NOT_REQD');
296: FND_MSG_PUB.ADD;
297: RAISE FND_API.G_EXC_ERROR;
298: END IF;
299:
300: IF x_qc_test_values_rec.display_label_numeric_range IS NOT NULL THEN
301: FND_MESSAGE.SET_NAME('GMD', 'GMD_DISPLAY_LABEL_NOT_REQD');
299:
300: IF x_qc_test_values_rec.display_label_numeric_range IS NOT NULL THEN
301: FND_MESSAGE.SET_NAME('GMD', 'GMD_DISPLAY_LABEL_NOT_REQD');
302: FND_MSG_PUB.ADD;
303: RAISE FND_API.G_EXC_ERROR;
304: END IF;
305: END IF;
306:
307: IF p_test_type = 'V' THEN -- List Of Values
307: IF p_test_type = 'V' THEN -- List Of Values
308: IF LTRIM(RTRIM(x_qc_test_values_rec.value_char)) IS NULL THEN
309: FND_MESSAGE.SET_NAME('GMD', 'GMD_VALUE_CHAR_REQ');
310: FND_MSG_PUB.ADD;
311: RAISE FND_API.G_EXC_ERROR;
312: END IF;
313:
314: IF LTRIM(RTRIM(x_qc_test_values_rec.test_value_desc)) IS NULL THEN
315: FND_MESSAGE.SET_NAME('GMD', 'GMD_TEST_VALUE_DESC_REQ');
313:
314: IF LTRIM(RTRIM(x_qc_test_values_rec.test_value_desc)) IS NULL THEN
315: FND_MESSAGE.SET_NAME('GMD', 'GMD_TEST_VALUE_DESC_REQ');
316: FND_MSG_PUB.ADD;
317: RAISE FND_API.G_EXC_ERROR;
318: END IF;
319: END IF;
320:
321: IF p_test_type = 'T' THEN -- Text Range
321: IF p_test_type = 'T' THEN -- Text Range
322: IF LTRIM(RTRIM(x_qc_test_values_rec.value_char)) IS NULL THEN
323: FND_MESSAGE.SET_NAME('GMD', 'GMD_VALUE_CHAR_REQ');
324: FND_MSG_PUB.ADD;
325: RAISE FND_API.G_EXC_ERROR;
326: END IF;
327:
328: IF LTRIM(RTRIM(x_qc_test_values_rec.test_value_desc)) IS NULL THEN
329: FND_MESSAGE.SET_NAME('GMD', 'GMD_TEST_VALUE_DESC_REQ');
327:
328: IF LTRIM(RTRIM(x_qc_test_values_rec.test_value_desc)) IS NULL THEN
329: FND_MESSAGE.SET_NAME('GMD', 'GMD_TEST_VALUE_DESC_REQ');
330: FND_MSG_PUB.ADD;
331: RAISE FND_API.G_EXC_ERROR;
332: END IF;
333:
334: SELECT NVL(MAX(text_range_seq),0) + 1 INTO x_qc_test_values_rec.text_range_seq
335: FROM GMD_QC_TEST_VALUES_B
339:
340: IF x_qc_test_values_rec.text_range_seq IS NOT NULL THEN
341: FND_MESSAGE.SET_NAME('GMD', 'GMD_SEQ_NOT_REQD');
342: FND_MSG_PUB.ADD;
343: RAISE FND_API.G_EXC_ERROR;
344: END IF;
345: END IF;
346:
347: EXCEPTION
344: END IF;
345: END IF;
346:
347: EXCEPTION
348: WHEN FND_API.G_EXC_ERROR THEN
349: x_return_status := FND_API.G_RET_STS_ERROR ;
350: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
351:
352: WHEN OTHERS THEN
345: END IF;
346:
347: EXCEPTION
348: WHEN FND_API.G_EXC_ERROR THEN
349: x_return_status := FND_API.G_RET_STS_ERROR ;
350: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
351:
352: WHEN OTHERS THEN
353: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
346:
347: EXCEPTION
348: WHEN FND_API.G_EXC_ERROR THEN
349: x_return_status := FND_API.G_RET_STS_ERROR ;
350: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
351:
352: WHEN OTHERS THEN
353: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
354: FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.CHECK_FOR_NULL_AND_FKS');
354: FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.CHECK_FOR_NULL_AND_FKS');
355: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
356: FND_MESSAGE.Set_Token('POSITION',l_progress );
357: FND_MSG_PUB.ADD;
358: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
359: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
360:
361: END CHECK_FOR_NULL_AND_FKS;
362:
355: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
356: FND_MESSAGE.Set_Token('POSITION',l_progress );
357: FND_MSG_PUB.ADD;
358: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
359: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
360:
361: END CHECK_FOR_NULL_AND_FKS;
362:
363:
389:
390: BEGIN
391: l_progress := '010';
392:
393: x_return_status := FND_API.G_RET_STS_SUCCESS ;
394:
395: IF p_qc_test_values_rec.test_id IS NULL THEN
396: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_ID_REQ');
397: FND_MSG_PUB.ADD;
394:
395: IF p_qc_test_values_rec.test_id IS NULL THEN
396: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_ID_REQ');
397: FND_MSG_PUB.ADD;
398: RAISE FND_API.G_EXC_ERROR;
399: END IF;
400:
401: check_valid_test(p_test_id => p_qc_test_values_rec.test_id,
402: x_test_type => l_test_type,
403: x_display_precision => l_display_precision,
404: x_return_status => x_return_status,
405: x_message_data => x_message_data );
406:
407: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
408: RETURN;
409: END IF;
410:
411: IF l_test_type IN ('N','E','U') THEN
410:
411: IF l_test_type IN ('N','E','U') THEN
412: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_VALUE_REC_NOT_REQ');
413: FND_MSG_PUB.ADD;
414: RAISE FND_API.G_EXC_ERROR;
415: END IF;
416:
417: CHECK_FOR_NULL_AND_FKS(
418: p_test_type => l_test_type,
421: x_qc_test_values_rec => x_qc_test_values_rec,
422: x_return_status => x_return_status,
423: x_message_data => x_message_data );
424:
425: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
426: return;
427: END IF;
428:
429: -- check for duplicate test values.
434: CLOSE cr_test_value_exist;
435: FND_MESSAGE.SET_NAME('GMD','GMD_DUP_TEST_VALUE');
436: FND_MESSAGE.SET_TOKEN('TEST',to_char(x_qc_test_values_rec.test_id));
437: FND_MSG_PUB.ADD;
438: RAISE FND_API.G_EXC_ERROR;
439: END IF;
440: CLOSE cr_test_value_exist;
441: END IF;
442:
440: CLOSE cr_test_value_exist;
441: END IF;
442:
443: EXCEPTION
444: WHEN FND_API.G_EXC_ERROR THEN
445: x_return_status := FND_API.G_RET_STS_ERROR ;
446: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
447:
448: WHEN OTHERS THEN
441: END IF;
442:
443: EXCEPTION
444: WHEN FND_API.G_EXC_ERROR THEN
445: x_return_status := FND_API.G_RET_STS_ERROR ;
446: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
447:
448: WHEN OTHERS THEN
449: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
442:
443: EXCEPTION
444: WHEN FND_API.G_EXC_ERROR THEN
445: x_return_status := FND_API.G_RET_STS_ERROR ;
446: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
447:
448: WHEN OTHERS THEN
449: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
450: FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.VALIDATE_BEFORE_INSERT');
450: FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.VALIDATE_BEFORE_INSERT');
451: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
452: FND_MESSAGE.Set_Token('POSITION',l_progress );
453: FND_MSG_PUB.ADD;
454: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
455: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
456:
457: END validate_before_insert;
458:
451: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
452: FND_MESSAGE.Set_Token('POSITION',l_progress );
453: FND_MSG_PUB.ADD;
454: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
455: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
456:
457: END validate_before_insert;
458:
459: /*===========================================================================
480:
481: BEGIN
482: l_progress := '010';
483:
484: x_return_status := FND_API.G_RET_STS_SUCCESS ;
485:
486: x_gmd_qc_tests_rec := p_gmd_qc_tests_rec;
487:
488:
488:
489: IF x_gmd_qc_tests_rec.test_id IS NULL THEN
490: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_ID_CODE_NULL');
491: FND_MSG_PUB.ADD;
492: RAISE FND_API.G_EXC_ERROR;
493: END IF;
494:
495: -- atleast one test value record must be there.
496: IF x_gmd_qc_tests_rec.test_type in ('V','T','L') THEN
501: IF l_test_values_count = 0 THEN
502: FND_MESSAGE.SET_NAME('GMD','GMD_NO_TEST_VALUES');
503: FND_MESSAGE.SET_TOKEN('TEST',x_gmd_qc_tests_rec.test_code);
504: FND_MSG_PUB.ADD;
505: RAISE FND_API.G_EXC_ERROR;
506: END IF;
507: END IF;
508:
509: l_progress := '020';
515: x_max_range => l_max_range,
516: x_return_status => x_return_status,
517: x_message_data => x_message_data);
518:
519: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
520: RETURN;
521: END IF;
522:
523: IF x_gmd_qc_tests_rec.exp_error_type = 'N' AND l_min_range IS NOT NULL AND l_max_range IS NOT NULL THEN
536: p_test_max => l_max_range,
537: x_return_status => x_return_status,
538: x_message_data => x_message_data );
539:
540: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
541: RETURN;
542: END IF;
543: END IF;
544:
572:
573: END IF; -- end of :gmd_qc_tests.test_type = 'T'
574:
575: EXCEPTION
576: WHEN FND_API.G_EXC_ERROR THEN
577: x_return_status := FND_API.G_RET_STS_ERROR ;
578: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
579:
580: WHEN OTHERS THEN
573: END IF; -- end of :gmd_qc_tests.test_type = 'T'
574:
575: EXCEPTION
576: WHEN FND_API.G_EXC_ERROR THEN
577: x_return_status := FND_API.G_RET_STS_ERROR ;
578: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
579:
580: WHEN OTHERS THEN
581: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
574:
575: EXCEPTION
576: WHEN FND_API.G_EXC_ERROR THEN
577: x_return_status := FND_API.G_RET_STS_ERROR ;
578: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
579:
580: WHEN OTHERS THEN
581: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
582: FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.VALIDATE_AFTER_INSERT_ALL');
582: FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.VALIDATE_AFTER_INSERT_ALL');
583: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
584: FND_MESSAGE.Set_Token('POSITION',l_progress );
585: FND_MSG_PUB.ADD;
586: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
587: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
588:
589: END validate_after_insert_all;
590:
583: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
584: FND_MESSAGE.Set_Token('POSITION',l_progress );
585: FND_MSG_PUB.ADD;
586: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
587: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
588:
589: END validate_after_insert_all;
590:
591: /*===========================================================================
615: WHERE test_value_id = p_test_value_id ;
616:
617: BEGIN
618: l_progress := '010';
619: x_return_status := FND_API.G_RET_STS_SUCCESS ;
620:
621: IF p_test_value_id IS NULL THEN
622: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_VALUE_ID_REQ');
623: FND_MSG_PUB.ADD;
620:
621: IF p_test_value_id IS NULL THEN
622: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_VALUE_ID_REQ');
623: FND_MSG_PUB.ADD;
624: RAISE FND_API.G_EXC_ERROR;
625: END IF;
626:
627: OPEN cr_get_test_id;
628: FETCH cr_get_test_id INTO l_test_id;
630: CLOSE cr_get_test_id;
631: FND_MESSAGE.SET_NAME('GMD','GMD_TEST_VALUE_INVALID');
632: FND_MESSAGE.SET_TOKEN('TEST_VALUE',to_char(p_test_value_id));
633: FND_MSG_PUB.ADD;
634: RAISE FND_API.G_EXC_ERROR;
635: END IF;
636: CLOSE cr_get_test_id;
637:
638: check_valid_test(p_test_id => l_test_id,
640: x_display_precision => l_display_precision,
641: x_return_status => x_return_status,
642: x_message_data => x_message_data );
643:
644: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
645: RETURN;
646: END IF;
647:
648: EXCEPTION
645: RETURN;
646: END IF;
647:
648: EXCEPTION
649: WHEN FND_API.G_EXC_ERROR THEN
650: x_return_status := FND_API.G_RET_STS_ERROR ;
651: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
652:
653: WHEN OTHERS THEN
646: END IF;
647:
648: EXCEPTION
649: WHEN FND_API.G_EXC_ERROR THEN
650: x_return_status := FND_API.G_RET_STS_ERROR ;
651: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
652:
653: WHEN OTHERS THEN
654: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
647:
648: EXCEPTION
649: WHEN FND_API.G_EXC_ERROR THEN
650: x_return_status := FND_API.G_RET_STS_ERROR ;
651: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
652:
653: WHEN OTHERS THEN
654: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
655: FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.VALIDATE_BEFORE_DELETE');
655: FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.VALIDATE_BEFORE_DELETE');
656: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
657: FND_MESSAGE.Set_Token('POSITION',l_progress );
658: FND_MSG_PUB.ADD;
659: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
660: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
661:
662: END VALIDATE_BEFORE_DELETE ;
663:
656: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
657: FND_MESSAGE.Set_Token('POSITION',l_progress );
658: FND_MSG_PUB.ADD;
659: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
660: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
661:
662: END VALIDATE_BEFORE_DELETE ;
663:
664:
676: x_gmd_qc_tests_rec => x_gmd_qc_tests_rec,
677: x_return_status => x_return_status,
678: x_message_data => x_message_data ) ;
679:
680: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
681: return;
682: END IF;
683:
684: EXCEPTION
681: return;
682: END IF;
683:
684: EXCEPTION
685: WHEN FND_API.G_EXC_ERROR THEN
686: x_return_status := FND_API.G_RET_STS_ERROR ;
687: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
688:
689: WHEN OTHERS THEN
682: END IF;
683:
684: EXCEPTION
685: WHEN FND_API.G_EXC_ERROR THEN
686: x_return_status := FND_API.G_RET_STS_ERROR ;
687: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
688:
689: WHEN OTHERS THEN
690: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
683:
684: EXCEPTION
685: WHEN FND_API.G_EXC_ERROR THEN
686: x_return_status := FND_API.G_RET_STS_ERROR ;
687: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
688:
689: WHEN OTHERS THEN
690: FND_MESSAGE.Set_Name('GMD','GMD_API_ERROR');
691: FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.VALIDATE_AFTER_DELETE_ALL');
691: FND_MESSAGE.Set_Token('PACKAGE','GMD_QC_TEST_VALUES_GRP.VALIDATE_AFTER_DELETE_ALL');
692: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
693: FND_MESSAGE.Set_Token('POSITION',l_progress );
694: FND_MSG_PUB.ADD;
695: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
696: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
697:
698: END VALIDATE_AFTER_DELETE_ALL ;
699:
692: FND_MESSAGE.Set_Token('ERROR', substr(sqlerrm,1,100));
693: FND_MESSAGE.Set_Token('POSITION',l_progress );
694: FND_MSG_PUB.ADD;
695: x_message_data := FND_MSG_PUB.GET(FND_MSG_PUB.G_LAST,FND_API.G_FALSE);
696: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
697:
698: END VALIDATE_AFTER_DELETE_ALL ;
699:
700: FUNCTION text_range_char_to_seq ( p_test_id IN NUMBER,