Skip to Content

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.

    1.JPG

      

2)     Go to the “Interfaces” tab and enter the interface for FORM GUIBB “IF_FPM_GUIBB_FORM”.

/wp-content/uploads/2012/12/2_161852.jpg

And press Enter. It will automatically add the interface for the generic UIBB “IF_FPM_GUIBB

2.JPG

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.

3.JPG

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.

/wp-content/uploads/2012/12/1_161851.jpg

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.


4.JPG

REMOVED steps 6, 7 and 8

9)     Create the WebDynpro Application by right clicking on component as follows.

5.JPG

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

/wp-content/uploads/2012/12/7_161823.jpg


11)  Now go to the package where you have saved the WebDynpro Application and right click on the Application and click “Create/Change Configuration”. 

6.JPG

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.

7.JPG

This is expected because till this point your APPLICATION CONFIGURATION does not exist. Click on Create button. You will receive the success message. 

8.JPG

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”. 


/wp-content/uploads/2012/12/11_161827.jpg

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. 

9.JPG

14)  Click on the “Attributes” button and enter Component as “FPM_FORM_UIBB”.

/wp-content/uploads/2012/12/13_161829.jpg


Now as mentioned in the informational message on screen, go to View and click on F4 help and select the View as FORM_WINDOW.

10.JPG

Click OK

/wp-content/uploads/2012/12/15_161831.jpg

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.

11.JPG

16)  You will receive the same error and that is expected error. Click on Create.

/wp-content/uploads/2012/12/166_161833.jpg

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.

/wp-content/uploads/2012/12/17_161834.jpg

18)  You will receive the warning message and that can be ignored.

/wp-content/uploads/2012/12/18_161835.jpg

Just click OK. 

12.JPG

19)  On this screen, Click on the “Add Group”. It will add the group1 under Form and you can name it. 

/wp-content/uploads/2012/12/20_161837.jpg

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. 

13.JPG

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. 


/wp-content/uploads/2012/12/22_161839.jpg

22)  After that let’s configure the button we have added and add the action to it.

14.JPG

23)  To display the material details, lets add one more group and configure it by selecting the fields we want to display as follows.

/wp-content/uploads/2012/12/24_161842.jpg

24)  Click on the individual elements and set the property as follows :

15.JPG


/wp-content/uploads/2012/12/26_161844.jpg

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.

aa     16.JPG

  It will take you to the Application Configuration. Just click on TEST.

   17.JPG

b)    From SE80; enter your package name and select the application and click on Application Configuration and execute.

/wp-content/uploads/2012/12/29_161848.jpg

26)  The Result screen looks like as follows, Enter the material and the click on Get Details it will populate the data.

18.JPG

/wp-content/uploads/2012/12/31_161850.jpg


To report this post you need to login first.

20 Comments

You must be Logged on to comment or reply to a post.

  1. Matt Harding

    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

    (0) 
    1. Former Member Post author

      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

      (0) 
      1. Former Member

        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

        (0) 
        1. Former Member Post author

          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

          (0) 
  2. Arshad Ansary

    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

    (0) 
  3. Former Member

    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:

    Untitled.png

    (0) 
  4. Former Member

    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.

    (0) 

Leave a Reply