32: -- Declare Procedures --
33: ------------------------
34: PROCEDURE create_disposition(
35: p_api_version IN NUMBER := 1.0,
36: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
37: p_commit IN VARCHAR2 := FND_API.G_FALSE,
38: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
39: p_module_type IN VARCHAR2 := NULL,
40: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
33: ------------------------
34: PROCEDURE create_disposition(
35: p_api_version IN NUMBER := 1.0,
36: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
37: p_commit IN VARCHAR2 := FND_API.G_FALSE,
38: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
39: p_module_type IN VARCHAR2 := NULL,
40: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
41: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
34: PROCEDURE create_disposition(
35: p_api_version IN NUMBER := 1.0,
36: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
37: p_commit IN VARCHAR2 := FND_API.G_FALSE,
38: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
39: p_module_type IN VARCHAR2 := NULL,
40: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
41: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
42: p_mr_asso_tbl IN AHL_PRD_NONROUTINE_PVT.MR_Association_tbl_type,
46: );
47:
48: PROCEDURE update_disposition(
49: p_api_version IN NUMBER := 1.0,
50: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
51: p_commit IN VARCHAR2 := FND_API.G_FALSE,
52: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
53: p_module_type IN VARCHAR2 := NULL,
54: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
47:
48: PROCEDURE update_disposition(
49: p_api_version IN NUMBER := 1.0,
50: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
51: p_commit IN VARCHAR2 := FND_API.G_FALSE,
52: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
53: p_module_type IN VARCHAR2 := NULL,
54: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
55: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
48: PROCEDURE update_disposition(
49: p_api_version IN NUMBER := 1.0,
50: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
51: p_commit IN VARCHAR2 := FND_API.G_FALSE,
52: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
53: p_module_type IN VARCHAR2 := NULL,
54: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
55: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
56: p_mr_asso_tbl IN AHL_PRD_NONROUTINE_PVT.MR_Association_tbl_type,
59: x_msg_data OUT NOCOPY VARCHAR2
60: );
61:
62: PROCEDURE CREATE_SR(
63: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
64: p_disposition_rec IN AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
65: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
66: p_mr_asso_tbl IN AHL_PRD_NONROUTINE_PVT.MR_Association_tbl_type,
67: x_primary_sr_id OUT NOCOPY NUMBER,
130: -- This API is used to get all default dispositions for a job from its related route
131: -- and then put them into the dispostion entity.
132: PROCEDURE create_job_dispositions(
133: p_api_version IN NUMBER := 1.0,
134: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
135: p_commit IN VARCHAR2 := FND_API.G_FALSE,
136: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
137: x_return_status OUT NOCOPY VARCHAR2,
138: x_msg_count OUT NOCOPY NUMBER,
131: -- and then put them into the dispostion entity.
132: PROCEDURE create_job_dispositions(
133: p_api_version IN NUMBER := 1.0,
134: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
135: p_commit IN VARCHAR2 := FND_API.G_FALSE,
136: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
137: x_return_status OUT NOCOPY VARCHAR2,
138: x_msg_count OUT NOCOPY NUMBER,
139: x_msg_data OUT NOCOPY VARCHAR2,
132: PROCEDURE create_job_dispositions(
133: p_api_version IN NUMBER := 1.0,
134: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
135: p_commit IN VARCHAR2 := FND_API.G_FALSE,
136: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
137: x_return_status OUT NOCOPY VARCHAR2,
138: x_msg_count OUT NOCOPY NUMBER,
139: x_msg_data OUT NOCOPY VARCHAR2,
140: p_workorder_id IN NUMBER)
232: WHERE instance_id = c_instance_id;
233:
234: BEGIN
235: --Initialize API return status to success
236: x_return_status := FND_API.G_RET_STS_SUCCESS;
237:
238: --Standard Start of API savepoint
239: SAVEPOINT create_job_dispositions;
240:
238: --Standard Start of API savepoint
239: SAVEPOINT create_job_dispositions;
240:
241: --Standard call to check for call compatibility.
242: IF NOT FND_API.compatible_api_call(
243: l_api_version,
244: p_api_version,
245: l_api_name,
246: G_PKG_NAME)
244: p_api_version,
245: l_api_name,
246: G_PKG_NAME)
247: THEN
248: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
249: END IF;
250:
251: --Initialize message list if p_init_msg_list is set to TRUE.
252: IF FND_API.to_boolean( p_init_msg_list ) THEN
248: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
249: END IF;
250:
251: --Initialize message list if p_init_msg_list is set to TRUE.
252: IF FND_API.to_boolean( p_init_msg_list ) THEN
253: FND_MSG_PUB.initialize;
254: END IF;
255:
256: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
267: /*
268: FND_MESSAGE.set_name('AHL', 'AHL_PRD_DISP_JOB_ID_INVALID');
269: FND_MESSAGE.set_token('JOBID', p_workorder_id);
270: FND_MSG_PUB.add;
271: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
272: CLOSE get_job_attrs;
273: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
274: */
275: CLOSE get_job_attrs;
269: FND_MESSAGE.set_token('JOBID', p_workorder_id);
270: FND_MSG_PUB.add;
271: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
272: CLOSE get_job_attrs;
273: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
274: */
275: CLOSE get_job_attrs;
276: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
277: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT,
283: --Complete(4) and Closed(12)
284: FND_MESSAGE.set_name('AHL', 'AHL_PRD_DISP_JOB_STS_INVALID');
285: FND_MESSAGE.set_token('JOB', l_job_attrs.job_number);
286: FND_MSG_PUB.add;
287: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
288: CLOSE get_job_attrs;
289: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
290: ELSIF l_job_attrs.item_instance_id IS NULL THEN
291: FND_MESSAGE.set_name('AHL', 'AHL_PRD_DISP_JOB_INST_NULL');
285: FND_MESSAGE.set_token('JOB', l_job_attrs.job_number);
286: FND_MSG_PUB.add;
287: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
288: CLOSE get_job_attrs;
289: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
290: ELSIF l_job_attrs.item_instance_id IS NULL THEN
291: FND_MESSAGE.set_name('AHL', 'AHL_PRD_DISP_JOB_INST_NULL');
292: FND_MESSAGE.set_token('JOB', l_job_attrs.job_number);
293: FND_MSG_PUB.add;
290: ELSIF l_job_attrs.item_instance_id IS NULL THEN
291: FND_MESSAGE.set_name('AHL', 'AHL_PRD_DISP_JOB_INST_NULL');
292: FND_MESSAGE.set_token('JOB', l_job_attrs.job_number);
293: FND_MSG_PUB.add;
294: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
295: CLOSE get_job_attrs;
296: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
297: ELSIF l_job_attrs.route_id IS NULL THEN
298: CLOSE get_job_attrs;
292: FND_MESSAGE.set_token('JOB', l_job_attrs.job_number);
293: FND_MSG_PUB.add;
294: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
295: CLOSE get_job_attrs;
296: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
297: ELSIF l_job_attrs.route_id IS NULL THEN
298: CLOSE get_job_attrs;
299: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
300: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT,
316: ' p_requirement_date='||l_job_attrs.scheduled_start_date);
317: END IF;
318: ahl_ltp_mtl_req_pvt.get_route_mtl_req(
319: p_api_version => 1.0,
320: p_init_msg_list => FND_API.G_FALSE,
321: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
322: x_return_status => l_return_status,
323: x_msg_count => l_msg_count,
324: x_msg_data => l_msg_data,
317: END IF;
318: ahl_ltp_mtl_req_pvt.get_route_mtl_req(
319: p_api_version => 1.0,
320: p_init_msg_list => FND_API.G_FALSE,
321: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
322: x_return_status => l_return_status,
323: x_msg_count => l_msg_count,
324: x_msg_data => l_msg_data,
325: p_route_id => l_job_attrs.route_id,
328: p_requirement_date => l_job_attrs.scheduled_start_date,
329: p_request_type => 'PLANNED',
330: x_route_mtl_req_tbl => l_route_mtl_req_tbl);
331:
332: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
333: RAISE FND_API.G_EXC_ERROR;
334: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
335: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
336: END IF;
329: p_request_type => 'PLANNED',
330: x_route_mtl_req_tbl => l_route_mtl_req_tbl);
331:
332: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
333: RAISE FND_API.G_EXC_ERROR;
334: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
335: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
336: END IF;
337: ----dbms_output.put_line('After calling ltp API, the count='||l_route_mtl_req_tbl.COUNT);
330: x_route_mtl_req_tbl => l_route_mtl_req_tbl);
331:
332: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
333: RAISE FND_API.G_EXC_ERROR;
334: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
335: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
336: END IF;
337: ----dbms_output.put_line('After calling ltp API, the count='||l_route_mtl_req_tbl.COUNT);
338: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
331:
332: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
333: RAISE FND_API.G_EXC_ERROR;
334: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
335: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
336: END IF;
337: ----dbms_output.put_line('After calling ltp API, the count='||l_route_mtl_req_tbl.COUNT);
338: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
339: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT,
363: FND_MESSAGE.set_name('AHL', 'AHL_PRD_DISP_MTL_REQ_ID_INV');
364: FND_MESSAGE.set_token('REQID', l_route_mtl_req_tbl(i).rt_oper_material_id);
365: FND_MSG_PUB.add;
366: CLOSE get_mtl_req_flags;
367: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
368: END IF;
369: CLOSE get_mtl_req_flags;
370: --dbms_output.put_line('Before check flag');
371: --Filter out the record which should not be included
438: FND_MESSAGE.set_token('INSTANCE', l_job_attrs.item_instance_id);
439: FND_MESSAGE.set_token('JOB', l_job_attrs.job_number);
440: FND_MSG_PUB.add;
441: CLOSE get_sub_unit_instance;
442: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
443: ELSE
444: CLOSE get_sub_unit_instance;
445: END IF;
446: ELSE
457: l_unit_instance_id);
458: END IF;
459: AHL_MC_PATH_POSITION_PVT.get_pos_instance(
460: p_api_version => 1.0,
461: p_init_msg_list => FND_API.G_FALSE,
462: p_commit => FND_API.G_FALSE,
463: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
464: x_return_status => l_return_status,
465: x_msg_count => l_msg_count,
458: END IF;
459: AHL_MC_PATH_POSITION_PVT.get_pos_instance(
460: p_api_version => 1.0,
461: p_init_msg_list => FND_API.G_FALSE,
462: p_commit => FND_API.G_FALSE,
463: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
464: x_return_status => l_return_status,
465: x_msg_count => l_msg_count,
466: x_msg_data => l_msg_data,
459: AHL_MC_PATH_POSITION_PVT.get_pos_instance(
460: p_api_version => 1.0,
461: p_init_msg_list => FND_API.G_FALSE,
462: p_commit => FND_API.G_FALSE,
463: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
464: x_return_status => l_return_status,
465: x_msg_count => l_msg_count,
466: x_msg_data => l_msg_data,
467: p_position_id => l_route_mtl_req_tbl(i).position_path_id,
479: ', x_item_instance_id = ' || l_installed_inst_id ||
480: ', x_lowest_uc_csi_id = ' || l_lowest_unit_inst_id);
481: END IF;
482:
483: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
484: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
485: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
486: RAISE FND_API.G_EXC_ERROR;
487: END IF;
480: ', x_lowest_uc_csi_id = ' || l_lowest_unit_inst_id);
481: END IF;
482:
483: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
484: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
485: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
486: RAISE FND_API.G_EXC_ERROR;
487: END IF;
488:
481: END IF;
482:
483: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
484: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
485: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
486: RAISE FND_API.G_EXC_ERROR;
487: END IF;
488:
489: IF (l_mapping_status = 'NA') THEN
482:
483: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
484: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
485: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
486: RAISE FND_API.G_EXC_ERROR;
487: END IF;
488:
489: IF (l_mapping_status = 'NA') THEN
490: FND_MESSAGE.set_name('AHL', 'AHL_PRD_DISP_PATH_POS_INV');
490: FND_MESSAGE.set_name('AHL', 'AHL_PRD_DISP_PATH_POS_INV');
491: FND_MESSAGE.set_token('POSITION', l_route_mtl_req_tbl(i).position_path_id);
492: FND_MESSAGE.set_token('INSTANCE', l_unit_instance_id);
493: FND_MSG_PUB.add;
494: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
495: -- Position does not apply to current unit
496: ELSIF (l_mapping_status = 'EMPTY') THEN
497: l_installed_inst_id := NULL;
498: l_serial_number := NULL;
709: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
710: l_msg_count := FND_MSG_PUB.count_msg;
711: IF l_msg_count > 0 THEN
712: x_msg_count := l_msg_count;
713: RAISE FND_API.G_EXC_ERROR;
714: END IF;
715:
716: -- Perform the Commit (if requested)
717: IF FND_API.to_boolean(p_commit) THEN
713: RAISE FND_API.G_EXC_ERROR;
714: END IF;
715:
716: -- Perform the Commit (if requested)
717: IF FND_API.to_boolean(p_commit) THEN
718: COMMIT;
719: END IF;
720:
721: -- Count and Get messages (optional)
719: END IF;
720:
721: -- Count and Get messages (optional)
722: FND_MSG_PUB.count_and_get(
723: p_encoded => FND_API.G_FALSE,
724: p_count => x_msg_count,
725: p_data => x_msg_data);
726:
727: EXCEPTION
724: p_count => x_msg_count,
725: p_data => x_msg_data);
726:
727: EXCEPTION
728: WHEN FND_API.G_EXC_ERROR THEN
729: ROLLBACK TO create_job_dispositions;
730: x_return_status := FND_API.G_RET_STS_ERROR ;
731: FND_MSG_PUB.count_and_get(
732: p_encoded => FND_API.G_FALSE,
726:
727: EXCEPTION
728: WHEN FND_API.G_EXC_ERROR THEN
729: ROLLBACK TO create_job_dispositions;
730: x_return_status := FND_API.G_RET_STS_ERROR ;
731: FND_MSG_PUB.count_and_get(
732: p_encoded => FND_API.G_FALSE,
733: p_count => x_msg_count,
734: p_data => x_msg_data);
728: WHEN FND_API.G_EXC_ERROR THEN
729: ROLLBACK TO create_job_dispositions;
730: x_return_status := FND_API.G_RET_STS_ERROR ;
731: FND_MSG_PUB.count_and_get(
732: p_encoded => FND_API.G_FALSE,
733: p_count => x_msg_count,
734: p_data => x_msg_data);
735:
736: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
732: p_encoded => FND_API.G_FALSE,
733: p_count => x_msg_count,
734: p_data => x_msg_data);
735:
736: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
737: ROLLBACK TO create_job_dispositions;
738: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
739: FND_MSG_PUB.count_and_get(
740: p_encoded => FND_API.G_FALSE,
734: p_data => x_msg_data);
735:
736: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
737: ROLLBACK TO create_job_dispositions;
738: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
739: FND_MSG_PUB.count_and_get(
740: p_encoded => FND_API.G_FALSE,
741: p_count => x_msg_count,
742: p_data => x_msg_data);
736: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
737: ROLLBACK TO create_job_dispositions;
738: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
739: FND_MSG_PUB.count_and_get(
740: p_encoded => FND_API.G_FALSE,
741: p_count => x_msg_count,
742: p_data => x_msg_data);
743:
744: WHEN OTHERS THEN
742: p_data => x_msg_data);
743:
744: WHEN OTHERS THEN
745: ROLLBACK TO create_job_dispositions;
746: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
747: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
748: THEN
749: FND_MSG_PUB.add_exc_msg(
750: p_pkg_name => G_PKG_NAME,
751: p_procedure_name => l_api_name,
752: p_error_text => SUBSTRB(SQLERRM,1,240));
753: END IF;
754: FND_MSG_PUB.count_and_get(
755: p_encoded => FND_API.G_FALSE,
756: p_count => x_msg_count,
757: p_data => x_msg_data);
758:
759: END create_job_dispositions;
767: -- Parameters :
768: --
769: -- Standard IN Parameters :
770: -- p_api_version IN NUMBER Default 1.0
771: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
772: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
773: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
774: -- Standard OUT Parameters :
775: -- x_return_status OUT VARCHAR2 Required
768: --
769: -- Standard IN Parameters :
770: -- p_api_version IN NUMBER Default 1.0
771: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
772: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
773: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
774: -- Standard OUT Parameters :
775: -- x_return_status OUT VARCHAR2 Required
776: -- x_msg_count OUT NUMBER Required
769: -- Standard IN Parameters :
770: -- p_api_version IN NUMBER Default 1.0
771: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
772: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
773: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
774: -- Standard OUT Parameters :
775: -- x_return_status OUT VARCHAR2 Required
776: -- x_msg_count OUT NUMBER Required
777: -- x_msg_data OUT VARCHAR2 Required
797: --------------------------------------------------------------------------------------------------------------
798:
799: PROCEDURE process_disposition(
800: p_api_version IN NUMBER := 1.0,
801: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
802: p_commit IN VARCHAR2 := FND_API.G_FALSE,
803: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
804: p_module_type IN VARCHAR2 := NULL,
805: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
798:
799: PROCEDURE process_disposition(
800: p_api_version IN NUMBER := 1.0,
801: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
802: p_commit IN VARCHAR2 := FND_API.G_FALSE,
803: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
804: p_module_type IN VARCHAR2 := NULL,
805: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
806: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
799: PROCEDURE process_disposition(
800: p_api_version IN NUMBER := 1.0,
801: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
802: p_commit IN VARCHAR2 := FND_API.G_FALSE,
803: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
804: p_module_type IN VARCHAR2 := NULL,
805: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
806: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
807: p_mr_asso_tbl IN AHL_PRD_NONROUTINE_PVT.MR_Association_tbl_type,
811:
812:
813: l_api_version CONSTANT NUMBER := 1.0;
814: l_api_name CONSTANT VARCHAR2(30) := 'process_disposition';
815: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
816: l_init_msg_list VARCHAR2(1) := FND_API.G_FALSE;
817: l_commit VARCHAR2(1) := FND_API.G_FALSE;
818: L_DEBUG_KEY CONSTANT VARCHAR2(150) := G_LOG_PREFIX || 'process_disposition';
819: l_prev_err_count NUMBER;
812:
813: l_api_version CONSTANT NUMBER := 1.0;
814: l_api_name CONSTANT VARCHAR2(30) := 'process_disposition';
815: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
816: l_init_msg_list VARCHAR2(1) := FND_API.G_FALSE;
817: l_commit VARCHAR2(1) := FND_API.G_FALSE;
818: L_DEBUG_KEY CONSTANT VARCHAR2(150) := G_LOG_PREFIX || 'process_disposition';
819: l_prev_err_count NUMBER;
820:
813: l_api_version CONSTANT NUMBER := 1.0;
814: l_api_name CONSTANT VARCHAR2(30) := 'process_disposition';
815: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
816: l_init_msg_list VARCHAR2(1) := FND_API.G_FALSE;
817: l_commit VARCHAR2(1) := FND_API.G_FALSE;
818: L_DEBUG_KEY CONSTANT VARCHAR2(150) := G_LOG_PREFIX || 'process_disposition';
819: l_prev_err_count NUMBER;
820:
821: BEGIN
827: END IF;
828:
829: --dbms_output.put_line(SubStr('Begin Process_Disposition', 1, 255));
830: -- Standard call to check for call compatibility
831: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version,l_api_name, G_PKG_NAME )
832: THEN
833: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
834: END IF;
835:
829: --dbms_output.put_line(SubStr('Begin Process_Disposition', 1, 255));
830: -- Standard call to check for call compatibility
831: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version,l_api_name, G_PKG_NAME )
832: THEN
833: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
834: END IF;
835:
836: -- Initialize message list if p_init_msg_list is set to TRUE
837: IF FND_API.To_Boolean( p_init_msg_list)
833: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
834: END IF;
835:
836: -- Initialize message list if p_init_msg_list is set to TRUE
837: IF FND_API.To_Boolean( p_init_msg_list)
838: THEN
839: FND_MSG_PUB.Initialize;
840: --dbms_output.put_line(SubStr('Current MSG Count: ' || TO_CHAR(FND_MSG_PUB.count_msg), 1, 255));
841: END IF;
843: l_prev_err_count := NVL(FND_MSG_PUB.count_msg,0);
844: /* End Fix for 4071599 on Dec 22, 2004 by JR */
845:
846: -- Initialize API return status to success
847: x_return_status := FND_API.G_RET_STS_SUCCESS;
848: g_module_type := p_module_type;
849:
850: -- Begin Processing HERE
851:
883: x_msg_count := FND_MSG_PUB.count_msg;
884:
885:
886: IF x_msg_count - l_prev_err_count > 0 THEN
887: RAISE FND_API.G_EXC_ERROR;
888: END IF;
889:
890: -- Standard check of p_commit
891: IF FND_API.TO_BOOLEAN(p_commit) THEN
887: RAISE FND_API.G_EXC_ERROR;
888: END IF;
889:
890: -- Standard check of p_commit
891: IF FND_API.TO_BOOLEAN(p_commit) THEN
892: COMMIT WORK;
893: END IF;
894:
895: -- Standard call to get message count and if count is 1, get message info
895: -- Standard call to get message count and if count is 1, get message info
896: FND_MSG_PUB.Count_And_Get
897: ( p_count => x_msg_count,
898: p_data => x_msg_data,
899: p_encoded => fnd_api.g_false
900: );
901:
902: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
903: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, L_DEBUG_KEY || '.end', 'End Procedure');
904: END IF;
905: --dbms_output.put_line(SubStr('End Process_Disposition', 1, 255));
906:
907: EXCEPTION
908: WHEN FND_API.G_EXC_ERROR THEN
909: Rollback to process_disposition_pvt;
910: x_return_status := FND_API.G_RET_STS_ERROR;
911: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
912: p_data => x_msg_data,
906:
907: EXCEPTION
908: WHEN FND_API.G_EXC_ERROR THEN
909: Rollback to process_disposition_pvt;
910: x_return_status := FND_API.G_RET_STS_ERROR;
911: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
912: p_data => x_msg_data,
913: p_encoded => fnd_api.g_false);
914: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
909: Rollback to process_disposition_pvt;
910: x_return_status := FND_API.G_RET_STS_ERROR;
911: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
912: p_data => x_msg_data,
913: p_encoded => fnd_api.g_false);
914: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
915: FND_LOG.STRING(FND_LOG.LEVEL_EXCEPTION, L_DEBUG_KEY, 'Execution Exception: ' || x_msg_data);
916: END IF;
917: --dbms_output.put_line(SubStr('Execution Exception', 1, 255));
916: END IF;
917: --dbms_output.put_line(SubStr('Execution Exception', 1, 255));
918:
919:
920: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
921: Rollback to process_disposition_pvt;
922: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
923: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
924: p_data => x_msg_data,
918:
919:
920: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
921: Rollback to process_disposition_pvt;
922: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
923: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
924: p_data => x_msg_data,
925: p_encoded => fnd_api.g_false);
926:
921: Rollback to process_disposition_pvt;
922: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
923: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
924: p_data => x_msg_data,
925: p_encoded => fnd_api.g_false);
926:
927: IF (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
928: FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED, L_DEBUG_KEY, 'Unexpected Exception: ' || x_msg_data);
929: END IF;
930: --dbms_output.put_line(SubStr('Unexpected Exception', 1, 255));
931:
932: WHEN OTHERS THEN
933: Rollback to process_disposition_pvt;
934: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
935: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
936: fnd_msg_pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
937: p_procedure_name => l_api_name,
938: p_error_text => SUBSTR(SQLERRM,1,500));
938: p_error_text => SUBSTR(SQLERRM,1,500));
939: END IF;
940: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
941: p_data => x_msg_data,
942: p_encoded => fnd_api.g_false);
943:
944: IF (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
945: FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED, L_DEBUG_KEY, 'Other Exception: ' || x_msg_data);
946: END IF;
953: --------------CREATE_DISPOSITION---------------------------------------------------
954:
955: PROCEDURE create_disposition(
956: p_api_version IN NUMBER := 1.0,
957: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
958: p_commit IN VARCHAR2 := FND_API.G_FALSE,
959: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
960: p_module_type IN VARCHAR2 := NULL,
961: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
954:
955: PROCEDURE create_disposition(
956: p_api_version IN NUMBER := 1.0,
957: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
958: p_commit IN VARCHAR2 := FND_API.G_FALSE,
959: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
960: p_module_type IN VARCHAR2 := NULL,
961: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
962: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
955: PROCEDURE create_disposition(
956: p_api_version IN NUMBER := 1.0,
957: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
958: p_commit IN VARCHAR2 := FND_API.G_FALSE,
959: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
960: p_module_type IN VARCHAR2 := NULL,
961: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
962: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
963: p_mr_asso_tbl IN AHL_PRD_NONROUTINE_PVT.MR_Association_tbl_type,
1006: END IF;
1007: --dbms_output.put_line(SubStr('Begin Create_Disposition', 1, 255));
1008:
1009: IF (p_module_type = 'JSP') THEN
1010: IF (p_x_disposition_rec.WORKORDER_ID = FND_API.G_MISS_NUM) THEN
1011: p_x_disposition_rec.WORKORDER_ID := null;
1012: END IF;
1013: IF (p_x_disposition_rec.PART_CHANGE_ID = FND_API.G_MISS_NUM) THEN
1014: p_x_disposition_rec.PART_CHANGE_ID := null;
1009: IF (p_module_type = 'JSP') THEN
1010: IF (p_x_disposition_rec.WORKORDER_ID = FND_API.G_MISS_NUM) THEN
1011: p_x_disposition_rec.WORKORDER_ID := null;
1012: END IF;
1013: IF (p_x_disposition_rec.PART_CHANGE_ID = FND_API.G_MISS_NUM) THEN
1014: p_x_disposition_rec.PART_CHANGE_ID := null;
1015: END IF;
1016: IF (p_x_disposition_rec.PATH_POSITION_ID = FND_API.G_MISS_NUM) THEN
1017: p_x_disposition_rec.PATH_POSITION_ID := null;
1012: END IF;
1013: IF (p_x_disposition_rec.PART_CHANGE_ID = FND_API.G_MISS_NUM) THEN
1014: p_x_disposition_rec.PART_CHANGE_ID := null;
1015: END IF;
1016: IF (p_x_disposition_rec.PATH_POSITION_ID = FND_API.G_MISS_NUM) THEN
1017: p_x_disposition_rec.PATH_POSITION_ID := null;
1018: END IF;
1019: IF (p_x_disposition_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM) THEN
1020: p_x_disposition_rec.INVENTORY_ITEM_ID := null;
1015: END IF;
1016: IF (p_x_disposition_rec.PATH_POSITION_ID = FND_API.G_MISS_NUM) THEN
1017: p_x_disposition_rec.PATH_POSITION_ID := null;
1018: END IF;
1019: IF (p_x_disposition_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM) THEN
1020: p_x_disposition_rec.INVENTORY_ITEM_ID := null;
1021: END IF;
1022: IF (p_x_disposition_rec.ITEM_GROUP_ID = FND_API.G_MISS_NUM) THEN
1023: p_x_disposition_rec.ITEM_GROUP_ID := null;
1018: END IF;
1019: IF (p_x_disposition_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM) THEN
1020: p_x_disposition_rec.INVENTORY_ITEM_ID := null;
1021: END IF;
1022: IF (p_x_disposition_rec.ITEM_GROUP_ID = FND_API.G_MISS_NUM) THEN
1023: p_x_disposition_rec.ITEM_GROUP_ID := null;
1024: END IF;
1025: IF (p_x_disposition_rec.CONDITION_ID = FND_API.G_MISS_NUM) THEN
1026: p_x_disposition_rec.CONDITION_ID := null;
1021: END IF;
1022: IF (p_x_disposition_rec.ITEM_GROUP_ID = FND_API.G_MISS_NUM) THEN
1023: p_x_disposition_rec.ITEM_GROUP_ID := null;
1024: END IF;
1025: IF (p_x_disposition_rec.CONDITION_ID = FND_API.G_MISS_NUM) THEN
1026: p_x_disposition_rec.CONDITION_ID := null;
1027: END IF;
1028: IF (p_x_disposition_rec.INSTANCE_ID = FND_API.G_MISS_NUM) THEN
1029: p_x_disposition_rec.INSTANCE_ID := null;
1024: END IF;
1025: IF (p_x_disposition_rec.CONDITION_ID = FND_API.G_MISS_NUM) THEN
1026: p_x_disposition_rec.CONDITION_ID := null;
1027: END IF;
1028: IF (p_x_disposition_rec.INSTANCE_ID = FND_API.G_MISS_NUM) THEN
1029: p_x_disposition_rec.INSTANCE_ID := null;
1030: END IF;
1031: IF (p_x_disposition_rec.SERIAL_NUMBER = FND_API.G_MISS_CHAR) THEN
1032: p_x_disposition_rec.SERIAL_NUMBER := null;
1027: END IF;
1028: IF (p_x_disposition_rec.INSTANCE_ID = FND_API.G_MISS_NUM) THEN
1029: p_x_disposition_rec.INSTANCE_ID := null;
1030: END IF;
1031: IF (p_x_disposition_rec.SERIAL_NUMBER = FND_API.G_MISS_CHAR) THEN
1032: p_x_disposition_rec.SERIAL_NUMBER := null;
1033: END IF;
1034: IF (p_x_disposition_rec.LOT_NUMBER = FND_API.G_MISS_CHAR) THEN
1035: p_x_disposition_rec.LOT_NUMBER := null;
1030: END IF;
1031: IF (p_x_disposition_rec.SERIAL_NUMBER = FND_API.G_MISS_CHAR) THEN
1032: p_x_disposition_rec.SERIAL_NUMBER := null;
1033: END IF;
1034: IF (p_x_disposition_rec.LOT_NUMBER = FND_API.G_MISS_CHAR) THEN
1035: p_x_disposition_rec.LOT_NUMBER := null;
1036: END IF;
1037: IF (p_x_disposition_rec.IMMEDIATE_DISPOSITION_CODE = FND_API.G_MISS_CHAR) THEN
1038: p_x_disposition_rec.IMMEDIATE_DISPOSITION_CODE := null;
1033: END IF;
1034: IF (p_x_disposition_rec.LOT_NUMBER = FND_API.G_MISS_CHAR) THEN
1035: p_x_disposition_rec.LOT_NUMBER := null;
1036: END IF;
1037: IF (p_x_disposition_rec.IMMEDIATE_DISPOSITION_CODE = FND_API.G_MISS_CHAR) THEN
1038: p_x_disposition_rec.IMMEDIATE_DISPOSITION_CODE := null;
1039: END IF;
1040: IF (p_x_disposition_rec.SECONDARY_DISPOSITION_CODE = FND_API.G_MISS_CHAR) THEN
1041: p_x_disposition_rec.SECONDARY_DISPOSITION_CODE := null;
1036: END IF;
1037: IF (p_x_disposition_rec.IMMEDIATE_DISPOSITION_CODE = FND_API.G_MISS_CHAR) THEN
1038: p_x_disposition_rec.IMMEDIATE_DISPOSITION_CODE := null;
1039: END IF;
1040: IF (p_x_disposition_rec.SECONDARY_DISPOSITION_CODE = FND_API.G_MISS_CHAR) THEN
1041: p_x_disposition_rec.SECONDARY_DISPOSITION_CODE := null;
1042: END IF;
1043: IF (p_x_disposition_rec.STATUS_CODE = FND_API.G_MISS_CHAR) THEN
1044: p_x_disposition_rec.STATUS_CODE := null;
1039: END IF;
1040: IF (p_x_disposition_rec.SECONDARY_DISPOSITION_CODE = FND_API.G_MISS_CHAR) THEN
1041: p_x_disposition_rec.SECONDARY_DISPOSITION_CODE := null;
1042: END IF;
1043: IF (p_x_disposition_rec.STATUS_CODE = FND_API.G_MISS_CHAR) THEN
1044: p_x_disposition_rec.STATUS_CODE := null;
1045: END IF;
1046: IF (p_x_disposition_rec.QUANTITY = FND_API.G_MISS_NUM) THEN
1047: p_x_disposition_rec.QUANTITY := null;
1042: END IF;
1043: IF (p_x_disposition_rec.STATUS_CODE = FND_API.G_MISS_CHAR) THEN
1044: p_x_disposition_rec.STATUS_CODE := null;
1045: END IF;
1046: IF (p_x_disposition_rec.QUANTITY = FND_API.G_MISS_NUM) THEN
1047: p_x_disposition_rec.QUANTITY := null;
1048: END IF;
1049: IF (p_x_disposition_rec.UOM = FND_API.G_MISS_CHAR) THEN
1050: p_x_disposition_rec.UOM := null;
1045: END IF;
1046: IF (p_x_disposition_rec.QUANTITY = FND_API.G_MISS_NUM) THEN
1047: p_x_disposition_rec.QUANTITY := null;
1048: END IF;
1049: IF (p_x_disposition_rec.UOM = FND_API.G_MISS_CHAR) THEN
1050: p_x_disposition_rec.UOM := null;
1051: END IF;
1052: IF (p_x_disposition_rec.COLLECTION_ID = FND_API.G_MISS_NUM) THEN
1053: p_x_disposition_rec.COLLECTION_ID := null;
1048: END IF;
1049: IF (p_x_disposition_rec.UOM = FND_API.G_MISS_CHAR) THEN
1050: p_x_disposition_rec.UOM := null;
1051: END IF;
1052: IF (p_x_disposition_rec.COLLECTION_ID = FND_API.G_MISS_NUM) THEN
1053: p_x_disposition_rec.COLLECTION_ID := null;
1054: END IF;
1055: IF (p_x_disposition_rec.PRIMARY_SERVICE_REQUEST_ID = FND_API.G_MISS_NUM) THEN
1056: p_x_disposition_rec.PRIMARY_SERVICE_REQUEST_ID := null;
1051: END IF;
1052: IF (p_x_disposition_rec.COLLECTION_ID = FND_API.G_MISS_NUM) THEN
1053: p_x_disposition_rec.COLLECTION_ID := null;
1054: END IF;
1055: IF (p_x_disposition_rec.PRIMARY_SERVICE_REQUEST_ID = FND_API.G_MISS_NUM) THEN
1056: p_x_disposition_rec.PRIMARY_SERVICE_REQUEST_ID := null;
1057: END IF;
1058: IF (p_x_disposition_rec.NON_ROUTINE_WORKORDER_ID = FND_API.G_MISS_NUM) THEN
1059: p_x_disposition_rec.NON_ROUTINE_WORKORDER_ID := null;
1054: END IF;
1055: IF (p_x_disposition_rec.PRIMARY_SERVICE_REQUEST_ID = FND_API.G_MISS_NUM) THEN
1056: p_x_disposition_rec.PRIMARY_SERVICE_REQUEST_ID := null;
1057: END IF;
1058: IF (p_x_disposition_rec.NON_ROUTINE_WORKORDER_ID = FND_API.G_MISS_NUM) THEN
1059: p_x_disposition_rec.NON_ROUTINE_WORKORDER_ID := null;
1060: END IF;
1061: IF (p_x_disposition_rec.WO_OPERATION_ID = FND_API.G_MISS_NUM) THEN
1062: p_x_disposition_rec.WO_OPERATION_ID := null;
1057: END IF;
1058: IF (p_x_disposition_rec.NON_ROUTINE_WORKORDER_ID = FND_API.G_MISS_NUM) THEN
1059: p_x_disposition_rec.NON_ROUTINE_WORKORDER_ID := null;
1060: END IF;
1061: IF (p_x_disposition_rec.WO_OPERATION_ID = FND_API.G_MISS_NUM) THEN
1062: p_x_disposition_rec.WO_OPERATION_ID := null;
1063: END IF;
1064: IF (p_x_disposition_rec.ITEM_REVISION = FND_API.G_MISS_CHAR) THEN
1065: p_x_disposition_rec.ITEM_REVISION := null;
1060: END IF;
1061: IF (p_x_disposition_rec.WO_OPERATION_ID = FND_API.G_MISS_NUM) THEN
1062: p_x_disposition_rec.WO_OPERATION_ID := null;
1063: END IF;
1064: IF (p_x_disposition_rec.ITEM_REVISION = FND_API.G_MISS_CHAR) THEN
1065: p_x_disposition_rec.ITEM_REVISION := null;
1066: END IF;
1067: END IF;
1068:
1066: END IF;
1067: END IF;
1068:
1069:
1070: IF p_validation_level = FND_API.G_VALID_LEVEL_FULL THEN
1071: convert_values_to_ids(p_x_disposition_rec);
1072: END IF;
1073: -- Derive Columns from other know columns
1074:
1191: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
1192: l_msg_count := FND_MSG_PUB.count_msg;
1193: IF l_msg_count > 0 THEN
1194: x_msg_count := l_msg_count;
1195: RAISE FND_API.G_EXC_ERROR;
1196: END IF;
1197: Create_SR (p_init_msg_list => FND_API.G_FALSE,
1198: p_disposition_rec => p_x_disposition_rec,
1199: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
1193: IF l_msg_count > 0 THEN
1194: x_msg_count := l_msg_count;
1195: RAISE FND_API.G_EXC_ERROR;
1196: END IF;
1197: Create_SR (p_init_msg_list => FND_API.G_FALSE,
1198: p_disposition_rec => p_x_disposition_rec,
1199: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
1200: p_mr_asso_tbl => p_mr_asso_tbl,
1201: x_primary_sr_id => l_primary_service_request_id,
1203: x_return_status => x_return_status,
1204: x_msg_count => x_msg_count,
1205: x_msg_data => x_msg_data);
1206: --reinitialize message stack and ignore any warning message
1207: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
1208: FND_MSG_PUB.Initialize;
1209: END IF;
1210:
1211: p_x_disposition_rec.primary_service_request_id := l_primary_service_request_id;
1273: -- If the instance was just removed in Serviceable condition return the part to the Visit Locator.
1274: -- Note that the ReturnTo_Workorder_Locator will return only if the locator is set at the Visit level.
1275: -- For FP OGMA Issue# 105 - Non-Serialized Item Maintenance, if the instance was removed in 'Inspection'
1276: -- condition, then it should not be returned to the locator.
1277: IF (NVL(x_return_status, FND_API.G_RET_STS_SUCCESS) = FND_API.G_RET_STS_SUCCESS AND
1278: p_x_disposition_rec.part_change_id IS NOT NULL AND
1279: p_x_disposition_rec.condition_id <> NVL(fnd_profile.value('AHL_MTL_MAT_STATUS_UNSERVICABLE'), -1) AND
1280: p_x_disposition_rec.condition_id <> NVL(fnd_profile.value('AHL_MTL_MAT_STATUS_MRB'), -1) AND
1281: p_x_disposition_rec.condition_id <> NVL(fnd_profile.value('AHL_MTL_MAT_STATUS_INSPECTION'), -1)) THEN
1299: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1300: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, L_DEBUG_KEY, 'Returned from AHL_PRD_PARTS_CHANGE_PVT.ReturnTo_Workorder_Locator: ' ||
1301: ' x_return_status = ' || x_return_status);
1302: END IF;
1303: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1304: RAISE FND_API.G_EXC_ERROR;
1305: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1306: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1307: END IF;
1300: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, L_DEBUG_KEY, 'Returned from AHL_PRD_PARTS_CHANGE_PVT.ReturnTo_Workorder_Locator: ' ||
1301: ' x_return_status = ' || x_return_status);
1302: END IF;
1303: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1304: RAISE FND_API.G_EXC_ERROR;
1305: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1306: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1307: END IF;
1308: END IF;
1301: ' x_return_status = ' || x_return_status);
1302: END IF;
1303: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1304: RAISE FND_API.G_EXC_ERROR;
1305: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1306: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1307: END IF;
1308: END IF;
1309: END IF;
1302: END IF;
1303: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1304: RAISE FND_API.G_EXC_ERROR;
1305: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1306: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1307: END IF;
1308: END IF;
1309: END IF;
1310:
1330: --------------UPDATE_DISPOSITION---------------------------------------------------
1331:
1332: PROCEDURE update_disposition(
1333: p_api_version IN NUMBER := 1.0,
1334: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
1335: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1336: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1337: p_module_type IN VARCHAR2 := NULL,
1338: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
1331:
1332: PROCEDURE update_disposition(
1333: p_api_version IN NUMBER := 1.0,
1334: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
1335: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1336: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1337: p_module_type IN VARCHAR2 := NULL,
1338: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
1339: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
1332: PROCEDURE update_disposition(
1333: p_api_version IN NUMBER := 1.0,
1334: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
1335: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1336: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1337: p_module_type IN VARCHAR2 := NULL,
1338: p_x_disposition_rec IN OUT NOCOPY AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
1339: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
1340: p_mr_asso_tbl IN AHL_PRD_NONROUTINE_PVT.MR_Association_tbl_type,
1443: l_pos_empty BOOLEAN;
1444: l_assoc_quantity NUMBER;
1445:
1446: L_DEBUG_KEY CONSTANT VARCHAR2(150) := G_LOG_PREFIX || 'update_disposition';
1447: l_init_msg_list VARCHAR2(1) := FND_API.G_FALSE;
1448: l_commit VARCHAR2(1) := FND_API.G_FALSE;
1449: l_msg_count NUMBER;
1450: l_plan_id NUMBER;
1451: l_msg_data VARCHAR2(2000);
1444: l_assoc_quantity NUMBER;
1445:
1446: L_DEBUG_KEY CONSTANT VARCHAR2(150) := G_LOG_PREFIX || 'update_disposition';
1447: l_init_msg_list VARCHAR2(1) := FND_API.G_FALSE;
1448: l_commit VARCHAR2(1) := FND_API.G_FALSE;
1449: l_msg_count NUMBER;
1450: l_plan_id NUMBER;
1451: l_msg_data VARCHAR2(2000);
1452:
1480: IF (disposition_csr%NOTFOUND) THEN
1481: CLOSE disposition_csr; --close cursor before raising exeption
1482: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_PRD_DIS_NOT_FOUND');
1483: FND_MSG_PUB.ADD;
1484: RAISE FND_API.G_EXC_ERROR;
1485: END IF;
1486: CLOSE disposition_csr;
1487:
1488: IF(p_x_disposition_rec.OBJECT_VERSION_NUMBER <> l_disposition_rec.OBJECT_VERSION_NUMBER) THEN
1487:
1488: IF(p_x_disposition_rec.OBJECT_VERSION_NUMBER <> l_disposition_rec.OBJECT_VERSION_NUMBER) THEN
1489: FND_MESSAGE.Set_Name('AHL', 'AHL_COM_RECORD_CHANGED');
1490: FND_MSG_PUB.ADD;
1491: RAISE FND_API.G_EXC_ERROR;
1492: END IF;
1493:
1494: IF l_disposition_rec.status_code = 'TERMINATED' THEN
1495: FND_MESSAGE.Set_Name('AHL', 'AHL_PRD_DIS_UPDATE_TERMINATE'); --Cannot update a terminated disposition.
1493:
1494: IF l_disposition_rec.status_code = 'TERMINATED' THEN
1495: FND_MESSAGE.Set_Name('AHL', 'AHL_PRD_DIS_UPDATE_TERMINATE'); --Cannot update a terminated disposition.
1496: FND_MSG_PUB.ADD;
1497: RAISE FND_API.G_EXC_ERROR;
1498: END IF;
1499:
1500: --Handle JSP module
1501: --Handle GMiss and merge the updating record with the one from database
1506: END IF;
1507: --dbms_output.put_line(SubStr('Update_disp:Merging data', 1, 255));
1508: IF p_x_disposition_rec.workorder_id IS NULL THEN
1509: p_x_disposition_rec.workorder_id := l_disposition_rec.workorder_id;
1510: ELSIF (p_x_disposition_rec.workorder_id = FND_API.G_MISS_NUM) THEN
1511: p_x_disposition_rec.workorder_id := null;
1512: END IF;
1513: IF p_x_disposition_rec.part_change_id IS NULL THEN
1514: p_x_disposition_rec.part_change_id := l_disposition_rec.part_change_id;
1511: p_x_disposition_rec.workorder_id := null;
1512: END IF;
1513: IF p_x_disposition_rec.part_change_id IS NULL THEN
1514: p_x_disposition_rec.part_change_id := l_disposition_rec.part_change_id;
1515: ELSIF (p_x_disposition_rec.part_change_id = FND_API.G_MISS_NUM) THEN
1516: p_x_disposition_rec.part_change_id := null;
1517: END IF;
1518: IF p_x_disposition_rec.path_position_id IS NULL THEN
1519: p_x_disposition_rec.path_position_id := l_disposition_rec.path_position_id;
1516: p_x_disposition_rec.part_change_id := null;
1517: END IF;
1518: IF p_x_disposition_rec.path_position_id IS NULL THEN
1519: p_x_disposition_rec.path_position_id := l_disposition_rec.path_position_id;
1520: ELSIF (p_x_disposition_rec.path_position_id = FND_API.G_MISS_NUM) THEN
1521: p_x_disposition_rec.path_position_id := null;
1522: END IF;
1523: IF p_x_disposition_rec.item_org_id IS NULL THEN
1524: p_x_disposition_rec.item_org_id := l_disposition_rec.organization_id;
1521: p_x_disposition_rec.path_position_id := null;
1522: END IF;
1523: IF p_x_disposition_rec.item_org_id IS NULL THEN
1524: p_x_disposition_rec.item_org_id := l_disposition_rec.organization_id;
1525: ELSIF (p_x_disposition_rec.item_org_id = FND_API.G_MISS_NUM) THEN
1526: p_x_disposition_rec.item_org_id := null;
1527: END IF;
1528: IF p_x_disposition_rec.inventory_item_id IS NULL THEN
1529: p_x_disposition_rec.inventory_item_id := l_disposition_rec.inventory_item_id;
1526: p_x_disposition_rec.item_org_id := null;
1527: END IF;
1528: IF p_x_disposition_rec.inventory_item_id IS NULL THEN
1529: p_x_disposition_rec.inventory_item_id := l_disposition_rec.inventory_item_id;
1530: ELSIF (p_x_disposition_rec.inventory_item_id = FND_API.G_MISS_NUM) THEN
1531: p_x_disposition_rec.inventory_item_id := null;
1532: END IF;
1533:
1534: IF p_x_disposition_rec.item_group_id IS NULL THEN
1532: END IF;
1533:
1534: IF p_x_disposition_rec.item_group_id IS NULL THEN
1535: p_x_disposition_rec.item_group_id := l_disposition_rec.item_group_id;
1536: ELSIF (p_x_disposition_rec.item_group_id = FND_API.G_MISS_NUM) THEN
1537: p_x_disposition_rec.item_group_id := null;
1538: END IF;
1539: IF p_x_disposition_rec.condition_id IS NULL THEN
1540: p_x_disposition_rec.condition_id := l_disposition_rec.condition_id;
1537: p_x_disposition_rec.item_group_id := null;
1538: END IF;
1539: IF p_x_disposition_rec.condition_id IS NULL THEN
1540: p_x_disposition_rec.condition_id := l_disposition_rec.condition_id;
1541: ELSIF (p_x_disposition_rec.condition_id = FND_API.G_MISS_NUM) THEN
1542: p_x_disposition_rec.condition_id := null;
1543: END IF;
1544: IF p_x_disposition_rec.instance_id IS NULL THEN
1545: p_x_disposition_rec.instance_id := l_disposition_rec.instance_id;
1542: p_x_disposition_rec.condition_id := null;
1543: END IF;
1544: IF p_x_disposition_rec.instance_id IS NULL THEN
1545: p_x_disposition_rec.instance_id := l_disposition_rec.instance_id;
1546: ELSIF (p_x_disposition_rec.instance_id = FND_API.G_MISS_NUM) THEN
1547: p_x_disposition_rec.instance_id := null;
1548: END IF;
1549: IF p_x_disposition_rec.serial_number IS NULL THEN
1550: p_x_disposition_rec.serial_number := l_disposition_rec.serial_number;
1547: p_x_disposition_rec.instance_id := null;
1548: END IF;
1549: IF p_x_disposition_rec.serial_number IS NULL THEN
1550: p_x_disposition_rec.serial_number := l_disposition_rec.serial_number;
1551: ELSIF (p_x_disposition_rec.serial_number = FND_API.G_MISS_CHAR) THEN
1552: p_x_disposition_rec.serial_number := null;
1553: END IF;
1554: IF p_x_disposition_rec.lot_number IS NULL THEN
1555: p_x_disposition_rec.lot_number := l_disposition_rec.lot_number;
1552: p_x_disposition_rec.serial_number := null;
1553: END IF;
1554: IF p_x_disposition_rec.lot_number IS NULL THEN
1555: p_x_disposition_rec.lot_number := l_disposition_rec.lot_number;
1556: ELSIF (p_x_disposition_rec.lot_number = FND_API.G_MISS_CHAR) THEN
1557: p_x_disposition_rec.lot_number := null;
1558: END IF;
1559: IF p_x_disposition_rec.immediate_disposition_code IS NULL THEN
1560: p_x_disposition_rec.immediate_disposition_code := l_disposition_rec.immediate_disposition_code;
1557: p_x_disposition_rec.lot_number := null;
1558: END IF;
1559: IF p_x_disposition_rec.immediate_disposition_code IS NULL THEN
1560: p_x_disposition_rec.immediate_disposition_code := l_disposition_rec.immediate_disposition_code;
1561: ELSIF (p_x_disposition_rec.immediate_disposition_code = FND_API.G_MISS_CHAR) THEN
1562: p_x_disposition_rec.immediate_disposition_code := null;
1563: END IF;
1564: IF p_x_disposition_rec.secondary_disposition_code IS NULL THEN
1565: p_x_disposition_rec.secondary_disposition_code := l_disposition_rec.secondary_disposition_code;
1562: p_x_disposition_rec.immediate_disposition_code := null;
1563: END IF;
1564: IF p_x_disposition_rec.secondary_disposition_code IS NULL THEN
1565: p_x_disposition_rec.secondary_disposition_code := l_disposition_rec.secondary_disposition_code;
1566: ELSIF (p_x_disposition_rec.secondary_disposition_code = FND_API.G_MISS_CHAR) THEN
1567: p_x_disposition_rec.secondary_disposition_code := null;
1568: END IF;
1569: IF p_x_disposition_rec.status_code IS NULL THEN
1570: p_x_disposition_rec.status_code := l_disposition_rec.status_code;
1567: p_x_disposition_rec.secondary_disposition_code := null;
1568: END IF;
1569: IF p_x_disposition_rec.status_code IS NULL THEN
1570: p_x_disposition_rec.status_code := l_disposition_rec.status_code;
1571: ELSIF (p_x_disposition_rec.status_code = FND_API.G_MISS_CHAR) THEN
1572: p_x_disposition_rec.status_code := null;
1573: END IF;
1574: IF p_x_disposition_rec.quantity IS NULL THEN
1575: p_x_disposition_rec.quantity := l_disposition_rec.quantity;
1572: p_x_disposition_rec.status_code := null;
1573: END IF;
1574: IF p_x_disposition_rec.quantity IS NULL THEN
1575: p_x_disposition_rec.quantity := l_disposition_rec.quantity;
1576: ELSIF (p_x_disposition_rec.quantity = FND_API.G_MISS_NUM) THEN
1577: p_x_disposition_rec.quantity := null;
1578: END IF;
1579: IF p_x_disposition_rec.uom IS NULL THEN
1580: p_x_disposition_rec.uom := l_disposition_rec.uom;
1577: p_x_disposition_rec.quantity := null;
1578: END IF;
1579: IF p_x_disposition_rec.uom IS NULL THEN
1580: p_x_disposition_rec.uom := l_disposition_rec.uom;
1581: ELSIF (p_x_disposition_rec.uom = FND_API.G_MISS_CHAR) THEN
1582: p_x_disposition_rec.uom := null;
1583: END IF;
1584: IF p_x_disposition_rec.comments IS NULL THEN
1585: p_x_disposition_rec.comments := l_disposition_rec.comments;
1582: p_x_disposition_rec.uom := null;
1583: END IF;
1584: IF p_x_disposition_rec.comments IS NULL THEN
1585: p_x_disposition_rec.comments := l_disposition_rec.comments;
1586: ELSIF (p_x_disposition_rec.comments = FND_API.G_MISS_CHAR) THEN
1587: p_x_disposition_rec.comments := null;
1588: END IF;
1589: IF p_x_disposition_rec.collection_id IS NULL THEN
1590: p_x_disposition_rec.collection_id := l_disposition_rec.collection_id;
1587: p_x_disposition_rec.comments := null;
1588: END IF;
1589: IF p_x_disposition_rec.collection_id IS NULL THEN
1590: p_x_disposition_rec.collection_id := l_disposition_rec.collection_id;
1591: ELSIF (p_x_disposition_rec.collection_id = FND_API.G_MISS_NUM) THEN
1592: p_x_disposition_rec.collection_id := null;
1593: END IF;
1594: IF p_x_disposition_rec.primary_service_request_id IS NULL THEN
1595: p_x_disposition_rec.primary_service_request_id := l_disposition_rec.primary_service_request_id;
1592: p_x_disposition_rec.collection_id := null;
1593: END IF;
1594: IF p_x_disposition_rec.primary_service_request_id IS NULL THEN
1595: p_x_disposition_rec.primary_service_request_id := l_disposition_rec.primary_service_request_id;
1596: ELSIF (p_x_disposition_rec.primary_service_request_id = FND_API.G_MISS_NUM) THEN
1597: p_x_disposition_rec.primary_service_request_id := null;
1598: END IF;
1599: IF p_x_disposition_rec.non_routine_workorder_id IS NULL THEN
1600: p_x_disposition_rec.non_routine_workorder_id := l_disposition_rec.non_routine_workorder_id;
1597: p_x_disposition_rec.primary_service_request_id := null;
1598: END IF;
1599: IF p_x_disposition_rec.non_routine_workorder_id IS NULL THEN
1600: p_x_disposition_rec.non_routine_workorder_id := l_disposition_rec.non_routine_workorder_id;
1601: ELSIF (p_x_disposition_rec.non_routine_workorder_id = FND_API.G_MISS_NUM) THEN
1602: p_x_disposition_rec.non_routine_workorder_id := null;
1603: END IF;
1604: IF p_x_disposition_rec.wo_operation_id IS NULL THEN
1605: p_x_disposition_rec.wo_operation_id := l_disposition_rec.wo_operation_id;
1602: p_x_disposition_rec.non_routine_workorder_id := null;
1603: END IF;
1604: IF p_x_disposition_rec.wo_operation_id IS NULL THEN
1605: p_x_disposition_rec.wo_operation_id := l_disposition_rec.wo_operation_id;
1606: ELSIF (p_x_disposition_rec.wo_operation_id = FND_API.G_MISS_NUM) THEN
1607: p_x_disposition_rec.wo_operation_id := null;
1608: END IF;
1609: IF p_x_disposition_rec.item_revision IS NULL THEN
1610: p_x_disposition_rec.item_revision := l_disposition_rec.item_revision;
1607: p_x_disposition_rec.wo_operation_id := null;
1608: END IF;
1609: IF p_x_disposition_rec.item_revision IS NULL THEN
1610: p_x_disposition_rec.item_revision := l_disposition_rec.item_revision;
1611: ELSIF (p_x_disposition_rec.item_revision = FND_API.G_MISS_CHAR) THEN
1612: p_x_disposition_rec.item_revision := null;
1613: END IF;
1614:
1615: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1618: --dbms_output.put_line(SubStr('Update_disp:End Merging data', 1, 255));
1619: END IF;
1620: --END MERGING DATA
1621:
1622: IF p_validation_level = FND_API.G_VALID_LEVEL_FULL THEN
1623: convert_values_to_ids(p_x_disposition_rec);
1624: END IF;
1625:
1626: --VALIDATE THAT THESE ATTRIBUTE SHOULD NOT BE CHANGED
1876: --COLLECTION ID
1877: -- Added by jaramana on March 25, 2005 to fix bug 4243200
1878: -- First check if a QA PLan is defined in the workorder Org.
1879: AHL_QA_RESULTS_PVT.get_qa_plan( p_api_version => 1.0,
1880: p_init_msg_list => FND_API.G_False,
1881: p_commit => FND_API.G_FALSE,
1882: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1883: p_default => FND_API.G_FALSE,
1884: p_organization_id => p_x_disposition_rec.item_org_id,
1877: -- Added by jaramana on March 25, 2005 to fix bug 4243200
1878: -- First check if a QA PLan is defined in the workorder Org.
1879: AHL_QA_RESULTS_PVT.get_qa_plan( p_api_version => 1.0,
1880: p_init_msg_list => FND_API.G_False,
1881: p_commit => FND_API.G_FALSE,
1882: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1883: p_default => FND_API.G_FALSE,
1884: p_organization_id => p_x_disposition_rec.item_org_id,
1885: p_transaction_number => 2004, -- MRB_TRANSACTION_NUMBER
1878: -- First check if a QA PLan is defined in the workorder Org.
1879: AHL_QA_RESULTS_PVT.get_qa_plan( p_api_version => 1.0,
1880: p_init_msg_list => FND_API.G_False,
1881: p_commit => FND_API.G_FALSE,
1882: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1883: p_default => FND_API.G_FALSE,
1884: p_organization_id => p_x_disposition_rec.item_org_id,
1885: p_transaction_number => 2004, -- MRB_TRANSACTION_NUMBER
1886: p_col_trigger_value => fnd_profile.value('AHL_MRB_DISP_PLAN_TYPE'),
1879: AHL_QA_RESULTS_PVT.get_qa_plan( p_api_version => 1.0,
1880: p_init_msg_list => FND_API.G_False,
1881: p_commit => FND_API.G_FALSE,
1882: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1883: p_default => FND_API.G_FALSE,
1884: p_organization_id => p_x_disposition_rec.item_org_id,
1885: p_transaction_number => 2004, -- MRB_TRANSACTION_NUMBER
1886: p_col_trigger_value => fnd_profile.value('AHL_MRB_DISP_PLAN_TYPE'),
1887: x_return_status => l_return_status,
1943: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
1944: l_msg_count := FND_MSG_PUB.count_msg;
1945: IF l_msg_count > 0 THEN
1946: x_msg_count := l_msg_count;
1947: RAISE FND_API.G_EXC_ERROR;
1948: END IF;
1949: Create_SR (p_init_msg_list => FND_API.G_FALSE,
1950: p_disposition_rec => p_x_disposition_rec,
1951: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
1945: IF l_msg_count > 0 THEN
1946: x_msg_count := l_msg_count;
1947: RAISE FND_API.G_EXC_ERROR;
1948: END IF;
1949: Create_SR (p_init_msg_list => FND_API.G_FALSE,
1950: p_disposition_rec => p_x_disposition_rec,
1951: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
1952: p_mr_asso_tbl => p_mr_asso_tbl,
1953: x_primary_sr_id => l_primary_service_request_id,
1955: x_return_status => x_return_status,
1956: x_msg_count => x_msg_count,
1957: x_msg_data => x_msg_data);
1958: --reinitialize message stack and ignore any warning message
1959: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
1960: FND_MSG_PUB.Initialize;
1961:
1962: -- SATHAPLI::Bug 7111116, 21-May-2008
1963: -- set the l_primary_sr_created flag to TRUE
2141: -- SATHAPLI::FP OGMA Issue# 105 - Non-Serialized Item Maintenance, 12-Dec-2007
2142: -- The API update_item_location and its use has been commented out. Its functionality will
2143: -- now be handled in the API AHL_PRD_NONROUTINE_PVT.process_nonroutine_job.
2144: /*
2145: IF (NVL(x_return_status, FND_API.G_RET_STS_SUCCESS) = FND_API.G_RET_STS_SUCCESS AND
2146: p_x_disposition_rec.non_routine_workorder_id IS NOT NULL AND
2147: l_disposition_rec.part_change_id IS NULL AND
2148: p_x_disposition_rec.part_change_id IS NOT NULL AND
2149: l_exist IS NOT NULL) THEN
2205:
2206: -- call the required API
2207: AHL_PRD_PARTS_CHANGE_PVT.move_instance_location(
2208: p_api_version => 1.0,
2209: p_init_msg_list => FND_API.G_FALSE,
2210: p_commit => FND_API.G_FALSE,
2211: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2212: p_module_type => NULL,
2213: p_default => FND_API.G_TRUE,
2206: -- call the required API
2207: AHL_PRD_PARTS_CHANGE_PVT.move_instance_location(
2208: p_api_version => 1.0,
2209: p_init_msg_list => FND_API.G_FALSE,
2210: p_commit => FND_API.G_FALSE,
2211: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2212: p_module_type => NULL,
2213: p_default => FND_API.G_TRUE,
2214: p_move_item_instance_tbl => l_move_item_ins_tbl,
2207: AHL_PRD_PARTS_CHANGE_PVT.move_instance_location(
2208: p_api_version => 1.0,
2209: p_init_msg_list => FND_API.G_FALSE,
2210: p_commit => FND_API.G_FALSE,
2211: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2212: p_module_type => NULL,
2213: p_default => FND_API.G_TRUE,
2214: p_move_item_instance_tbl => l_move_item_ins_tbl,
2215: x_return_status => x_return_status,
2209: p_init_msg_list => FND_API.G_FALSE,
2210: p_commit => FND_API.G_FALSE,
2211: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2212: p_module_type => NULL,
2213: p_default => FND_API.G_TRUE,
2214: p_move_item_instance_tbl => l_move_item_ins_tbl,
2215: x_return_status => x_return_status,
2216: x_msg_count => x_msg_count,
2217: x_msg_data => x_msg_data
2222: 'Call to the API AHL_PRD_PARTS_CHANGE_PVT.move_instance_location returned with status => '||x_return_status);
2223: END IF;
2224:
2225: -- check the API call return status
2226: IF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2227: CLOSE get_rem_inst_id_csr;
2228: CLOSE get_rel_nonmaster_wo_id_csr;
2229: RAISE FND_API.G_EXC_ERROR;
2230: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2225: -- check the API call return status
2226: IF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2227: CLOSE get_rem_inst_id_csr;
2228: CLOSE get_rel_nonmaster_wo_id_csr;
2229: RAISE FND_API.G_EXC_ERROR;
2230: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2231: CLOSE get_rem_inst_id_csr;
2232: CLOSE get_rel_nonmaster_wo_id_csr;
2233: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2226: IF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2227: CLOSE get_rem_inst_id_csr;
2228: CLOSE get_rel_nonmaster_wo_id_csr;
2229: RAISE FND_API.G_EXC_ERROR;
2230: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2231: CLOSE get_rem_inst_id_csr;
2232: CLOSE get_rel_nonmaster_wo_id_csr;
2233: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2234: END IF;
2229: RAISE FND_API.G_EXC_ERROR;
2230: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2231: CLOSE get_rem_inst_id_csr;
2232: CLOSE get_rel_nonmaster_wo_id_csr;
2233: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2234: END IF;
2235: END IF;
2236: CLOSE get_rem_inst_id_csr;
2237: END IF;
2243: -- If the instance was just removed in Serviceable condition return the part to the Visit Locator.
2244: -- Note that the ReturnTo_Workorder_Locator will return only if the locator is set at the Visit level.
2245: -- For FP OGMA Issue# 105 - Non-Serialized Item Maintenance, if the instance was removed in 'Inspection'
2246: -- condition, then it should not be returned to the locator.
2247: IF (NVL(x_return_status, FND_API.G_RET_STS_SUCCESS) = FND_API.G_RET_STS_SUCCESS AND
2248: l_disposition_rec.part_change_id IS NULL AND
2249: p_x_disposition_rec.part_change_id IS NOT NULL AND
2250: p_x_disposition_rec.condition_id <> NVL(fnd_profile.value('AHL_MTL_MAT_STATUS_UNSERVICABLE'), -1) AND
2251: p_x_disposition_rec.condition_id <> NVL(fnd_profile.value('AHL_MTL_MAT_STATUS_MRB'), -1) AND
2269: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2270: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, L_DEBUG_KEY, 'Returned from AHL_PRD_PARTS_CHANGE_PVT.ReturnTo_Workorder_Locator: ' ||
2271: ' x_return_status = ' || x_return_status);
2272: END IF;
2273: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2274: RAISE FND_API.G_EXC_ERROR;
2275: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2276: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2277: END IF;
2270: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, L_DEBUG_KEY, 'Returned from AHL_PRD_PARTS_CHANGE_PVT.ReturnTo_Workorder_Locator: ' ||
2271: ' x_return_status = ' || x_return_status);
2272: END IF;
2273: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2274: RAISE FND_API.G_EXC_ERROR;
2275: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2276: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2277: END IF;
2278: END IF;
2271: ' x_return_status = ' || x_return_status);
2272: END IF;
2273: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2274: RAISE FND_API.G_EXC_ERROR;
2275: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2276: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2277: END IF;
2278: END IF;
2279: END IF;
2272: END IF;
2273: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2274: RAISE FND_API.G_EXC_ERROR;
2275: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2276: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2277: END IF;
2278: END IF;
2279: END IF;
2280:
2287:
2288: ------------------------------------------------------------------
2289:
2290: PROCEDURE CREATE_SR(
2291: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2292: p_disposition_rec IN AHL_PRD_DISPOSITION_PVT.disposition_rec_type,
2293: -- Parameter added by jaramana on Oct 9, 2007 for ER 5883257
2294: p_mr_asso_tbl IN AHL_PRD_NONROUTINE_PVT.MR_Association_tbl_type,
2295: x_primary_sr_id OUT NOCOPY NUMBER,
2331: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, L_DEBUG_KEY || '.begin', 'Entering Procedure');
2332: END IF;
2333:
2334: -- Initialize message list if p_init_msg_list is set to TRUE
2335: IF FND_API.To_Boolean( p_init_msg_list)
2336: THEN
2337: FND_MSG_PUB.Initialize;
2338: END IF;
2339: --dbms_output.put_line('Begin Create SR -----------------------------');
2437: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, L_DEBUG_KEY, 'Before process_nonroutine_job');
2438: END IF;
2439: AHL_PRD_NONROUTINE_PVT.process_nonroutine_job (
2440: p_api_version => 1.0,
2441: p_commit => Fnd_Api.g_false,
2442: p_module_type => NULL,
2443: x_return_status => x_return_status,
2444: x_msg_count => x_msg_count,
2445: x_msg_data => x_msg_data,
2462:
2463: FOR i IN 1..x_msg_count LOOP
2464: FND_MSG_PUB.get (
2465: p_msg_index => i,
2466: p_encoded => FND_API.G_FALSE,
2467: p_data => x_msg_data,
2468: p_msg_index_out => l_msg_index_out );
2469: --dbms_output.put_line(SubStr('x_msg_data = '||x_msg_data,1,255));
2470: END LOOP;
2477: --dbms_output.put_line('Nonroutine_wo_id: ' || l_sr_task_tbl(0).Nonroutine_wo_id);
2478:
2479:
2480: -- Check return status.
2481: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2482: RAISE FND_API.G_EXC_ERROR;
2483: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2484: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2485: END IF;
2478:
2479:
2480: -- Check return status.
2481: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2482: RAISE FND_API.G_EXC_ERROR;
2483: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2484: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2485: END IF;
2486:
2479:
2480: -- Check return status.
2481: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2482: RAISE FND_API.G_EXC_ERROR;
2483: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2484: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2485: END IF;
2486:
2487:
2480: -- Check return status.
2481: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2482: RAISE FND_API.G_EXC_ERROR;
2483: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2484: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2485: END IF;
2486:
2487:
2488: x_primary_sr_id := l_sr_task_tbl(0).incident_id;
2508: x_return_status => x_return_status);
2509: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2510: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, L_DEBUG_KEY, 'Returned from update_item_location. x_return_status = ' || x_return_status);
2511: END IF;
2512: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2513: RAISE FND_API.G_EXC_ERROR;
2514: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2515: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2516: END IF;
2509: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2510: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, L_DEBUG_KEY, 'Returned from update_item_location. x_return_status = ' || x_return_status);
2511: END IF;
2512: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2513: RAISE FND_API.G_EXC_ERROR;
2514: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2515: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2516: END IF;
2517: END IF;
2510: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, L_DEBUG_KEY, 'Returned from update_item_location. x_return_status = ' || x_return_status);
2511: END IF;
2512: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2513: RAISE FND_API.G_EXC_ERROR;
2514: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2515: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2516: END IF;
2517: END IF;
2518: -- End changes for ER 5903256
2511: END IF;
2512: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2513: RAISE FND_API.G_EXC_ERROR;
2514: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2515: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2516: END IF;
2517: END IF;
2518: -- End changes for ER 5903256
2519: */
2613: x_mapping_status => l_dummy_status
2614: );
2615: p_x_disposition_rec.instance_id := l_position_instance_id;
2616: -- Check return status.
2617: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2618: RAISE FND_API.G_EXC_ERROR;
2619: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2620: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2621: END IF;
2614: );
2615: p_x_disposition_rec.instance_id := l_position_instance_id;
2616: -- Check return status.
2617: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2618: RAISE FND_API.G_EXC_ERROR;
2619: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2620: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2621: END IF;
2622:
2615: p_x_disposition_rec.instance_id := l_position_instance_id;
2616: -- Check return status.
2617: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2618: RAISE FND_API.G_EXC_ERROR;
2619: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2620: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2621: END IF;
2622:
2623: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2616: -- Check return status.
2617: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2618: RAISE FND_API.G_EXC_ERROR;
2619: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2620: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2621: END IF;
2622:
2623: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2624: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, L_DEBUG_KEY,'derived Position Instance_id: ' || p_x_disposition_rec.instance_id);
2641: END IF;
2642: -- Raise an Exception
2643: FND_MESSAGE.Set_Name(G_APP_NAME, 'AHL_PRD_SVC_COND_PRF_NOT_SET');
2644: FND_MSG_PUB.ADD;
2645: RAISE FND_API.G_EXC_ERROR;
2646: END IF;
2647: END IF;
2648: END IF;
2649: END IF;
2665: END IF;
2666: -- Raise an Exception
2667: FND_MESSAGE.Set_Name(G_APP_NAME, 'AHL_PRD_SVC_COND_PRF_NOT_SET');
2668: FND_MSG_PUB.ADD;
2669: RAISE FND_API.G_EXC_ERROR;
2670: END IF;
2671: END IF;
2672: -- End addition by jaramana on August 07, 2007 for the bug 6328554 (FP of 5948917)
2673: END IF;
2765: x_msg_data => x_msg_data,
2766: p_csi_item_instance_id => p_x_disposition_rec.instance_id,
2767: x_path_position_id => l_derived_path_pos_id);
2768:
2769: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2770: RAISE FND_API.G_EXC_ERROR;
2771: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2772: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2773: END IF;
2766: p_csi_item_instance_id => p_x_disposition_rec.instance_id,
2767: x_path_position_id => l_derived_path_pos_id);
2768:
2769: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2770: RAISE FND_API.G_EXC_ERROR;
2771: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2772: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2773: END IF;
2774:
2767: x_path_position_id => l_derived_path_pos_id);
2768:
2769: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2770: RAISE FND_API.G_EXC_ERROR;
2771: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2772: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2773: END IF;
2774:
2775: p_x_disposition_rec.path_position_id := l_derived_path_pos_id;
2768:
2769: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2770: RAISE FND_API.G_EXC_ERROR;
2771: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2772: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2773: END IF;
2774:
2775: p_x_disposition_rec.path_position_id := l_derived_path_pos_id;
2776: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2991: --WORKORDER
2992: IF (p_disposition_rec.workorder_id IS NULL) THEN
2993: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_PRD_DIS_WO_ID_REQ'); -- Workorder is required to create disposition.
2994: FND_MSG_PUB.ADD;
2995: RAISE FND_API.G_EXC_ERROR;
2996: ELSE
2997: validate_workorder(p_disposition_rec.workorder_id);
2998: IF(workorder_editable(p_disposition_rec.workorder_id) = FALSE) THEN
2999: FND_MESSAGE.Set_Name(G_APP_NAME, 'AHL_PRD_DIS_WO_NOT_EDITABLE'); --Cannot Create Disposition Because Workorder is not editable.
2997: validate_workorder(p_disposition_rec.workorder_id);
2998: IF(workorder_editable(p_disposition_rec.workorder_id) = FALSE) THEN
2999: FND_MESSAGE.Set_Name(G_APP_NAME, 'AHL_PRD_DIS_WO_NOT_EDITABLE'); --Cannot Create Disposition Because Workorder is not editable.
3000: FND_MSG_PUB.ADD;
3001: RAISE FND_API.G_EXC_ERROR;
3002: END IF;
3003: END IF;
3004:
3005: IF (p_disposition_rec.path_position_id IS NULL AND p_disposition_rec.inventory_item_id IS NULL) THEN
3004:
3005: IF (p_disposition_rec.path_position_id IS NULL AND p_disposition_rec.inventory_item_id IS NULL) THEN
3006: FND_MESSAGE.Set_Name(G_APP_NAME, 'AHL_PRD_DIS_POS_OR_ITEM_REQ'); --Path Position or Item is required to create a disposition
3007: FND_MSG_PUB.ADD;
3008: RAISE FND_API.G_EXC_ERROR;
3009: END IF;
3010:
3011: IF p_disposition_rec.item_org_id IS NOT NULL AND p_disposition_rec.inventory_item_id IS NULL THEN
3012: FND_MESSAGE.Set_Name(G_APP_NAME, 'AHL_PRD_DIS_CANNOT_ENTER_ORG'); --Cannot enter organization id.
3023: CLOSE part_change_csr;
3024: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_PRD_DIS_INV_PART_CHG_ID'); -- Invalid part change id
3025: FND_MESSAGE.SET_TOKEN('PART_CHNG_ID', p_disposition_rec.part_change_id);
3026: FND_MSG_PUB.ADD;
3027: RAISE FND_API.G_EXC_ERROR;
3028: END IF;
3029: CLOSE part_change_csr;
3030: END IF;
3031:
3081: l_unit_instance_id := get_unit_instance_id(p_disposition_rec.workorder_id);
3082: IF(l_unit_instance_id IS NULL) THEN
3083: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_PRD_DIS_NOT_UC_NO_POS'); --Workorder's instance does not belong to UC hence path position is not allowed
3084: FND_MSG_PUB.ADD;
3085: RAISE FND_API.G_EXC_ERROR;
3086: END IF;
3087:
3088: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
3089: FND_LOG.STRING(FND_LOG.LEVEL_EVENT, L_DEBUG_KEY, 'About to call AHL_MC_PATH_POSITION_PVT.Get_Pos_Instance with ' ||
3111: ', x_parent_instance_id ' || l_parent_instance_id ||
3112: ', x_mapping_status = ' || l_mapping_status);
3113: END IF;
3114: -- Check return status.
3115: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3116: RAISE FND_API.G_EXC_ERROR;
3117: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3118: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3119: END IF;
3112: ', x_mapping_status = ' || l_mapping_status);
3113: END IF;
3114: -- Check return status.
3115: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3116: RAISE FND_API.G_EXC_ERROR;
3117: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3118: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3119: END IF;
3120:
3113: END IF;
3114: -- Check return status.
3115: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3116: RAISE FND_API.G_EXC_ERROR;
3117: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3118: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3119: END IF;
3120:
3121: -- SATHAPLI:: Bug 6836572, 19-Mar-2008
3114: -- Check return status.
3115: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3116: RAISE FND_API.G_EXC_ERROR;
3117: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3118: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3119: END IF;
3120:
3121: -- SATHAPLI:: Bug 6836572, 19-Mar-2008
3122: -- If the workorder instance is root instance of an installed sub UC, and the sub UC has been removed during parts change, then
3183:
3184: IF nvl(l_wo_root_instance_id, -1) <> nvl(l_dis_root_instance_id, -1) THEN
3185: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_PRD_DIS_POS_NOT_WO_UC'); -- Instance is not in the same unit as workorder instance
3186: FND_MSG_PUB.ADD;
3187: RAISE FND_API.G_EXC_ERROR;
3188: END IF;
3189: END IF;
3190: END IF; -- Part Change
3191: ELSIF (l_mapping_status = 'MATCH') THEN
3197: IF (p_disposition_rec.instance_id IS NOT NULL) THEN
3198: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_PRD_INV_INSTANT_ID');
3199: FND_MESSAGE.SET_TOKEN('INSTANT_ID', p_disposition_rec.instance_id);
3200: FND_MSG_PUB.ADD;
3201: RAISE FND_API.G_EXC_ERROR;
3202: END IF;
3203: l_position_empty := TRUE;
3204: ELSIF (l_pc_type = G_PART_CHANGE_SWAP) THEN
3205: -- Disposition is for the instance that was swapped out
3429: --COLLECTION ID-------------------------------------------------------------
3430: -- Added by jaramana on March 25, 2005 to fix bug 4243200
3431: -- First check if a QA Plan is defined in the workorder Org.
3432: AHL_QA_RESULTS_PVT.get_qa_plan( p_api_version => 1.0,
3433: p_init_msg_list => FND_API.G_False,
3434: p_commit => FND_API.G_FALSE,
3435: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
3436: p_default => FND_API.G_FALSE,
3437: p_organization_id => p_disposition_rec.item_org_id,
3430: -- Added by jaramana on March 25, 2005 to fix bug 4243200
3431: -- First check if a QA Plan is defined in the workorder Org.
3432: AHL_QA_RESULTS_PVT.get_qa_plan( p_api_version => 1.0,
3433: p_init_msg_list => FND_API.G_False,
3434: p_commit => FND_API.G_FALSE,
3435: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
3436: p_default => FND_API.G_FALSE,
3437: p_organization_id => p_disposition_rec.item_org_id,
3438: p_transaction_number => 2004, -- MRB_TRANSACTION_NUMBER
3431: -- First check if a QA Plan is defined in the workorder Org.
3432: AHL_QA_RESULTS_PVT.get_qa_plan( p_api_version => 1.0,
3433: p_init_msg_list => FND_API.G_False,
3434: p_commit => FND_API.G_FALSE,
3435: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
3436: p_default => FND_API.G_FALSE,
3437: p_organization_id => p_disposition_rec.item_org_id,
3438: p_transaction_number => 2004, -- MRB_TRANSACTION_NUMBER
3439: p_col_trigger_value => fnd_profile.value('AHL_MRB_DISP_PLAN_TYPE'),
3432: AHL_QA_RESULTS_PVT.get_qa_plan( p_api_version => 1.0,
3433: p_init_msg_list => FND_API.G_False,
3434: p_commit => FND_API.G_FALSE,
3435: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
3436: p_default => FND_API.G_FALSE,
3437: p_organization_id => p_disposition_rec.item_org_id,
3438: p_transaction_number => 2004, -- MRB_TRANSACTION_NUMBER
3439: p_col_trigger_value => fnd_profile.value('AHL_MRB_DISP_PLAN_TYPE'),
3440: x_return_status => l_return_status,
3487: END IF;
3488: END IF;
3489:
3490: IF FND_MSG_PUB.count_msg > 0 THEN
3491: RAISE FND_API.G_EXC_ERROR;
3492: END IF;
3493:
3494: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
3495: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, L_DEBUG_KEY || '.end', 'Exiting Procedure');
3559: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
3560: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, L_DEBUG_KEY || '.begin', 'Entering Procedure');
3561: END IF;
3562: --dbms_output.put_line(SubStr('Begin Convert_val_to_id', 1, 255));
3563: IF (p_x_prd_disposition_rec.instance_number IS NOT NULL AND p_x_prd_disposition_rec.instance_number <> FND_API.G_MISS_CHAR) THEN
3564: OPEN instance_id_csr(p_x_prd_disposition_rec.instance_number);
3565: FETCH instance_id_csr INTO p_x_prd_disposition_rec.instance_id;
3566: IF(instance_id_csr%NOTFOUND) THEN
3567: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_PRD_INV_INST_NUM');
3568: FND_MESSAGE.Set_Token('INTANCE_NUM', p_x_prd_disposition_rec.instance_number);
3569: FND_MSG_PUB.ADD;
3570: END IF;
3571: CLOSE instance_id_csr;
3572: ELSIF(p_x_prd_disposition_rec.instance_number = FND_API.G_MISS_CHAR) THEN
3573: p_x_prd_disposition_rec.instance_id := NULL;
3574: END IF;
3575:
3576: IF (p_x_prd_disposition_rec.item_group_name IS NOT NULL AND p_x_prd_disposition_rec.item_group_name <> FND_API.G_MISS_CHAR) THEN
3572: ELSIF(p_x_prd_disposition_rec.instance_number = FND_API.G_MISS_CHAR) THEN
3573: p_x_prd_disposition_rec.instance_id := NULL;
3574: END IF;
3575:
3576: IF (p_x_prd_disposition_rec.item_group_name IS NOT NULL AND p_x_prd_disposition_rec.item_group_name <> FND_API.G_MISS_CHAR) THEN
3577: OPEN item_group_id_csr(p_x_prd_disposition_rec.item_group_name);
3578: FETCH item_group_id_csr INTO p_x_prd_disposition_rec.item_group_id;
3579: IF(item_group_id_csr%NOTFOUND) THEN
3580: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_PRD_INV_ITM_GRPNAME');
3581: FND_MESSAGE.Set_Token('ITEM_GROUP', p_x_prd_disposition_rec.item_group_name);
3582: FND_MSG_PUB.ADD;
3583: END IF;
3584: CLOSE item_group_id_csr;
3585: ELSIF(p_x_prd_disposition_rec.item_group_name = FND_API.G_MISS_CHAR) THEN
3586: p_x_prd_disposition_rec.item_group_id := NULL;
3587: END IF;
3588:
3589: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
3589: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
3590: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, L_DEBUG_KEY, 'Before convert Item Number: ' ||p_x_prd_disposition_rec.item_number);
3591: END IF;
3592: --dbms_output.put_line(SubStr('convert Item Number', 1, 255));
3593: IF (p_x_prd_disposition_rec.item_number IS NOT NULL AND p_x_prd_disposition_rec.item_number <> FND_API.G_MISS_CHAR) THEN
3594: OPEN item_id_csr(p_x_prd_disposition_rec.item_number);
3595: FETCH item_id_csr INTO p_x_prd_disposition_rec.inventory_item_id;
3596: IF(item_id_csr%NOTFOUND) THEN
3597: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_PRD_INV_ITEM_NUM');
3598: FND_MESSAGE.Set_Token('ITEM_NUM', p_x_prd_disposition_rec.item_number);
3599: FND_MSG_PUB.ADD;
3600: END IF;
3601: CLOSE item_id_csr;
3602: ELSIF(p_x_prd_disposition_rec.item_number = FND_API.G_MISS_CHAR) THEN
3603: p_x_prd_disposition_rec.inventory_item_id := NULL;
3604: END IF;
3605:
3606: IF (p_x_prd_disposition_rec.operation_sequence IS NOT NULL AND p_x_prd_disposition_rec.operation_sequence <> FND_API.G_MISS_NUM) THEN
3602: ELSIF(p_x_prd_disposition_rec.item_number = FND_API.G_MISS_CHAR) THEN
3603: p_x_prd_disposition_rec.inventory_item_id := NULL;
3604: END IF;
3605:
3606: IF (p_x_prd_disposition_rec.operation_sequence IS NOT NULL AND p_x_prd_disposition_rec.operation_sequence <> FND_API.G_MISS_NUM) THEN
3607: OPEN wo_operation_id_csr(p_x_prd_disposition_rec.workorder_id, p_x_prd_disposition_rec.operation_sequence);
3608: FETCH wo_operation_id_csr INTO p_x_prd_disposition_rec.wo_operation_id;
3609: IF(wo_operation_id_csr%NOTFOUND) THEN
3610: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_PRD_INV_OPER_SEQ');
3611: FND_MESSAGE.Set_Token('OPER_SEQ', p_x_prd_disposition_rec.operation_sequence);
3612: FND_MSG_PUB.ADD;
3613: END IF;
3614: CLOSE wo_operation_id_csr;
3615: ELSIF(p_x_prd_disposition_rec.operation_sequence = FND_API.G_MISS_NUM) THEN
3616: p_x_prd_disposition_rec.wo_operation_id := NULL;
3617: END IF;
3618:
3619: IF (p_x_prd_disposition_rec.condition_meaning IS NOT NULL AND p_x_prd_disposition_rec.condition_meaning <> FND_API.G_MISS_CHAR) THEN
3615: ELSIF(p_x_prd_disposition_rec.operation_sequence = FND_API.G_MISS_NUM) THEN
3616: p_x_prd_disposition_rec.wo_operation_id := NULL;
3617: END IF;
3618:
3619: IF (p_x_prd_disposition_rec.condition_meaning IS NOT NULL AND p_x_prd_disposition_rec.condition_meaning <> FND_API.G_MISS_CHAR) THEN
3620: OPEN condition_id_csr(p_x_prd_disposition_rec.condition_meaning);
3621: FETCH condition_id_csr INTO p_x_prd_disposition_rec.condition_id;
3622: IF(condition_id_csr%NOTFOUND) THEN
3623: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_PRD_INV_CONDITION');
3624: FND_MESSAGE.Set_Token('CONDITION', p_x_prd_disposition_rec.condition_meaning);
3625: FND_MSG_PUB.ADD;
3626: END IF;
3627: CLOSE condition_id_csr;
3628: ELSIF(p_x_prd_disposition_rec.condition_meaning = FND_API.G_MISS_CHAR) THEN
3629: p_x_prd_disposition_rec.condition_id := NULL;
3630: END IF;
3631:
3632: IF (p_x_prd_disposition_rec.severity_name IS NOT NULL AND p_x_prd_disposition_rec.severity_name <> FND_API.G_MISS_CHAR) THEN
3628: ELSIF(p_x_prd_disposition_rec.condition_meaning = FND_API.G_MISS_CHAR) THEN
3629: p_x_prd_disposition_rec.condition_id := NULL;
3630: END IF;
3631:
3632: IF (p_x_prd_disposition_rec.severity_name IS NOT NULL AND p_x_prd_disposition_rec.severity_name <> FND_API.G_MISS_CHAR) THEN
3633: OPEN severity_id_csr( p_x_prd_disposition_rec.severity_name);
3634: FETCH severity_id_csr INTO p_x_prd_disposition_rec.severity_id;
3635: IF(severity_id_csr%NOTFOUND) THEN
3636: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_PRD_INV_SEVERITY_NAME');
3637: FND_MESSAGE.Set_Token('NAME', p_x_prd_disposition_rec.severity_name);
3638: FND_MSG_PUB.ADD;
3639: END IF;
3640: CLOSE severity_id_csr;
3641: ELSIF(p_x_prd_disposition_rec.severity_name = FND_API.G_MISS_CHAR) THEN
3642: p_x_prd_disposition_rec.severity_id := NULL;
3643: END IF;
3644:
3645: IF (p_x_prd_disposition_rec.problem_meaning IS NOT NULL AND p_x_prd_disposition_rec.problem_meaning <> FND_API.G_MISS_CHAR) THEN
3641: ELSIF(p_x_prd_disposition_rec.severity_name = FND_API.G_MISS_CHAR) THEN
3642: p_x_prd_disposition_rec.severity_id := NULL;
3643: END IF;
3644:
3645: IF (p_x_prd_disposition_rec.problem_meaning IS NOT NULL AND p_x_prd_disposition_rec.problem_meaning <> FND_API.G_MISS_CHAR) THEN
3646: OPEN problem_code_csr( p_x_prd_disposition_rec.problem_meaning);
3647: FETCH problem_code_csr INTO p_x_prd_disposition_rec.problem_code;
3648: IF(problem_code_csr%NOTFOUND) THEN
3649: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_PRD_INV_PROBLEM');
3650: FND_MESSAGE.Set_Token('PROBLEM', p_x_prd_disposition_rec.problem_meaning);
3651: FND_MSG_PUB.ADD;
3652: END IF;
3653: CLOSE problem_code_csr;
3654: ELSIF(p_x_prd_disposition_rec.problem_meaning = FND_API.G_MISS_CHAR) THEN
3655: p_x_prd_disposition_rec.problem_code := NULL;
3656: END IF;
3657:
3658: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
3704: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_PRD_INV_WORKORDER_ID'); -- Invalid Workorder Id
3705: FND_MESSAGE.set_token('WORKORDER_ID', p_workorder_id);
3706: FND_MSG_PUB.ADD;
3707: CLOSE workorder_csr;
3708: RAISE FND_API.G_EXC_ERROR;
3709: ELSE
3710: CLOSE workorder_csr;
3711: END IF;
3712:
3728: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_PRD_INV_PATH_POSITION');
3729: FND_MESSAGE.SET_TOKEN('PATH_POS_ID', p_path_position_id);
3730: FND_MSG_PUB.ADD;
3731: CLOSE path_position_csr;
3732: RAISE FND_API.G_EXC_ERROR;
3733: ELSE
3734: CLOSE path_position_csr;
3735: END IF;
3736: END validate_path_position;
3761: CLOSE val_item_csr; --Close cursor before raising exception
3762: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_PRD_INV_ITEM_ID');
3763: FND_MESSAGE.SET_TOKEN('ITEM_ID', p_inventory_item_id);
3764: FND_MSG_PUB.ADD;
3765: RAISE FND_API.G_EXC_ERROR;
3766: END IF;
3767: CLOSE val_item_csr;
3768:
3769:
3779: CLOSE val_item_csr; --close cursor before raise an exception
3780: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_PRD_ITEM_NOT_IN_WO_ORG'); --Item is not defined in workorder's organization
3781: FND_MESSAGE.SET_TOKEN('ITEM_ID', p_inventory_item_id);
3782: FND_MSG_PUB.ADD;
3783: RAISE FND_API.G_EXC_ERROR;
3784: END IF;
3785: CLOSE val_item_csr;
3786: END IF;
3787:
3973: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, L_DEBUG_KEY, 'l_dis_root_instance_id:' || l_dis_root_instance_id);
3974: END IF;
3975: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_PRD_DIS_INST_IN_UC'); -- Instance is not in the same unit as workorder instance
3976: FND_MSG_PUB.ADD;
3977: RAISE FND_API.G_EXC_ERROR;
3978: END IF; -- Root Instances are not the same
3979: END IF; -- l_wo_instance_id <> p_instance_id
3980: END IF; -- p_part_change_id is null
3981: ELSE --then it is a stand alone instance need to check if instance is issued to the job
3994: IF instance_in_wip_csr%NOTFOUND THEN
3995: CLOSE instance_in_wip_csr;
3996: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_PRD_INST_NOT_ISSUED'); -- Instance is not issued to the job
3997: FND_MSG_PUB.ADD;
3998: RAISE FND_API.G_EXC_ERROR;
3999: END IF;
4000: CLOSE instance_in_wip_csr;
4001: ***/
4002: END IF;
4463: -- Standard start of API savepoint
4464: SAVEPOINT Validate_Disp_Types_Pvt;
4465:
4466: -- Initialize Procedure return status to success
4467: x_return_status := FND_API.G_RET_STS_SUCCESS;
4468:
4469: --Validate that the immediate disposition type is valid
4470: OPEN check_immed_disp_types_csr (p_disposition_rec.immediate_disposition_code);
4471: FETCH check_immed_disp_types_csr into l_dummy;
4569: IF (get_disp_rec_csr%NOTFOUND) THEN
4570: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_PRD_DISP_ID_INV');
4571: FND_MESSAGE.Set_Token('DISPOSITION_ID', p_disposition_rec.disposition_id);
4572: FND_MSG_PUB.ADD;
4573: RAISE FND_API.G_EXC_ERROR;
4574: END IF;
4575: CLOSE get_disp_rec_csr;
4576:
4577: --Validate that condition id flows only 1 way.
4656:
4657: END IF; --G_UPDATE
4658:
4659: IF FND_MSG_PUB.count_msg > 0 THEN
4660: RAISE FND_API.G_EXC_ERROR;
4661: END IF;
4662:
4663: EXCEPTION
4664: WHEN FND_API.G_EXC_ERROR THEN
4660: RAISE FND_API.G_EXC_ERROR;
4661: END IF;
4662:
4663: EXCEPTION
4664: WHEN FND_API.G_EXC_ERROR THEN
4665: Rollback to Validate_Disp_Types_Pvt;
4666: x_return_status := FND_API.G_RET_STS_ERROR;
4667: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
4668: p_data => x_msg_data,
4662:
4663: EXCEPTION
4664: WHEN FND_API.G_EXC_ERROR THEN
4665: Rollback to Validate_Disp_Types_Pvt;
4666: x_return_status := FND_API.G_RET_STS_ERROR;
4667: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
4668: p_data => x_msg_data,
4669: p_encoded => fnd_api.g_false);
4670: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4665: Rollback to Validate_Disp_Types_Pvt;
4666: x_return_status := FND_API.G_RET_STS_ERROR;
4667: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
4668: p_data => x_msg_data,
4669: p_encoded => fnd_api.g_false);
4670: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4671: Rollback to Validate_Disp_Types_Pvt;
4672: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4673: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
4666: x_return_status := FND_API.G_RET_STS_ERROR;
4667: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
4668: p_data => x_msg_data,
4669: p_encoded => fnd_api.g_false);
4670: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4671: Rollback to Validate_Disp_Types_Pvt;
4672: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4673: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
4674: p_data => x_msg_data,
4668: p_data => x_msg_data,
4669: p_encoded => fnd_api.g_false);
4670: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4671: Rollback to Validate_Disp_Types_Pvt;
4672: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4673: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
4674: p_data => x_msg_data,
4675: p_encoded => fnd_api.g_false);
4676: WHEN OTHERS THEN
4671: Rollback to Validate_Disp_Types_Pvt;
4672: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4673: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
4674: p_data => x_msg_data,
4675: p_encoded => fnd_api.g_false);
4676: WHEN OTHERS THEN
4677: Rollback to Validate_Disp_Types_Pvt;
4678: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4679: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
4674: p_data => x_msg_data,
4675: p_encoded => fnd_api.g_false);
4676: WHEN OTHERS THEN
4677: Rollback to Validate_Disp_Types_Pvt;
4678: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4679: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
4680: p_procedure_name => l_api_name,
4681: p_error_text => SQLERRM);
4682: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
4680: p_procedure_name => l_api_name,
4681: p_error_text => SQLERRM);
4682: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
4683: p_data => x_msg_data,
4684: p_encoded => fnd_api.g_false);
4685:
4686: END Validate_Disposition_Types;
4687:
4688: -------------------------------------------------------------------------
5089:
5090: BEGIN
5091:
5092: --Initialize API return status to success
5093: x_return_status := FND_API.G_RET_STS_SUCCESS;
5094:
5095: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5096: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_full_name, 'Entering Procedure. p_workorder_id = ' || p_workorder_id || ', p_instance_id = ' || p_instance_id);
5097: END IF;
5107: END IF;
5108: FND_MESSAGE.Set_Name('AHL', 'AHL_PRD_WIP_ENTITY_MISSING');
5109: FND_MESSAGE.Set_Token('WOID', p_workorder_id);
5110: FND_MSG_PUB.ADD;
5111: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5112: ELSE
5113: -- Additional check added by jaramana on February 23, 2007 for ER 5854667
5114: -- Update the instance location only if the work order is in released status
5115: OPEN ahl_wo_status_csr(l_wip_entity_id);
5130: FND_MESSAGE.Set_Name('AHL', 'AHL_PRD_REMOVED_INSTANCE_INVALID');
5131: FND_MESSAGE.Set_Token('INST', p_instance_id);
5132: FND_MSG_PUB.ADD;
5133: CLOSE ahl_obj_ver_csr;
5134: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5135: ELSE
5136: CLOSE ahl_obj_ver_csr;
5137: END IF;
5138: -- Populate l_instance_rec
5148:
5149: -- get transaction_type_id .
5150: AHL_Util_UC_Pkg.GetCSI_Transaction_ID('UC_UPDATE', l_transaction_type_id, l_return_val);
5151: IF NOT(l_return_val) THEN
5152: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5153: END IF;
5154: l_csi_transaction_rec.transaction_type_id := l_transaction_type_id;
5155: l_csi_transaction_rec.source_transaction_date := sysdate;
5156:
5159: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_full_name, 'About to call CSI_ITEM_INSTANCE_PUB.UPDATE_ITEM_INSTANCE');
5160: END IF;
5161:
5162: CSI_ITEM_INSTANCE_PUB.UPDATE_ITEM_INSTANCE(p_api_version => 1.0
5163: ,p_commit => fnd_api.g_false
5164: ,p_init_msg_list => fnd_api.g_false
5165: ,p_validation_level => fnd_api.g_valid_level_full
5166: ,p_instance_rec => l_instance_rec
5167: ,p_ext_attrib_values_tbl => l_extend_attrib_values_tbl
5160: END IF;
5161:
5162: CSI_ITEM_INSTANCE_PUB.UPDATE_ITEM_INSTANCE(p_api_version => 1.0
5163: ,p_commit => fnd_api.g_false
5164: ,p_init_msg_list => fnd_api.g_false
5165: ,p_validation_level => fnd_api.g_valid_level_full
5166: ,p_instance_rec => l_instance_rec
5167: ,p_ext_attrib_values_tbl => l_extend_attrib_values_tbl
5168: ,p_party_tbl => l_party_tbl
5161:
5162: CSI_ITEM_INSTANCE_PUB.UPDATE_ITEM_INSTANCE(p_api_version => 1.0
5163: ,p_commit => fnd_api.g_false
5164: ,p_init_msg_list => fnd_api.g_false
5165: ,p_validation_level => fnd_api.g_valid_level_full
5166: ,p_instance_rec => l_instance_rec
5167: ,p_ext_attrib_values_tbl => l_extend_attrib_values_tbl
5168: ,p_party_tbl => l_party_tbl
5169: ,p_account_tbl => l_account_tbl
5183: END IF; -- WIP Entity Id is null or not
5184:
5185: -- Updated by jaramana on October 15, 2007 since the CSI API seems to nullify return params
5186: IF (x_return_status IS NULL AND NVL(l_msg_count, 0) = 0) THEN
5187: x_return_status := FND_API.G_RET_STS_SUCCESS;
5188: END IF;
5189:
5190: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5191: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_full_name, 'Exiting Procedure. x_return_status = ' || x_return_status);