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.
* Check if the “Start Over” Button in clicked ; If yes clear the contents
if io_event->MV_EVENT_ID = ‘FPM_GOTO_START’.
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.
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.