21: -- group of records to be validated per concurrent request identified by this id
22: --IN OUT:
23: --OUT:
24: --x_return_status
25: -- status of the procedure (FND_API.G_RET_STS_SUCCESS indicates a success,
26: -- otherwise there is an error occurred)
27: --x_msg_count
28: -- Number of messages in the stack
29: --x_msg_data
35: ------------------------------------------------------------------------
36:
37: PROCEDURE Validate_Requisition_Grp
38: ( p_api_version IN NUMBER
39: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
40: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
41: , p_commit IN VARCHAR2 := FND_API.G_FALSE
42: , p_request_id IN NUMBER
43: , x_return_status OUT NOCOPY VARCHAR2
36:
37: PROCEDURE Validate_Requisition_Grp
38: ( p_api_version IN NUMBER
39: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
40: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
41: , p_commit IN VARCHAR2 := FND_API.G_FALSE
42: , p_request_id IN NUMBER
43: , x_return_status OUT NOCOPY VARCHAR2
44: , x_msg_count OUT NOCOPY NUMBER
37: PROCEDURE Validate_Requisition_Grp
38: ( p_api_version IN NUMBER
39: , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
40: , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
41: , p_commit IN VARCHAR2 := FND_API.G_FALSE
42: , p_request_id IN NUMBER
43: , x_return_status OUT NOCOPY VARCHAR2
44: , x_msg_count OUT NOCOPY NUMBER
45: , x_msg_data OUT NOCOPY VARCHAR2
114: And m.organization_id = p_organization_id;
115:
116: BEGIN
117:
118: IF FND_API.to_boolean(p_init_msg_list) THEN
119: FND_MSG_PUB.Initialize;
120: END IF;
121:
122: -- Standard call to check for call compatibility.
119: FND_MSG_PUB.Initialize;
120: END IF;
121:
122: -- Standard call to check for call compatibility.
123: IF NOT FND_API.Compatible_API_Call ( l_api_version,
124: p_api_version,
125: l_api_name ,
126: G_PKG_NAME
127: ) THEN
124: p_api_version,
125: l_api_name ,
126: G_PKG_NAME
127: ) THEN
128: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
129: END IF;
130:
131: x_return_status :=FND_API.G_RET_STS_SUCCESS;
132:
127: ) THEN
128: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
129: END IF;
130:
131: x_return_status :=FND_API.G_RET_STS_SUCCESS;
132:
133: --cache in the opm installed status
134: IF G_OPM_INSTALLED IS NULL THEN
135: l_return_val := fnd_installation.get_app_info ('GMI',l_opm_status,l_opm_ind, l_opm_ora_schema);
203: l_rec.error_message := FND_MESSAGE.get;
204:
205: PO_INTERFACE_ERRORS_GRP.log_error
206: ( p_api_version => 1.0,
207: p_init_msg_list => FND_API.G_TRUE,
208: x_return_status => l_rtn_status,
209: x_msg_count => l_msg_count,
210: x_msg_data => l_msg_data,
211: p_rec => l_rec,
210: x_msg_data => l_msg_data,
211: p_rec => l_rec,
212: x_row_id => l_row_id);
213:
214: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
215: x_msg_count := l_msg_count;
216: x_msg_data := l_msg_data;
217: x_return_status := l_rtn_status;
218: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
214: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
215: x_msg_count := l_msg_count;
216: x_msg_data := l_msg_data;
217: x_return_status := l_rtn_status;
218: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
219: END IF;
220: END IF;
221:
222: --Internal Orders
241: l_rec.error_message := FND_MESSAGE.get;
242:
243: PO_INTERFACE_ERRORS_GRP.log_error
244: ( p_api_version => 1.0,
245: p_init_msg_list => FND_API.G_TRUE,
246: x_return_status => l_rtn_status,
247: x_msg_count => l_msg_count,
248: x_msg_data => l_msg_data,
249: p_rec => l_rec,
248: x_msg_data => l_msg_data,
249: p_rec => l_rec,
250: x_row_id => l_row_id);
251:
252: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
253: x_msg_count := l_msg_count;
254: x_msg_data := l_msg_data;
255: x_return_status := l_rtn_status;
256: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
252: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
253: x_msg_count := l_msg_count;
254: x_msg_data := l_msg_data;
255: x_return_status := l_rtn_status;
256: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
257: END IF;
258:
259: ELSIF (v_process_dest_org = 'Y' AND v_process_source_org = 'Y' )
260: THEN
270: l_rec.error_message := FND_MESSAGE.get;
271:
272: PO_INTERFACE_ERRORS_GRP.log_error
273: ( p_api_version => 1.0,
274: p_init_msg_list => FND_API.G_TRUE,
275: x_return_status => l_rtn_status,
276: x_msg_count => l_msg_count,
277: x_msg_data => l_msg_data,
278: p_rec => l_rec,
277: x_msg_data => l_msg_data,
278: p_rec => l_rec,
279: x_row_id => l_row_id);
280:
281: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
282: x_msg_count := l_msg_count;
283: x_msg_data := l_msg_data;
284: x_return_status := l_rtn_status;
285: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
281: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
282: x_msg_count := l_msg_count;
283: x_msg_data := l_msg_data;
284: x_return_status := l_rtn_status;
285: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
286: END IF;
287: END IF; /*cr_rec.destination_organization_id = cr_rec.source_organization_id */
288: END IF; /*(v_process_dest_org = 'Y' AND v_process_source_org = 'Y' )*/
289: END IF; /*cr_rec.source_type = 'INVENTORY'*/
328: l_rec.error_message := FND_MESSAGE.get;
329:
330: PO_INTERFACE_ERRORS_GRP.log_error
331: ( p_api_version => 1.0,
332: p_init_msg_list => FND_API.G_TRUE,
333: x_return_status => l_rtn_status,
334: x_msg_count => l_msg_count,
335: x_msg_data => l_msg_data,
336: p_rec => l_rec,
335: x_msg_data => l_msg_data,
336: p_rec => l_rec,
337: x_row_id => l_row_id);
338:
339: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
340: x_msg_count := l_msg_count;
341: x_msg_data := l_msg_data;
342: x_return_status := l_rtn_status;
343: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
339: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
340: x_msg_count := l_msg_count;
341: x_msg_data := l_msg_data;
342: x_return_status := l_rtn_status;
343: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
344: END IF;
345: --mark that there is an error to avoid quantity validations.
346: v_uom_error := TRUE;
347:
384: l_rec.error_message := FND_MESSAGE.get;
385:
386: PO_INTERFACE_ERRORS_GRP.log_error
387: ( p_api_version => 1.0,
388: p_init_msg_list => FND_API.G_TRUE,
389: x_return_status => l_rtn_status,
390: x_msg_count => l_msg_count,
391: x_msg_data => l_msg_data,
392: p_rec => l_rec,
391: x_msg_data => l_msg_data,
392: p_rec => l_rec,
393: x_row_id => l_row_id);
394:
395: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
396: x_msg_count := l_msg_count;
397: x_msg_data := l_msg_data;
398: x_return_status := l_rtn_status;
399: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
395: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
396: x_msg_count := l_msg_count;
397: x_msg_data := l_msg_data;
398: x_return_status := l_rtn_status;
399: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
400: END IF;
401: --mark that there is an error to avoid quantity validations.
402: v_uom_error := TRUE;
403:
448: l_rec.error_message := FND_MESSAGE.get;
449:
450: PO_INTERFACE_ERRORS_GRP.log_error
451: ( p_api_version => 1.0,
452: p_init_msg_list => FND_API.G_TRUE,
453: x_return_status => l_rtn_status,
454: x_msg_count => l_msg_count,
455: x_msg_data => l_msg_data,
456: p_rec => l_rec,
455: x_msg_data => l_msg_data,
456: p_rec => l_rec,
457: x_row_id => l_row_id);
458:
459: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
460: x_msg_count := l_msg_count;
461: x_msg_data := l_msg_data;
462: x_return_status := l_rtn_status;
463: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
459: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
460: x_msg_count := l_msg_count;
461: x_msg_data := l_msg_data;
462: x_return_status := l_rtn_status;
463: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
464: END IF;
465: ELSIF ( l_ret_val = -69 ) OR cr_rec.secondary_quantity <= 0 THEN
466: l_rec.interface_type := 'REQIMPORT';
467: l_rec.interface_transaction_id := cr_rec.transaction_id;
473: l_rec.error_message := FND_MESSAGE.get;
474:
475: PO_INTERFACE_ERRORS_GRP.log_error
476: ( p_api_version => 1.0,
477: p_init_msg_list => FND_API.G_TRUE,
478: x_return_status => l_rtn_status,
479: x_msg_count => l_msg_count,
480: x_msg_data => l_msg_data,
481: p_rec => l_rec,
480: x_msg_data => l_msg_data,
481: p_rec => l_rec,
482: x_row_id => l_row_id);
483:
484: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
485: x_msg_count := l_msg_count;
486: x_msg_data := l_msg_data;
487: x_return_status := l_rtn_status;
488: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
484: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
485: x_msg_count := l_msg_count;
486: x_msg_data := l_msg_data;
487: x_return_status := l_rtn_status;
488: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
489: END IF;
490: END IF ;
491:
492: --if dual um 1 then update the secondary quantity since its fixed conversion.
521: l_rec.error_message := FND_MESSAGE.get;
522:
523: PO_INTERFACE_ERRORS_GRP.log_error
524: ( p_api_version => 1.0,
525: p_init_msg_list => FND_API.G_TRUE,
526: x_return_status => l_rtn_status,
527: x_msg_count => l_msg_count,
528: x_msg_data => l_msg_data,
529: p_rec => l_rec,
528: x_msg_data => l_msg_data,
529: p_rec => l_rec,
530: x_row_id => l_row_id);
531:
532: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
533: x_msg_count := l_msg_count;
534: x_msg_data := l_msg_data;
535: x_return_status := l_rtn_status;
536: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
532: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
533: x_msg_count := l_msg_count;
534: x_msg_data := l_msg_data;
535: x_return_status := l_rtn_status;
536: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
537: END IF;
538:
539: --if item is grade controlled and grade is speicified then validate grade.
540: ELSIF v_grade_ctl = 1 and cr_rec.preferred_grade IS NOT NULL
559: l_rec.error_message := FND_MESSAGE.get;
560:
561: PO_INTERFACE_ERRORS_GRP.log_error
562: ( p_api_version => 1.0,
563: p_init_msg_list => FND_API.G_TRUE,
564: x_return_status => l_rtn_status,
565: x_msg_count => l_msg_count,
566: x_msg_data => l_msg_data,
567: p_rec => l_rec,
566: x_msg_data => l_msg_data,
567: p_rec => l_rec,
568: x_row_id => l_row_id);
569:
570: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
571: x_msg_count := l_msg_count;
572: x_msg_data := l_msg_data;
573: x_return_status := l_rtn_status;
574: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
570: IF (l_rtn_status <> FND_API.G_RET_STS_SUCCESS) THEN
571: x_msg_count := l_msg_count;
572: x_msg_data := l_msg_data;
573: x_return_status := l_rtn_status;
574: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
575: END IF;
576: END;
577: END IF;/*v_grade_ctl = 0 */
578:
614: END LOOP;
615:
616: EXCEPTION
617:
618: WHEN FND_API.G_EXC_ERROR THEN
619: x_return_status := FND_API.G_RET_STS_ERROR;
620:
621: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
622: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
615:
616: EXCEPTION
617:
618: WHEN FND_API.G_EXC_ERROR THEN
619: x_return_status := FND_API.G_RET_STS_ERROR;
620:
621: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
622: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
623:
617:
618: WHEN FND_API.G_EXC_ERROR THEN
619: x_return_status := FND_API.G_RET_STS_ERROR;
620:
621: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
622: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
623:
624: WHEN OTHERS THEN
625: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
618: WHEN FND_API.G_EXC_ERROR THEN
619: x_return_status := FND_API.G_RET_STS_ERROR;
620:
621: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
622: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
623:
624: WHEN OTHERS THEN
625: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
626:
621: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
622: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
623:
624: WHEN OTHERS THEN
625: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
626:
627: END Validate_Requisition_Grp;
628:
629: END;