Sunteți pe pagina 1din 5

declare l_tbl_timecard_info hxc_self_service_time_deposit.timecard_info; l_tbl_attributes_info hxc_self_service_time_deposit.app_attributes_info; l_tbl_messages hxc_self_service_time_deposit.message_table; --l_token_table hxc_deposit_wrapper_utilities.t_simple_table; l_blocks hxc_self_service_time_deposit.timecard_info; l_attributes hxc_self_service_time_deposit.app_attributes_info; l_tc_bb_id hxc_time_building_blocks.

time_building_block_id%TYPE; l_day_bb_id hxc_time_building_blocks.time_building_block_id%TYPE; l_detail_bb_id hxc_time_building_blocks.time_building_block_id%TYPE; l_existing_tc_id hxc_timecard_summary.timecard_id%TYPE:= NULL; l_deposit_process hxc_deposit_processes.NAME%TYPE:= 'OTL Deposit Process'; l_count_building_block PLS_INTEGER; i PLS_INTEGER; l_message fnd_new_messages.message_text%TYPE; l_approval_style_id NUMBER; l_new_timecard_id NUMBER; l_tc_days_counter NUMBER; l_new_timecard_ovn NUMBER; l_resp_id NUMBER := 50597; -- Responsibility US Employee Services l_application_id NUMBER := 809; -- Application HXC l_user_id NUMBER := 353; -- FLORESR begin -- 1. Set Apps Context fnd_global.apps_initialize (l_user_id, l_resp_id, l_application_id); -- 2. Get Approval Style ID l_approval_style_id := TO_NUMBER(hxc_preference_evaluation.resource_preferences( 411669,'TS_PER_APPROVAL_STYLE',1,SYSDATE)); dbms_output.put_line('l_approval_style_id = '||l_approval_style_id); -- 3. Create TIMECARD_TEMPLATE BB similar to the logic in hxc_timestore_deposit. create_timecard_bb passing the scope as TIMECARD_TEMPLATE instead of TIMECARD -- We are starting with a new timecard so clear the global tables -- hxc_self_service_time_deposit.initialize_globals; -- Also clear the local PL/SQL table -- hxc_timestore_deposit_util.clear_building_block_table(p_app_blocks => l_tbl_t imecard_info); l_count_building_block := l_tbl_timecard_info.LAST; -- PROCEDURE clear_building_block_table ( -- p_app_blocks IN OUT NOCOPY hxc_block_table_type -- ); -- 'generate' a TBB ID IF (l_count_building_block IS NULL) THEN l_tc_bb_id := -2;

-- never start at -1 because that has a special meaning in the deposit ELSE l_tc_bb_id := - (l_count_building_block) - 2; END IF;

dbms_output.put_line('Creating Timecard'); /* hxc_timestore_deposit.create_timecard_bb (p_start_time => fnd_date.canonical_to_ date ('2011/09/26 00:00:00') ,p_stop_time => fnd_date.canonical_to_date ('2011/10/09 23:59:59') ,p_resource_id => 411669 ,p_resource_type => hxc_timecard.c_person_resource ,p_approval_style_id => l_approval_style_id ,p_comment_text => 'Come on start working' ,p_app_blocks => l_tbl_timecard_info ,p_time_building_block_id => l_tc_bb_id ); */

hxc_timestore_deposit.create_bb (p_time_building_block_id => l_tc_bb_id ,p_type => hxc_timecard.c_range_type -- p_measure => DEFAULTS TO NULL ,p_unit_of_measure => NULL ,p_start_time => fnd_date.canonical_to_date ('2012/03/12 00:00:00') ,p_stop_time => fnd_date.canonical_to_date ('2012/03/25 23:59:59') ,p_parent_building_block_id => NULL -- Timecard Template does not have a parent -- May need to check on this paramet er ,p_parent_is_new => NULL ,p_scope => hxc_timecard.c_template_scope -- Template Scope -- p_object_version_number => DEFAULTS TO 1 -- p_approval_status=> p_approval_status ,p_resource_id => 411669 ,p_resource_type => 'PERSON' ,p_approval_style_id => l_approval_style_id -- p_date_from => DEFAULTS TO SYSDATE -- p_date_to => DEFAULTS TO hr_general.end_of_time ,p_comment_text => 'Template Trials' -- p_parent_building_block_ovn => DEFAULTS TO NULL -- new => DEFAULTS TO 'Y' -- changed => DEFAULTS TO 'N' ,p_app_blocks => l_tbl_timecard_info ); dbms_output.put_line('After creating Timecard l_tc_bb_id = '||l_tc_bb_id); -- 4. Create PRIVATE TEMPLATES Attribute Category and Template Name passed from UI dbms_output.put_line('Creating Template_Name Attribute'); hxc_timestore_deposit.create_attribute(p_building_block_id => l_tc_bb_id ,p_attribute_name => 'Template_Name' ,p_attribute_value => 'Trial Template from Code' ,p_deposit_process => l_deposit_process ,p_app_attributes => l_tbl_attributes_info

);

dbms_output.put_line('Creating Template_Type Attribute'); hxc_timestore_deposit.create_attribute(p_building_block_id => l_tc_bb_id ,p_attribute_name => 'Template_Type' ,p_attribute_value => 'PRIVATE' ,p_deposit_process => l_deposit_process ,p_app_attributes => l_tbl_attributes_info );

-- Below will be in a loop later -- 5. Create the DAY BB dbms_output.put_line('Creating DAY BB'); hxc_timestore_deposit.create_day_bb(p_day => fnd_date.canonical_to_date('2012/03 /26') ,p_parent_building_block_id => l_tc_bb_id -- returned by create_timecard_bb ,p_app_blocks => l_tbl_timecard_info ,p_time_building_block_id => l_day_bb_id ); dbms_output.put_line('After Creating DAY BB l_day_bb_id = '||l_day_bb_id); -- 6. Create DETAIL BB for first shift, lunch and second shift dbms_output.put_line('Create DETAIL BB for first shift, lunch and second shift') ; hxc_timestore_deposit.create_detail_bb(p_type => 'RANGE' -- ,p_measure => NULL -- Pass Null as its a template ,p_start_time => to_date('2012/03/26 06:00:00','YYYY/MM/DD HH24:MI:SS') ,p_stop_time => to_date('2012/03/26 11:00:00','YYYY/MM/DD HH24:MI:SS') ,p_parent_building_block_id => l_day_bb_id ,p_app_blocks => l_tbl_timecard_info ,p_app_attributes => l_tbl_attributes_info ,p_time_building_block_id => l_detail_bb_id ); dbms_output.put_line('After Creating DETAIL BB l_detail_bb_id = '||l_detail_bb_i d); dbms_output.put_line('Creating Attribute 64869'); hxc_timestore_deposit.create_attribute(p_building_block_id => l_detail_bb_id ,p_attribute_name => 'Dummy Element Context' ,p_attribute_value => 'ELEMENT - '||'64869' -- 01 Hours Worked ,p_app_attributes => l_tbl_attributes_info ); /* dbms_output.put_line('Creating Detail BB');

hxc_timestore_deposit.create_detail_bb(p_type => 'RANGE' -- ,p_measure => NULL -- Pass Null as its a template ,p_start_time => to_date('2011/09/26 11:00:00','YYYY/MM/DD HH24:MI:SS') ,p_stop_time => to_date('2011/09/26 11:30:00','YYYY/MM/DD HH24:MI:SS') ,p_parent_building_block_id => l_day_bb_id ,p_app_blocks => l_tbl_timecard_info ,p_app_attributes => l_tbl_attributes_info ,p_time_building_block_id => l_detail_bb_id ); dbms_output.put_line('After Creating DETAIL BB l_detail_bb_id = '||l_detail_bb_i d); dbms_output.put_line('Creating Attribute 65172'); hxc_timestore_deposit.create_attribute(p_building_block_id => l_detail_bb_id ,p_attribute_name => 'Dummy Element Context' ,p_attribute_value => 'ELEMENT - '||'65172' -- 02 Unpaid Lunch ,p_app_attributes => l_tbl_attributes_info ); dbms_output.put_line('Creating Detail BB'); hxc_timestore_deposit.create_detail_bb(p_type => 'RANGE' -- ,p_measure => NULL -- Pass Null as its a template ,p_start_time => to_date('2011/09/26 11:30:00','YYYY/MM/DD HH24:MI:SS') ,p_stop_time => to_date('2011/09/26 14:30:00','YYYY/MM/DD HH24:MI:SS') ,p_parent_building_block_id => l_day_bb_id ,p_app_blocks => l_tbl_timecard_info ,p_app_attributes => l_tbl_attributes_info ,p_time_building_block_id => l_detail_bb_id ); dbms_output.put_line('After Creating DETAIL BB l_detail_bb_id = '||l_detail_bb_i d); dbms_output.put_line('Creating Attribute 64869'); hxc_timestore_deposit.create_attribute(p_building_block_id => l_detail_bb_id ,p_attribute_name => 'Dummy Element Context' ,p_attribute_value => 'ELEMENT - '||'64869' -- 01 Hours Worked ,p_app_attributes => l_tbl_attributes_info ); */ -- 7. Deposit the Template dbms_output.put_line('Deposit the Template '); hxc_timestore_deposit.execute_deposit_process(p_validate => FALSE ,p_app_blocks => l_tbl_timecard_info ,p_app_attributes => l_tbl_attributes_info ,p_messages => l_tbl_messages ,p_mode => 'SAVE' ,p_deposit_process => l_deposit_process -- ,p_retrieval_process => 'BEE Retrieval Process' , p_template => 'Y' ,p_timecard_id => l_new_timecard_id ,p_timecard_ovn => l_new_timecard_ovn ); COMMIT;

dbms_output.put_line('l_new_timecard_id = '||l_new_timecard_id); IF (l_tbl_messages.COUNT > 0) THEN i := l_tbl_messages.FIRST; LOOP EXIT WHEN (NOT l_tbl_messages.EXISTS (i)); l_message := fnd_message.get_string (appin => l_tbl_messages (i).application_sho rt_name, namein => l_tbl_messages (i).message_name); DBMS_OUTPUT.put_line (l_tbl_messages (i).message_name); DBMS_OUTPUT.put_line (l_message); i := l_tbl_messages.NEXT (i); END LOOP; END IF; end;

S-ar putea să vă placă și