516: -- Create a savepoint.
517: SAVEPOINT create_re_sprvsr_pub;
518:
519: -- Check for the Compatible API call
520: IF NOT FND_API.Compatible_Api_Call( l_api_version,
521: p_api_version,
522: l_api_name,
523: g_pkg_name) THEN
524:
521: p_api_version,
522: l_api_name,
523: g_pkg_name) THEN
524:
525: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
526: END IF;
527:
528: -- If the calling program has passed the parameter for initializing the message list
529: IF FND_API.To_Boolean(p_init_msg_list) THEN
525: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
526: END IF;
527:
528: -- If the calling program has passed the parameter for initializing the message list
529: IF FND_API.To_Boolean(p_init_msg_list) THEN
530: FND_MSG_PUB.Initialize;
531: END IF;
532:
533: -- Set the return status to success
530: FND_MSG_PUB.Initialize;
531: END IF;
532:
533: -- Set the return status to success
534: x_return_status := FND_API.G_RET_STS_SUCCESS;
535:
536: -- Validate input paramaters
537: p_sprvsr_status := validate_parameters(p_sprvsr_dtls_rec);
538:
536: -- Validate input paramaters
537: p_sprvsr_status := validate_parameters(p_sprvsr_dtls_rec);
538:
539: IF p_sprvsr_status = 'INVALID' THEN
540: x_return_status := FND_API.G_RET_STS_ERROR;
541: END IF;
542:
543: IF p_sprvsr_status = 'VALID' THEN
544: -- Check whether ca_person_number is valid or not.
579: l_ou_start_dt
580: );
581:
582: IF p_sprvsr_status = 'INVALID' THEN
583: x_return_status := FND_API.G_RET_STS_ERROR;
584: END IF;
585:
586: END IF;
587:
590: -- Validate all db constraints
591: l_ret_val := validate_sprvsr_db_cons ( l_person_id, p_sprvsr_dtls_rec, l_ca_person_id, l_ca_sequence_number, p_sprvsr_status );
592:
593: IF l_ret_val = 'E' THEN
594: x_return_status := FND_API.G_RET_STS_ERROR;
595: ELSIF l_ret_val = 'W' THEN
596: x_return_status := 'W';
597: ELSIF l_ret_val = 'S' THEN
598: x_return_status := FND_API.G_RET_STS_SUCCESS;
594: x_return_status := FND_API.G_RET_STS_ERROR;
595: ELSIF l_ret_val = 'W' THEN
596: x_return_status := 'W';
597: ELSIF l_ret_val = 'S' THEN
598: x_return_status := FND_API.G_RET_STS_SUCCESS;
599: END IF;
600: END IF;
601:
602:
612: -- Validate the business rules
613: p_sprvsr_status := validate_sprvsr ( l_person_id, p_sprvsr_dtls_rec, l_ca_person_id, l_ca_sequence_number , l_ou_start_dt);
614:
615: IF p_sprvsr_status = 'INVALID' THEN
616: x_return_status := FND_API.G_RET_STS_ERROR;
617: END IF;
618:
619: END IF;
620:
620:
621:
622:
623: IF p_sprvsr_status = 'VALID' THEN
624: x_return_status := FND_API.G_RET_STS_SUCCESS;
625:
626: l_creation_date := SYSDATE;
627: l_created_by := FND_GLOBAL.USER_ID;
628: l_last_update_date := SYSDATE;
693: );
694:
695: EXCEPTION
696: WHEN OTHERS THEN
697: x_return_status := FND_API.G_RET_STS_ERROR;
698: p_sprvsr_status := 'INVALID';
699: ROLLBACK TO create_re_sprvsr_pub;
700: END;
701:
699: ROLLBACK TO create_re_sprvsr_pub;
700: END;
701:
702: -- Commit the record which is inserted in the table.
703: IF (FND_API.To_Boolean(p_commit) and p_sprvsr_status = 'VALID') THEN
704: COMMIT WORK;
705: END IF;
706:
707: END IF;
709: FND_MSG_PUB.COUNT_AND_GET( p_count => x_msg_count,
710: p_data => x_msg_data);
711:
712: EXCEPTION
713: WHEN FND_API.G_EXC_ERROR THEN
714: ROLLBACK TO create_re_sprvsr_pub;
715: x_return_status := FND_API.G_RET_STS_ERROR;
716: FND_MSG_PUB.COUNT_AND_GET( p_count => x_msg_count,
717: p_data => x_msg_data);
711:
712: EXCEPTION
713: WHEN FND_API.G_EXC_ERROR THEN
714: ROLLBACK TO create_re_sprvsr_pub;
715: x_return_status := FND_API.G_RET_STS_ERROR;
716: FND_MSG_PUB.COUNT_AND_GET( p_count => x_msg_count,
717: p_data => x_msg_data);
718:
719: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
715: x_return_status := FND_API.G_RET_STS_ERROR;
716: FND_MSG_PUB.COUNT_AND_GET( p_count => x_msg_count,
717: p_data => x_msg_data);
718:
719: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
720: ROLLBACK TO create_re_sprvsr_pub;
721: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
722: FND_MSG_PUB.COUNT_AND_GET( p_count => x_msg_count,
723: p_data => x_msg_data);
717: p_data => x_msg_data);
718:
719: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
720: ROLLBACK TO create_re_sprvsr_pub;
721: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
722: FND_MSG_PUB.COUNT_AND_GET( p_count => x_msg_count,
723: p_data => x_msg_data);
724:
725: WHEN OTHERS THEN
723: p_data => x_msg_data);
724:
725: WHEN OTHERS THEN
726: ROLLBACK TO create_re_sprvsr_pub;
727: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
728: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
729: FND_MSG_PUB.Add_Exc_Msg(g_pkg_name,
730: l_api_name);
731: END IF;