Introduction:
In this article, we will create a simple FPM Application using FEEDER CLASS for FORM GUIBB (Generic User Interface Building Blocks). We will use OIF (Object Instance Floorplan) in this article.
We will take a simple example of getting the material number from user and displaying the description of it using FORM GUIBB. One needs to follow all the steps to avoid the runtime errors.
Prerequisite: Before following this document, one should have a basic knowledge of WebDynpro ABAP and ABAP Classes.
What is Feeder Class?
A class that implements the IF_FPM_GUIBB_FORM ABAP interface (for form components) or the IF_FPM_GUIBB_LIST ABAP interface (for list components). Business logic can be access through it. It is the link between the application and the GUIBB.
There are 2 ways which can be used to develop the FPM application. One is using Free Style UIBB and Generic UIBB. In this article we will use the GUIBB (FORM is one of the available GUIBB).
Steps to be followed:
1. Go to transaction code SE24 and create a FEEDER Class as follows.
2) Go to the “Interfaces” tab and enter the interface for FORM GUIBB “IF_FPM_GUIBB_FORM”.
And press Enter. It will automatically add the interface for the generic UIBB “IF_FPM_GUIBB
3) Now if you click on the Methods tab, you will see all the methods implemented by these two interfaces.Make Sure you go inside each and every Method and activate them so it won’t give short dump.
4) Now, go to method “GET_DEFINITION” enter the following code.
* This method is for building Field catalog and actions required in the form
* Local Varibale declarations
DATA: li_action_line TYPE fpmgb_s_actiondef.
* Prepare Field catalog
eo_field_catalog ?= cl_abap_tabledescr=>describe_by_name( ‘MAKT’ ). ” Here we can use any flat strutures or local types
* Prepare actions
li_action_line-id = ‘GET_MAT’. ” You can give wahtever name you want to the action ID
li_action_line-visible = cl_wd_uielement=>e_visible-visible.
li_action_line-enabled = abap_true.
li_action_line-imagesrc = ‘ICON_ADDRESS’. ” Image for actions
APPEND li_action_line TO et_action_definition.
5) Go to method “GET_DATA” enter the following code.
DATA : li_makt_line TYPE makt.
li_makt_line = cs_data. “cs_data contains the data
IF li_makt_line-matnr IS NOT INITIAL.
SELECT SINGLE * FROM makt INTO cs_data WHERE matnr = li_makt_line-matnr .
ev_data_changed = abap_true.
ENDIF.
* Check if the “Start Over” Button in clicked ; If yes clear the contents
if io_event->MV_EVENT_ID = ‘FPM_GOTO_START’.
CLEAR cs_data.
ENDIF.
REMOVED steps 6, 7 and 8
9) Create the WebDynpro Application by right clicking on component as follows.
10) Change the component and View in the properties of WD Application. In this example we are using OIF and hence the component is as follows. In case of other floorplans like GAF and OVP write FPM_GAF* and do the F4 and you will get the list.
Component : FPM_OIF_COMPONENT
Interface view: FPM_WINDOW
11) Now go to the package where you have saved the WebDynpro Application and right click on the Application and click “Create/Change Configuration”.
12) It will open the browser. Enter the Configuration ID. This is the FIRST CONFIGURATION of your FPM application. This is called as APPLICATION CONFIGURATION. Press Enter so it will give the following ERROR.
This is expected because till this point your APPLICATION CONFIGURATION does not exist. Click on Create button. You will receive the success message.
13) After Application Configuration, it’s time to create the Component Configuration for your OIF floorplan.
Enter the name component configuration name and click on “Go to Component Configuration”.
This is again expected error and same as above (Step 12). Click on Create and give your package and it will open the next screen with the success message.
14) Click on the “Attributes” button and enter Component as “FPM_FORM_UIBB”.
Now as mentioned in the informational message on screen, go to View and click on F4 help and select the View as FORM_WINDOW.
Click OK
15) Now let’s create the GUIBB Configuration and hence enter the Configuration Name and click Enter. It will appear above the “Configure UIBB” button.
16) You will receive the same error and that is expected error. Click on Create.
17) Enter your package name and then it will ask for the FEEDER CLASS name. Enter the Feeder Class name and click on Edit Parameters.
18) You will receive the warning message and that can be ignored.
Just click OK.
19) On this screen, Click on the “Add Group”. It will add the group1 under Form and you can name it.
20) After adding group, we need to configure that as follows. Select the MATNR as we want to display it as Input field and then add “Button Row”. Click OK.
21) From Enhancement pack 5, we have some very good options like Value Suggestion while entering the material number. In order to view all the options available; just click on the “Element: Material” link under FORM-> Group1.
22) After that let’s configure the button we have added and add the action to it.
23) To display the material details, lets add one more group and configure it by selecting the fields we want to display as follows.
24) Click on the individual elements and set the property as follows :
Do it for all the fields and click on SAVE.
25) Finally, TEST the application. There are 2 ways to test the application as follows.
a) Click on the Application Configuration link and then click on TEST.
It will take you to the Application Configuration. Just click on TEST.
b) From SE80; enter your package name and select the application and click on Application Configuration and execute.
26) The Result screen looks like as follows, Enter the material and the click on Get Details it will populate the data.
good explain…………….. very helpful to understand feeder class……
Thanks Pratosh !
Great effort Rahul, you have made it simple, thanks for sharing!!!
Cheers,
Girish
Thanks Girish !
Thank you:)
Thanks Rahul…
It is a good document.
Hi Rahul,
Nice tutorial, though I’m not sure why you did steps 6, 7 and 8 as it appears you start to create a Web Dynpro Component that implements a UIBB that is then not used in the rest of the tutorial; and you then create a Web Dynpro Application that doesn’t point at your new UIBB.
Am I missing something?
Cheers,
Matt
I also don’t see the need for this
Hi Matt/Christopher,
You are correct. In this case, we don’t need to create WD Component. I have removed those steps.
Regarding usage of wd application, i am attaching FPM_OIF_COMPONENT as a component.
Appreciate your feedback.
Thanks,
Rahul
Hello,
I think it is easy, but I don’t know what to do with this line:
DATA : li_makt_line TYPE makt.
I get the error: “TYPE MAKT IS UNKNOWN”… What is the right type?
Thanks
Peter
Hi Peter,
DATA : li_makt_line TYPE makt.
With this line, we are declaring the work area of type MAKT.
If you just copy and paste the code in GET_DATA method mentioned above, it should work.
Please let me know what code you have written and getting that error.
Thanks,
Rahul
The problem is, that table MAKT is not available in my System. Its NetWEaver 7.31
Okay, In that case please use available type. 🙂
Happy Learning!
Thanks Rahul for sharing. 🙂 🙂 🙂
Thanks.
Nishant Bansal
Thanks Rahul….
Hi Rahul
Thanks for the example .
But ideally you should be using IF_FPM_GUIBB_FORM~PROCESS_EVENT method of
feeder class to process event GET_MAT.
My doubt is how do we pass event parameters to the PROCESS_EVENT .
For eg i want to pass matnr alone as importing parameter to the event handler method . With tha MATNR i wil find the MAKT and set the data within Event hahdler
Regards
Arshad
Hi Rahul
Thanks for example
I have problem that i dont have configure group button in GUIBB component configuration
even if i open SAP demo in display mode its not appear
could you please advice me.
like the shoot below:
Hi Rahul,
I am not able to configure button row.Please help .
Hi  Rahul,
Thanks for your post! I need your help on SAWE_SA (FPM_OIF_COMPONENT) wherein I have to enhance ’employee search’ functionality of lean staffing component.I have to add lead selection tabular structure in FPM std. component and also add fields in search help.
Hi Rahul,
In your document  steps 6, 7 and 8 are REMOVED. Please update the same.
Thanks