672: -- 6. Fetch 1 row in buffer
673: -- 7. Get 1 row from buffer
674: -- 8. Close dynamic cursor
675: --
676: l_dynamic_cursor_id := dbms_sql.open_cursor; -- Step 1
677:
678: IF upper(p_run_type) = hr_user_acct_utility.g_cr_user_new_hires OR
679: upper(p_run_type) = hr_user_acct_utility.g_cr_n_inact_user OR
680: upper(p_run_type) = hr_user_acct_utility.g_cr_user_all_emp
681: THEN
682: BEGIN
683: hr_utility.set_location('In executing create user dynamic sql..', 35);
684:
685: dbms_sql.parse(l_dynamic_cursor_id, l_sql_clause, dbms_sql.v7); -- Step 2
686: -- ************************************************************************
687: -- NOTE:If we retrieve extra column,need to set the l_index accordingly.
688: -- ************************************************************************
689: --
689: --
690: l_index := 1;
691: --
692: -- Define the Person ID column
693: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_temp);
694: --
695: -- Now define Person record Effective Start Date
696: l_index := l_index + 1;
697: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
693: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_temp);
694: --
695: -- Now define Person record Effective Start Date
696: l_index := l_index + 1;
697: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
698: --
699: -- Now define Person record Effective End Date
700: l_index := l_index + 1;
701: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
697: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
698: --
699: -- Now define Person record Effective End Date
700: l_index := l_index + 1;
701: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
702: --
703: -- Define the Assignment ID column
704: l_index := l_index + 1;
705: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_temp);
701: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
702: --
703: -- Define the Assignment ID column
704: l_index := l_index + 1;
705: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_temp);
706: --
707: -- Now define Assignment record Effective Start Date
708: l_index := l_index + 1;
709: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
705: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_temp);
706: --
707: -- Now define Assignment record Effective Start Date
708: l_index := l_index + 1;
709: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
710: --
711: -- Now define Assignment record Effective End Date
712: l_index := l_index + 1;
713: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
709: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
710: --
711: -- Now define Assignment record Effective End Date
712: l_index := l_index + 1;
713: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
714: --
715: -- Now define the Hire Date column
716: l_index := l_index + 1;
717: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
713: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
714: --
715: -- Now define the Hire Date column
716: l_index := l_index + 1;
717: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
718: --
719: --
720: EXCEPTION
721: WHEN OTHERS THEN
722: null;
723: END;
724: --
725: l_new_user_count := 0;
726: l_rows := dbms_sql.execute(l_dynamic_cursor_id); -- Step 5
727: --
728: -- Initialize the prev fields before entering the loop
729: l_prev_per_id := null;
730: l_prev_eff_start_date := null;
733: l_prev_asg_eff_start_date := null;
734: l_prev_asg_eff_end_date := null;
735: l_prev_hire_date := null;
736:
737: WHILE dbms_sql.fetch_rows(l_dynamic_cursor_id) > 0 LOOP -- Step 6
738: dbms_sql.column_value(l_dynamic_cursor_id, 1, l_person_id);
739: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
740: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
741: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
734: l_prev_asg_eff_end_date := null;
735: l_prev_hire_date := null;
736:
737: WHILE dbms_sql.fetch_rows(l_dynamic_cursor_id) > 0 LOOP -- Step 6
738: dbms_sql.column_value(l_dynamic_cursor_id, 1, l_person_id);
739: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
740: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
741: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
742: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
735: l_prev_hire_date := null;
736:
737: WHILE dbms_sql.fetch_rows(l_dynamic_cursor_id) > 0 LOOP -- Step 6
738: dbms_sql.column_value(l_dynamic_cursor_id, 1, l_person_id);
739: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
740: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
741: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
742: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
743: dbms_sql.column_value(l_dynamic_cursor_id, 6, l_asg_eff_end_date);
736:
737: WHILE dbms_sql.fetch_rows(l_dynamic_cursor_id) > 0 LOOP -- Step 6
738: dbms_sql.column_value(l_dynamic_cursor_id, 1, l_person_id);
739: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
740: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
741: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
742: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
743: dbms_sql.column_value(l_dynamic_cursor_id, 6, l_asg_eff_end_date);
744: dbms_sql.column_value(l_dynamic_cursor_id, 7, l_hire_date);
737: WHILE dbms_sql.fetch_rows(l_dynamic_cursor_id) > 0 LOOP -- Step 6
738: dbms_sql.column_value(l_dynamic_cursor_id, 1, l_person_id);
739: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
740: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
741: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
742: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
743: dbms_sql.column_value(l_dynamic_cursor_id, 6, l_asg_eff_end_date);
744: dbms_sql.column_value(l_dynamic_cursor_id, 7, l_hire_date);
745: --
738: dbms_sql.column_value(l_dynamic_cursor_id, 1, l_person_id);
739: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
740: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
741: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
742: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
743: dbms_sql.column_value(l_dynamic_cursor_id, 6, l_asg_eff_end_date);
744: dbms_sql.column_value(l_dynamic_cursor_id, 7, l_hire_date);
745: --
746: -- We only want to create the batch header when there is record retreived
739: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
740: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
741: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
742: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
743: dbms_sql.column_value(l_dynamic_cursor_id, 6, l_asg_eff_end_date);
744: dbms_sql.column_value(l_dynamic_cursor_id, 7, l_hire_date);
745: --
746: -- We only want to create the batch header when there is record retreived
747: -- from the dynamic sql statement. Otherwise, we won't create a header.
740: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
741: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
742: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
743: dbms_sql.column_value(l_dynamic_cursor_id, 6, l_asg_eff_end_date);
744: dbms_sql.column_value(l_dynamic_cursor_id, 7, l_hire_date);
745: --
746: -- We only want to create the batch header when there is record retreived
747: -- from the dynamic sql statement. Otherwise, we won't create a header.
748: IF l_batch_id IS NOT NULL
862: IF upper(p_run_type) = hr_user_acct_utility.g_cr_n_inact_user OR
863: upper(p_run_type) = hr_user_acct_utility.g_inactivate_user
864: THEN
865: l_dynamic_cursor_id := 0;
866: l_dynamic_cursor_id := dbms_sql.open_cursor; -- Step 1
867:
868: BEGIN
869:
870: hr_utility.set_location('In executing inactivate user dynamic sql..', 37);
868: BEGIN
869:
870: hr_utility.set_location('In executing inactivate user dynamic sql..', 37);
871:
872: dbms_sql.parse(l_dynamic_cursor_id, l_inactivate_user_sql_clause
873: ,dbms_sql.v7); -- Step 2
874: -- ************************************************************************
875: -- NOTE:If we retrieve extra column,need to set the l_index accordingly.
876: -- ************************************************************************
869:
870: hr_utility.set_location('In executing inactivate user dynamic sql..', 37);
871:
872: dbms_sql.parse(l_dynamic_cursor_id, l_inactivate_user_sql_clause
873: ,dbms_sql.v7); -- Step 2
874: -- ************************************************************************
875: -- NOTE:If we retrieve extra column,need to set the l_index accordingly.
876: -- ************************************************************************
877: --
877: --
878: l_index := 1;
879: --
880: -- Define the Person Id column
881: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_temp);
882: --
883: -- Now define Person record Effective Start Date
884: l_index := l_index + 1;
885: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
881: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_temp);
882: --
883: -- Now define Person record Effective Start Date
884: l_index := l_index + 1;
885: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
886: --
887: -- Now define Person record Effective End Date
888: l_index := l_index + 1;
889: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
885: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
886: --
887: -- Now define Person record Effective End Date
888: l_index := l_index + 1;
889: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
890: --
891: -- Define the Assignment Id column
892: l_index := l_index + 1;
893: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_temp);
889: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
890: --
891: -- Define the Assignment Id column
892: l_index := l_index + 1;
893: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_temp);
894: --
895: -- Now define Assignment record Effective Start Date
896: l_index := l_index + 1;
897: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
893: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_temp);
894: --
895: -- Now define Assignment record Effective Start Date
896: l_index := l_index + 1;
897: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
898: --
899: -- Now define Assignment record Effective End Date
900: l_index := l_index + 1;
901: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
897: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
898: --
899: -- Now define Assignment record Effective End Date
900: l_index := l_index + 1;
901: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
902: --
903: -- Now define the Term Date column
904: l_index := l_index + 1;
905: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
901: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
902: --
903: -- Now define the Term Date column
904: l_index := l_index + 1;
905: dbms_sql.define_column(l_dynamic_cursor_id, l_index, l_date_temp);
906: --
907: EXCEPTION
908: WHEN OTHERS THEN
909: null;
909: null;
910: END;
911: --
912: l_inactivate_user_count := 0;
913: l_rows := dbms_sql.execute(l_dynamic_cursor_id); -- Step 5
914: --
915: WHILE dbms_sql.fetch_rows(l_dynamic_cursor_id) > 0 LOOP -- Step 6
916: dbms_sql.column_value(l_dynamic_cursor_id, 1, l_person_id);
917: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
911: --
912: l_inactivate_user_count := 0;
913: l_rows := dbms_sql.execute(l_dynamic_cursor_id); -- Step 5
914: --
915: WHILE dbms_sql.fetch_rows(l_dynamic_cursor_id) > 0 LOOP -- Step 6
916: dbms_sql.column_value(l_dynamic_cursor_id, 1, l_person_id);
917: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
918: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
919: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
912: l_inactivate_user_count := 0;
913: l_rows := dbms_sql.execute(l_dynamic_cursor_id); -- Step 5
914: --
915: WHILE dbms_sql.fetch_rows(l_dynamic_cursor_id) > 0 LOOP -- Step 6
916: dbms_sql.column_value(l_dynamic_cursor_id, 1, l_person_id);
917: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
918: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
919: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
920: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
913: l_rows := dbms_sql.execute(l_dynamic_cursor_id); -- Step 5
914: --
915: WHILE dbms_sql.fetch_rows(l_dynamic_cursor_id) > 0 LOOP -- Step 6
916: dbms_sql.column_value(l_dynamic_cursor_id, 1, l_person_id);
917: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
918: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
919: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
920: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
921: dbms_sql.column_value(l_dynamic_cursor_id, 6, l_asg_eff_end_date);
914: --
915: WHILE dbms_sql.fetch_rows(l_dynamic_cursor_id) > 0 LOOP -- Step 6
916: dbms_sql.column_value(l_dynamic_cursor_id, 1, l_person_id);
917: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
918: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
919: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
920: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
921: dbms_sql.column_value(l_dynamic_cursor_id, 6, l_asg_eff_end_date);
922: dbms_sql.column_value(l_dynamic_cursor_id, 7, l_term_date);
915: WHILE dbms_sql.fetch_rows(l_dynamic_cursor_id) > 0 LOOP -- Step 6
916: dbms_sql.column_value(l_dynamic_cursor_id, 1, l_person_id);
917: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
918: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
919: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
920: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
921: dbms_sql.column_value(l_dynamic_cursor_id, 6, l_asg_eff_end_date);
922: dbms_sql.column_value(l_dynamic_cursor_id, 7, l_term_date);
923: --
916: dbms_sql.column_value(l_dynamic_cursor_id, 1, l_person_id);
917: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
918: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
919: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
920: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
921: dbms_sql.column_value(l_dynamic_cursor_id, 6, l_asg_eff_end_date);
922: dbms_sql.column_value(l_dynamic_cursor_id, 7, l_term_date);
923: --
924: -- We only want to create the batch header when there is record retreived
917: dbms_sql.column_value(l_dynamic_cursor_id, 2, l_effective_start_date);
918: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
919: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
920: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
921: dbms_sql.column_value(l_dynamic_cursor_id, 6, l_asg_eff_end_date);
922: dbms_sql.column_value(l_dynamic_cursor_id, 7, l_term_date);
923: --
924: -- We only want to create the batch header when there is record retreived
925: -- from the dynamic sql statement. Otherwise, we won't create a header.
918: dbms_sql.column_value(l_dynamic_cursor_id, 3, l_effective_end_date);
919: dbms_sql.column_value(l_dynamic_cursor_id, 4, l_asg_id);
920: dbms_sql.column_value(l_dynamic_cursor_id, 5, l_asg_eff_start_date);
921: dbms_sql.column_value(l_dynamic_cursor_id, 6, l_asg_eff_end_date);
922: dbms_sql.column_value(l_dynamic_cursor_id, 7, l_term_date);
923: --
924: -- We only want to create the batch header when there is record retreived
925: -- from the dynamic sql statement. Otherwise, we won't create a header.
926: IF l_batch_id IS NOT NULL