Sunteți pe pagina 1din 4

---------------------------------------------------------------------------------------------------function main(event_name varchar2) return boolean is my_module varchar2(30) := 'AXFCustom.main'; form_name varchar2(30) := name_in('system.

current_form'); idx integer; strCmdId varchar2(30); group_id recordgroup; col_id groupcolumn; zoom_value varchar2(30); bHandled boolean := false; strURL varchar(2000) := ''; rsCount integer := 0; atCount integer := 0; command_name varchar2(100) := ''; eventsList varchar2(400) := ''; my_form_id integer; attach_form_id integer; attach_enable boolean := false; attach_event_id integer; bRtn boolean := true; strAppsUsername varchar2(30) := AXFUtils.get_current_user_name; begin AXFUtils.append_master_log(my_module ': Enter (' e ')'); eventsList := AXFUtils.get_axf_events(); --AXFUtils.append_master_log('Entity Name ' name_in(' system.data_object_code')); if (event_name<>'WHEN-NEW-FORM-INSTANCE' and event_name<>'WHEN-NEW-BL OCK-INSTANCE' and event_name<>'WHEN-FORM-NAVIGATE' and event_name<>'WHEN-NEW-ITE M-INSTANCE' and event_name <> 'ZOOM' and (instr(event_name, 'SPECIAL') = 0) and event_name <> 'POST-INSERT' and (instr(eventsList,event_name) = 0)) then return false; end if; vent_name my_form_id := AXFUtils.get_form_id(AXFUtils.get_current_form_function , AXFUtils.get_current_data_block); AXFUtils.append_master_log('FormName: ' AXFUtils.get_current_form_f unction ' AXFConfig-FormID: ' to_char(my_form_id) ' Event: ' event_n ame ' UserName:' strAppsUsername); -- this is very helpful for integrating new forms if ((event_name = 'WHEN-FORM-NAVIGATE' or event_name='WHEN-NEW-BLOCKINSTANCE')) and ( AXFUtils.is_logging_turned_on() = true) then select count(FORMID) into rsCount from AXF_CONFIGS_SYN where FORMF UNCTION = 'DESCRIBEFORMS' and DATABLOCKNAME=strAppsUsername; if (rsCount = 1) then fnd_message.debug('FORM-FUNCTION: ' AXFUtils.get_current_for m_function ' DATA-BLOCK: ' AXFUtils.get_current_data_block); end if; select count(FORMID) into rsCount from AXF_CONFIGS_SYN where FORMF UNCTION = 'DESCRIBEROLES' and DATABLOCKNAME=strAppsUsername; if (rsCount = 1) then fnd_message.debug('USER ID: ' AXFUtils.get_user_id ' RESP ID: ' AXFUtils.get_resp_id ' RESP APPL ID:' AXFUtils.get_resp_ap pl_id);

end if; end if; -- when these events occurs - enable the toolbar menus if (event_name='WHEN-NEW-FORM-INSTANCE' or event_name='WHEN-NEW-BLOCKINSTANCE' or event_name='WHEN-FORM-NAVIGATE' or event_name='WHEN-NEW-ITEM-INSTAN CE') then AXFUtils.init_special_menus(my_form_id); bRtn := true; goto EXIT_MAIN; end if; -- if the event is not zoom then handle it here... if (event_name <> 'ZOOM' and (instr(event_name, 'SPECIAL') = 0)) then for rsCommand in (select * from AXF_COMMANDS_SYN where FORMID = my_form_id AND EVENTNAME=event_name) loop bHandled := launch_command_soap (rsCommand.EVENTID,false); end loop; bRtn := true; end if; -- if the event is special.. then handle it here... if (instr(event_name, 'SPECIAL') = 1) then idx := 0; select count(EVENTID) into idx from AXF_COMMANDS_SYN where FORMID =my_form_id and AXF_COMMANDS_SYN.SPECIAL=event_name; if (idx = 1) then select EVENTID into idx from AXF_COMMANDS_SYN where FORMID=m y_form_id and AXF_COMMANDS_SYN.SPECIAL=event_name; bHandled := launch_command_soap (idx,false); end if; bRtn := true; goto EXIT_MAIN; end if; -- if the event is zoom.. then handle it here... if (event_name = 'ZOOM') then -- check for attachment attach_form_id := AXFUtils.get_form_id('AXF_MANAGED_ATTACHMENTS', AXFUt ils.get_current_data_block); if ( attach_form_id > 0 ) then attach_enable := axf_managed_attach_avail(AXFUtils.get_current_for m_function,form_name, AXFUtils.get_current_data_block); if ( attach_enable = true and AXFUtils.is_paperclip_on() = false ) then app_menu2.set_prop('VIEW.ATTACHMENTS',VISIBLE,PROPERTY_FAL SE); app_menu2.set_prop('VIEW.ATTACHMENTS',ENABLED,PROPERTY_FAL SE); AXFUtils.append_master_log('PaperClip is disabled'); else AXFUtils.append_master_log('PaperClip is enabled'); app_menu2.set_prop('VIEW.ATTACHMENTS',VISIBLE,PROPERTY_TRU E); app_menu2.set_prop('VIEW.ATTACHMENTS',ENABLED,PROPERTY_TRU E); end if; else

app_menu2.set_prop('VIEW.ATTACHMENTS',VISIBLE,PROPERTY_TRUE); app_menu2.set_prop('VIEW.ATTACHMENTS',ENABLED,PROPERTY_TRUE); AXFUtils.append_master_log('AXF Managed Attachment is not enabled '); end if; -- if the group does not exists - create one select count(EVENTID) into rsCount from AXF_COMMANDS_SYN where FO RMID = my_form_id and eventname = 'ZOOM' and (MENUTYPE='ZOOM' or MENUTYPE='ZOOMA NDSPECIAL') ; if ( attach_enable = true) then select count(EVENTID) into atCount from AXF_COMMANDS_SYN where FORMID = attach_form_id and eventname = 'ZOOM' and (MENUTYPE='ZOOM' or MENUTYPE= 'ZOOMANDSPECIAL') ; end if; if (rsCount = 0 and atCount = 0) then bRtn := false; goto EXIT_MAIN; end if; group_id := find_group('IPM_SOL_Zoom'); if id_null(group_id) then group_id := create_group('IPM_SOL_Zoom'); col_id := add_group_column(group_id, 'NAME', char_column, 30); col_id := add_group_column(group_id, 'VALUE', char_column, 30) ; set_lov_property('APPCORE_ZOOM', GROUP_NAME, 'IPM_SOL_Zoom'); else delete_group_row(group_id, ALL_ROWS); end if; if ( rsCount > 0 ) then idx := 1; for rsZoomRec in (select * from AXF_COMMANDS_SYN where FORMID = my_form_id and EVENTNAME = 'ZOOM' and (MENUTYPE='ZOOM' or MENUTY PE='ZOOMANDSPECIAL') order by SORTBY) loop if (rsZoomRec.RESPONSIBILITY is null or instr(rsZoomRec.RESPONSIBILITY, AXFUtils.get_resp_id) = 1) then add_group_row(group_id, idx); set_group_char_cell('IPM_SOL_Zoom. NAME', idx, rsZoomRec.DISPLAYMENU); set_group_char_cell('IPM_SOL_Zoom. VALUE', idx, rsZoomRec.EVENTID); idx := idx + 1; end if; end loop; end if; if ( atCount > 0 ) then idx := 1; for rsZoomRec in (select * from AXF_COMMANDS_SYN where FORMID = attach_form_id and EVENTNAME = 'ZOOM' and (MENUTYPE='ZOOM' or ME NUTYPE='ZOOMANDSPECIAL') order by SORTBY) loop if (rsZoomRec.RESPONSIBILITY is null or instr(rsZoomRec.RESPONSIBILITY, AXFUtils.get_resp_id) = 1) then add_group_row(group_id, idx); set_group_char_cell('IPM_SOL_Zoom. NAME', idx, rsZoomRec.DISPLAYMENU); set_group_char_cell('IPM_SOL_Zoom. VALUE', idx, rsZoomRec.EVENTID); idx := idx + 1;

attach_event_id := rsZoomRec.EVENT ID; end if; end loop; end if; if (show_lov('APPCORE_ZOOM')) then strCmdId := name_in('parameter.APPCORE_ZOOM_VALUE'); if ( attach_event_id = to_number(strCmdId) ) then bHandled := launch_command_soap( to_number(strCmdId), true); else bHandled := launch_command_soap( to_number(strCmdId), false); end if; end if; bRtn := true; goto EXIT_MAIN; end if; <<EXIT_MAIN>> AXFUtils.append_master_log(my_module return bRtn; ': Exit ');

exception when others then AXFUtils.append_master_log('Unhandled exception in ' my_module ' Active Form = ' form_name ' SQLCODE = ' SQLCODE ': ' SQLERRM ); message('Unhandled exception in ' my_module ' Active Form = ' form_name ' SQLCODE = ' SQLCODE ': ' SQLERRM); return false; end main; ----------------------------------------------------------------------------------------------------

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