ABAP Freakshow – January 20, 2010: ABAP UI Flexibility Part 2


This is part 2 of a 6 part series on User Interface flexibility in the ABAP environment. This second part explores the usage of the Floorplan Manager and its ability to configure complex applications comprised of multiple Web Dynpro Components (SAP and Customer created even).

You can download a high resolution version MP4 version of the video here:
http://blip.tv/file/get/Thomas_jung-AFSJan2010ABAPUIFlexibilityPart2942.mp4

You can download an iPod/iPhone version of the video here:
http://blip.tv/file/get/Thomas_jung-AFSJan2010ABAPUIFlexibilityPart2833.mp4

Tags: , ,

2 responses to “ABAP Freakshow – January 20, 2010: ABAP UI Flexibility Part 2”

  1. Ed Herrmann says :

    Great start to the series, Thomas. I am definitely looking forward to the rest of it. I have a couple of quick questions regarding the feeder classes and forms. How much control do you have over the UI elements at design time and even at runtime? For example, how do you control the values in a dropdown list? Can you get runtime control access to say filter the values of dropdown list 2 based on the selected user value in dropdown list 1? How about control to hide certain fields based on some other user action?

    Also, are the elements somehow connected to the context of the component or are values all handled via getter methods?

    Cheers,
    ewH

  2. Thomas Jung says :

    Ed, your supposed to give me softball questions. Not ones that actually requirement me to go do research. 🙂

    All kidding aside, these were very good questions. The idea of Generic UIBBs and Feeder Classes is to automate the most common and simplistic types of user interface blocks. They don’t necessarily offer the range of dynamic features that you ask about. Of course if need these features you can always fall back to UIBBs that are normal Web Dynpro Components. That said, there is quite a bit that you can accomplish within the feeder framework.

    >For example, how do you control the values in a dropdown list?
    >Can you get runtime control access to say filter the values of dropdown list 2 based on the selected user value in dropdown list 1?
    The default action is for the DropDown to act as a DropDownByKey and gets its values automatically from the underlying DDic Domain. However, during both the GET_DEFINITION and GET_DATA methods there are parameters (ET_FIELD_DESCRIPTION and CT_FIELD_USAGE) that allow you to control properties of the fields. In particular there is the parameter FIXED_VALUES where you can set the values.

    >How about control to hide certain fields based on some other user action?
    The form feeder class has a method (GET_DEFAULT_CONFIG) that will give you access to the current configuration object (type ref to IF_FPM_GUIBB_FORM_CONFIG). With this object you can effect quite a few dynamic changes to the configured UI (like adding new elements). Also from the above Methods and Parameters you can also control properties like visibility and enabled/read-only.

    >Also, are the elements somehow connected to the context of the component or are values all handled via getter methods?
    There is of course a context generated dynamically within the GUIBB. However from the application developer standpoint, you never see this nor care about it. The data exists in the feeder class as a normal ABAP structure or internal table (depending upon the type of feeder). The GET_DATA method is called by the Generic Web Dynpro Component and it receives the data via the parameter CS_DATA (TYPE DATA).

    In a future eLearning series I promise that I dig into the details on how the data is stored and passed around in this application. I actually use a single central class with static attributes. These static attributes can then be “Shared” by all the parts of the Web Dynpro Application – including the feeder classes of the GUIBBs.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: