DBA Data[Home] [Help]

TRIGGER: APPS.GHR_PERSON_ANALYSES_AFIUD

Source

Description
GHR_PERSON_ANALYSES_AFIUD AFTER INSERT OR UPDATE OR DELETE ON PER_PERSON_ANALYSES FOR EACH ROW
Type
AFTER EACH ROW
Event
INSERT OR UPDATE OR DELETE
Column
When
Referencing
REFERENCING NEW AS NEW OLD AS OLD
Body
DECLARE

	l_session_var			ghr_history_api.g_session_var_type;
	l_old_peranalyses_data		per_person_analyses%rowtype;
	l_old_peranalyses_hist_data	ghr_pa_history%rowtype;
	l_sequence_number			number;
	l_proc				varchar2(40):='per_person_analyses_afiud';

	PROCEDURE get_old_person_analysis_data( p_person_analyses_data in out per_person_analyses%rowtype) IS
	BEGIN
	ghr_history_conv_rg.conv_to_peranalyses_rg(
      p_person_analysis_id             => :old.person_analysis_id             ,
      p_business_group_id              => :old.business_group_id              ,
      p_analysis_criteria_id           => :old.analysis_criteria_id           ,
      p_person_id                      => :old.person_id                      ,
--    p_comments                       => :old.comments                       ,
      p_date_from                      => :old.date_from                      ,
      p_date_to                        => :old.date_to                        ,
      p_id_flex_num                    => :old.id_flex_num                    ,
      p_request_id                     => :old.request_id                     ,
      p_program_application_id         => :old.program_application_id         ,
      p_program_id                     => :old.program_id                     ,
      p_program_update_date            => :old.program_update_date            ,
      p_attribute_category             => :old.attribute_category             ,
      p_attribute1                     => :old.attribute1                     ,
      p_attribute2                     => :old.attribute2                     ,
      p_attribute3                     => :old.attribute3                     ,
      p_attribute4                     => :old.attribute4                     ,
      p_attribute5                     => :old.attribute5                     ,
      p_attribute6                     => :old.attribute6                     ,
      p_attribute7                     => :old.attribute7                     ,
      p_attribute8                     => :old.attribute8                     ,
      p_attribute9                     => :old.attribute9                     ,
      p_attribute10                    => :old.attribute10                    ,
      p_attribute11                    => :old.attribute11                    ,
      p_attribute12                    => :old.attribute12                    ,
      p_attribute13                    => :old.attribute13                    ,
      p_attribute14                    => :old.attribute14                    ,
      p_attribute15                    => :old.attribute15                    ,
      p_attribute16                    => :old.attribute16                    ,
      p_attribute17                    => :old.attribute17                    ,
      p_attribute18                    => :old.attribute18                    ,
      p_attribute19                    => :old.attribute19                    ,
      p_attribute20                    => :old.attribute20                    ,
      p_peranalyses_data               => p_person_analyses_data);

	END get_old_person_analysis_data;

BEGIN
      hr_utility.set_location('Entering:'|| l_proc , 1);
	ghr_history_api.get_g_session_var( l_session_var);

	hr_utility.set_location('Program Name : ' || l_session_var.program_name, 1);
	hr_utility.set_location('Fire Trigger : ' || l_session_var.fire_trigger, 1);


	IF l_session_var.fire_trigger = 'Y' THEN
		-- if session variable person_id id null assign it the value
		if l_session_var.person_id is null then
			l_session_var.person_id := :new.person_id;
			ghr_history_api.set_g_session_var( l_session_var);
		end if;
		IF lower(l_session_var.program_name) = 'core' then
			ghr_history_api.get_session_date( l_session_var.date_effective);
			ghr_history_api.set_g_session_var (l_session_var);
		END IF;

		IF (lower(l_session_var.program_name) = 'sf50' or lower(l_session_var.program_name) = 'core') then
			IF inserting THEN
				hr_utility.set_location( l_proc , 170);
				ghr_history_api.get_g_session_var( l_session_var);
				hr_utility.set_location( l_proc , 160);
					ghr_history_api.set_operation_info(
					  p_table_name 		=> ghr_history_api.g_perana_table,
					  p_program_name  	=> l_session_var.program_name,
					  p_date_effective 	=> l_session_var.date_effective,
					  p_table_pk_id		=> :new.person_analysis_id,
					  p_operation		=> 'insert',
					  p_old_record_data     => l_old_peranalyses_hist_data,
					  p_row_id			=> :new.rowid
					  );
			ELSIF updating THEN
				ghr_history_api.get_g_session_var( l_session_var);
				hr_utility.set_location( l_proc , 140);
				get_old_person_analysis_data( l_old_peranalyses_data);
				ghr_history_conv_rg.conv_peranalyses_rg_to_hist_rg(
					p_peranalyses_data  => l_old_peranalyses_data,
					p_history_data => l_old_peranalyses_hist_data);

				ghr_history_api.set_operation_info(
					p_table_name 		=> ghr_history_api.g_perana_table,
					p_program_name		=> l_session_var.program_name,
					p_date_Effective 		=> l_session_var.date_effective,
					p_table_pk_id		=> :new.person_analysis_id,
					p_operation			=> 'update',
					p_old_record_data       => l_old_peranalyses_hist_data,
					p_row_id			=> :new.rowid
					);
			ELSE /* ie deleting */
				hr_utility.set_location( l_proc , 120);
				ghr_history_api.get_g_session_var( l_session_var);
				/* Should we allow deletes from core. How should it be handled?? */
				NULL;
			END IF;
		ELSE /* Not a known type */
		      hr_utility.set_location('Unknown Program Name - ' || l_session_var.program_name ||' :' || l_proc , 10);
			hr_utility.set_message( 8301, 'GHR_UNKNOWN_PGM_TYPE');
			fnd_message.set_token('PROGRAM_TYPE', l_session_var.program_name);
			hr_utility.raise_error;
			/* History not maintained */
		END IF;
	End if;
      hr_utility.set_location('Leaving:'|| l_proc , 1);
END GHR_PERSON_ANALYSES_AFIUD;