FPM Basics
FPM Basics
FPM Basics
The documentation may have changed since you downloaded the PDF. You can always find the latest information on SAP Help
Portal.
Note
This PDF document contains the selected topic and its subtopics (max. 150) in the selected structure. Subtopics from other structures are not included.
2016 SAP SE or an SAP affiliate company. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose
without the express permission of SAP SE. The information contained herein may be changed without prior notice. Some software products marketed by SAP
SE and its distributors contain proprietary software components of other software vendors. National product specifications may vary. These materials are
provided by SAP SE and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP
Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set
forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional
warranty. SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE in
Germany and other countries. Please see www.sap.com/corporate-en/legal/copyright/index.epx#trademark for additional trademark information and notices.
Table of content
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 1 of 16
Table of content
1 FPM Basics
1.1 Structure of a Floorplan Manager Application
1.2 Floorplans
1.2.1 Floorplan for the Overview Page (OVP)
1.2.1.1 Stacking of UIBBs in a Column
1.2.2 Floorplan for Guided Activity (GAF)
1.2.3 Floorplan for Object Instances (OIF)
1.2.4 Floorplan for Quick Activity (QAF)
1.3 User Interface Building Blocks (UIBBs)
1.3.1 Interface: IF_FPM_UI_BUILDING_BLOCK
1.3.2 Generic User Interface Building Blocks (GUIBBs)
1.3.2.1 Feeder Class
1.3.3 Reuse User Interface Building Blocks (RUIBBs)
1.3.3.1 Attachment Component
1.3.3.2 Notes Component
1.4 FPM Event Loop
1.4.1 Raising Standard FPM Events
1.4.2 Triggering the FPM Event Loop
1.4.3 Triggering Application-Specific Events
1.4.4 Asynchronous Callback
1.4.5 Interaction with Web Dynpro Phase Model
1.4.6 Key Web Dynpro Methods used in FPM
1.4.7 Different Categories of Web Dynpro Interfaces
1.4.8 Triggering a Data-Loss Dialog Box in the FPM Event Loop
1.5 FPM/Web Dynpro ABAP Adjustment Concept
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 2 of 16
1 FPM Basics
An introduction to FPM concepts, and the essential components of an FPM application.
Related Information
Structure of a Floorplan Manager Application
Floorplans
User Interface Building Blocks (UIBBs)
FPM Event Loop
FPM/Web Dynpro ABAP Adjustment Concept
Note
There are different types of UIBBs:
Freestyle UIBBs
These components are created outside the FPM framework, in the Web Dynpro ABAP development environment, by application developers. FPM
has, therefore, little control over the layout of their content.
Generic User Interface Building Blocks (GUIBBs)
FPM makes life easier for application developers. To ensure that your application has a harmonized look and feel, and that there is consistency in
the UI screens, FPM provides you with templates, the GUIBBs, for displaying your content. For example, there are templates to display your content
in a form layout (Form GUIBB), and in a list layout (List GUIBB). When using a Form GUIBB, for example, you don't have to worry about aligning
input fields - the FPM GUIBB takes care of that. UIBBs and GUIBBs are explained in greater detail in another section.
By combining a configuration of a floorplan with configurations of the UIBBs, you can compile most of the common application user interfaces.
The interfaces can be changed afterwards by changing both the floorplan and the UIBB component configurations.
The figure below illustrates an FPM application, showing a floorplan configuration containing two GUIBBs (for form layout and tab page layout) and a single
freestyle UIBB. Note that the tabbed component is included only to show that it is a special kind of GUIBB that contains other GUIBBs.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 3 of 16
Related Information
Floorplans
User Interface Building Blocks (UIBBs)
1.2 Floorplans
Concept
To improve the uniformity of user interfaces of applications in the Web Dynpro ABAP environment, Floorplan Manager (FPM) lets you implement floorplans.
A floorplan is a template. It is a combination of user interface (UI) 'patterns' arranged in a specific order in an application that allows a user to accomplish a
certain activity, for example, searching for, identifying, and maintaining data for an object.
Each floorplan represents a different type of user activity and, therefore, floorplans form the basis of an application.
Each floorplan follows the SAP design standards for UI and is implemented as a separate Web Dynpro component.
The following list displays the floorplan types that are available and provides guidelines as to when to use them:
Floorplan for Guided Activities
Use this floorplan when the user carries out an activity for which he or she requires guidance, that is, an activity that is not regularly performed or is
unknown by the user. This floorplan provides a framework for breaking down the activity step by step.
Floorplan for Overview Page
Use this floorplan for activities that relate to managing business records, for example editing or deleting records. The overview page (OVP) floorplan
provides an overview of all important information regarding a single instance of an object (such as a sales order, an employee, or an account). The OVP
floorplan has highly flexible page layout possibilities and numerous user personalization features.
The OVP floorplan supersedes the Object Instance floorplan (see below).
Floorplan for Quick Activities
Use this floorplan when the user activity can be performed in one step and on one screen, that is, for a very simple activity.
Floorplan for Object Instances
Use this floorplan for activities that relate to managing business records or objects, for example, editing or deleting records.
Integration
Floorplans form the basis of an application's layout. The content for an application is supplied by the user interface building blocks (UIBBs) which are added to
the pages within a floorplan configuration.
You edit the floorplan component configuration of an application using the FPM configuration editor, FLUID.
Related Information
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 4 of 16
Related Information
Floorplan for the Overview Page (OVP)
Floorplan for Guided Activity (GAF)
Floorplan for Object Instances (OIF)
Floorplan for Quick Activity (QAF)
Working with Floorplans
Runtime Layout
At runtime, an OVP application consists of content displayed in a number of collapsible panels. Depending on the configuration of the application, these panels
can be moved around the UI, and even stacked upon each other to form a tab-strip. An OVP application may also display a Page Master panel (explanation
below). The following screenshots illustrate how an application based on an OVP floorplan might look at runtime:
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 5 of 16
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 6 of 16
Runtime Structure
The figure below shows the runtime UI of an application based on the GAF floorplan:
This floorplan contains a series of screens associated with the different steps of an activity. The content of the screens is determined by the business object
the floorplan is based on, or by the task that the user carries out with that business object.
The floorplan has the following schematic structure:
Page Title (formerly, the Identification Region (IDR))
The system displays the title and step of the current activity in this area.
Page Toolbar
The order and naming convention for the standard buttons are determined by the FPM framework.
Message Region (not shown in the above screenshot)
This area (above the roadmap) is only visible if at least one message has been generated by the system.
Roadmap
This area displays an interactive figure, depicting the individual steps, and substeps of the activity. The user navigates through the roadmap by clicking
the steps, or the toolbar buttons.
The last step of a guided activity is usually a confirmation screen; this is not displayed in the roadmap. When the user completes the last step in the
activity and presses the Next button (or what the developer of the application has defined the Final Action step to be), the confirmation screen
appears, and the roadmap disappears. Note that it is possible for a guided activity to consist of only one step, followed by a confirmation step. In this
case, the system displays just a single step in the roadmap.
Information Area (not shown in the above screenshot)
This optional area (below the page title), formerly known as the Extended Identification Region , displays all relevant information that more narrowly
specifies the activity. It is divided into the following elements:
Content Area
This area provides information that can be edited by the user. The content is provided by individual UI building blocks (UIBBs). In the screenshot above,
the content area contains a Form component.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 7 of 16
Substep
A substep is a step that appears between two main steps, and, represents a breaking-down of a main activity into smaller activities.
It is the UIBBs that provide the content in a step, and an FPM application must have at least one UIBB for each step. FLUID automatically provides
this, but you can add your own predefined UIBBs. Using the fields inside the Attributes panel, you can characterize each step.
Main steps and substeps are available on a Main Steps type of page.
IDR
To make changes to the page title and information area, choose the Configure IDR button in the Guided Activity Schema .
A GAF configuration may also contain an Initial Screen and/or Confirmation Screen .
Related Information
Initial Screen
Confirmation Screen
Identification Region (IDR) of GAF and OIF Applications
Note
Although the OIF floorplan is still in use, it has been superseded by the Overview Page Floorplan (OVP) as it does not satisfy current UI guidelines.
Runtime Structure
An application configuration based on an OIF type floorplan typically shows multiple view tabs, whose content is determined by a defined business object, and
the related tasks a user must perform.
This floorplan has the following schematic structure:
Page Title (formerly, the Identification Region (IDR))
The system displays the title and step of the current activity in this area.
Page Toolbar
The toolbar contains action buttons and navigation options, and links to more detailed information.
Information Area
This optional area, formerly known as the Extended Identification Region , displays all relevant information that more narrowly specifies the activity.
Message Region
This area is only visible if at least one message has been generated by the system.
Contextual Navigation Region (CNR)
This area consists of view and subview tabs. Tabs are used for switching between different OIF views and subviews. They are implemented with the
Web Dynpro ABAP HorizontalContextualPatternControl control. This is conceptually, technically, and visually different from
TabStripControl and cannot be used outside of this navigation region of an OIF.
Note
If the OIF configuration has been defined with only one main layer with only one sub-layer, the tabs and sub-tabs are hidden at runtime.
Content Area
This area provides information that can be edited by the user. The content is provided by individual UI building blocks (UIBBs).
An OIF configuration may also contain an Initial Screen and/or Confirmation Screen .
Related Information
Initial Screen
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 8 of 16
Confirmation Screen
Identification Region (IDR) of GAF and OIF Applications
Floorplan for the Overview Page (OVP)
Use
You can use this floorplan to model an application interface allowing the user to create, delete, display, and change the attributes and associations of business
objects. For quick activities, only the fields of a business object are shown that generally suffice for creating an object instance.
A quick activity is realized at design time by using the Object Instance Floorplan (OIF) component, FPM_OIF_COMPONENT with only one main view and one
subview available.
More Information
Floorplan for Object Instances (OIF)
Related Information
Interface: IF_FPM_UI_BUILDING_BLOCK
Generic User Interface Building Blocks (GUIBBs)
Reuse User Interface Building Blocks (RUIBBs)
Description
The first method called after the FPM event loop has been started.
In this method, the UIBB must transport all modified data from the views to other components that the UIBB wants to
communicate with later on.
Normally, this data transport is done automatically using Web Dynpro context mapping. Therefore, only create a specific
implementation of this method if you are not using this automatic mechanism.
NEEDS_CONFIRMATION
In this method, the UIBB requests that the subsequent event processing is stopped, and asks the user for confirmation by way
of a dialog box. Depending on the action the user takes in the dialog box, the event loop is continued or canceled.
For more details, refer to Triggering a Data Loss Dialog Box.
PROCESS_EVENT
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 9 of 16
IF io_event->mv_event_is_validating = ABAP_TRUE.
Do local checks and report messages if needed
ENDIF
CASE io_event->mv_event_id.
WHEN XYZ
Handle event and fill EV_RETURN accordingly with a value from IF_FPM_CONSTANTS~GC_EVENT_RESULT
ENDCASE.
If the event processing requires further user interaction (for example, asking for further data in a dialog box), the event
processing can be deferred by returning EV_RETURN = IF_FPM_CONSTANTS~GC_EVENT_RESULT-DEFER.
AFTER_FAILED_EVENT
This method is called by FPM if an event could not be processed successfully. In this case, the UIBB must ensure that its UI
reverts to the state before the user interaction occurred.
For example, let us say that selecting an option in a lead field in a table triggers the display of the details of this field in a new
row in another UIBB. The event might fail if the UIBB containing the details contains unsaved data for the previously-selected
table row. As the detail form still contains the details of the original table row (after the failed event), the lead selection must be
reverted to the original table row too.
If the PROCESS_EVENT method of the current UIBB has been processed successfully, but the event processing failed due to a
problem in another UIBB, the actual event processing must also be reverted. The parameter IV_REVERT indicates this
situation.
PROCESS_BEFORE_OUTPUT
This is the last method to be called on the UIBB. The data to be displayed is read from the model.
Suitable GUIBB
Search Component
Analytics Component
Chart Component
Launchpad Component
Personal Object Worklist (POWL) Component
Visual Business Component
Composite Component
Tabbed Component
More Information
Feeder Class
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 10 of 16
Note
Even if you are not using a particular method in the feeder class interface, implement it as an empty method to avoid a system dump.
Feeder class settings can be accessed in the FPM configuration editor, FLUID; see the General Settings panel of the individual GUIBB component.
More Information
Generic User Interface Building Block (GUIBB)
Structure
An attachment component is displayed in tabular format at runtime with each row representing a separate attachment or link.
At runtime, you can download new attachments and links, edit and delete existing ones, sort, filter, and group attachments and links.
The exact structure of the attachment component at runtime is determined by the feeder class of the list component within the attachment component.
Integration
You configure this component using the FPM configuration editor, FLUID.
Technically, an attachment component is a list component embedded in an attachment wrapper component. The information displayed at runtime is
determined by the feeder class attached to the list component configuration. If you need to configure the data displayed in an attachment component, you
therefore configure the list component configuration within it.
You can also edit where attachments are stored: open FLUID for the attachment wrapper component to display the Storage Type field.
More Information
List Component (List ATS)
Page 11 of 16
Structure
A notes component is displayed in tabular format at runtime with each row representing a separate note.
At runtime, you can create, edit, delete, and sort notes.
The exact structure of the notes component at runtime is determined by the feeder class of the list component within the note component.
Integration
You configure this component using the FPM configuration editor, FLUID.
Technically, a notes component is a list component embedded in a notes wrapper component. The information displayed at runtime is determined by the
feeder class attached to the list component configuration. Therefore, if you need to configure the note component, you configure the list component
configuration within it.
You can also edit where notes are stored: open FLUID for the notes wrapper component to display the Storage Type field.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 12 of 16
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 13 of 16
Table 1:
Method
Description
A standard Web Dynpro method that is called only once in the lifetime of a Web
DOINIT
Dynpro component by the Web Dynpro runtime. This method is used to initialize
your component, for example initialize attributes and create helper classes).
DOBEFOREACTION
A standard Web Dynpro method that is called by the Web Dynpro runtime on all
visible UIBBs when the user triggers a round trip. According to Web Dynpro
programming guidelines, generic validations must be handled in this method; for
example check that all mandatory fields are filled.
The registered Web Dynpro action handler is called. You then have the following
options:
If the user interaction does not affect other UIBBs, and there is no need for
FPM features such as data-loss dialog boxes, you can handle the action
locally in your UIBB. Use standard Web Dynpro programming; for example
selection of another radio-button leads to different enabled/disabled settings
of other controls on the same view.
For all actions which may affect other UIBBs, raise an FPM event.
Note
When using the interfaces IF_FPM_APP_CONTROLLER and IF_FPM_OIF_CONF_EXIT (or IF_FPM_GAF_CONF_EXIT or
IF_FPM_OVP_CONF_EXIT ) together, they must be implemented by the same Web Dynpro component. Furthermore, if the Web Dynpro interface
IF_FPM_SHARED_DATA is also required, it is recommended to implement it in that same Web Dynpro component too.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 14 of 16
Figure 1: Phase Model for Triggering a Data-Loss Dialog Box and Resumption of Event
As illustrated above, you can adapt an FPM application to your needs on a number of different levels, and through a number of different people:
Configuration Level (Developer)
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 15 of 16
The fundamental modeling of an FPM application occurs on the this level. Various components used in the application are created, programmed, and
given a basis configuration by developers.
Customizing Level (Administrator)
Applications with their basis configuration can be adapted to enterprise-specific requirements at the customer site on this level. This is done without
modification to the underlying configuration. These kinds of adjustments usually occur on the client-level and for all users.
Personalization Level (User)
Applications can be changed by individual users in various ways to fit their personal needs on this level. This is done without modification to the
underlying configuration..
The individual layers of this concept are explained in more detail in the relevant sections of this documentation.
For more information, search for Web Dynpro ABAP Configuration Framework in the SAP Help Portal.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 16 of 16