Creating Freely Program Search Help in WebDynpro ABAP Applies to: WebDynpro ABAP Summary This document describes how we can use freely programmed search help in our WebDynpro components. Author: Vishal Kapoor Company: Accenture Created on: 6 October 6, 2010 Author Bio Vishal Kapoor is working with Accenture from last two years. He has 5 years of experience in HR ABAP, WebDynpro and OO ABAP. SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com © 2010 SAP AG 1 Creating Freely Program Search Help in WebDynpro ABAP Table of Contents What is Freely Programmed Search Help .......................................................................................................... 3 How to Create is Freely Programmed Search Help ........................................................................................... 3 Related Content ................................................................................................................................................ 12 Disclaimer and Liability Notice .......................................................................................................................... 13 SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com © 2010 SAP AG 2 Creating Freely Program Search Help in WebDynpro ABAP What is Freely Programmed Search Help Freely programmed search help is one of the options to associate the search help with any input field of your webdynpro ABAP screen. This allows to open a webdynpro component as F4 operation result from parent component. It means a complete WD component appears as F4 help screen. How to Create is Freely Programmed Search Help In the below example, we will create a value help ( F4 help ) for one input field of our component ZFP_CONSUMER and use component ZFP_PROVIDER which will bring the possible value in value help. Create a WebDynpro ABAP component named ZFP_PROVIDER with view V_FPH and implement the interface IWD_VALUE_HELP. Make sure that your view V_FPH is embedded in the window WD_VALUE_HELP and not in the default window created. The window WD_VALUE_HELP comes from the interface implemented above. So Delete the default window created with the component and embed your view in window WD_VALUE_HELP. SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com © 2010 SAP AG 3 Creating Freely Program Search Help in WebDynpro ABAP Create one attribute in COMPONENTCONTROLLER VALUE_HELP_LISTENER of type IF_WD_VALUE_HELP_LISTENER. Go to the method SET_VALUE_HELP_LISTENER in COMPONENTCONTROLLER. This method has come from the implemented interface. In this method, just store the listener reference in the attribute created in above step. Go to the EVENTS tab in COMPONENTCONTROLLER and add event VH_DATA_SELECTED. SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com © 2010 SAP AG 4 Creating Freely Program Search Help in WebDynpro ABAP Create a context node name FLIGHT in COMPONENTCONTROLLER and map it into VIEWCONTROLLER SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com © 2010 SAP AG 5 Creating Freely Program Search Help in WebDynpro ABAP Create one TABLE UIElement in view V_FPH and bind the context node FLIGHT with DataSOurce property of it. Create the binding of table with context node so that table can have as many columns as per the attributes defined in context node FLIGHT. For that, right click on the TBL_FLIGHT (name of table UIElement) and select “Create Binding” from context menu. SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com © 2010 SAP AG 6 Creating Freely Program Search Help in WebDynpro ABAP Select the standard cell editor as TextView and check all the check boxes for binding. Click OK to complete the table control design. It looks like below in View Editor. SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com © 2010 SAP AG 7 Creating Freely Program Search Help in WebDynpro ABAP Create one button in the above screen. This will be used to close the search help screen. Name it “Close”. Associate OnAction event On_CLOSE with this button. Go in the method ON_CLOSE and write the below code. method ONACTIONON_CLOSE. *Select the currently selected record and pass it to the field where F4 is triggered * i.e our consumer component ZFP_CONSUMER. DATA lo_listener TYPE REF TO if_wd_value_help_listener. DATA lv_attrib_name TYPE string. *Read the attribute CARRID. We will pass this value in input field of consumer component DATA lo_nd_flight TYPE REF TO if_wd_context_node. DATA lo_el_flight TYPE REF TO if_wd_context_element. DATA ls_flight TYPE wd_this->element_flight. DATA lv_carrid TYPE wd_this->element_flight-carrid. * navigate from <CONTEXT> to <FLIGHT> via lead selection lo_nd_flight = wd_context->get_child_node( name = wd_this->wdctx_flight ). * get element via lead selection lo_el_flight = lo_nd_flight->get_element( ). * get single attribute lo_el_flight->get_attribute( EXPORTING name = `CARRID` IMPORTING value = lv_carrid ). lo_listener = wd_comp_controller->value_help_listener. lv_attrib_name = lo_listener->f4_attribute_info-name. lo_listener->f4_context_element->set_attribute( value = lv_carrid name = lv_attrib_name ). *Fire the event to indicate that data selection is done wd_comp_controller->fire_vh_data_selected_evt( ). *Colse the search help window SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com © 2010 SAP AG 8 Creating Freely Program Search Help in WebDynpro ABAP wd_comp_controller->value_help_listener->close_window( ). endmethod. Fill the FLIGHT context node in the WDDOINIT method of COMPONENTCONTROLLER. There will be the possible values for selection. Create component ZFP_CONSUMER in object navigator (se80) with one view V_FPH. Declare the usage of component ZFP_PROVIDER, created in above steps. Create 1 node FLIGHT (cardinality 1:1) and 1 attribute named CARRID of type string in the VIEWCONTROLLER. In the properties of attribute CARRID, take input help mode as “freely programmed” and input help component usage as “FREE_SEARCH” (or whatever name you have given during defining the component usage of ZFP_PROVIDER in above step). SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com © 2010 SAP AG 9 Creating Freely Program Search Help in WebDynpro ABAP Create one InputField UIElement. SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com © 2010 SAP AG 10
Description: